test: cleanup basic tests
authorDmitry Kurochkin <dmitry.kurochkin@gmail.com>
Sat, 26 Nov 2011 06:12:26 +0000 (10:12 +0400)
committerDavid Bremner <bremner@debian.org>
Sat, 26 Nov 2011 17:18:05 +0000 (09:18 -0800)
Basic test 'Ensure that all available tests will be run by
notmuch-test' compares all tests that are run with listing of test/
directory.  There is a growing list of exceptions for files and
directories which located in the test/ directory but are not tests.
Moreover some (probably buggy) tests do create files in the the test/
directory which may be left behind in case of failure.  This makes the
basic test fail.

The patch changes the test to look only for regular executable files.
This makes the exception list much smaller.  And since no tests should
create executables in the test/ directory (if there are, they should
be fixed), the basic test should not be affected by failed or
interrupted tests.

test/basic

index 032c9f763cab077ca9c323501aa399b155a7aba5..f258d1f95e84082d9e2a2baa976cccb765be015e 100755 (executable)
@@ -53,15 +53,9 @@ test_expect_code 2 'failure to clean up causes the test to fail' '
 test_begin_subtest 'Ensure that all available tests will be run by notmuch-test'
 eval $(sed -n -e '/^TESTS="$/,/^"$/p' $TEST_DIRECTORY/notmuch-test)
 tests_in_suite=$(for i in $TESTS; do echo $i; done | sort)
-available=$(ls -1 $TEST_DIRECTORY/ | \
-    sed -r -e "/^(aggregate-results.sh|Makefile|Makefile.local|notmuch-test)/d" \
-          -e "/^(README|test-lib.sh|test-lib.el|test-results|tmp.*|valgrind|corpus*)/d" \
-          -e "/^(emacs.expected-output|smtp-dummy|smtp-dummy.c|test-verbose|symbol-test.cc)/d" \
-          -e "/^(test.expected-output|.*~)/d" \
-          -e "/^(gnupg-secret-key.asc)/d" \
-          -e "/^(gnupg-secret-key.NOTE)/d" \
-          -e "/^(atomicity.gdb)/d" \
-          | sort)
+available=$(find "$TEST_DIRECTORY" -maxdepth 1 -type f -executable -printf '%f\n' | \
+    sed -r -e "/^(aggregate-results.sh|notmuch-test|smtp-dummy|test-verbose)$/d" | \
+    sort)
 test_expect_equal "$tests_in_suite" "$available"
 
 EXPECTED=$TEST_DIRECTORY/test.expected-output