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"
}
;;
esacis the way to go.