git.fiddlerwoaroof.com
logging_test.c
6f45b32f
 #include <stdio.h>
b9244c44
 #include <string.h>
6f45b32f
 
 #include "dc_syslog.h"
 #include "logging.h"
 
a26b1d7c
 #include "testutil.h"
 
9dd224b0
 #define reset_vars() \
     logged_priority = -1000; \
     close_log_invoked = 0; \
     opened_facility = -1000; \
     const char *opened_program_name = ""; \
     int opened_logopt = -1000; \
 
9fe53359
 int logged_priority = -1000;
a4c373a6
 const char *logged_message = "";
6f45b32f
 void dc_syslog(int priority, const char *message, ...) {
9fe53359
     logged_priority = priority;
a4c373a6
     logged_message = message;
6f45b32f
 }
 
4a5fbc12
 int close_log_invoked = 0;
6f45b32f
 void dc_closelog(void) {
4a5fbc12
     close_log_invoked = 1;
6f45b32f
 }
 
 int opened_facility = -1000;
b9244c44
 const char *opened_program_name = "";
08aca5aa
 int opened_logopt = -1000;
b9244c44
 void dc_openlog(const char *ident, int logopt, int facility) {
6f45b32f
     opened_facility = facility;
b9244c44
     opened_program_name = ident;
08aca5aa
     opened_logopt = logopt;
6f45b32f
 }
 
b9244c44
 int test_log_success() {
6f45b32f
     // given
 
     // when
     log_success();
 
     // then
9fe53359
     checkint(LOG_AUTHPRIV, opened_facility, "facility");
     checkint(LOG_NOTICE, logged_priority, "priority");
     checkint(0, opened_logopt, "logopt");
4a5fbc12
     check(close_log_invoked, "log closed");
9fe53359
     checkstr("pam_dual_control", opened_program_name, "program name");
     checkstr("dual control succeeded", logged_message, "logged message");
f2d9dbb5
     succeed();
6f45b32f
 }
 
9dd224b0
 int test_runner() {
     test(test_log_success);
     succeed();
 }
6f45b32f
 
 int main(int numargs, char **args) {
9dd224b0
     return !test_runner();
6f45b32f
 }