Thread (1 message) 1 message, 1 author, 2021-09-13

Re: [PATCH v2 1/3] t0301: fixes for windows compatibility

From: Junio C Hamano <hidden>
Date: 2021-09-13 18:09:23

Johannes Schindelin [off-list ref] writes:
quoted
+test_path_is_socket () {
+	test -S "$1"
+}
+
+# in Windows, Unix Sockets look just like regular files
+uname_s=$(uname -s)
+case $uname_s in
+*MINGW*)
+	test_socket_exist=test_path_exists
+	;;
+*)
+	test_socket_exist=test_path_is_socket
+	;;
+esac
A more canonical way would probably be to imitate what we do with `pwd` in
`t/test-lib.sh`:
Thanks for bringing up a better practice.

Referring to a variable when calling a function gives a "we are
doing something unusual" signal and it loses half its abstraction
value at the callsites.  E.g.
quoted
 	test_when_finished "git credential-cache exit" &&
-	test -S "$XDG_CACHE_HOME/git/credential/socket" &&
+	$test_socket_exist "$XDG_CACHE_HOME/git/credential/socket" &&
 	test_path_is_missing "$HOME/.git-credential-cache/socket" &&
 	test_path_is_missing "$HOME/.cache/git/credential/socket"
I actually do not think it is so bad to just use test_path_exists
without per-platform conditional in this case, but if we want to be
more conservative, I agree with you that

	case ... in
	*MINGW*)
                test_path_is_socket () {
                        test_path_exists "$@"
                }
        	;;
	*)
                test_path_is_socket () {
                        test -S "$1"
                }
		;;
	esac

is the way to go.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help