diff options
Diffstat (limited to 'test')
31 files changed, 120 insertions, 50 deletions
diff --git a/test/end-to-end/actions/action-equality.sh b/test/end-to-end/actions/action-equality.sh index 2a070814..517035e0 100755 --- a/test/end-to-end/actions/action-equality.sh +++ b/test/end-to-end/actions/action-equality.sh @@ -60,7 +60,8 @@ cat > TARGETS <<'EOI' EOI -bin/tool-under-test build -J 1 --local-build-root .tool-root -f build.log --log-limit 2 2>&1 +bin/tool-under-test build -L '["env", "PATH='"${PATH}"'"]' \ + -J 1 --local-build-root .tool-root -f build.log --log-limit 2 2>&1 cat build.log echo grep 'Processed.* 4 actions' build.log diff --git a/test/end-to-end/actions/nested-trees.sh b/test/end-to-end/actions/nested-trees.sh index 346c03d5..a5b052c5 100755 --- a/test/end-to-end/actions/nested-trees.sh +++ b/test/end-to-end/actions/nested-trees.sh @@ -118,7 +118,8 @@ cat ../trees.json echo echo Build echo -../bin/tool-under-test install -o ../out --local-build-root ../tool-root 2>&1 +../bin/tool-under-test install -L '["env", "PATH='"${PATH}"'"]' \ + -o ../out --local-build-root ../tool-root 2>&1 echo echo Index echo 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 afa49d19..c4dd81da 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 @@ -47,7 +47,7 @@ cat <<EOF > TARGETS EOF echo "read_out_dirs" >&2 -bin/tool-under-test build --local-build-root lcl-build read_out_dirs +bin/tool-under-test build -L '["env", "PATH='"${PATH}"'"]' --local-build-root lcl-build read_out_dirs echo "done" >&2 echo "missing_outs_and_out_dirs" >&2 @@ -64,7 +64,7 @@ echo "out_dirs_contains_a_file" >&2 # the analysis phase should run fine bin/tool-under-test analyse --local-build-root lcl-build out_dirs_contains_a_file echo "analysis ok" >&2 -bin/tool-under-test build --local-build-root lcl-build out_dirs_contains_a_file && exit 1 || : +bin/tool-under-test build -L '["env", "PATH='"${PATH}"'"]' --local-build-root lcl-build out_dirs_contains_a_file && exit 1 || : echo "done" >&2 echo "outs_contains_a_dir" >&2 @@ -73,7 +73,7 @@ echo "outs_contains_a_dir" >&2 # anlysis should run fine bin/tool-under-test analyse --local-build-root lcl-build outs_contains_a_dir echo "analysis ok" >&2 -bin/tool-under-test build --local-build-root lcl-build -f test.log outs_contains_a_dir && exit 1 || : +bin/tool-under-test build -L '["env", "PATH='"${PATH}"'"]' --local-build-root lcl-build -f test.log outs_contains_a_dir && exit 1 || : # grep 'ERROR' test.log | grep 'output file' echo "done" >&2 diff --git a/test/end-to-end/cli/build-p.sh b/test/end-to-end/cli/build-p.sh index 853ab3e3..9a829fe7 100644 --- a/test/end-to-end/cli/build-p.sh +++ b/test/end-to-end/cli/build-p.sh @@ -31,23 +31,23 @@ cat > TARGETS <<'EOF' } EOF -"${JUST}" build --local-build-root "${BUILDROOT}" --dump-artifacts out.json 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" --dump-artifacts out.json 2>&1 echo cat out.json # foo/bar is the output artifact, and it is a tree [ $(jq -rM '."foo/bar"."file_type"' out.json) = "t" ] # Therefore, foo is not an output artifact, so requesting -P leaves stdout empty -"${JUST}" build --local-build-root "${BUILDROOT}" -P foo > foo.txt +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -P foo > foo.txt [ -f foo.txt ] && [ -z "$(cat foo.txt)" ] # Requesting foo/bar gives a human-readable description of the tree -"${JUST}" build --local-build-root "${BUILDROOT}" -P foo/bar | grep baz +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -P foo/bar | grep baz # going deepter into the tree we stil can get human-readable tree descriptions -"${JUST}" build --local-build-root "${BUILDROOT}" -P foo/bar/baz/greeting | grep hello.txt +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -P foo/bar/baz/greeting | grep hello.txt # Files inside the tree can be retrieved -"${JUST}" build --local-build-root "${BUILDROOT}" -P foo/bar/baz/greeting/hello.txt | grep World +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -P foo/bar/baz/greeting/hello.txt | grep World echo OK diff --git a/test/end-to-end/cli/install.sh b/test/end-to-end/cli/install.sh index b3019e5b..1f06af76 100644 --- a/test/end-to-end/cli/install.sh +++ b/test/end-to-end/cli/install.sh @@ -45,7 +45,7 @@ echo # Verify non-interference of install cd "${SRCDIR}" -"${TOOL}" install --local-build-root "${BUILDROOT}" -o "${OUTDIR}" 2>&1 +"${TOOL}" install -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -o "${OUTDIR}" 2>&1 echo ls -al "${OUTDIR}" @@ -55,7 +55,7 @@ grep Original unrelated.txt # Verify non-interference of install cd "${SRCDIR}" -"${TOOL}" build --local-build-root "${BUILDROOT}" \ +"${TOOL}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" \ --dump-artifacts "${OUTDIR}/artifacts.json" 2>&1 echo ID=$(jq -rM '."hello.txt".id' "${OUTDIR}/artifacts.json") @@ -73,7 +73,7 @@ grep Original unrelated.txt # Verify non-interference of install (overwrite existing file with symlink) cd "${SRCDIR}" -"${TOOL}" install --local-build-root "${BUILDROOT}" -o "${OUTDIR}" symlink 2>&1 +"${TOOL}" install -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -o "${OUTDIR}" symlink 2>&1 echo ls -al "${OUTDIR}" @@ -86,7 +86,7 @@ grep Original unrelated.txt rm -f ${OUTDIR}/hello.txt ln -s /noexistent ${OUTDIR}/hello.txt cd "${SRCDIR}" -"${TOOL}" install --local-build-root "${BUILDROOT}" -o "${OUTDIR}" symlink 2>&1 +"${TOOL}" install -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -o "${OUTDIR}" symlink 2>&1 echo ls -al "${OUTDIR}" @@ -99,7 +99,7 @@ grep Original unrelated.txt rm -f ${OUTDIR}/content.txt ln -s /noexistent ${OUTDIR}/content.txt cd "${SRCDIR}" -"${TOOL}" install --local-build-root "${BUILDROOT}" -o "${OUTDIR}" symlink 2>&1 +"${TOOL}" install -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${BUILDROOT}" -o "${OUTDIR}" symlink 2>&1 echo ls -al "${OUTDIR}" diff --git a/test/end-to-end/gc/basic.sh b/test/end-to-end/gc/basic.sh index b3e93ff5..28552885 100644 --- a/test/end-to-end/gc/basic.sh +++ b/test/end-to-end/gc/basic.sh @@ -68,14 +68,14 @@ EOF cat TARGETS # Build to fill the cache -"${JUST}" build ${BUILD_ARGS} \ +"${JUST}" build ${BUILD_ARGS} -L '["env", "PATH='"${PATH}"'"]' \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' 2>&1 # Demonstrate that from now on, we don't build anything any more rm -rf "${TOOLS_DIR}" # Verify the large file is in cache -"${JUST}" install ${BUILD_ARGS} -o "${OUT}/out-large" \ +"${JUST}" install ${BUILD_ARGS} -L '["env", "PATH='"${PATH}"'"]' -o "${OUT}/out-large" \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' large 2>&1 wc -c "${OUT}/out-large/out.txt" test $(cat "${OUT}/out-large/out.txt" | wc -c) -gt 100000 @@ -84,7 +84,7 @@ test $(cat "${OUT}/out-large/out.txt" | wc -c) -gt 100000 "${JUST}" gc --local-build-root "${LBR}" 2>&1 # Use the tree -"${JUST}" build ${BUILD_ARGS} \ +"${JUST}" build ${BUILD_ARGS} -L '["env", "PATH='"${PATH}"'"]' \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' tree 2>&1 # collect garbage again @@ -96,7 +96,7 @@ wc -c "${OUT}/root.tar" test $(cat "${OUT}/root.tar" | wc -c) -lt 100000 # Verify that the tree is fully in cache -"${JUST}" install ${BUILD_ARGS} -o "${OUT}/out-tree" \ +"${JUST}" install ${BUILD_ARGS} -L '["env", "PATH='"${PATH}"'"]' -o "${OUT}/out-tree" \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' tree 2>&1 ls -R "${OUT}/out-tree" test -f "${OUT}/out-tree/out/hello/world/tree/hello.txt" diff --git a/test/end-to-end/gc/export.sh b/test/end-to-end/gc/export.sh index 87ec32fd..83185a1d 100644 --- a/test/end-to-end/gc/export.sh +++ b/test/end-to-end/gc/export.sh @@ -73,6 +73,7 @@ cat TARGETS # Build to fill the cache "${JUST_MR}" ${JUST_MR_ARGS} build ${BUILD_ARGS} \ + -L '["env", "PATH='"${PATH}"'"]' \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' 2>&1 # Demonstrate that from now on, we don't build anything any more @@ -86,6 +87,7 @@ rm -rf ${LBR}/protocol-dependent/generation-*/*/ac # Use the export "${JUST_MR}" ${JUST_MR_ARGS} build ${BUILD_ARGS} \ + -L '["env", "PATH='"${PATH}"'"]' \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' 2>&1 # collect garbage again @@ -93,6 +95,7 @@ rm -rf ${LBR}/protocol-dependent/generation-*/*/ac # Verify that the export target is fully in cache "${JUST_MR}" ${JUST_MR_ARGS} install ${BUILD_ARGS} -o "${OUT}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -D '{"ENV": {"TOOLS": "'${TOOLS_DIR}'"}}' 2>&1 ls -R "${OUT}" test -f "${OUT}/out/hello/world/tree/hello.txt" diff --git a/test/end-to-end/generated-binary/compiled.sh b/test/end-to-end/generated-binary/compiled.sh index 56434dc8..aa90961c 100755 --- a/test/end-to-end/generated-binary/compiled.sh +++ b/test/end-to-end/generated-binary/compiled.sh @@ -34,4 +34,4 @@ bin/tool-under-test analyse --local-build-root .tool-root --dump-graph graph.jso echo echo "Building" -bin/tool-under-test install -o out --local-build-root .tool-root -J 16 2>&1 +bin/tool-under-test install -L '["env", "PATH='"${PATH}"'"]' -o out --local-build-root .tool-root -J 16 2>&1 diff --git a/test/end-to-end/generated-binary/shell-script.sh b/test/end-to-end/generated-binary/shell-script.sh index 6dfaa500..3718a0f8 100755 --- a/test/end-to-end/generated-binary/shell-script.sh +++ b/test/end-to-end/generated-binary/shell-script.sh @@ -58,6 +58,6 @@ cat > TARGETS <<'EOI' EOI -bin/tool-under-test install -o out --local-build-root .tool-root 2>&1 +bin/tool-under-test install -L '["env", "PATH='"${PATH}"'"]' -o out --local-build-root .tool-root 2>&1 grep Hello out/out.txt grep Good out/out.txt diff --git a/test/end-to-end/git-import/TARGETS b/test/end-to-end/git-import/TARGETS index ef379f37..bcf8cf56 100644 --- a/test/end-to-end/git-import/TARGETS +++ b/test/end-to-end/git-import/TARGETS @@ -29,7 +29,18 @@ } , "TESTS": { "type": "install" + , "arguments_config": ["TEST_BOOTSTRAP_JUST_MR"] , "tainted": ["test"] - , "deps": ["chained-import", "deduplicate"] + , "deps": + { "type": "++" + , "$1": + [ ["deduplicate"] + , { "type": "if" + , "cond": {"type": "var", "name": "TEST_BOOTSTRAP_JUST_MR"} + , "then": [] + , "else": ["chained-import", "deduplicate"] + } + ] + } } } diff --git a/test/end-to-end/git-import/chained-import.sh b/test/end-to-end/git-import/chained-import.sh index e9f98198..b3b2d5b9 100755 --- a/test/end-to-end/git-import/chained-import.sh +++ b/test/end-to-end/git-import/chained-import.sh @@ -82,7 +82,7 @@ EOF echo cat repos.json echo -"${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LBR}" install -o "${OUT}" 2>&1 +"${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --just "${JUST}" --local-build-root "${LBR}" install -o "${OUT}" 2>&1 echo cat "${OUT}/out.txt" echo diff --git a/test/end-to-end/just-mr/fetch-absent-archives-symlinks.sh b/test/end-to-end/just-mr/fetch-absent-archives-symlinks.sh index 217ea61a..48effd5c 100644 --- a/test/end-to-end/just-mr/fetch-absent-archives-symlinks.sh +++ b/test/end-to-end/just-mr/fetch-absent-archives-symlinks.sh @@ -68,12 +68,14 @@ echo cat repos.json echo CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --fetch-absent setup) cat $CONF echo "${JUST}" install --local-build-root "${LBR}" -C "${CONF}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -r "${REMOTE_EXECUTION_ADDRESS}" -o "${OUT}" 2>&1 grep x "${OUT}/out.txt" @@ -81,6 +83,7 @@ grep x "${OUT}/out.txt" # about the root should now be available locally, so we can build without # a serve or remote endpoint with still (logically) fetching absent roots. "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --fetch-absent install -o "${OUT2}" 2>&1 grep x "${OUT2}/out.txt" @@ -107,6 +110,7 @@ echo cat repos.json echo "${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --just "${JUST}" \ diff --git a/test/end-to-end/just-mr/fetch-absent-archives.sh b/test/end-to-end/just-mr/fetch-absent-archives.sh index 52c05cb8..2b26bf71 100644 --- a/test/end-to-end/just-mr/fetch-absent-archives.sh +++ b/test/end-to-end/just-mr/fetch-absent-archives.sh @@ -64,12 +64,14 @@ echo cat repos.json echo CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --fetch-absent setup) cat $CONF echo "${JUST}" install --local-build-root "${LBR}" -C "${CONF}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -r "${REMOTE_EXECUTION_ADDRESS}" -o "${OUT}" 2>&1 grep 42 "${OUT}/out.txt" @@ -77,6 +79,7 @@ grep 42 "${OUT}/out.txt" # about the root should now be available locally, so we can build without # a serve or remote endpoint with still (logically) fetching absent roots. "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --fetch-absent install -o "${OUT2}" 2>&1 grep 42 "${OUT2}/out.txt" @@ -107,6 +110,7 @@ cat > targets/TARGETS <<'EOF' } EOF "${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --just "${JUST}" \ @@ -145,6 +149,7 @@ echo cat repos.json echo "${JUST_MR}" --norc --local-build-root "${LBR_NON_ABSENT}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --just "${JUST}" \ diff --git a/test/end-to-end/just-mr/fetch-absent-distdir-archive.sh b/test/end-to-end/just-mr/fetch-absent-distdir-archive.sh index cded9c4a..ade94031 100644 --- a/test/end-to-end/just-mr/fetch-absent-distdir-archive.sh +++ b/test/end-to-end/just-mr/fetch-absent-distdir-archive.sh @@ -72,12 +72,14 @@ echo cat repos.json echo CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --fetch-absent setup) cat $CONF echo "${JUST}" install --local-build-root "${LBR}" -C "${CONF}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -r "${REMOTE_EXECUTION_ADDRESS}" -o "${OUT}" 2>&1 grep 42 "${OUT}/out.txt" @@ -85,6 +87,7 @@ grep 42 "${OUT}/out.txt" # about the root should now be available locally, so we can build without # a serve or remote endpoint with still (logically) fetching absent roots. "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --fetch-absent install -o "${OUT2}" 2>&1 grep 42 "${OUT2}/out.txt" @@ -116,6 +119,7 @@ echo cat repos.json echo "${JUST_MR}" --norc --local-build-root "${LBR_NON_ABSENT}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --just "${JUST}" \ diff --git a/test/end-to-end/just-mr/fetch-absent-git-tree.sh b/test/end-to-end/just-mr/fetch-absent-git-tree.sh index 5ecc034c..fb5d516a 100644 --- a/test/end-to-end/just-mr/fetch-absent-git-tree.sh +++ b/test/end-to-end/just-mr/fetch-absent-git-tree.sh @@ -59,6 +59,7 @@ echo cat repos.json echo CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --fetch-absent setup) @@ -73,6 +74,7 @@ grep 42 "${OUT}/out.txt" # about the root should now be available locally, so we can build without # a serve or remote endpoint with still (logically) fetching absent roots. "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --fetch-absent install -o "${OUT2}" 2>&1 grep 42 "${OUT2}/out.txt" @@ -99,6 +101,7 @@ echo cat repos.json echo "${JUST_MR}" --norc --local-build-root "${LBR_NON_ABSENT}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --just "${JUST}" \ diff --git a/test/end-to-end/just-mr/fetch-absent.sh b/test/end-to-end/just-mr/fetch-absent.sh index 00c76e7b..30267998 100644 --- a/test/end-to-end/just-mr/fetch-absent.sh +++ b/test/end-to-end/just-mr/fetch-absent.sh @@ -62,12 +62,14 @@ echo cat repos.json echo CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ --fetch-absent setup) cat $CONF echo "${JUST}" install --local-build-root "${LBR}" -C "${CONF}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -r "${REMOTE_EXECUTION_ADDRESS}" -o "${OUT}" 2>&1 grep 42 "${OUT}/out.txt" @@ -75,6 +77,7 @@ grep 42 "${OUT}/out.txt" # about the root should now be available locally, so we can build without # a serve or remote endpoint with still (logically) fetching absent roots. "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --fetch-absent install -o "${OUT2}" 2>&1 grep 42 "${OUT2}/out.txt" @@ -108,6 +111,7 @@ EOF "${JUST_MR}" --norc --local-build-root "${LBR}" \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ + -L '["env", "PATH='"${PATH}"'"]' \ --just "${JUST}" \ --fetch-absent install -o "${OUT3}" 2>&1 grep 42 "${OUT3}/out.txt" @@ -147,6 +151,7 @@ echo "${JUST_MR}" --norc --local-build-root "${LBR_NON_ABSENT}" \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} \ + -L '["env", "PATH='"${PATH}"'"]' \ --just "${JUST}" \ install -o "${OUT_NON_ABSENT}" 2>&1 grep 42 "${OUT_NON_ABSENT}/out.txt" diff --git a/test/end-to-end/just-mr/just-mr.test.sh b/test/end-to-end/just-mr/just-mr.test.sh index 276bcfdf..105f1b97 100644 --- a/test/end-to-end/just-mr/just-mr.test.sh +++ b/test/end-to-end/just-mr/just-mr.test.sh @@ -252,6 +252,7 @@ echo "Test individual repos" test_alone() { CONFIG_CPP=$("${JUST_MR_CPP}" -C test-repos.json --norc \ --local-build-root "${BUILDROOT}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -j 32 setup "$1") if [ ! -s "${CONFIG_CPP}" ]; then exit 1 @@ -279,6 +280,7 @@ echo "Set up parallel run" test_all() { CONFIG_CPP=$("${JUST_MR_CPP}" -C test-repos.json --norc \ --local-build-root "${BUILDROOT}" \ + -L '["env", "PATH='"${PATH}"'"]' \ ${DISTDIR_ARGS} -j 32 setup --all) if [ ! -s "${CONFIG_CPP}" ]; then exit 1 diff --git a/test/end-to-end/remote-execution/large-blobs.sh b/test/end-to-end/remote-execution/large-blobs.sh index 21804977..a338825a 100644 --- a/test/end-to-end/remote-execution/large-blobs.sh +++ b/test/end-to-end/remote-execution/large-blobs.sh @@ -55,7 +55,8 @@ run_tests() { echo echo Upload and download to $NAME $TYPE CAS. echo - "${JUST}" build test $BUILD_ARGS --dump-artifacts result + "${JUST}" build -L '["env", "PATH='"${PATH}"'"]' $BUILD_ARGS \ + --dump-artifacts result echo SUCCESS local ARTIFACT_ID="$(cat result | jq -r '."out.file".id')" diff --git a/test/end-to-end/remote-execution/native-protocol.sh b/test/end-to-end/remote-execution/native-protocol.sh index 3ff3a050..0737b9ff 100644 --- a/test/end-to-end/remote-execution/native-protocol.sh +++ b/test/end-to-end/remote-execution/native-protocol.sh @@ -80,7 +80,9 @@ fi echo echo Upload and download Git tree to local CAS in ${NAME} mode echo -"${JUST}" build -C "${CONF}" --main test test --local-build-root="${LBRDIR}" --dump-artifacts "${RESULT}" ${ARGS} 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' -C "${CONF}" --main test \ + --local-build-root="${LBRDIR}" --dump-artifacts "${RESULT}" \ + ${ARGS} test 2>&1 TREE_ID="$(jq -r ".${OUT_DIRNAME}.id" "${RESULT}" 2>&1)" test ${TREE_ID} ${EQUAL} ${GIT_TREE_ID} @@ -92,6 +94,8 @@ fi echo echo Upload and download Git tree to remote CAS in ${NAME} mode echo -"${JUST}" build -C "${CONF}" --main test test ${REMOTE_EXECUTION_ARGS} --local-build-root="${LBRDIR}" --dump-artifacts "${RESULT}" ${ARGS} 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' -C "${CONF}" --main test \ + ${REMOTE_EXECUTION_ARGS} --local-build-root="${LBRDIR}" \ + --dump-artifacts "${RESULT}" ${ARGS} test 2>&1 TREE_ID="$(jq -r ".${OUT_DIRNAME}.id" "${RESULT}" 2>&1)" test ${TREE_ID} ${EQUAL} ${GIT_TREE_ID} diff --git a/test/end-to-end/remote-execution/upload-test.sh b/test/end-to-end/remote-execution/upload-test.sh index f4fbfac7..91f6d069 100644 --- a/test/end-to-end/remote-execution/upload-test.sh +++ b/test/end-to-end/remote-execution/upload-test.sh @@ -59,7 +59,7 @@ fi # Build locally export CONF="$(realpath repos.json)" -"${JUST}" build -C "${CONF}" --local-build-root="${LBRDIR_1}" ${ARGS} 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' -C "${CONF}" --local-build-root="${LBRDIR_1}" ${ARGS} 2>&1 # Build remotely REMOTE_EXECUTION_ARGS="-r ${REMOTE_EXECUTION_ADDRESS}" @@ -67,7 +67,7 @@ if [ "${REMOTE_EXECUTION_PROPERTIES:-}" != "" ]; then REMOTE_EXECUTION_ARGS="${REMOTE_EXECUTION_ARGS} --remote-execution-property ${REMOTE_EXECUTION_PROPERTIES}" fi -"${JUST}" build -C "${CONF}" --local-build-root="${LBRDIR_1}" ${ARGS} ${REMOTE_EXECUTION_ARGS} 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' -C "${CONF}" --local-build-root="${LBRDIR_1}" ${ARGS} ${REMOTE_EXECUTION_ARGS} 2>&1 echo === ignore_special root === @@ -84,7 +84,7 @@ fi # Build locally export CONF="$(realpath repos.json)" -"${JUST}" build -C "${CONF}" --local-build-root="${LBRDIR_2}" ${ARGS} 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' -C "${CONF}" --local-build-root="${LBRDIR_2}" ${ARGS} 2>&1 # Build remotely REMOTE_EXECUTION_ARGS="-r ${REMOTE_EXECUTION_ADDRESS}" @@ -92,4 +92,4 @@ if [ "${REMOTE_EXECUTION_PROPERTIES:-}" != "" ]; then REMOTE_EXECUTION_ARGS="${REMOTE_EXECUTION_ARGS} --remote-execution-property ${REMOTE_EXECUTION_PROPERTIES}" fi -"${JUST}" build -C "${CONF}" --local-build-root="${LBRDIR_2}" ${ARGS} ${REMOTE_EXECUTION_ARGS} 2>&1 +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' -C "${CONF}" --local-build-root="${LBRDIR_2}" ${ARGS} ${REMOTE_EXECUTION_ARGS} 2>&1 diff --git a/test/end-to-end/serve-service/serve_export_deps.sh b/test/end-to-end/serve-service/serve_export_deps.sh index 64886a4c..e5889505 100644 --- a/test/end-to-end/serve-service/serve_export_deps.sh +++ b/test/end-to-end/serve-service/serve_export_deps.sh @@ -84,9 +84,9 @@ EOF echo "local repos configuration:" cat repos.json -CONF=$("${JUST_MR}" --norc --local-build-root "${SERVE_LBR}" setup) +CONF=$("${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --local-build-root "${SERVE_LBR}" setup) cat "${CONF}" -"${JUST}" build --local-build-root "${SERVE_LBR}" -C "${CONF}" -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main +"${JUST}" build -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${SERVE_LBR}" -C "${CONF}" -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main ) # Set up local repository @@ -154,15 +154,17 @@ echo rm "${GENERATOR}" -CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" ${COMPAT} setup --all) +CONF=$("${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --local-build-root "${LBR}" ${COMPAT} setup --all) cat "${CONF}" echo # test that we can successfully compile using just serve "${JUST}" build --main local --local-build-root "${LBR}" -C "${CONF}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main "${JUST}" build --main local --local-build-root "${LBR}" -C "${CONF}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address ${SERVE} \ -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main ) diff --git a/test/end-to-end/serve-service/serve_start_execute_sharding.sh b/test/end-to-end/serve-service/serve_start_execute_sharding.sh index ff5a4481..d6486841 100644 --- a/test/end-to-end/serve-service/serve_start_execute_sharding.sh +++ b/test/end-to-end/serve-service/serve_start_execute_sharding.sh @@ -94,7 +94,7 @@ EOF echo "local repos configuration:" cat repos.json echo -CONF=$("${JUST_MR}" --norc --local-build-root "${SERVE_LBR}" setup) +CONF=$("${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --local-build-root "${SERVE_LBR}" setup) echo "generated conf": cat "${CONF}" @@ -102,6 +102,7 @@ echo "${JUST}" build \ --local-build-root "${SERVE_LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -C "${CONF}" \ main ) @@ -169,13 +170,14 @@ echo "absent repos configuration:" cat repos.json echo -CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" setup) +CONF=$("${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --local-build-root "${LBR}" setup) cat "${CONF}" echo "${JUST}" build \ --local-build-root "${LBR}" \ --remote-serve-address 127.0.0.1:${PORT} \ + -L '["env", "PATH='"${PATH}"'"]' \ -C "${CONF}" \ main ) diff --git a/test/end-to-end/serve-service/serve_target_cache_hit.sh b/test/end-to-end/serve-service/serve_target_cache_hit.sh index 51ced326..ab20ef07 100644 --- a/test/end-to-end/serve-service/serve_target_cache_hit.sh +++ b/test/end-to-end/serve-service/serve_target_cache_hit.sh @@ -99,7 +99,7 @@ EOF echo "local repos configuration:" cat repos.json echo -CONF=$("${JUST_MR}" --norc --local-build-root "${SERVE_LBR}" setup) +CONF=$("${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --local-build-root "${SERVE_LBR}" setup) echo "generated conf": cat "${CONF}" @@ -107,6 +107,7 @@ echo "${JUST}" build \ --local-build-root "${SERVE_LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ -C "${CONF}" \ -r "${REMOTE_EXECUTION_ADDRESS}" \ ${COMPAT} \ @@ -140,7 +141,7 @@ echo rm "${GENERATOR}" -CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" setup) +CONF=$("${JUST_MR}" -L '["env", "PATH='"${PATH}"'"]' --norc --local-build-root "${LBR}" setup) cat "${CONF}" echo # test that it fails without using just serve @@ -151,6 +152,7 @@ echo "failed as expected" # one used by just-serve "${JUST}" analyse \ --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address "${SERVE}" \ -C "${CONF}" \ -r "${SERVE}" \ @@ -162,6 +164,7 @@ echo "failed as expected" # test that we can successfully compile using just serve "${JUST}" build \ --local-build-root "${LBR}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --remote-serve-address "${SERVE}" \ -C "${CONF}" \ -r "${REMOTE_EXECUTION_ADDRESS}" \ diff --git a/test/end-to-end/symlinks/stage-links.sh b/test/end-to-end/symlinks/stage-links.sh index b8234d2a..9b3bbf63 100644 --- a/test/end-to-end/symlinks/stage-links.sh +++ b/test/end-to-end/symlinks/stage-links.sh @@ -49,7 +49,7 @@ if [ "${REMOTE_EXECUTION_PROPERTIES:-}" != "" ]; then fi echo "test staging locally" -${JUST} build ${ARGS} stage-links +${JUST} build -L '["env", "PATH='"${PATH}"'"]' ${ARGS} stage-links echo "test staging remotely" -${JUST} build ${ARGS} ${REMOTE_EXECUTION_ARGS} stage-links +${JUST} build -L '["env", "PATH='"${PATH}"'"]' ${ARGS} ${REMOTE_EXECUTION_ARGS} stage-links diff --git a/test/end-to-end/target-cache/TARGETS b/test/end-to-end/target-cache/TARGETS index ffdeea3c..5a2b0412 100644 --- a/test/end-to-end/target-cache/TARGETS +++ b/test/end-to-end/target-cache/TARGETS @@ -29,6 +29,17 @@ , "TESTS": { "type": "install" , "tainted": ["test"] - , "deps": ["target-cache-hit", "artifacts-sync"] + , "arguments_config": ["TEST_BOOTSTRAP_JUST_MR"] + , "deps": + { "type": "++" + , "$1": + [ ["target-cache-hit"] + , { "type": "if" + , "cond": {"type": "var", "name": "TEST_BOOTSTRAP_JUST_MR"} + , "then": [] + , "else": ["artifacts-sync"] + } + ] + } } } diff --git a/test/end-to-end/target-cache/artifacts-sync.sh b/test/end-to-end/target-cache/artifacts-sync.sh index 35374ede..32c794f5 100644 --- a/test/end-to-end/target-cache/artifacts-sync.sh +++ b/test/end-to-end/target-cache/artifacts-sync.sh @@ -39,6 +39,7 @@ readonly TCDIR="$FIRST_GEN/tc" # Start local remote execution server # ------------------------------------------------------------------------------ "${JUST}" execute --info-file "${INFOFILE}" --pid-file "${PIDFILE}" \ + -L '["env", "PATH='"${PATH}"'"]' \ --local-build-root "${REMOTE_CACHE}" ${ARGS} 2>&1 & for _ in `seq 1 60`; do @@ -87,6 +88,7 @@ sed -i "s|<RULES_PATH>|${RULES_DIR}|" repos.json # Build greetlib remotely "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LOCAL_CACHE}" \ + -L '["env", "PATH='"${PATH}"'"]' \ build ${ARGS} -r localhost:${PORT} --dump-graph graph.json main 2>&1 # Count actions without tc @@ -105,6 +107,7 @@ rm -rf "${REMOTE_CACHE}" # Build greetlib remotely "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LOCAL_CACHE}" \ + -L '["env", "PATH='"${PATH}"'"]' \ build ${ARGS} -r localhost:${PORT} --dump-graph graph-tc.json main 2>&1 # Count actions with tc @@ -122,6 +125,7 @@ rm -rf "${REMOTE_CACHE}" # Build pydicts remotely "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LOCAL_CACHE}" \ + -L '["env", "PATH='"${PATH}"'"]' \ build ${ARGS} -r localhost:${PORT} json_from_py 2>&1 # Clear remote cache @@ -129,4 +133,5 @@ rm -rf "${REMOTE_CACHE}" # Build pydicts remotely "${JUST_MR}" --norc --just "${JUST}" --local-build-root "${LOCAL_CACHE}" \ + -L '["env", "PATH='"${PATH}"'"]' \ build ${ARGS} -r localhost:${PORT} json_from_py 2>&1 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 6ff97418..d2e3381a 100644 --- a/test/end-to-end/target-cache/target-cache-hit.sh +++ b/test/end-to-end/target-cache/target-cache-hit.sh @@ -56,8 +56,8 @@ fi # build project twice locally to trigger a target cache hit export CONF="$("$JUST_MR" --norc -C repos.json --local-build-root="$LBRDIR" setup main)" -"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS 2>&1 -"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS 2>&1 +"$JUST" build -L '["env", "PATH='"${PATH}"'"]' -C "$CONF" main --local-build-root="$LBRDIR" $ARGS 2>&1 +"$JUST" build -L '["env", "PATH='"${PATH}"'"]' -C "$CONF" main --local-build-root="$LBRDIR" $ARGS 2>&1 REMOTE_EXECUTION_ARGS="" if [ "${REMOTE_EXECUTION_ADDRESS:-}" != "" ]; then @@ -68,5 +68,5 @@ if [ "${REMOTE_EXECUTION_ADDRESS:-}" != "" ]; then fi # build project twice remotely to trigger a target cache hit -"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS 2>&1 -"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS 2>&1 +"$JUST" build -L '["env", "PATH='"${PATH}"'"]' -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS 2>&1 +"$JUST" build -L '["env", "PATH='"${PATH}"'"]' -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS 2>&1 diff --git a/test/end-to-end/target-tests/glob.sh b/test/end-to-end/target-tests/glob.sh index f655b3e3..131d533e 100755 --- a/test/end-to-end/target-tests/glob.sh +++ b/test/end-to-end/target-tests/glob.sh @@ -129,7 +129,7 @@ EOI do_test() { echo === Enumeration refres to targets === - ${TOOL} install -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/enum enumeration 2>&1 + ${TOOL} install -L '["env", "PATH='"${PATH}"'"]' -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/enum enumeration 2>&1 cat ${OUTDIR}/enum/keys.txt echo @@ -141,7 +141,7 @@ do_test() { echo === Glob always refres to files and directories are ignored === - ${TOOL} install -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/glob glob 2>&1 + ${TOOL} install -L '["env", "PATH='"${PATH}"'"]' -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/glob glob 2>&1 cat ${OUTDIR}/glob/keys.txt echo @@ -153,7 +153,7 @@ do_test() { echo === Globs and targets can be combined === - ${TOOL} install -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/with_target with_target 2>&1 + ${TOOL} install -L '["env", "PATH='"${PATH}"'"]' -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/with_target with_target 2>&1 cat ${OUTDIR}/with_target/keys.txt echo @@ -165,7 +165,7 @@ do_test() { echo === Globs only inspect the top-level directory of the module === - ${TOOL} install -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/not_top_level not_top_level 2>&1 + ${TOOL} install -L '["env", "PATH='"${PATH}"'"]' -C ${CONF} --local-build-root ${BUILDROOT} -o ${OUTDIR}/not_top_level not_top_level 2>&1 cat ${OUTDIR}/not_top_level/keys.txt echo diff --git a/test/end-to-end/target-tests/repo_names.sh b/test/end-to-end/target-tests/repo_names.sh index aec5996a..65929674 100755 --- a/test/end-to-end/target-tests/repo_names.sh +++ b/test/end-to-end/target-tests/repo_names.sh @@ -88,7 +88,7 @@ EOF mkdir -p .root echo == Building in A == -./bin/tool-under-test install -C bindings.json -o . --local-build-root .root --main A . back 2>&1 +./bin/tool-under-test install -L '["env", "PATH='"${PATH}"'"]' -C bindings.json -o . --local-build-root .root --main A . back 2>&1 cat back.txt grep -q 'I am A' back.txt grep -q 'This is B' back.txt @@ -96,7 +96,7 @@ grep -q 'Hello A' back.txt rm -f back.txt echo == Building in B == -./bin/tool-under-test install -C bindings.json -o . --local-build-root .root --main B . back 2>&1 +./bin/tool-under-test install -L '["env", "PATH='"${PATH}"'"]' -C bindings.json -o . --local-build-root .root --main B . back 2>&1 cat back.txt grep -q 'I am B' back.txt grep -q 'This is A' back.txt diff --git a/test/end-to-end/target-tests/tree-inputs.sh b/test/end-to-end/target-tests/tree-inputs.sh index edbe7f7e..7a0398b8 100755 --- a/test/end-to-end/target-tests/tree-inputs.sh +++ b/test/end-to-end/target-tests/tree-inputs.sh @@ -38,6 +38,7 @@ cat > src/TARGETS <<'EOF' EOF ./bin/tool-under-test install -o out --workspace-root src \ + -L '["env", "PATH='"${PATH}"'"]' \ --local-build-root .root . read_trees 2>&1 grep SUCCESS out/result diff --git a/test/end-to-end/target-tests/upwards.sh b/test/end-to-end/target-tests/upwards.sh index fb700588..d196a8e8 100755 --- a/test/end-to-end/target-tests/upwards.sh +++ b/test/end-to-end/target-tests/upwards.sh @@ -38,6 +38,7 @@ cat > src/TARGETS <<'EOF' EOF ./bin/tool-under-test install -o out --workspace-root src \ + -L '["env", "PATH='"${PATH}"'"]' \ --local-build-root .root . it 2>&1 grep OK out/out @@ -61,6 +62,7 @@ EOF ./bin/tool-under-test install -o out2 --workspace-root src \ + -L '["env", "PATH='"${PATH}"'"]' \ --local-build-root .root deep 'OK up' 2>&1 grep OK out2/out |