aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-03-19 15:25:11 -0400
committerNick Mathewson <nickm@torproject.org>2020-03-19 18:36:36 -0400
commit6bafe97bc1e9c66e5e727cdf5160341ae58b4f81 (patch)
treecafcd4f3299f1b50d96ce3506dfba0acb4e40246
parent3150c3035150924cc10a3edf9b1b44cc1aafa257 (diff)
downloadtor-6bafe97bc1e9c66e5e727cdf5160341ae58b4f81.tar.gz
tor-6bafe97bc1e9c66e5e727cdf5160341ae58b4f81.zip
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.
-rw-r--r--changes/ticket336435
-rw-r--r--src/test/testing_common.c15
2 files changed, 20 insertions, 0 deletions
diff --git a/changes/ticket33643 b/changes/ticket33643
new file mode 100644
index 0000000000..7fddab74eb
--- /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 62d40a42fa..2c9c4538b9 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();