]> git.notmuchmail.org Git - notmuch/commitdiff
test: skip all subtests if external dependencies are missing during init
authorDmitry Kurochkin <dmitry.kurochkin@gmail.com>
Sun, 27 Nov 2011 18:36:15 +0000 (22:36 +0400)
committerDavid Bremner <bremner@debian.org>
Sun, 27 Nov 2011 19:32:11 +0000 (11:32 -0800)
Some tests (e.g. crypto) do a common initialization required for all
subtests.  The patch adds a check for missing external dependencies
during this initialization.  If any prerequisites are missing, all
subtests are skipped.

The check is run on the first call of test_reset_state_ function, so
no changes for the tests are needed.

test/test-lib.sh

index df867a5ff78b0a57b083c936e619ad3ae3797e06..99b9e8b8096386484f27fea028e75292a93e1007 100644 (file)
@@ -902,10 +902,20 @@ test_emacs () {
 }
 
 test_reset_state_ () {
 }
 
 test_reset_state_ () {
+       test -z "$test_init_done_" && test_init_
+
        test_subtest_known_broken_=
        test_subtest_missing_external_prereqs_=
 }
 
        test_subtest_known_broken_=
        test_subtest_missing_external_prereqs_=
 }
 
+# called once before the first subtest
+test_init_ () {
+       test_init_done_=t
+
+       # skip all tests if there were external prerequisites missing during init
+       test_check_missing_external_prereqs_ "all tests in $this_test" && test_done
+}
+
 
 find_notmuch_path ()
 {
 
 find_notmuch_path ()
 {