build: make executable and test roots package actions
This commit is contained in:
@@ -286,7 +286,8 @@ fn rejectstable(dir: str, label: str, target: str, needle: str) void = {
|
||||
|| testenv.has(apiiface, "hidden")) {
|
||||
fail("self-contained", "api export leaked unrelated or private declarations");
|
||||
};
|
||||
let expectedunit: str = strings.concat("//ww:module-reset\n", mainsrc, "\n");
|
||||
let expectedunit: str = strings.concat("//ww:module-reset main\n",
|
||||
mainsrc, "\n");
|
||||
if (!testenv.same(expectedunit, testenv.readfile(strings.concat(cwork,
|
||||
"__root.unit.ww"))) || !testenv.same(expectedunit,
|
||||
testenv.readfile(strings.concat(wwork, "__root.unit.ww")))) {
|
||||
@@ -405,7 +406,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
let unit: str = testenv.readfile(strings.concat(scratch,
|
||||
"__root.unit.ww"));
|
||||
let rootbody: str = testenv.readfile(strings.concat(main, "/main.ww"));
|
||||
let wantroot: str = strings.concat("//ww:module-reset\n", rootbody,
|
||||
let wantroot: str = strings.concat("//ww:module-reset main\n", rootbody,
|
||||
"\n");
|
||||
if (!testenv.same(unit, wantroot) || testenv.has(unit,
|
||||
"//ww:module ")) {
|
||||
@@ -530,6 +531,8 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
let referenceunit: str = "";
|
||||
let referencewwi: str = "";
|
||||
let referencearchive: str = "";
|
||||
let referencerootwwi: str = "";
|
||||
let referencerootarchive: str = "";
|
||||
let referencebin: str = "";
|
||||
let referencecompiler: str = "";
|
||||
let referenceassembler: str = "";
|
||||
@@ -567,7 +570,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"__root.unit.ww"));
|
||||
let depunit: str = testenv.readfile(strings.concat(work,
|
||||
"dep.unit.ww"));
|
||||
if (!testenv.has(rootunit, "//ww:module-reset\npackage main;")
|
||||
if (!testenv.has(rootunit, "//ww:module-reset main\npackage main;")
|
||||
|| testenv.has(rootunit, "//ww:module ")
|
||||
|| !testenv.has(depunit, "//ww:module-reset dep\npackage dep;")
|
||||
|| testenv.has(depunit, "//ww:module ")) {
|
||||
@@ -578,8 +581,8 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
|| !testenv.exists(strings.concat(work, "dep.wwi"))
|
||||
|| !testenv.exists(strings.concat(work, "dep.a"))
|
||||
|| !testenv.exists(strings.concat(work, "__root.o"))
|
||||
|| testenv.exists(strings.concat(work, "__root.wwi"))
|
||||
|| testenv.exists(strings.concat(work, "__root.a"))) {
|
||||
|| !testenv.exists(strings.concat(work, "__root.wwi"))
|
||||
|| !testenv.exists(strings.concat(work, "__root.a"))) {
|
||||
fail("library-roots", "package artifacts do not match root ownership");
|
||||
};
|
||||
let ctrace: str = testenv.readfile(compilertrace);
|
||||
@@ -603,6 +606,10 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"BEGIN<-c><--import><leaf><", work, "leaf.wwi><-I><", work,
|
||||
"dep.wwi><-o><", work,
|
||||
"dep.s><", work, "dep.unit.ww>"))
|
||||
|| !testenv.has(ctrace, strings.concat(
|
||||
"BEGIN<--entry><-c><--import><dep><", work,
|
||||
"dep.wwi><-I><", work, "__root.wwi><-o><", work,
|
||||
"__root.s><", work, "__root.unit.ww>"))
|
||||
|| testenv.occurrences(atrace, "\n") != 3
|
||||
|| !testenv.has(atrace, strings.concat("BEGIN<-o><", work,
|
||||
"dep.o><", work, "dep.s>"))) {
|
||||
@@ -610,7 +617,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
};
|
||||
if (testenv.occurrences(ltrace, "\n") != 1
|
||||
|| !testenv.has(ltrace, strings.concat("BEGIN<-o><", bin, "><",
|
||||
work, "__root.o>"))
|
||||
work, "__root.a>"))
|
||||
|| testenv.pos(ltrace, strings.concat("<", work, "dep.a>")) < 0
|
||||
|| testenv.pos(ltrace, strings.concat("<", work, "leaf.a>"))
|
||||
< testenv.pos(ltrace, strings.concat("<", work, "dep.a>"))
|
||||
@@ -643,6 +650,10 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"dep.wwi")));
|
||||
referencearchive = strings.dup(testenv.readfile(strings.concat(work,
|
||||
"dep.a")));
|
||||
referencerootwwi = strings.dup(testenv.readfile(strings.concat(work,
|
||||
"__root.wwi")));
|
||||
referencerootarchive = strings.dup(testenv.readfile(strings.concat(work,
|
||||
"__root.a")));
|
||||
referencebin = strings.dup(testenv.readfile(bin));
|
||||
referencecompiler = strings.dup(ctrace);
|
||||
referenceassembler = strings.dup(atrace);
|
||||
@@ -653,6 +664,10 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
work, "dep.wwi")))
|
||||
|| !testenv.same(referencearchive, testenv.readfile(strings.concat(
|
||||
work, "dep.a")))
|
||||
|| !testenv.same(referencerootwwi,
|
||||
testenv.readfile(strings.concat(work, "__root.wwi")))
|
||||
|| !testenv.same(referencerootarchive,
|
||||
testenv.readfile(strings.concat(work, "__root.a")))
|
||||
|| !testenv.same(referencebin, testenv.readfile(bin))
|
||||
|| !testenv.same(referencecompiler, ctrace)
|
||||
|| !testenv.same(referenceassembler, atrace)
|
||||
@@ -723,7 +738,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
runav) != 42) {
|
||||
fail("library-roots", "empty override did not use default roots");
|
||||
};
|
||||
if (!testenv.has(rootunit, "//ww:module-reset\npackage main;")
|
||||
if (!testenv.has(rootunit, "//ww:module-reset main\npackage main;")
|
||||
|| testenv.has(rootunit, "//ww:module ")
|
||||
|| !testenv.exists(strings.concat(emptywork, "types.wwi"))
|
||||
|| !testenv.exists(strings.concat(emptywork, "types.a"))
|
||||
@@ -870,7 +885,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
let depunitpath: str = strings.concat(work, "/dep.unit.ww");
|
||||
let rootunit: str = testenv.readfile(rootunitpath);
|
||||
let depunit: str = testenv.readfile(depunitpath);
|
||||
if (!testenv.has(rootunit, "//ww:module-reset\npackage main;")
|
||||
if (!testenv.has(rootunit, "//ww:module-reset main\npackage main;")
|
||||
|| testenv.has(rootunit, "//ww:module ")
|
||||
|| !testenv.has(depunit, "//ww:module-reset dep\npackage dep;")
|
||||
|| testenv.has(depunit, "//ww:module ")) {
|
||||
@@ -880,8 +895,8 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
|| !testenv.exists(strings.concat(work, "/leaf.a"))
|
||||
|| !testenv.exists(strings.concat(work, "/dep.wwi"))
|
||||
|| !testenv.exists(strings.concat(work, "/dep.a"))
|
||||
|| testenv.exists(strings.concat(work, "/__root.wwi"))
|
||||
|| testenv.exists(strings.concat(work, "/__root.a"))
|
||||
|| !testenv.exists(strings.concat(work, "/__root.wwi"))
|
||||
|| !testenv.exists(strings.concat(work, "/__root.a"))
|
||||
|| !testenv.same(testenv.readfile(strings.concat(work,
|
||||
"/.wwtool.ww")), testenv.readfile(copied[si]))
|
||||
|| !testenv.same(testenv.readfile(strings.concat(work,
|
||||
@@ -890,7 +905,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"/.wwtool.w6a")), testenv.readfile(assembler))
|
||||
|| !testenv.same(testenv.readfile(strings.concat(work,
|
||||
"/.wwtool.stamp")),
|
||||
"ww workdir fmt 6 mode build asm 0\n")) {
|
||||
"ww workdir fmt 7 mode build asm 0\n")) {
|
||||
fail("driver-identity", "persistent artifacts or identities are incomplete");
|
||||
};
|
||||
let coldwwi: str = testenv.readfile(strings.concat(work, "/dep.wwi"));
|
||||
@@ -905,7 +920,8 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"/dep.wwi.new><-o><", work,
|
||||
"/dep.s.new><", work, "/dep.unit.new>"))
|
||||
|| !testenv.has(coldcompiler, strings.concat(
|
||||
"BEGIN<-c><--import><dep><", work, "/dep.wwi><-o><", work,
|
||||
"BEGIN<--entry><-c><--import><dep><", work,
|
||||
"/dep.wwi><-I><", work, "/__root.wwi.new><-o><", work,
|
||||
"/__root.s.new><", work,
|
||||
"/__root.unit.new>"))
|
||||
|| testenv.occurrences(coldassembler, "\n") != 3
|
||||
@@ -916,7 +932,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
};
|
||||
if (testenv.occurrences(coldlinker, "\n") != 1
|
||||
|| !testenv.has(coldlinker, strings.concat("BEGIN<-o><", bin,
|
||||
"><", work, "/__root.o>"))
|
||||
"><", work, "/__root.a>"))
|
||||
|| testenv.pos(coldlinker, strings.concat("<", work,
|
||||
"/dep.a>")) < 0
|
||||
|| testenv.pos(coldlinker, strings.concat("<", work,
|
||||
|
||||
Reference in New Issue
Block a user