X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Ftest-lib.sh;h=078f0602ad72792fb5fe3d6f7cdc378bb25e83c4;hp=a1978279e5b46cf0d9a62f257f4efaaa68b2d71f;hb=18967ef7506566c3b7b5332893a3876da051ca5d;hpb=b41aab78f2380c79512b1ed953f77acd86414dfb diff --git a/test/test-lib.sh b/test/test-lib.sh index a1978279..078f0602 100755 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copyright (c) 2005 Junio C Hamano # @@ -351,8 +351,11 @@ ${additional_headers}" ${additional_headers}" fi + # Note that in the way we're setting it above and using it below, + # `additional_headers' will also serve as the header / body separator + # (empty line in between). -cat <"$gen_msg_filename" + cat <"$gen_msg_filename" From: ${template[from]} To: ${template[to]} Message-Id: <${gen_msg_id}> @@ -403,7 +406,7 @@ test_begin_subtest () test_subtest_name="$1" # Remember stdout and stderr file descriptios and redirect test # output to the previously prepared file descriptors 3 and 4 (see - # bellow) + # below) if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi exec 6>&1 7>&2 >&3 2>&4 inside_subtest=t @@ -438,6 +441,29 @@ test_expect_equal () fi } +test_expect_equal_file () +{ + exec 1>&6 2>&7 # Restore stdout and stderr + 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" + + output="$1" + expected="$2" + if ! test_skip "$@" + then + if diff -q "$expected" "$output" >/dev/null ; then + test_ok_ "$test_subtest_name" + else + testname=$this_test.$test_count + mv "$output" $testname.output + mv "$expected" $testname.expected + test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)" + fi + fi +} + test_expect_equal_failure () { exec 1>&6 2>&7 # Restore stdout and stderr @@ -476,6 +502,12 @@ notmuch_show_sanitize () { sed -e "$NOTMUCH_SHOW_FILENAME_SQUELCH" } +notmuch_show_sanitize_all () +{ + sed \ + -e 's| filename:.*| filename:XXXXX|' \ + -e 's| id:[^ ]* | id:XXXXX |' +} # End of notmuch helper functions @@ -789,9 +821,9 @@ fi # # --no-site-file Don't load the site-wide startup stuff # -# --directory Ensure that the local notmuch.el source is found +# --directory Ensure that the local elisp sources are found # -# --load Force loading of notmuch.el +# --load Force loading of notmuch.el and test-lib.el # # notmuch-test-wait Function for tests to use to wait for process completion # @@ -801,6 +833,7 @@ fi emacs \$BATCH --no-init-file --no-site-file \ --directory ../../emacs --load notmuch.el \ + --directory .. --load test-lib.el \ --eval "(defun notmuch-test-wait () (while (get-buffer-process (current-buffer)) (sleep-for 0.1)))" \