From: Tomi Ollila Date: Thu, 3 Sep 2015 19:09:55 +0000 (+0300) Subject: [PATCH] test: add "set -u" to test-lib.sh X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ce5fc022bb1bb0f5d3e4d62111dfe34d3de40a87;p=notmuch-archives.git [PATCH] test: add "set -u" to test-lib.sh --- diff --git a/b1/1c3fbc1a134ccb11696b5314bf58f7661222d1 b/b1/1c3fbc1a134ccb11696b5314bf58f7661222d1 new file mode 100644 index 000000000..9e5479ca9 --- /dev/null +++ b/b1/1c3fbc1a134ccb11696b5314bf58f7661222d1 @@ -0,0 +1,314 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id 01A466DE1502 + for ; Thu, 3 Sep 2015 12:11:32 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: 0.215 +X-Spam-Level: +X-Spam-Status: No, score=0.215 tagged_above=-999 required=5 tests=[AWL=0.755, + RP_MATCHES_RCVD=-0.55, T_HEADER_FROM_DIFFERENT_DOMAINS=0.01] + autolearn=disabled +Received: from arlo.cworth.org ([127.0.0.1]) + by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 1KF7CbfJxemo for ; + Thu, 3 Sep 2015 12:11:29 -0700 (PDT) +Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) + by arlo.cworth.org (Postfix) with ESMTP id 1503D6DE1479 + for ; Thu, 3 Sep 2015 12:11:29 -0700 (PDT) +Received: by guru.guru-group.fi (Postfix, from userid 501) + id B959C10019C; Thu, 3 Sep 2015 22:09:57 +0300 (EEST) +From: Tomi Ollila +To: notmuch@notmuchmail.org +Subject: [PATCH] test: add "set -u" to test-lib.sh +Date: Thu, 3 Sep 2015 22:09:55 +0300 +Message-Id: <1441307395-2218-1-git-send-email-tomi.ollila@iki.fi> +X-Mailer: git-send-email 2.0.0 +Cc: tomi.ollila@iki.fi +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.18 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Thu, 03 Sep 2015 19:11:32 -0000 + +This prohibits unset variables to expand to empty strings. +Without this e.g misspelled variables cause unintentional results. + +Now all the test variables are either initialized, or in case of +optional arguments and user-provided environment variables the +form ${variable-} is used. + +Two unusable lines (leftovers?) in T360-symbol-hiding.sh were removed; +this was the only non-lib test code that needed to be edited for this +change to work. +--- + test/T360-symbol-hiding.sh | 3 --- + test/test-lib.sh | 63 ++++++++++++++++++++++++++-------------------- + 2 files changed, 36 insertions(+), 30 deletions(-) + +diff --git a/test/T360-symbol-hiding.sh b/test/T360-symbol-hiding.sh +index 4ec0ea6..1e6814b 100755 +--- a/test/T360-symbol-hiding.sh ++++ b/test/T360-symbol-hiding.sh +@@ -23,9 +23,6 @@ caught No chert database found at path \`CWD/nonexistent' + EOF + test_expect_equal_file EXPECTED OUTPUT + +-test_begin_subtest 'checking output' +-test_expect_equal "$result" "$output" +- + test_begin_subtest 'comparing existing to exported symbols' + nm -P $TEST_DIRECTORY/../lib/libnotmuch.so | awk '$2 == "T" && $1 ~ "^notmuch" {print $1}' | sort | uniq > ACTUAL + sed -n 's/[[:blank:]]*\(notmuch_[^;]*\);/\1/p' $TEST_DIRECTORY/../notmuch.sym | sort | uniq > EXPORTED +diff --git a/test/test-lib.sh b/test/test-lib.sh +index 126911f..c85d149 100644 +--- a/test/test-lib.sh ++++ b/test/test-lib.sh +@@ -22,6 +22,9 @@ if [ ${BASH_VERSINFO[0]} -lt 4 ]; then + exit 1 + fi + ++# Make sure misspelled variables are not to be expanded to empty strings. ++set -u ++ + # Make sure echo builtin does not expand backslash-escape sequences by default. + shopt -u xpg_echo + +@@ -31,7 +34,7 @@ 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. +-case "$GIT_TEST_TEE_STARTED, $* " in ++case "${GIT_TEST_TEE_STARTED-}, $* " in + done,*) + # do not redirect again + ;; +@@ -66,8 +69,8 @@ TZ=UTC + TERM=dumb + export LANG LC_ALL PAGER TERM TZ + GIT_TEST_CMP=${GIT_TEST_CMP:-diff -u} +-if [[ ( -n "$TEST_EMACS" && -z "$TEST_EMACSCLIENT" ) || \ +- ( -z "$TEST_EMACS" && -n "$TEST_EMACSCLIENT" ) ]]; then ++if [[ ( -n "${TEST_EMACS-}" && -z "${TEST_EMACSCLIENT-}" ) || \ ++ ( -z "${TEST_EMACS-}" && -n "${TEST_EMACSCLIENT-}" ) ]]; then + echo "error: must specify both or neither of TEST_EMACS and TEST_EMACSCLIENT" >&2 + exit 1 + fi +@@ -98,6 +101,9 @@ _x32="$_x04$_x04$_x04$_x04$_x04$_x04$_x04$_x04" + # ' + # . ./test-lib.sh || exit 1 + ++debug= immediate= GIT_TEST_LONG= help= verbose= quiet= with_dashes= ++color= valgrind= verbose= root= ++ + [ "x$ORIGINAL_TERM" != "xdumb" ] && ( + TERM=$ORIGINAL_TERM && + export TERM && +@@ -208,7 +214,7 @@ print_test_description () + echo $this_test: "Testing ${test_description}" + test_description_printed=1 + } +-if [ -z "$NOTMUCH_TEST_QUIET" ] ++if [ -z "${NOTMUCH_TEST_QUIET-}" ] + then + print_test_description + fi +@@ -331,6 +337,7 @@ remove_cr () { + gen_msg_cnt=0 + gen_msg_filename="" + gen_msg_id="" ++test_subtest_name= + generate_message () + { + # This is our (bash-specific) magic for doing named parameters +@@ -338,38 +345,38 @@ generate_message () + local additional_headers + + gen_msg_cnt=$((gen_msg_cnt + 1)) +- if [ -z "${template[filename]}" ]; then ++ if [ -z "${template[filename]-}" ]; then + gen_msg_name="msg-$(printf "%03d" $gen_msg_cnt)" + else + gen_msg_name=${template[filename]} + fi + +- if [ -z "${template[id]}" ]; then ++ if [ -z "${template[id]-}" ]; then + gen_msg_id="${gen_msg_name%:2,*}@notmuch-test-suite" + else + gen_msg_id="${template[id]}" + fi + +- if [ -z "${template[dir]}" ]; then ++ if [ -z "${template[dir]-}" ]; then + gen_msg_filename="${MAIL_DIR}/$gen_msg_name" + else + gen_msg_filename="${MAIL_DIR}/${template[dir]}/$gen_msg_name" + mkdir -p "$(dirname "$gen_msg_filename")" + fi + +- if [ -z "${template[body]}" ]; then ++ if [ -z "${template[body]-}" ]; then + template[body]="This is just a test message (#${gen_msg_cnt})" + fi + +- if [ -z "${template[from]}" ]; then ++ if [ -z "${template[from]-}" ]; then + template[from]="Notmuch Test Suite " + fi + +- if [ -z "${template[to]}" ]; then ++ if [ -z "${template[to]-}" ]; then + template[to]="Notmuch Test Suite " + fi + +- if [ -z "${template[subject]}" ]; then ++ if [ -z "${template[subject]-}" ]; then + if [ -n "$test_subtest_name" ]; then + template[subject]="$test_subtest_name" + else +@@ -379,7 +386,7 @@ generate_message () + template[subject]="" + fi + +- if [ -z "${template[date]}" ]; then ++ if [ -z "${template[date]-}" ]; then + # 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. +@@ -392,42 +399,42 @@ generate_message () + fi + + additional_headers="" +- if [ ! -z "${template[header]}" ]; then ++ if [ ! -z "${template[header]-}" ]; then + additional_headers="${template[header]} + ${additional_headers}" + fi + +- if [ ! -z "${template[reply-to]}" ]; then ++ if [ ! -z "${template[reply-to]-}" ]; then + additional_headers="Reply-To: ${template[reply-to]} + ${additional_headers}" + fi + +- if [ ! -z "${template[in-reply-to]}" ]; then ++ if [ ! -z "${template[in-reply-to]-}" ]; then + additional_headers="In-Reply-To: ${template[in-reply-to]} + ${additional_headers}" + fi + +- if [ ! -z "${template[cc]}" ]; then ++ if [ ! -z "${template[cc]-}" ]; then + additional_headers="Cc: ${template[cc]} + ${additional_headers}" + fi + +- if [ ! -z "${template[bcc]}" ]; then ++ if [ ! -z "${template[bcc]-}" ]; then + additional_headers="Bcc: ${template[bcc]} + ${additional_headers}" + fi + +- if [ ! -z "${template[references]}" ]; then ++ if [ ! -z "${template[references]-}" ]; then + additional_headers="References: ${template[references]} + ${additional_headers}" + fi + +- if [ ! -z "${template[content-type]}" ]; then ++ if [ ! -z "${template[content-type]-}" ]; then + additional_headers="Content-Type: ${template[content-type]} + ${additional_headers}" + fi + +- if [ ! -z "${template[content-transfer-encoding]}" ]; then ++ if [ ! -z "${template[content-transfer-encoding]-}" ]; then + additional_headers="Content-Transfer-Encoding: ${template[content-transfer-encoding]} + ${additional_headers}" + fi +@@ -545,6 +552,7 @@ add_email_corpus () + fi + } + ++inside_subtest= + test_begin_subtest () + { + if [ -n "$inside_subtest" ]; then +@@ -775,7 +783,7 @@ $binary () { + # Returns success if dependency is available, failure otherwise. + test_require_external_prereq () { + binary="$1" +- if [[ ${test_missing_external_prereq_["${binary}"]} == t ]]; then ++ if [[ ${test_missing_external_prereq_["${binary}"]-} == t ]]; then + # dependency is missing, call the replacement function to note it + eval "$binary" + else +@@ -792,7 +800,7 @@ test_ok_ () { + return + fi + test_success=$(($test_success + 1)) +- if test -n "$NOTMUCH_TEST_QUIET"; then ++ if test -n "${NOTMUCH_TEST_QUIET-}"; then + return 0 + fi + say_color pass "%-6s" "PASS" +@@ -849,7 +857,7 @@ test_run_ () { + test_skip () { + test_count=$(($test_count+1)) + to_skip= +- for skp in $NOTMUCH_SKIP_TESTS ++ for skp in ${NOTMUCH_SKIP_TESTS-} + do + case $this_test.$test_count in + $skp) +@@ -1109,7 +1117,7 @@ exec ${TEST_EMACS} --quick \ + EOF + chmod a+x "$TMP_DIRECTORY/run_emacs" + } +- ++EMACS_SERVER= + test_emacs () { + # test dependencies beforehand to avoid the waiting loop below + missing_dependencies= +@@ -1213,6 +1221,7 @@ notmuch_counter_value () { + echo $count + } + ++test_init_done_= + test_reset_state_ () { + test -z "$test_init_done_" && test_init_ + +@@ -1245,7 +1254,7 @@ else + exec 4>test.output 3>&4 + fi + +-for skp in $NOTMUCH_SKIP_TESTS ++for skp in ${NOTMUCH_SKIP_TESTS-} + do + to_skip= + for skp in $NOTMUCH_SKIP_TESTS +@@ -1312,8 +1321,8 @@ case $(uname -s) in + ;; + esac + +-test -z "$NO_PERL" && test_set_prereq PERL +-test -z "$NO_PYTHON" && test_set_prereq PYTHON ++test -z "${NO_PERL-}" && test_set_prereq PERL ++test -z "${NO_PYTHON-}" && test_set_prereq PYTHON + + # test whether the filesystem supports symbolic links + ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS +-- +1.9.3 +