mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
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.
This commit is contained in:
+18
-17
@@ -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) */
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user