Subject: RE: [PATCH v2] t1800: correct test to handle Cygwin

From: <[email-masked]>
Date: Thu, 15 Sep 2022 04:51:38 -0400

On September 15, 2022 3:57 AM, Adam Dinwoodie wrote:
>On Cygwin, when failing to spawn a process using start_command, Git outputs the
>same error as on Linux systems, rather than using the GIT_WINDOWS_NATIVE-
>specific error output.  The WINDOWS test prerequisite is set in both Cygwin and
>native Windows environments, which means it's not appropriate to use to
>anticipate the error output from start_command.  Instead, use the MINGW test
>prerequisite, which is only set for Git in native Windows environments, and not for
>Cygwin.
>
>Signed-off-by: Adam Dinwoodie <[email-masked]>
>Helped-by: Đoàn Trần Công Danh <[email-masked]>
>---
>
>With apologies to folk receiving this multiple times; it looks like my SMTP setup
>was causing problems for some servers, and while the mails seemed to be arriving
>with me, they didn't seem to be appearing at
>https://public-inbox.org/git/?q=t1800
>
> t/t1800-hook.sh | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/t/t1800-hook.sh b/t/t1800-hook.sh index 64096adac7..43fcb7c0bf
>100755
>--- a/t/t1800-hook.sh
>+++ b/t/t1800-hook.sh
>@@ -157,9 +157,9 @@ test_expect_success 'git hook run a hook with a bad
>shebang' '
> 	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 Windows and !Windows. See the OS-specific code in
>-	# start_command()
>-	if test_have_prereq !WINDOWS
>+	# 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: ...
>--
>2.34.1

I am not convinced this will solve the problem on NonStop where EPERM is reported instead of ENOENT. Apparently EPERM is allowed by POSIX, so text comparison of error messages are not going to work anyway.