summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus T. Aehlig <aehlig@linta.de>2024-02-05 11:46:34 +0100
committerKlaus T. Aehlig <aehlig@linta.de>2024-02-05 16:24:18 +0100
commitb20171a41a97dbfd75a98955694eb9df5314ef27 (patch)
tree1be0e4d5ecaf0bec2e5b198da3d9ff1c3aea0d0d
parentd71277e0a0b6ad60b6ecce4382b7f7f3e35c3282 (diff)
downloadjustbuild-b20171a41a97dbfd75a98955694eb9df5314ef27.tar.gz
end-to-end tests: inherit path
... for test actions, by setting an appropriate local launcher. In this way, the tests can also be run on systems where sh does not pull in enough paths to have all the "usual" tools available.
-rwxr-xr-xtest/end-to-end/actions/action-equality.sh3
-rwxr-xr-xtest/end-to-end/actions/nested-trees.sh3
-rwxr-xr-xtest/end-to-end/built-in-rules/generic_out_dirs.sh6
-rw-r--r--test/end-to-end/cli/build-p.sh10
-rw-r--r--test/end-to-end/cli/install.sh10
-rw-r--r--test/end-to-end/gc/basic.sh8
-rw-r--r--test/end-to-end/gc/export.sh3
-rwxr-xr-xtest/end-to-end/generated-binary/compiled.sh2
-rwxr-xr-xtest/end-to-end/generated-binary/shell-script.sh2
-rw-r--r--test/end-to-end/git-import/TARGETS13
-rwxr-xr-xtest/end-to-end/git-import/chained-import.sh2
-rw-r--r--test/end-to-end/just-mr/fetch-absent-archives-symlinks.sh4
-rw-r--r--test/end-to-end/just-mr/fetch-absent-archives.sh5
-rw-r--r--test/end-to-end/just-mr/fetch-absent-distdir-archive.sh4
-rw-r--r--test/end-to-end/just-mr/fetch-absent-git-tree.sh3
-rw-r--r--test/end-to-end/just-mr/fetch-absent.sh5
-rw-r--r--test/end-to-end/just-mr/just-mr.test.sh2
-rw-r--r--test/end-to-end/remote-execution/large-blobs.sh3
-rw-r--r--test/end-to-end/remote-execution/native-protocol.sh8
-rw-r--r--test/end-to-end/remote-execution/upload-test.sh8
-rw-r--r--test/end-to-end/serve-service/serve_export_deps.sh8
-rw-r--r--test/end-to-end/serve-service/serve_start_execute_sharding.sh6
-rw-r--r--test/end-to-end/serve-service/serve_target_cache_hit.sh7
-rw-r--r--test/end-to-end/symlinks/stage-links.sh4
-rw-r--r--test/end-to-end/target-cache/TARGETS13
-rw-r--r--test/end-to-end/target-cache/artifacts-sync.sh5
-rw-r--r--test/end-to-end/target-cache/target-cache-hit.sh8
-rwxr-xr-xtest/end-to-end/target-tests/glob.sh8
-rwxr-xr-xtest/end-to-end/target-tests/repo_names.sh4
-rwxr-xr-xtest/end-to-end/target-tests/tree-inputs.sh1
-rwxr-xr-xtest/end-to-end/target-tests/upwards.sh2
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