[tor-commits] [tor/maint-0.4.2] Add a TOR_SKIP_TESTCASES environment variable for suppressing tests.

teor at torproject.org teor at torproject.org
Fri Mar 20 01:26:50 UTC 2020


commit 6bafe97bc1e9c66e5e727cdf5160341ae58b4f81
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Mar 19 15:25:11 2020 -0400

    Add a TOR_SKIP_TESTCASES environment variable for suppressing tests.
    
    For example, "TOR_SKIP_TESTCASES=crypto/.. ./src/test/test" will run
    the tests and suppress all the "crypto/" tests.  You could get the
    same effect by running "./src/test/test :crypto/..", but that can be
    harder to arrange from CI.
    
    Part of a fix/workaround for 33643.
---
 changes/ticket33643       |  5 +++++
 src/test/testing_common.c | 15 +++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/changes/ticket33643 b/changes/ticket33643
new file mode 100644
index 000000000..7fddab74e
--- /dev/null
+++ b/changes/ticket33643
@@ -0,0 +1,5 @@
+  o Minor features (testing):
+    - The unit tests now support a "TOR_SKIP_TESTCASES" environment variable
+      to specify a list of space-separated test cases that should not be
+      executed. We will use this to disable certain tests that are failing on
+      Appveyor because of mismatched OpenSSL libraries. Part of ticket 33643.
diff --git a/src/test/testing_common.c b/src/test/testing_common.c
index 62d40a42f..2c9c4538b 100644
--- a/src/test/testing_common.c
+++ b/src/test/testing_common.c
@@ -348,6 +348,21 @@ main(int c, const char **v)
 
   atexit(remove_directory);
 
+  /* Look for TOR_SKIP_TESTCASES: a space-separated list of tests to skip. */
+  const char *skip_tests = getenv("TOR_SKIP_TESTCASES");
+  if (skip_tests) {
+    smartlist_t *skip = smartlist_new();
+    smartlist_split_string(skip, skip_tests, NULL,
+                           SPLIT_IGNORE_BLANK, -1);
+    int n = 0;
+    SMARTLIST_FOREACH_BEGIN(skip, char *, cp) {
+      n += tinytest_skip(testgroups, cp);
+      tor_free(cp);
+    } SMARTLIST_FOREACH_END(cp);
+    printf("Skipping %d testcases.\n", n);
+    smartlist_free(skip);
+  }
+
   int have_failed = (tinytest_main(c, v, testgroups) != 0);
 
   free_pregenerated_keys();





More information about the tor-commits mailing list