diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2025-05-06 16:31:00 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2025-05-12 18:30:04 +0200 |
commit | 7e503da6c18c50e03d3cb1f5d7490f3c805f3b63 (patch) | |
tree | 28ac42340ae5aa1d368b6d5a126763ed4ab2bfae | |
parent | fe4006fce755432b1ae3a273873f3649512c7f94 (diff) | |
download | justbuild-7e503da6c18c50e03d3cb1f5d7490f3c805f3b63.tar.gz |
Tests: Assume only parents of out_dirs exist
... instead of the full out_dir path, which is not
guaranteed by the RBE protocol.
5 files changed, 21 insertions, 15 deletions
diff --git a/test/buildtool/execution_api/common/api_test.hpp b/test/buildtool/execution_api/common/api_test.hpp index 441c27b0..10f4e5a8 100644 --- a/test/buildtool/execution_api/common/api_test.hpp +++ b/test/buildtool/execution_api/common/api_test.hpp @@ -654,16 +654,18 @@ TestRetrieveFileAndSymlinkWithSameContentToPath(ApiFactory const& api_factory, auto output_path = std::filesystem::path{"foo/bar/baz"}; - auto action = api->CreateAction( - *api->UploadTree({}), - {"/bin/sh", - "-c", - fmt::format("set -e\n [ -d {} ]", output_path.string())}, - "", - {}, - {output_path}, - {}, - props); + auto action = + api->CreateAction(*api->UploadTree({}), + {"/bin/sh", + "-c", + fmt::format("set -e\n [ -d {} ]\n mkdir -p {}", + output_path.parent_path().string(), + output_path.string())}, + "", + {}, + {output_path}, + {}, + props); SECTION("Cache execution result in action cache") { action->SetCacheFlag(IExecutionAction::CacheFlag::CacheOutput); diff --git a/test/end-to-end/built-in-rules/generic_out_dirs.sh b/test/end-to-end/built-in-rules/generic_out_dirs.sh index c4dd81da..a2ad058d 100755 --- a/test/end-to-end/built-in-rules/generic_out_dirs.sh +++ b/test/end-to-end/built-in-rules/generic_out_dirs.sh @@ -21,7 +21,10 @@ mkdir -p lcl-build cat <<EOF > TARGETS { "gen_out_dirs": - {"type": "generic", "cmds": ["echo foo > out/foo.txt"], "out_dirs": ["out"]} + { "type": "generic" + , "cmds": ["mkdir -p out", "echo foo > out/foo.txt"] + , "out_dirs": ["out"] + } , "read_out_dirs": { "type": "generic" , "cmds": ["cat out/foo.txt > bar.txt"] @@ -29,7 +32,7 @@ cat <<EOF > TARGETS , "deps": ["gen_out_dirs"] } , "missing_outs_and_out_dirs": - {"type": "generic", "cmds": ["echo foo > out/foo.txt"]} + {"type": "generic", "cmds": ["mkdir -p out", "echo foo > out/foo.txt"]} , "out_dirs_contains_a_file": {"type": "generic", "cmds": ["echo foo > foo.txt"], "out_dirs": ["foo.txt"]} , "outs_contains_a_dir": diff --git a/test/end-to-end/remote-execution/native-protocol.sh b/test/end-to-end/remote-execution/native-protocol.sh index 00e1dd91..99ed1475 100644 --- a/test/end-to-end/remote-execution/native-protocol.sh +++ b/test/end-to-end/remote-execution/native-protocol.sh @@ -59,7 +59,7 @@ EOF cat > TARGETS <<EOF { "test": { "type": "generic" - , "cmds": ["cp -r ${DIRNAME} ${OUT_DIRNAME}"] + , "cmds": ["mkdir -p ${OUT_DIRNAME}", "cp -r ${DIRNAME} ${OUT_DIRNAME}"] , "deps": [["TREE", null, "${DIRNAME}"]] , "out_dirs": ["${OUT_DIRNAME}"] } diff --git a/test/end-to-end/remote-execution/split-splice.sh b/test/end-to-end/remote-execution/split-splice.sh index 20b509f8..8340194a 100644 --- a/test/end-to-end/remote-execution/split-splice.sh +++ b/test/end-to-end/remote-execution/split-splice.sh @@ -106,7 +106,8 @@ cat > TARGETS <<'EOF' { "type": "generic" , "out_dirs": ["tree"] , "cmds": - [ "for i in $(seq 21846); do echo foo > tree/$(printf '%0192d' $i).txt; done" + [ "mkdir -p tree" + , "for i in $(seq 21846); do echo foo > tree/$(printf '%0192d' $i).txt; done" , "echo foo > tree/magic_word.txt" ] } diff --git a/test/end-to-end/target-cache/target-cache-hit.sh b/test/end-to-end/target-cache/target-cache-hit.sh index 929c9b20..ba52fec3 100644 --- a/test/end-to-end/target-cache/target-cache-hit.sh +++ b/test/end-to-end/target-cache/target-cache-hit.sh @@ -42,7 +42,7 @@ cat > TARGETS <<EOF { "main": {"type": "export", "target": ["./", "main-target"]} , "main-target": { "type": "generic" - , "cmds": ["echo $RND | tee foo.txt out/bar.txt"] + , "cmds": ["mkdir -p out", "echo $RND | tee foo.txt out/bar.txt"] , "outs": ["foo.txt"] , "out_dirs": ["out"] } |