Merge branch 'jc/test-prereq-validate'
authorJunio C Hamano <gitster@pobox.com>
Tue, 19 May 2015 20:17:55 +0000 (13:17 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 May 2015 20:17:55 +0000 (13:17 -0700)
Help us to find broken test script that splits the body part of the
test by mistaken use of wrong kind of quotes.

* jc/test-prereq-validate:
test: validate prerequistes syntax

1  2 
t/test-lib-functions.sh
diff --combined t/test-lib-functions.sh
index 8f8858a5f0a4f7a705960cef5b5558064a86ea28,2c47d8200353bc253cdba925787b0b013d7cfdbc..e8d3c0fdbc76d93ea18f6da1c869fc963e7ca81d
@@@ -348,11 -348,18 +348,18 @@@ test_declared_prereq () 
        return 1
  }
  
+ test_verify_prereq () {
+       test -z "$test_prereq" ||
+       expr >/dev/null "$test_prereq" : '[A-Z0-9_,!]*$' ||
+       error "bug in the test script: '$test_prereq' does not look like a prereq"
+ }
  test_expect_failure () {
        test_start_
        test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq=
        test "$#" = 2 ||
        error "bug in the test script: not 2 or 3 parameters to test-expect-failure"
+       test_verify_prereq
        export test_prereq
        if ! test_skip "$@"
        then
@@@ -372,6 -379,7 +379,7 @@@ test_expect_success () 
        test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq=
        test "$#" = 2 ||
        error "bug in the test script: not 2 or 3 parameters to test-expect-success"
+       test_verify_prereq
        export test_prereq
        if ! test_skip "$@"
        then
@@@ -400,6 -408,7 +408,7 @@@ test_external () 
        error >&5 "bug in the test script: not 3 or 4 parameters to test_external"
        descr="$1"
        shift
+       test_verify_prereq
        export test_prereq
        if ! test_skip "$descr" "$@"
        then
@@@ -478,7 -487,7 +487,7 @@@ test_external_without_stderr () 
  test_path_is_file () {
        if ! test -f "$1"
        then
 -              echo "File $1 doesn't exist. $*"
 +              echo "File $1 doesn't exist. $2"
                false
        fi
  }
  test_path_is_dir () {
        if ! test -d "$1"
        then
 -              echo "Directory $1 doesn't exist. $*"
 +              echo "Directory $1 doesn't exist. $2"
                false
        fi
  }