123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include <zf_log.c>
- #include <zf_test.h>
- static unsigned g_logged = 0;
- /* Keep it extern (non-static), so compiler has less chances to optimize access
- * to this variable.
- */
- unsigned g_forty_two = 42;
- static void mock_output_callback(const zf_log_message *msg, void *arg)
- {
- (void)msg; (void)arg;
- ++g_logged;
- }
- static unsigned was_logged()
- {
- const unsigned logged = g_logged;
- g_logged = 0;
- return logged;
- }
- static unsigned forty_two()
- {
- return g_forty_two;
- }
- #define EXPECTED_LINES(n) TEST_VERIFY_EQUAL(was_logged(), (n))
- static void test_conditional()
- {
- ZF_LOG_IF(1 < 2, ZF_LOGI("True"));
- EXPECTED_LINES(1);
- ZF_LOG_IF(2 < 1, ZF_LOGI("False"));
- EXPECTED_LINES(0);
- ZF_LOG_IF(g_forty_two == 42, ZF_LOGI("True"));
- EXPECTED_LINES(1);
- ZF_LOG_IF(g_forty_two != 42, ZF_LOGI("False"));
- EXPECTED_LINES(0);
- ZF_LOG_IF(g_forty_two == 42, ZF_LOGI("True"));
- EXPECTED_LINES(1);
- ZF_LOG_IF(g_forty_two != 42, ZF_LOGI("False"));
- EXPECTED_LINES(0);
- ZF_LOG_IF(forty_two() == 42, ZF_LOGI("True"));
- EXPECTED_LINES(1);
- ZF_LOG_IF(forty_two() != 42, ZF_LOGI("False"));
- EXPECTED_LINES(0);
- }
- int main(int argc, char *argv[])
- {
- zf_log_set_output_v(ZF_LOG_PUT_STD, 0, mock_output_callback);
- TEST_RUNNER_CREATE(argc, argv);
- TEST_EXECUTE(test_conditional());
- return TEST_RUNNER_EXIT_CODE();
- }
|