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.
This commit is contained in:
Nick Mathewson
2020-03-19 15:25:11 -04:00
parent 3150c30351
commit 6bafe97bc1
2 changed files with 20 additions and 0 deletions
+5
View File
@@ -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.
+15
View File
@@ -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();