diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-01-16 15:47:33 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-01-16 15:47:33 -0500 |
commit | f684cd800577144a48e112951eaf4ddc602ad26a (patch) | |
tree | 80da3375be710e744d54308acf2d60adc0637b3b /src/test | |
parent | f0408b844ffe2545c33306cb04b03fff8148989f (diff) | |
download | tor-f684cd800577144a48e112951eaf4ddc602ad26a.tar.gz tor-f684cd800577144a48e112951eaf4ddc602ad26a.zip |
Fail any unit test that causes an unhandled LD_BUG or LOG_ERR
Closes ticket 28668.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/testing_common.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/testing_common.c b/src/test/testing_common.c index 60015f3c24..62d40a42fa 100644 --- a/src/test/testing_common.c +++ b/src/test/testing_common.c @@ -239,6 +239,15 @@ tinytest_postfork(void) init_pregenerated_keys(); } +static void +log_callback_failure(int severity, uint32_t domain, const char *msg) +{ + (void)msg; + if (severity == LOG_ERR || (domain & LD_BUG)) { + tinytest_set_test_failed_(); + } +} + /** Main entry point for unit test code: parse the command line, and run * some unit tests. */ int @@ -287,6 +296,7 @@ main(int c, const char **v) c = i_out; { + /* setup logs to stdout */ log_severity_list_t s; memset(&s, 0, sizeof(s)); set_log_severity_config(loglevel, LOG_ERR, &s); @@ -294,6 +304,14 @@ main(int c, const char **v) s.masks[LOG_WARN-LOG_ERR] |= LD_BUG; add_stream_log(&s, "", fileno(stdout)); } + { + /* Setup logs that cause failure. */ + log_severity_list_t s; + memset(&s, 0, sizeof(s)); + set_log_severity_config(LOG_ERR, LOG_ERR, &s); + s.masks[LOG_WARN-LOG_ERR] |= LD_BUG; + add_callback_log(&s, log_callback_failure); + } init_protocol_warning_severity_level(); options->command = CMD_RUN_UNITTESTS; |