git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] t/perf: do not run tests in user's $SHELL

From
Johannes Altmanninger <aclopte@gmail.com>
Date
Oct 7, 2021, 18:47 UTC
Message-ID
<20211007184716.1187677-1-aclopte@gmail.com>
In-Reply-To
<20211002112640.hrn2ojndhoa2dd4c@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>
---

Regarding the inconsistency around $(SHELL) in Makefiles: we could do something like

	-SHELL_PATH ?= $(SHELL)
	+SHELL_PATH ?= /bin/sh
	+SHELL = $(SHELL_PATH)

in some Makefiles. Though the upside (consistency & slightly easier to build with broken /bin/sh) seems fairly low, so I'd leave it be.

 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 f5ed092ee5..e6b59ecbf7 100644
--- a/t/perf/perf-lib.sh
+++ b/t/perf/perf-lib.sh
@@ -157,7 +157,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_ $*"
-- 
2.33.0.rc2.dirty
Previous: Johannes AltmanningerNext: Jeff King
Message 3 of 7 in “perf: fix test_export with SHELL=zsh”
  1. perf: fix test_export with SHELL=zshRené Scharfe, Oct 2, 2021
  2. Johannes AltmanningerOct 2, 2021
  3. t/perf: do not run tests in user's $SHELLJohannes Altmanninger, Oct 7, 2021
  4. Jeff KingOct 8, 2021
  5. Johannes AltmanningerOct 8, 2021
  6. Jeff KingOct 8, 2021
  7. brian m. carlsonOct 2, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.