Re: [PATCH 2/4] test-lib: allow variable export from lazy prereq tests
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 16, 2012, 16:16 UTC
- Message-ID
- <7vipaatmsb.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <ca07c5a1cf836826fc0ee53daf3e7f3dfe111ece.1350387132.git.git@drmicha.warpmail.net>
Michael J Gruber <git@drmicha.warpmail.net> 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.
Show 26 quoted lines
>
> 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"