René Scharfe <rene.scha...@lsrfire.ath.cx> writes:

> The test fails for me on NetBSD 6.0.1 and reports:
>
>       ok 1 - ref name '' is invalid
>       ok 2 - ref name '/' is invalid
>       ok 3 - ref name '/' is invalid with options --allow-onelevel
>       ok 4 - ref name '/' is invalid with options --normalize
>       error: bug in the test script: not 2 or 3 parameters to 
> test-expect-success
>
> The alleged bug is in this line:
>
>       invalid_ref NOT_MINGW '/' '--allow-onelevel --normalize'
>
> invalid_ref() constructs a test case description using its last argument,
> but the shell seems to split it up into two pieces if it contains a
> space.  Minimal test case:
>
>       # on NetBSD with /bin/sh
>       $ a() { echo $#-$1-$2; }
>       $ t="x"; a "${t:+$t}"
>       1-x-
>       $ t="x y"; a "${t:+$t}"
>       2-x-y
>       $ t="x y"; a "${t:+x y}"
>       1-x y-
>
>       # and with bash
>       $ t="x y"; a "${t:+$t}"
>       1-x y-
>       $ t="x y"; a "${t:+x y}"
>       1-x y-
>
> This may be a bug in the shell, but here's a simple workaround: Construct
> the description string first and store it in a variable, and then use
> that to call test_expect_success().

Interesting.  I notice that t0008 added recently to 'pu' has the
same construct.

>
> Signed-off-by: Rene Scharfe <rene.scha...@lsrfire.ath.cx>
> ---
>  t/t1402-check-ref-format.sh | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/t/t1402-check-ref-format.sh b/t/t1402-check-ref-format.sh
> index 1ae4d87..1a5a5f3 100755
> --- a/t/t1402-check-ref-format.sh
> +++ b/t/t1402-check-ref-format.sh
> @@ -11,7 +11,8 @@ valid_ref() {
>               prereq=$1
>               shift
>       esac
> -     test_expect_success $prereq "ref name '$1' is valid${2:+ with options 
> $2}" "
> +     desc="ref name '$1' is valid${2:+ with options $2}"
> +     test_expect_success $prereq "$desc" "
>               git check-ref-format $2 '$1'
>       "
>  }
> @@ -22,7 +23,8 @@ invalid_ref() {
>               prereq=$1
>               shift
>       esac
> -     test_expect_success $prereq "ref name '$1' is invalid${2:+ with options 
> $2}" "
> +     desc="ref name '$1' is invalid${2:+ with options $2}"
> +     test_expect_success $prereq "$desc" "
>               test_must_fail git check-ref-format $2 '$1'
>       "
>  }
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to