]> git.notmuchmail.org Git - notmuch/blobdiff - test/test-lib.sh
build: add dataclean
[notmuch] / test / test-lib.sh
index 9222689d5199bf78774ca8ae80367ded6a87b520..8697d6a75d3ffdaaf10685ca3a8b67c7fc6f3aa8 100644 (file)
@@ -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 ()
 {