blob: 6497bca211eee409b59b7d1ee9529b50e96cc272 [file] [log] [blame]
#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_