X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=7ae96c6999aaed84007b99e4e2a6c8a6beb754da;hb=3805898e3e337768d13b223a40b0ea76da73657e;hp=b68290c3f02fb2be28a296da9b7f89e5c00c9595;hpb=d0cd253b37646d9364d046e1d3edb022a58c105a;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index b68290c3..7ae96c69 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -219,10 +219,21 @@ test_fixed=0 test_broken=0 test_success=0 +declare -a _exit_functions=() + +at_exit_function () { + _exit_functions=($1 ${_exit_functions[@]/$1}) +} + +rm_exit_function () { + _exit_functions=(${_exit_functions[@]/$1}) +} + _exit_common () { code=$? trap - EXIT set +ex + for _fn in ${_exit_functions[@]}; do $_fn; done rm -rf "$TEST_TMPDIR" } @@ -940,13 +951,17 @@ test_expect_success () { } test_expect_code () { - test "$#" = 3 || - error "bug in the test script: not 3 parameters to test_expect_code" - test_subtest_name="$2" - 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_code without test_begin_subtest" + fi + inside_subtest= + test "$#" = 2 || + error "bug in the test script: not 2 parameters to test_expect_code" + + if ! test_skip "$test_subtest_name" then - test_run_ "$3" + test_run_ "$2" run_ret="$?" # test_run_ may update missing external prerequisites, test_check_missing_external_prereqs_ "$@" || @@ -954,7 +969,7 @@ test_expect_code () { then test_ok_ else - test_failure_ "exit code $eval_ret, expected $1" "$3" + test_failure_ "exit code $eval_ret, expected $1" "$2" fi fi } @@ -1117,7 +1132,7 @@ test_emacs () { test_python() { # Note: if there is need to print debug information from python program, # use stdout = os.fdopen(6, 'w') or stderr = os.fdopen(7, 'w') - PYTHONPATH="$TEST_DIRECTORY/../bindings/python${PYTHONPATH:+:$PYTHONPATH}" \ + PYTHONPATH="$NOTMUCH_SRCDIR/bindings/python${PYTHONPATH:+:$PYTHONPATH}" \ $NOTMUCH_PYTHON -B - > OUTPUT } @@ -1129,7 +1144,7 @@ test_C () { exec_file="test${test_count}" test_file="${exec_file}.c" cat > ${test_file} - ${TEST_CC} ${TEST_CFLAGS} -I${TEST_DIRECTORY} -I${TEST_DIRECTORY}/../lib -o ${exec_file} ${test_file} -L${TEST_DIRECTORY}/../lib/ -lnotmuch -ltalloc + ${TEST_CC} ${TEST_CFLAGS} -I${TEST_DIRECTORY} -I${NOTMUCH_SRCDIR}/lib -o ${exec_file} ${test_file} -L${TEST_DIRECTORY}/../lib/ -lnotmuch -ltalloc echo "== stdout ==" > OUTPUT.stdout echo "== stderr ==" > OUTPUT.stderr ./${exec_file} "$@" 1>>OUTPUT.stdout 2>>OUTPUT.stderr @@ -1187,6 +1202,22 @@ test_init_ () { . ./test-lib-common.sh || exit 1 +if [ "${NOTMUCH_GMIME_MAJOR}" = 3 ]; then + test_subtest_broken_gmime_3 () { + test_subtest_known_broken + } + test_subtest_broken_gmime_2 () { + true + } +else + test_subtest_broken_gmime_3 () { + true + } + test_subtest_broken_gmime_2 () { + test_subtest_known_broken + } +fi + emacs_generate_script