]> git.notmuchmail.org Git - notmuch/blobdiff - test/test-lib.sh
build: add dataclean
[notmuch] / test / test-lib.sh
index 78af170fe7396efd34d73a17880fe399feaa9980..8697d6a75d3ffdaaf10685ca3a8b67c7fc6f3aa8 100644 (file)
@@ -196,7 +196,7 @@ print_test_description ()
 {
        test -z "$test_description_printed" || return 0
        echo
-       echo $this_test_bare: "Testing ${test_description}"
+       echo $this_test: "Testing ${test_description}"
        test_description_printed=1
 }
 if [ -z "$NOTMUCH_TEST_QUIET" ]
@@ -374,8 +374,12 @@ generate_message ()
        # we use decreasing timestamps here for historical reasons;
        # the existing test suite when we converted to unique timestamps just
        # happened to have signicantly fewer failures with that choice.
-       template[date]=$(TZ=UTC printf "%(%a, %d %b %Y %T %z)T\n" \
-                       $((978709437 - gen_msg_cnt)))
+       local date_secs=$((978709437 - gen_msg_cnt))
+       # printf %(..)T is bash 4.2+ feature. use perl fallback if needed...
+       TZ=UTC printf -v template[date] "%(%a, %d %b %Y %T %z)T" $date_secs 2>/dev/null ||
+           template[date]=`perl -le 'use POSIX "strftime";
+                               @time = gmtime '"$date_secs"';
+                               print strftime "%a, %d %b %Y %T +0000", @time'`
     fi
 
     additional_headers=""
@@ -618,6 +622,12 @@ test_expect_equal_json () {
     test_expect_equal "$output" "$expected" "$@"
 }
 
+# Sort the top-level list of JSON data from stdin.
+test_sort_json () {
+    PYTHONIOENCODING=utf-8 python -c \
+        "import sys, json; json.dump(sorted(json.load(sys.stdin)),sys.stdout)"
+}
+
 test_emacs_expect_t () {
        test "$#" = 2 && { prereq=$1; shift; } || prereq=
        test "$#" = 1 ||
@@ -657,6 +667,11 @@ notmuch_search_sanitize ()
     perl -pe 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'
 }
 
+notmuch_search_files_sanitize()
+{
+    sed -e "s,$MAIL_DIR,MAIL_DIR,"
+}
+
 NOTMUCH_SHOW_FILENAME_SQUELCH='s,filename:.*/mail,filename:/XXX/mail,'
 notmuch_show_sanitize ()
 {
@@ -825,6 +840,12 @@ test_skip () {
                case $this_test.$test_count in
                $skp)
                        to_skip=t
+                       break
+               esac
+               case $this_test_bare.$test_count in
+               $skp)
+                       to_skip=t
+                       break
                esac
        done
        if test -z "$to_skip" && test -n "$prereq" &&
@@ -1207,6 +1228,12 @@ do
                case "$this_test" in
                $skp)
                        to_skip=t
+                       break
+               esac
+               case "$this_test_bare" in
+               $skp)
+                       to_skip=t
+                       break
                esac
        done
        case "$to_skip" in