Subject: Re: [PATCH v2 18/19] mingw: handle the missing POSIXPERM prereq in t9124

From: Junio C Hamano <[email-masked]>
Date: Tue, 26 Jan 2016 14:05:58 -0800

Johannes Schindelin <[email-masked]> writes:

> On Windows, the permission system works completely differently than
> expected by some of the tests. So let's make sure that we do not test
> POSIX functionality on Windows.
>
> This lets t9124-git-svn-dcommit-auto-props.sh pass in Git for Windows'
> SDK.
>
> Signed-off-by: Johannes Schindelin <[email-masked]>
> ---
>  t/t9124-git-svn-dcommit-auto-props.sh | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/t/t9124-git-svn-dcommit-auto-props.sh b/t/t9124-git-svn-dcommit-auto-props.sh
> index aa841e1..2be0805 100755
> --- a/t/t9124-git-svn-dcommit-auto-props.sh
> +++ b/t/t9124-git-svn-dcommit-auto-props.sh
> @@ -34,8 +34,7 @@ test_expect_success 'enable auto-props config' '
>  '
>  
>  test_expect_success 'add files matching auto-props' '
> -	echo "#!$SHELL_PATH" >exec1.sh &&
> -	chmod +x exec1.sh &&
> +	printf "" | write_script exec1.sh &&

That looks like a useless use of printf.  Why not

	write_script exec1.sh </dev/null &&

>  	echo "hello" >hello.txt &&
>  	echo bar >bar &&
>  	git add exec1.sh hello.txt bar &&
> @@ -48,8 +47,7 @@ test_expect_success 'disable auto-props config' '
>  '
>  
>  test_expect_success 'add files matching disabled auto-props' '
> -	echo "#$SHELL_PATH" >exec2.sh &&
> -	chmod +x exec2.sh &&
> +	printf "" | write_script exec2.sh &&
>  	echo "world" >world.txt &&
>  	echo zot >zot &&
>  	git add exec2.sh world.txt zot &&
> @@ -65,7 +63,10 @@ test_expect_success 'check resulting svn repository' '
>  	cd svnrepo &&
>  
>  	# Check properties from first commit.
> -	test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" &&
> +	if test_have_prereq POSIXPERM
> +	then
> +		test -z "$(svn_cmd propget svn:executable exec1.sh)"

Why this change?

		test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" &&

means "propget command gives a literal string that consists of a
single asterisk".

> +	fi &&
>  	test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \
>  	     "xapplication/x-shellscript" &&
>  	test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" &&
> @@ -73,7 +74,10 @@ test_expect_success 'check resulting svn repository' '
>  	test "x$(svn_cmd propget svn:mime-type bar)" = "x" &&
>  
>  	# Check properties from second commit.
> -	test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" &&
> +	if test_have_prereq POSIXPERM
> +	then
> +		test -z "$(svn_cmd propget svn:executable exec2.sh)"

Likewise.

Please do not change things without understanding what they are doing.

> +	fi &&
>  	test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" &&
>  	test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" &&
>  	test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" &&