const char * test_tap_ev_identifier_wait(ev_tstamp seconds, tap_ev * ev_ptr) { tap_ev event; return tap_ev_identifier(*(ev_ptr == NULL ? &event : ev_ptr) = test_tap_ev_shift_wait(seconds)); }
const char * test_tap_ev_queue_identifier_wait(tap_ev_queue queue, ev_tstamp seconds, tap_ev * ev_ptr) { tap_ev event; if (ev_ptr == NULL) { ev_ptr = &event; } *ev_ptr = test_tap_ev_queue_shift_wait(queue, seconds); return tap_ev_identifier(*ev_ptr); }
const void * tap_ev_arg(tap_ev ev, const char * name) { unsigned i; for (i = 0; i < ev->argc; i++) { if (strcmp(ev->argv[i * 2 ], name) == 0) { return ev->argv[i * 2 + 1]; } } fprintf(stderr, "tap_ev_arg: '%s' event has no argument '%s'", (const char *)tap_ev_identifier(ev), name); assert("Argument was not found" == NULL); return NULL; /* Can't happen */ }
int main(int argc, char *argv[]) { tap_ev ev; struct object self; struct object * this = &self; char expected[1024]; pid_t pid = getpid(); plan_tests(28); MOCK_SET_HOOK(openlog, t_openlog); MOCK_SET_HOOK(syslog, t_syslog); q_syslog = tap_ev_queue_new(); sxe_log_use_syslog("my-program", LOG_NDELAY|LOG_PID, LOG_USER); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "openlog", "sxe_log_use_syslog() calls openlog()"); is_eq(tap_ev_arg(ev, "ident"), "my-program", "sxe_log_use_syslog() calls openlog() with correct 'ident' parameter"); is(tap_ev_arg(ev, "option"), LOG_NDELAY|LOG_PID, "sxe_log_use_syslog() calls openlog() with correct 'option' parameter"); is(tap_ev_arg(ev, "facility"), LOG_USER, "sxe_log_use_syslog() calls openlog() with correct 'facility' parameter"); SXEL10("SXEL10"); snprintf(expected, sizeof expected, "T=%d ------ 1 - SXEL10\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL10() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_ERR, "SXEL10() maps to LOG_ERR syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL10() is logged correctly"); SXEL21("SXEL21(%s)", "arg1"); snprintf(expected, sizeof expected, "T=%d ------ 2 - SXEL21(arg1)\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL21() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_WARNING, "SXEL21() maps to LOG_WARNING syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL21() is logged correctly"); SXEL32("SXEL32(%s,%d)", "arg1", 22); snprintf(expected, sizeof expected, "T=%d ------ 3 - SXEL32(arg1,22)\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL32() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_NOTICE, "SXEL32() maps to LOG_NOTICE syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL32() is logged correctly"); SXEL43("SXEL43(%s,%d,%u)", "arg1", 22, 44); snprintf(expected, sizeof expected, "T=%d ------ 4 - SXEL43(arg1,22,44)\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL43() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_INFO, "SXEL43() maps to LOG_INFO syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL43() is logged correctly"); SXEL54("SXEL54(%s,%d,%u,%x)", "arg1", 22, 44, 64); snprintf(expected, sizeof expected, "T=%d ------ 5 - SXEL54(arg1,22,44,40)\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL54() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_DEBUG, "SXEL54() maps to LOG_DEBUG syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL54() is logged correctly"); SXEL65("SXEL65(%s,%d,%u,%x,%.2f)", "arg1", 22, 44, 64, 3.1415926); snprintf(expected, sizeof expected, "T=%d ------ 6 - SXEL65(arg1,22,44,40,3.14)\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL65() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_DEBUG, "SXEL65() maps to LOG_DEBUG syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL65() is logged correctly"); this->id = 99; SXEL10I("SXEL10I"); snprintf(expected, sizeof expected, "T=%d 99 1 - SXEL10I\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL10I() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_ERR, "SXEL10I() maps to LOG_ERR syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL10I() is logged correctly"); this->id = 98; SXEL65I("SXEL65I(%s,%d,%u,%x,%.2f)", "arg1", 22, 44, 64, 3.1415926); snprintf(expected, sizeof expected, "T=%d 98 6 - SXEL65I(arg1,22,44,40,3.14)\n", pid); ev = tap_ev_queue_shift(q_syslog); is_eq(tap_ev_identifier(ev), "syslog", "SXEL65I() calls syslog()"); is(tap_ev_arg(ev, "priority"), LOG_DEBUG, "SXEL65I() maps to LOG_DEBUG syslog level"); is_eq(tap_ev_arg(ev, "logline"), expected, "SXEL65I() is logged correctly"); sxe_log_hook_buffer_prefix(NULL); /* For coverage */ (void)argc; (void)argv; return exit_status(); }