6f45b32f |
#include <stdio.h>
|
b9244c44 |
#include <string.h>
|
6f45b32f |
#include "dc_syslog.h"
#include "logging.h"
|
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 |
}
|
f2d9dbb5 |
#define check(assertion, msg) \
if (!(assertion)) { \
|
9fe53359 |
fprintf(stderr, "assertion failed: %s\n", msg); \
|
f2d9dbb5 |
return 0; \
}
|
9fe53359 |
#define checkint(expected, actual, name) \
check(expected == actual, name " should be " #expected)
#define checkstr(expected, actual, name) \
check(!strcmp(actual, expected), name " should be '" expected "'")
|
f2d9dbb5 |
#define succeed() return 1
|
b9244c44 |
int test_log_success() {
|
6f45b32f |
// given
opened_facility = -1000;
|
b9244c44 |
opened_program_name = "";
|
08aca5aa |
opened_logopt = -1000;
|
9fe53359 |
logged_priority = -1000;
|
a4c373a6 |
logged_message = "";
|
4a5fbc12 |
close_log_invoked = 0;
|
6f45b32f |
// 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 |
}
int main(int numargs, char **args) {
|
b9244c44 |
if(test_log_success()) {
|
8c02415f |
fprintf(stderr, "logging_test: success!\n");
|
6f45b32f |
return 0;
} else {
return 1;
}
}
|