[tor-commits] [tor/master] Change log_test_helpers macros to use printf, not pasting

nickm at torproject.org nickm at torproject.org
Wed Sep 5 00:47:14 UTC 2018


commit 8148c0717dc6b05b0cda18ade94e03ed947bc7a3
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Aug 22 10:31:44 2018 -0400

    Change log_test_helpers macros to use printf, not pasting
    
    This ensures that our test failure messages actually tell us what
    strings Tor was expecting.  I will need this to debug some test
    failures.
---
 src/test/log_test_helpers.h   | 35 ++++++++++++++++++-----------------
 src/test/test_shared_random.c |  2 +-
 2 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/src/test/log_test_helpers.h b/src/test/log_test_helpers.h
index fc9768c12..330da3811 100644
--- a/src/test/log_test_helpers.h
+++ b/src/test/log_test_helpers.h
@@ -32,7 +32,7 @@ void mock_dump_saved_logs(void);
 #define assert_log_predicate(predicate, failure_msg)   \
   do {                                                 \
     if (!(predicate)) {                                \
-      tt_fail_msg((failure_msg));                      \
+      TT_FAIL(failure_msg);                            \
       mock_dump_saved_logs();                          \
       TT_EXIT_TEST_FUNCTION;                           \
     }                                                  \
@@ -40,70 +40,71 @@ void mock_dump_saved_logs(void);
 
 #define expect_log_msg(str)                             \
   assert_log_predicate(mock_saved_log_has_message(str), \
-                "expected log to contain " # str);
+                       ("expected log to contain \"%s\"", str));
 
 #define expect_log_msg_containing(str) \
   assert_log_predicate(mock_saved_log_has_message_containing(str), \
-                "expected log to contain " # str);
+                       ("expected log to contain \"%s\"", str));
 
 #define expect_log_msg_containing_either(str1, str2)                    \
   assert_log_predicate(mock_saved_log_has_message_containing(str1) ||   \
                        mock_saved_log_has_message_containing(str2),     \
-                       "expected log to contain " # str1 " or " # str2);
+           ("expected log to contain \"%s\" or \"%s\"", str1, str2));
 
 #define expect_log_msg_containing_either3(str1, str2, str3)             \
   assert_log_predicate(mock_saved_log_has_message_containing(str1) ||   \
                        mock_saved_log_has_message_containing(str2) ||   \
                        mock_saved_log_has_message_containing(str3),     \
-                       "expected log to contain " # str1 " or " # str2  \
-                       " or " # str3);
+           ("expected log to contain \"%s\" or \"%s\" or \"%s\"",       \
+                        str1, str2, str3))
 
 #define expect_log_msg_containing_either4(str1, str2, str3, str4)       \
   assert_log_predicate(mock_saved_log_has_message_containing(str1) ||   \
                        mock_saved_log_has_message_containing(str2) ||   \
                        mock_saved_log_has_message_containing(str3) ||   \
                        mock_saved_log_has_message_containing(str4),     \
-                       "expected log to contain " # str1 " or " # str2  \
-                       " or " # str3 " or " # str4);
+       ("expected log to contain \"%s\" or \"%s\" or \"%s\" or \"%s\"", \
+                        str1, str2, str3, str4))
 
 #define expect_single_log_msg(str) \
   do {                                                                  \
                                                                         \
     assert_log_predicate(mock_saved_log_has_message_containing(str) &&  \
                          mock_saved_log_n_entries() == 1,               \
-                  "expected log to contain exactly 1 message " # str); \
+                         ("expected log to contain exactly 1 message \"%s\"", \
+                          str));                                        \
   } while (0);
 
 #define expect_single_log_msg_containing(str) \
   do {                                                                  \
     assert_log_predicate(mock_saved_log_has_message_containing(str)&&   \
                          mock_saved_log_n_entries() == 1 ,              \
-            "expected log to contain 1 message, containing " # str);     \
+                    ("expected log to contain 1 message, containing \"%s\"",\
+                     str));                                             \
   } while (0);
 
 #define expect_no_log_msg(str) \
   assert_log_predicate(!mock_saved_log_has_message(str), \
-                "expected log to not contain " # str);
+                       ("expected log to not contain \"%s\"",str));
 
 #define expect_no_log_msg_containing(str) \
   assert_log_predicate(!mock_saved_log_has_message_containing(str), \
-                "expected log to not contain " # str);
+                       ("expected log to not contain \"%s\"", str));
 
 #define expect_log_severity(severity) \
   assert_log_predicate(mock_saved_log_has_severity(severity), \
-                "expected log to contain severity " # severity);
+                       ("expected log to contain severity " # severity));
 
 #define expect_no_log_severity(severity) \
   assert_log_predicate(!mock_saved_log_has_severity(severity), \
-                "expected log to not contain severity " # severity);
+                       ("expected log to not contain severity " # severity));
 
 #define expect_log_entry() \
   assert_log_predicate(mock_saved_log_has_entry(), \
-                "expected log to contain entries");
+                       ("expected log to contain entries"));
 
 #define expect_no_log_entry() \
   assert_log_predicate(!mock_saved_log_has_entry(), \
-                "expected log to not contain entries");
+                       ("expected log to not contain entries"));
 
 #endif /* !defined(TOR_LOG_TEST_HELPERS_H) */
-
diff --git a/src/test/test_shared_random.c b/src/test/test_shared_random.c
index d2defdf68..4137877e6 100644
--- a/src/test/test_shared_random.c
+++ b/src/test/test_shared_random.c
@@ -1284,7 +1284,7 @@ test_keep_commit(void *arg)
     expect_log_msg_containing("doesn't match the commit value.");
     expect_log_msg_containing("has an invalid reveal value.");
     assert_log_predicate(mock_saved_log_n_entries() == 2,
-                         "expected 2 log entries");
+                         ("expected 2 log entries"));
     teardown_capture_of_logs();
     memcpy(commit->hashed_reveal, place_holder.hashed_reveal,
            sizeof(commit->hashed_reveal));





More information about the tor-commits mailing list