Re: [PATCH 2/4] test-lib: allow variable export from lazy prereq tests
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:55:02
Michael J Gruber [off-list ref] writes:
I don't think this has any adverse side effects, but I'm begging for another set of eyeballs to have a look. (Test suite passes, of course.)
The lazy prereqs are designed to be used lazily, in any test that he who wrote lazy-prereq did not anticipate. It is run inside a subshell to make it absolutely sure that whatever it does (like use of shell variables, chdir around) will not be able to affect _any_ calling context that is not anticipated by who writes lazy prerequisite. Please don't do this.
quoted hunk
t/test-lib-functions.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 8889ba5..e587902 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh@@ -246,13 +246,15 @@ test_lazy_prereq () { test_run_lazy_prereq_ () { script=' mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" && -( +{ cd "$TRASH_DIRECTORY/prereq-test-dir" &&'"$2"' -)' +}' say >&3 "checking prerequisite: $1" say >&3 "$script" + orig_pwd="$(pwd)" test_eval_ "$script" eval_ret=$? + cd "$orig_pwd" rm -rf "$TRASH_DIRECTORY/prereq-test-dir" if test "$eval_ret" = 0; then say >&3 "prerequisite $1 ok"