Message ID | f22f978a-26eb-8fe9-cab4-3fd60df69635@web.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 9ccab75608fb87d82ccec1ab71cc915d7f8dc5a0 |
Headers | show |
Series | [RESEND] t/perf: do not run tests in user's $SHELL | expand |
On Mon, Dec 20 2021, René Scharfe wrote: > From: Johannes Altmanninger <aclopte@gmail.com> > > The environment variable $SHELL is usually set to the user's > interactive shell. We never use that shell for build and test scripts > because it might not be a POSIX shell. > > Perf tests are run inside $SHELL via a wrapper defined in > t/perf/perf-lib.sh. Use $TEST_SHELL_PATH like elsewhere. > > Signed-off-by: Johannes Altmanninger <aclopte@gmail.com> > Acked-by: Jeff King <peff@peff.net> > --- > Original submission: > https://lore.kernel.org/git/20211007184716.1187677-1-aclopte@gmail.com/ This LGTM & I think it could be picked up as-is. Just a nit in case af a re-roll. I think it would help to summarize the history a bit per https://lore.kernel.org/git/YV+1%2F0b5bN3o6qRG@coredump.intra.peff.net/. I.e. something like: In 342e9ef2d9e (Introduce a performance testing framework, 2012-02-17) when t/perf was introduced the TEST_SHELL_PATH was not part of GIT-BUILD-OPTIONS. That was added later in 3f824e91c84 (t/Makefile: introduce TEST_SHELL_PATH, 2017-12-08). We will always have that available in perf-lib.sh since test-lib.sh will load it before this code is executed. > t/perf/perf-lib.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh > index 780a7402d5..407252bac7 100644 > --- a/t/perf/perf-lib.sh > +++ b/t/perf/perf-lib.sh > @@ -161,7 +161,7 @@ test_run_perf_ () { > test_cleanup=: > test_export_="test_cleanup" > export test_cleanup test_export_ > - "$GTIME" -f "%E %U %S" -o test_time.$i "$SHELL" -c ' > + "$GTIME" -f "%E %U %S" -o test_time.$i "$TEST_SHELL_PATH" -c ' > . '"$TEST_DIRECTORY"/test-lib-functions.sh' > test_export () { > test_export_="$test_export_ $*"
On Mon, Dec 20, 2021 at 12:56:58PM +0100, Ævar Arnfjörð Bjarmason wrote: > > On Mon, Dec 20 2021, René Scharfe wrote: > > > From: Johannes Altmanninger <aclopte@gmail.com> > > > > The environment variable $SHELL is usually set to the user's > > interactive shell. We never use that shell for build and test scripts > > because it might not be a POSIX shell. > > > > Perf tests are run inside $SHELL via a wrapper defined in > > t/perf/perf-lib.sh. Use $TEST_SHELL_PATH like elsewhere. > > > > Signed-off-by: Johannes Altmanninger <aclopte@gmail.com> > > Acked-by: Jeff King <peff@peff.net> > > --- > > Original submission: > > https://lore.kernel.org/git/20211007184716.1187677-1-aclopte@gmail.com/ > > This LGTM & I think it could be picked up as-is. > > Just a nit in case af a re-roll. I think it would help to summarize the > history a bit per > https://lore.kernel.org/git/YV+1%2F0b5bN3o6qRG@coredump.intra.peff.net/. I.e. something > like: > > In 342e9ef2d9e (Introduce a performance testing framework, 2012-02-17) > when t/perf was introduced the TEST_SHELL_PATH was not part of > GIT-BUILD-OPTIONS. (but SHELL_PATH was, which is what we should have used back then) > That was added later in 3f824e91c84 (t/Makefile: > introduce TEST_SHELL_PATH, 2017-12-08). We will always have that > available in perf-lib.sh since test-lib.sh will load it before this code > is executed. yes that's a good thing to point out > > > t/perf/perf-lib.sh | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh > > index 780a7402d5..407252bac7 100644 > > --- a/t/perf/perf-lib.sh > > +++ b/t/perf/perf-lib.sh > > @@ -161,7 +161,7 @@ test_run_perf_ () { > > test_cleanup=: > > test_export_="test_cleanup" > > export test_cleanup test_export_ > > - "$GTIME" -f "%E %U %S" -o test_time.$i "$SHELL" -c ' > > + "$GTIME" -f "%E %U %S" -o test_time.$i "$TEST_SHELL_PATH" -c ' > > . '"$TEST_DIRECTORY"/test-lib-functions.sh' > > test_export () { > > test_export_="$test_export_ $*" >
Johannes Altmanninger <aclopte@gmail.com> writes: > On Mon, Dec 20, 2021 at 12:56:58PM +0100, Ævar Arnfjörð Bjarmason wrote: >> >> On Mon, Dec 20 2021, René Scharfe wrote: >> >> > From: Johannes Altmanninger <aclopte@gmail.com> >> > >> > The environment variable $SHELL is usually set to the user's >> > interactive shell. We never use that shell for build and test scripts >> > because it might not be a POSIX shell. >> > >> > Perf tests are run inside $SHELL via a wrapper defined in >> > t/perf/perf-lib.sh. Use $TEST_SHELL_PATH like elsewhere. >> > >> > Signed-off-by: Johannes Altmanninger <aclopte@gmail.com> >> > Acked-by: Jeff King <peff@peff.net> >> > --- >> > Original submission: >> > https://lore.kernel.org/git/20211007184716.1187677-1-aclopte@gmail.com/ >> >> This LGTM & I think it could be picked up as-is. >> >> Just a nit in case af a re-roll. I think it would help to summarize the >> history a bit per >> https://lore.kernel.org/git/YV+1%2F0b5bN3o6qRG@coredump.intra.peff.net/. I.e. something >> like: >> >> In 342e9ef2d9e (Introduce a performance testing framework, 2012-02-17) >> when t/perf was introduced the TEST_SHELL_PATH was not part of >> GIT-BUILD-OPTIONS. > > (but SHELL_PATH was, which is what we should have used back then) > >> That was added later in 3f824e91c84 (t/Makefile: >> introduce TEST_SHELL_PATH, 2017-12-08). We will always have that >> available in perf-lib.sh since test-lib.sh will load it before this code >> is executed. > > yes that's a good thing to point out Care to redo the patch in a final form, then? Thanks. > >> >> > t/perf/perf-lib.sh | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh >> > index 780a7402d5..407252bac7 100644 >> > --- a/t/perf/perf-lib.sh >> > +++ b/t/perf/perf-lib.sh >> > @@ -161,7 +161,7 @@ test_run_perf_ () { >> > test_cleanup=: >> > test_export_="test_cleanup" >> > export test_cleanup test_export_ >> > - "$GTIME" -f "%E %U %S" -o test_time.$i "$SHELL" -c ' >> > + "$GTIME" -f "%E %U %S" -o test_time.$i "$TEST_SHELL_PATH" -c ' >> > . '"$TEST_DIRECTORY"/test-lib-functions.sh' >> > test_export () { >> > test_export_="$test_export_ $*" >>
On Mon, Dec 20, 2021 at 01:06:15PM -0800, Junio C Hamano wrote: > Johannes Altmanninger <aclopte@gmail.com> writes: > > > On Mon, Dec 20, 2021 at 12:56:58PM +0100, Ævar Arnfjörð Bjarmason wrote: > >> That was added later in 3f824e91c84 (t/Makefile: > >> introduce TEST_SHELL_PATH, 2017-12-08). We will always have that > >> available in perf-lib.sh since test-lib.sh will load it before this code > >> is executed. > > > > yes that's a good thing to point out > > Care to redo the patch in a final form, then? Of course. I should have acked that earlier, sorry. I waited until I could send my updated version but didn't find a quiet moment until today. Anyway, sending the updated patch now.
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh index 780a7402d5..407252bac7 100644 --- a/t/perf/perf-lib.sh +++ b/t/perf/perf-lib.sh @@ -161,7 +161,7 @@ test_run_perf_ () { test_cleanup=: test_export_="test_cleanup" export test_cleanup test_export_ - "$GTIME" -f "%E %U %S" -o test_time.$i "$SHELL" -c ' + "$GTIME" -f "%E %U %S" -o test_time.$i "$TEST_SHELL_PATH" -c ' . '"$TEST_DIRECTORY"/test-lib-functions.sh' test_export () { test_export_="$test_export_ $*"