| #ifndef QUICHE_COMMON_BUG_UTILS_TEST_HELPER_H_ |
| #define QUICHE_COMMON_BUG_UTILS_TEST_HELPER_H_ |
| |
| #include "quiche/common/bug_utils.h" |
| |
| // Sticking various logging functions used by the test in a separate file, |
| // so their line numbers are unlikely to change as we modify the test file |
| // itself, as the expectations we set take the file + line numbers into account. |
| |
| #define QUICHE_TEST_BUG(bug_id) \ |
| GENERIC_BUG_UNBRACED_ELSE_BLOCKER \ |
| GENERIC_BUG_IMPL("QUICHE_TEST_BUG", bug_id, false, \ |
| ::quiche::internal::DefaultBugOptions(__FILE__, __LINE__)) |
| |
| #define QUICHE_TEST_BUG_IF(bug_id, condition) \ |
| GENERIC_BUG_UNBRACED_ELSE_BLOCKER \ |
| if (!(condition)) { /* Do nothing */ \ |
| } else /* NOLINT */ \ |
| GENERIC_BUG_IMPL("QUICHE_TEST_BUG", bug_id, false, \ |
| ::quiche::internal::DefaultBugOptions(__FILE__, __LINE__) \ |
| .SetCondition(#condition)) |
| |
| inline void LogBugLine23() { QUICHE_TEST_BUG(Bug 23) << "Here on line 23"; } |
| |
| inline void LogBugLine26() { |
| QUICHE_TEST_BUG(Bug 26) << "Here on line 26"; |
| QUICHE_TEST_BUG(Bug 27) << "And 27!"; |
| } |
| |
| inline void LogIfBugLine31(bool condition) { |
| QUICHE_TEST_BUG_IF(Bug 31, condition) << "Here on line 31"; |
| } |
| |
| inline void LogIfBugNullCheckLine35(int *ptr) { |
| QUICHE_TEST_BUG_IF(Bug 35, ptr == nullptr) << "Here on line 35"; |
| } |
| |
| #define QUICHE_TEST_BUG_OPTIONS() \ |
| ::quiche::internal::DefaultBugOptions(__FILE__, __LINE__) |
| |
| #endif // QUICHE_COMMON_BUG_UTILS_TEST_HELPER_H_ |