test: prove canonical directory package identity
This commit is contained in:
@@ -132,7 +132,7 @@ fn rejectstable(dir: str, label: str, target: str, needle: str) void = {
|
||||
|
||||
@test fn standalone_and_package_artifact() void = {
|
||||
let td: str = testenv.fresh();
|
||||
let app: str = strings.concat(td, "/app");
|
||||
let app: str = strings.concat(td, "/main");
|
||||
mkdir(app);
|
||||
testenv.writefile(strings.concat(app, "/main.ww"), strings.concat(
|
||||
"package main;\n",
|
||||
@@ -459,11 +459,11 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
@test fn toolchain_library_root_stage_parity() void = {
|
||||
let td: str = testenv.fresh();
|
||||
let source: str = strings.concat(td, "/source library");
|
||||
let app: str = strings.concat(source, "/app");
|
||||
let app: str = strings.concat(source, "/main");
|
||||
let dep: str = strings.concat(source, "/dep");
|
||||
let leaf: str = strings.concat(source, "/leaf");
|
||||
let runtime: str = strings.concat(td, "/runtime library");
|
||||
let decoy: str = strings.concat(runtime, "/app");
|
||||
let decoy: str = strings.concat(runtime, "/main");
|
||||
let tools: str = strings.concat(td, "/tool wrappers");
|
||||
let cwd: str = strings.concat(td, "/isolated cwd");
|
||||
let defaultapp: str = strings.concat(td, "/default app");
|
||||
@@ -556,7 +556,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
testenv.driver(assemblers[si]),
|
||||
testenv.driver(linkers[si]));
|
||||
let av: []str = [testenv.driver(stages[si]), "build", "-o", bin,
|
||||
"app"];
|
||||
"main"];
|
||||
let out: testenv.commandout;
|
||||
testenv.runcommandenv(cwd, td, strings.concat("library-root-", prefix),
|
||||
av, env, tmo(), &out);
|
||||
@@ -701,6 +701,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
let emptyassemblerreference: str = "";
|
||||
let emptylinkerreference: str = "";
|
||||
let emptyout: str = strings.concat(td, "/empty published binary");
|
||||
let emptyidentity: str = testenv.localpackageidentity(defaultapp, "main");
|
||||
let si: i32 = 0;
|
||||
for (si < stages.len) {
|
||||
let outpath: str = emptyout;
|
||||
@@ -727,7 +728,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
testenv.runcommandenv(cwd, td, strings.concat("empty-library-",
|
||||
tags[si]), av, emptyenv, tmo(), &out);
|
||||
let rootunit: str = testenv.readfile(strings.concat(emptywork,
|
||||
"main.unit.ww"));
|
||||
emptyidentity, ".unit.ww"));
|
||||
let ctrace: str = testenv.readfile(compilertrace);
|
||||
let atrace: str = testenv.readfile(assemblertrace);
|
||||
let ltrace: str = testenv.readfile(linkertrace);
|
||||
@@ -738,7 +739,8 @@ 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 main\npackage main;")
|
||||
if (!testenv.has(rootunit, strings.concat("//ww:module-reset ",
|
||||
emptyidentity, "\npackage main;"))
|
||||
|| testenv.has(rootunit, "//ww:module ")
|
||||
|| !testenv.exists(strings.concat(emptywork, "types.wwi"))
|
||||
|| !testenv.exists(strings.concat(emptywork, "types.a"))
|
||||
@@ -789,7 +791,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
@test fn persistent_build_reuse_tracks_driver_identity() void = {
|
||||
let td: str = testenv.fresh();
|
||||
let source: str = strings.concat(td, "/source tree");
|
||||
let app: str = strings.concat(source, "/app");
|
||||
let app: str = strings.concat(source, "/main");
|
||||
let dep: str = strings.concat(source, "/dep");
|
||||
let leaf: str = strings.concat(source, "/leaf");
|
||||
let tools: str = strings.concat(td, "/tool wrappers");
|
||||
@@ -871,7 +873,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
testenv.driver(assemblers[si]),
|
||||
testenv.driver(linkers[si]));
|
||||
let av: []str = [copied[si], "build", "-w", work,
|
||||
"-o", bin, "app"];
|
||||
"-o", bin, "main"];
|
||||
let out: testenv.commandout;
|
||||
testenv.runcommandenv(cwd, td, strings.concat("driver-cold-",
|
||||
tags[si]), av, env, tmo(), &out);
|
||||
@@ -905,7 +907,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 7 mode build asm 0\n")) {
|
||||
"ww workdir fmt 8 mode build asm 0\n")) {
|
||||
fail("driver-identity", "persistent artifacts or identities are incomplete");
|
||||
};
|
||||
let coldwwi: str = testenv.readfile(strings.concat(work, "/dep.wwi"));
|
||||
@@ -1049,7 +1051,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
let missingwork: str = strings.concat(td, "/missing workdir");
|
||||
let missingbin: str = strings.concat(td, "/missing binary");
|
||||
let badav: []str = [copied[si], "build", "-w", missingwork,
|
||||
"-o", missingbin, "app"];
|
||||
"-o", missingbin, "main"];
|
||||
testenv.runcommandenv(cwd, td, strings.concat("driver-missing-",
|
||||
tags[si]), badav, env, tmo(), &out);
|
||||
let wantdiag: str = strings.concat("ww: workdir ", missingwork,
|
||||
|
||||
Reference in New Issue
Block a user