X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=616cb674ccd9ee36df8026a87805e28a5730f890;hb=56416a54702669a23b7aa8f085a388d0c842e297;hp=068e1029e5f30272883c53556d89e3844e278c71;hpb=a1aea7272e3dd98c389402791617a00b92783f86;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index 068e1029..616cb674 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -134,15 +134,7 @@ add_gnupg_home () # ' # . ./test-lib.sh || exit 1 -[ "x$ORIGINAL_TERM" != "xdumb" ] && ( - TERM=$ORIGINAL_TERM && - export TERM && - [ -t 1 ] && - tput bold >/dev/null 2>&1 && - tput setaf 1 >/dev/null 2>&1 && - tput sgr0 >/dev/null 2>&1 - ) && - color=t +color=maybe while test "$#" -ne 0 do @@ -183,6 +175,21 @@ else } fi +test -n "$COLORS_WITHOUT_TTY" || [ -t 1 ] || color= + +if [ -n "$color" ] && [ "$ORIGINAL_TERM" != 'dumb' ] && ( + TERM=$ORIGINAL_TERM && + export TERM && + tput bold + tput setaf + tput sgr0 + ) >/dev/null 2>&1 +then + color=t +else + color= +fi + if test -n "$color"; then say_color () { ( @@ -500,6 +507,30 @@ test_sort_json () { "import sys, json; json.dump(sorted(json.load(sys.stdin)),sys.stdout)" } +# test for json objects: +# read the source of test/json_check_nodes.py (or the output when +# invoking it without arguments) for an explanation of the syntax. +test_json_nodes () { + exec 1>&6 2>&7 # Restore stdout and stderr + if [ -z "$inside_subtest" ]; then + error "bug in the test script: test_json_eval without test_begin_subtest" + fi + inside_subtest= + test "$#" > 0 || + error "bug in the test script: test_json_nodes needs at least 1 parameter" + + if ! test_skip "$test_subtest_name" + then + output=$(PYTHONIOENCODING=utf-8 $NOTMUCH_PYTHON "$TEST_DIRECTORY"/json_check_nodes.py "$@") + if [ "$?" = 0 ] + then + test_ok_ + else + test_failure_ "$output" + fi + fi +} + test_emacs_expect_t () { test "$#" = 1 || error "bug in the test script: not 1 parameter to test_emacs_expect_t"