From: SZEDER Gábor Date: Sun, 17 Apr 2016 09:42:53 GMT Subject: Re: [PATCH v2 2/2] t1500-rev-parse: rewrite each test to run in isolation Message-ID: <20160417114253.Horde.giIo57RkUzhAe6GP-RahIrw@webmail.informatik.kit.edu> In-Reply-To: <1460823230-45692-3-git-send-email-rappazzo@gmail.com> Quoting Michael Rappazzo : > +test_expect_success 'GIT_DIR=../.git, core.bare = false: > is-bare-repository' ' > + mkdir work && > + test_when_finished "rm -rf work" && > + test_config -C "$(pwd)"/.git core.bare false && > + GIT_DIR=../.git test_stdout false git -C work rev-parse > --is-bare-repository > +' Here and in the following tests as well: some shells don't cope that well with a one-shot environmental variable set in front of a shell function. See commit 512477b17528: tests: use "env" to run commands with temporary env-var settings Ordinarily, we would say "VAR=VAL command" to execute a tested command with environment variable(s) set only for that command. This however does not work if 'command' is a shell function (most notably 'test_must_fail'); the result of the assignment is retained and affects later commands. To avoid this, we used to assign and export environment variables and run such a test in a subshell, like so: ( VAR=VAL && export VAR && test_must_fail git command to be tested ) But with "env" utility, we should be able to say: test_must_fail env VAR=VAL git command to be tested which is much shorter and easier to read.