X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Ftest-lib.sh;h=f34b1fb86af15eb89b91c328e2558d0f0eb8207b;hp=06aaea270e946cb6811ed6e18258781b5d267b8d;hb=d29ff5699de10394d7fdab41ce1c39e18c736332;hpb=2ee1d8e1c70ce20728bc3faada389a4802636352 diff --git a/test/test-lib.sh b/test/test-lib.sh index 06aaea27..f34b1fb8 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -497,21 +497,31 @@ test_expect_equal_file () test "$#" = 2 || error "bug in the test script: not 2 or 3 parameters to test_expect_equal" - output="$1" - expected="$2" + file1="$1" + file2="$2" if ! test_skip "$test_subtest_name" then - if diff -q "$expected" "$output" >/dev/null ; then + if diff -q "$file1" "$file2" >/dev/null ; then test_ok_ "$test_subtest_name" else testname=$this_test.$test_count - cp "$output" $testname.output - cp "$expected" $testname.expected - test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)" + cp "$file1" "$testname.$file1" + cp "$file2" "$testname.$file2" + test_failure_ "$test_subtest_name" "$(diff -u "$testname.$file1" "$testname.$file2")" fi fi } +# Like test_expect_equal, but arguments are JSON expressions to be +# canonicalized before diff'ing. If an argument cannot be parsed, it +# is used unchanged so that there's something to diff against. +test_expect_equal_json () { + output=$(echo "$1" | python -mjson.tool || echo "$1") + expected=$(echo "$2" | python -mjson.tool || echo "$2") + shift 2 + test_expect_equal "$output" "$expected" "$@" +} + test_emacs_expect_t () { test "$#" = 2 && { prereq=$1; shift; } || prereq= test "$#" = 1 || @@ -565,10 +575,9 @@ notmuch_show_sanitize_all () notmuch_json_show_sanitize () { - sed -e 's|, |,\n |g' | \ - sed \ - -e 's|"id": "[^"]*",|"id": "XXXXX",|' \ - -e 's|"filename": "[^"]*",|"filename": "YYYYY",|' + sed \ + -e 's|"id": "[^"]*",|"id": "XXXXX",|g' \ + -e 's|"filename": "[^"]*",|"filename": "YYYYY",|g' } # End of notmuch helper functions @@ -1061,6 +1070,7 @@ 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) +notmuch_path=`find_notmuch_path "$TEST_DIRECTORY"` if test -n "$valgrind" then make_symlink () { @@ -1121,11 +1131,15 @@ then PATH=$GIT_VALGRIND/bin:$PATH GIT_EXEC_PATH=$GIT_VALGRIND/bin export GIT_VALGRIND + test -n "$notmuch_path" && MANPATH="$notmuch_path/man:$MANPATH" else # normal case - notmuch_path=`find_notmuch_path "$TEST_DIRECTORY"` - test -n "$notmuch_path" && PATH="$notmuch_path:$PATH" + if test -n "$notmuch_path" + then + PATH="$notmuch_path:$PATH" + MANPATH="$notmuch_path/man:$MANPATH" + fi fi -export PATH +export PATH MANPATH # Test repository test="tmp.$(basename "$0" .sh)"