| #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_ |