diff mbox series

[1/2] t1800: loosen matching of error message for bad shebang

Message ID 14e1be60-3765-0ba5-00f5-2848bb57bf53@web.de (mailing list archive)
State New, archived
Headers show
Series [1/2] t1800: loosen matching of error message for bad shebang | expand

Commit Message

René Scharfe June 10, 2023, 2:51 p.m. UTC
t1800.16 checks whether an attempt to run a hook script with a missing
executable in its #! line fails and reports that error.  The expected
error message differs between platforms.  The test handles two common
variants, but on NonStop OS we get a third one: "fatal: cannot exec
'bad-hooks/test-hook': ...", which causes the test to fail there.

We don't really care about the specific message text all that much here.
Use grep and a single regex with alternations to ascertain that we get
an error message (fatal or otherwise) about the failed invocation of the
hook, but don't bother checking if we get the right variant for the
platform the test is running on or whether quoting is done.  This looser
check let's the test pass on NonStop OS.

Reported-by: Randall S. Becker <randall.becker@nexbridge.ca>
Signed-off-by: René Scharfe <l.s.r@web.de>
---
 t/t1800-hook.sh | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

--
2.41.0

Comments

Junio C Hamano June 12, 2023, 6:01 p.m. UTC | #1
René Scharfe <l.s.r@web.de> writes:

> +	# TODO: We should emit the same (or at least a more similar)
> +	# error on MINGW (essentially Git for Windows) and all other
> +	# platforms.. See the OS-specific code in start_command()
> +	grep -E "^(error|fatal): cannot (exec|run|spawn) .*bad-hooks/test-hook" err

Looking great.  Thanks.
diff mbox series

Patch

diff --git a/t/t1800-hook.sh b/t/t1800-hook.sh
index 3506f627b6..c156d6decc 100755
--- a/t/t1800-hook.sh
+++ b/t/t1800-hook.sh
@@ -156,25 +156,15 @@  test_expect_success 'git hook run a hook with a bad shebang' '
 	mkdir bad-hooks &&
 	write_script bad-hooks/test-hook "/bad/path/no/spaces" </dev/null &&

-	# TODO: We should emit the same (or at least a more similar)
-	# error on MINGW (essentially Git for Windows) and all other
-	# platforms.. See the OS-specific code in start_command()
-	if test_have_prereq !MINGW
-	then
-		cat >expect <<-\EOF
-		fatal: cannot run bad-hooks/test-hook: ...
-		EOF
-	else
-		cat >expect <<-\EOF
-		error: cannot spawn bad-hooks/test-hook: ...
-		EOF
-	fi &&
 	test_expect_code 1 git \
 		-c core.hooksPath=bad-hooks \
 		hook run test-hook >out 2>err &&
 	test_must_be_empty out &&
-	sed -e "s/test-hook: .*/test-hook: .../" <err >actual &&
-	test_cmp expect actual
+
+	# TODO: We should emit the same (or at least a more similar)
+	# error on MINGW (essentially Git for Windows) and all other
+	# platforms.. See the OS-specific code in start_command()
+	grep -E "^(error|fatal): cannot (exec|run|spawn) .*bad-hooks/test-hook" err
 '

 test_expect_success 'stdin to hooks' '