Browse Source

Merge branch 'ticket28668_035' into ticket28668_040

Nick Mathewson 6 years ago
parent
commit
3baf99e81b
2 changed files with 21 additions and 0 deletions
  1. 3 0
      changes/ticket28668
  2. 18 0
      src/test/testing_common.c

+ 3 - 0
changes/ticket28668

@@ -0,0 +1,3 @@
+  o Minor features (testing):
+    - Treat all unexpected ERR and BUG messages as test failures.
+      Closes ticket 28668.

+ 18 - 0
src/test/testing_common.c

@@ -241,6 +241,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
@@ -280,6 +289,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);
@@ -287,6 +297,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);
+  }
   flush_log_messages_from_startup();
   init_protocol_warning_severity_level();