t1402: work around shell quoting issue on NetBSD
authorRené Scharfe <rene.scharfe@lsrfire.ath.cx>
Tue, 8 Jan 2013 20:23:01 +0000 (21:23 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 8 Jan 2013 21:18:49 +0000 (13:18 -0800)
commit283b365e4521082ab37d93762bb2f049dc38bee8
treec19408667e40336a780a88606dd87fa915040b51
parent4208fa5ce44a746edb582898dfa49b2bfa84dbcc
t1402: work around shell quoting issue on NetBSD

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().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1402-check-ref-format.sh