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

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

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 13, 2021, 18:09 UTC
Message-ID
<xmqqpmtcfiuq.fsf@gitster.g>
In-Reply-To
<nycvar.QRO.7.76.6.2109131343440.55@tvgsbejvaqbjf.bet>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 17 quoted lines
>> +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.

Show 5 quoted lines
>>  	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.
Previous: Johannes SchindelinNext: Carlo Marcelo Arenas Belón
Message 13 of 27 in “windows: allow building without NO_UNIX_SOCKETS”
  1. 0/3 windows: allow building without NO_UNIX_SOCKETSCarlo Marcelo Arenas Belón, Sep 12, 2021
  2. 1/3 t0301: fixes for windows compatibilityCarlo Marcelo Arenas Belón, Sep 12, 2021
  3. Junio C HamanoSep 13, 2021
  4. Bagas SanjayaSep 13, 2021
  5. Carlo ArenasSep 13, 2021
  6. Junio C HamanoSep 13, 2021
  7. 3/3 git-compat-util: include declaration for unix socketsCarlo Marcelo Arenas Belón, Sep 12, 2021
  8. 2/3 credential-cache: check for windows specific errorsCarlo Marcelo Arenas Belón, Sep 12, 2021
  9. Junio C HamanoSep 13, 2021
  10. 0/3 windows: allow building without NO_UNIX_SOCKETSCarlo Marcelo Arenas Belón, Sep 13, 2021
  11. 1/3 t0301: fixes for windows compatibilityCarlo Marcelo Arenas Belón, Sep 13, 2021
  12. Johannes SchindelinSep 13, 2021
  13. Junio C HamanoSep 13, 2021
  14. 2/3 credential-cache: check for windows specific errorsCarlo Marcelo Arenas Belón, Sep 13, 2021
  15. Johannes SchindelinSep 13, 2021
  16. 3/3 git-compat-util: include declaration for unix socketsCarlo Marcelo Arenas Belón, Sep 13, 2021
  17. Johannes SchindelinSep 13, 2021
  18. Johannes SchindelinSep 13, 2021
  19. 0/3 windows: allow building without NO_UNIX_SOCKETSCarlo Marcelo Arenas Belón, Sep 14, 2021
  20. 1/3 t0301: fixes for windows compatibilityCarlo Marcelo Arenas Belón, Sep 14, 2021
  21. Ævar Arnfjörð BjarmasonNov 2, 2021
  22. 2/3 credential-cache: check for windows specific errorsCarlo Marcelo Arenas Belón, Sep 14, 2021
  23. Junio C HamanoSep 14, 2021
  24. What should happen in credential-cache on recoverable error without SPAWN option?Junio C Hamano, Sep 14, 2021
  25. Jeff KingSep 14, 2021
  26. 3/3 git-compat-util: include declaration for unix sockets in windowsCarlo Marcelo Arenas Belón, Sep 14, 2021
  27. Junio C HamanoSep 14, 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.