]> git.cworth.org Git - notmuch/blobdiff - test/test-lib.sh
support for generating decreasing dates in bash 4.0 and 4.1
[notmuch] / test / test-lib.sh
index 2fcaba656cffc39c51132784ca7bac79593a3a5b..66edb7c99f244a18b4cbae9a4804a601004a20b5 100644 (file)
@@ -27,6 +27,7 @@ shopt -u xpg_echo
 
 this_test=${0##*/}
 this_test=${this_test%.sh}
+this_test_bare=${this_test#T[0-9][0-9][0-9]-}
 
 # if --tee was passed, write the output not only to the terminal, but
 # additionally to the file test-results/$BASENAME.out, too.
@@ -373,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=""
@@ -824,6 +829,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" &&
@@ -1084,7 +1095,7 @@ test_emacs () {
        test -z "$missing_dependencies" || return
 
        if [ -z "$EMACS_SERVER" ]; then
-               emacs_tests="${this_test}.el"
+               emacs_tests="${this_test_bare}.el"
                if [ -f "$TEST_DIRECTORY/$emacs_tests" ]; then
                        load_emacs_tests="--eval '(load \"$emacs_tests\")'"
                else
@@ -1206,6 +1217,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