X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Ftest-lib.sh;h=b68290c3f02fb2be28a296da9b7f89e5c00c9595;hp=1bcf0df935d66157a5ad66af7516ac5d6bcf12e8;hb=d0cd253b37646d9364d046e1d3edb022a58c105a;hpb=13a59c4a8fc4ee418424e0b7ee4c8bbd5aae5da2 diff --git a/test/test-lib.sh b/test/test-lib.sh index 1bcf0df9..b68290c3 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -559,10 +559,12 @@ test_begin_subtest () test_expect_equal () { exec 1>&6 2>&7 # Restore stdout and stderr + if [ -z "$inside_subtest" ]; then + error "bug in the test script: test_expect_equal without test_begin_subtest" + fi inside_subtest= - test "$#" = 3 && { prereq=$1; shift; } || prereq= test "$#" = 2 || - error "bug in the test script: not 2 or 3 parameters to test_expect_equal" + error "bug in the test script: not 2 parameters to test_expect_equal" output="$1" expected="$2" @@ -583,10 +585,12 @@ test_expect_equal () test_expect_equal_file () { exec 1>&6 2>&7 # Restore stdout and stderr + if [ -z "$inside_subtest" ]; then + error "bug in the test script: test_expect_equal_file without test_begin_subtest" + fi inside_subtest= - test "$#" = 3 && { prereq=$1; shift; } || prereq= test "$#" = 2 || - error "bug in the test script: not 2 or 3 parameters to test_expect_equal" + error "bug in the test script: not 2 parameters to test_expect_equal_file" file1="$1" file2="$2" @@ -627,9 +631,11 @@ test_sort_json () { } test_emacs_expect_t () { - test "$#" = 2 && { prereq=$1; shift; } || prereq= test "$#" = 1 || - error "bug in the test script: not 1 or 2 parameters to test_emacs_expect_t" + error "bug in the test script: not 1 parameter to test_emacs_expect_t" + if [ -z "$inside_subtest" ]; then + error "bug in the test script: test_emacs_expect_t without test_begin_subtest" + fi # Run the test. if ! test_skip "$test_subtest_name" @@ -741,12 +747,8 @@ notmuch_config_sanitize () # End of notmuch helper functions # Use test_set_prereq to tell that a particular prerequisite is available. -# The prerequisite can later be checked for in two ways: -# -# - Explicitly using test_have_prereq. # -# - Implicitly by specifying the prerequisite tag in the calls to -# test_expect_{success,failure,code}. +# The prerequisite can later be checked for by using test_have_prereq. # # The single parameter is the prerequisite tag (a simple word, in all # capital letters by convention). @@ -881,11 +883,6 @@ test_skip () { break esac done - if test -z "$to_skip" && test -n "$prereq" && - ! test_have_prereq "$prereq" - then - to_skip=t - fi case "$to_skip" in t) test_report_skip_ "$@" @@ -919,14 +916,17 @@ test_subtest_known_broken () { } test_expect_success () { - test "$#" = 3 && { prereq=$1; shift; } || prereq= - test "$#" = 2 || - error "bug in the test script: not 2 or 3 parameters to test-expect-success" - test_subtest_name="$1" - test_reset_state_ - if ! test_skip "$@" + exec 1>&6 2>&7 # Restore stdout and stderr + if [ -z "$inside_subtest" ]; then + error "bug in the test script: test_expect_success without test_begin_subtest" + fi + inside_subtest= + test "$#" = 1 || + error "bug in the test script: not 1 parameters to test_expect_success" + + if ! test_skip "$test_subtest_name" then - test_run_ "$2" + test_run_ "$1" run_ret="$?" # test_run_ may update missing external prerequisites test_check_missing_external_prereqs_ "$@" || @@ -934,15 +934,14 @@ test_expect_success () { then test_ok_ else - test_failure_ "$2" + test_failure_ "$1" fi fi } test_expect_code () { - test "$#" = 4 && { prereq=$1; shift; } || prereq= test "$#" = 3 || - error "bug in the test script: not 3 or 4 parameters to test-expect-code" + error "bug in the test script: not 3 parameters to test_expect_code" test_subtest_name="$2" test_reset_state_ if ! test_skip "$@"