X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=42dfde1399b8d43a5baef038411c53d8b2a5e7ad;hb=60c599036e528bc8a856c3312f0222cc7b1fd32a;hp=35ff3d98af20e86d6c3294cd562164f412c9bf00;hpb=222926abe1e221a6239ccb9436968af43e1b6fb2;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index 35ff3d98..42dfde13 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -373,19 +373,37 @@ add_message () notmuch new > /dev/null } -pass_if_equal () +test_begin_subtest () { - output=$1 - expected=$2 + test_subtest_name="$1" +} - if [ "$output" = "$expected" ]; then - true - else - testname=$this_test.$test_count - echo "$expected" > $testname.expected - echo "$output" > $testname.output - diff -u $testname.expected $testname.output - false +# Pass test if two arguments match +# +# Note: Unlike all other test_expect_* functions, this function does +# not accept a test name. Instead, the caller should call +# test_begin_subtest before calling this function in order to set the +# name. +test_expect_equal () +{ + test "$#" = 3 && { prereq=$1; shift; } || prereq= + test "$#" = 2 || + error "bug in the test script: not 2 or 3 parameters to test_expect_equal" + + output="$1" + expected="$2" + if ! test_skip "$@" + then + say >&3 "expecting success: diff $output $expected" + if [ "$output" = "$expected" ]; then + test_ok_ "$test_subtest_name" + else + testname=$this_test.$test_count + echo "$expected" > $testname.expected + echo "$output" > $testname.output + test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)" + fi + echo >&3 "" fi } @@ -722,7 +740,6 @@ find_notmuch_path () # Test the binaries we have just built. The tests are kept in # test/ subdirectory and are run in 'trash directory' subdirectory. TEST_DIRECTORY=$(pwd) -# FIXME: Only the normal case bellow is updated to notmuch if test -n "$valgrind" then make_symlink () { @@ -768,15 +785,12 @@ then # override all git executables in TEST_DIRECTORY/.. GIT_VALGRIND=$TEST_DIRECTORY/valgrind mkdir -p "$GIT_VALGRIND"/bin - for file in $TEST_DIRECTORY/../git* $TEST_DIRECTORY/../test-* - do - make_valgrind_symlink $file - done + make_valgrind_symlink $TEST_DIRECTORY/../notmuch OLDIFS=$IFS IFS=: for path in $PATH do - ls "$path"/git-* 2> /dev/null | + ls "$path"/notmuch 2> /dev/null | while read file do make_valgrind_symlink "$file" @@ -786,11 +800,6 @@ then PATH=$GIT_VALGRIND/bin:$PATH GIT_EXEC_PATH=$GIT_VALGRIND/bin export GIT_VALGRIND -elif test -n "$GIT_TEST_INSTALLED" ; then - GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) || - error "Cannot run git from $GIT_TEST_INSTALLED." - PATH=$GIT_TEST_INSTALLED:$TEST_DIRECTORY/..:$PATH - GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH} else # normal case notmuch_path=`find_notmuch_path "$TEST_DIRECTORY"` test -n "$notmuch_path" && PATH="$notmuch_path:$PATH"