1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
#define _GNU_SOURCE 1
#include "umberlog.h"
#include "config.h"
#include "test-common.h"
#include <json.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <limits.h>
#include <check.h>
START_TEST (test_overrides)
{
char *msg;
struct json_object *jo;
char host[_POSIX_HOST_NAME_MAX + 1];
openlog ("umberlog/test_overrides", 0, LOG_LOCAL0);
msg = ul_format (LOG_DEBUG, "hello, I'm %s!", __FUNCTION__, NULL);
jo = parse_msg (msg);
free (msg);
gethostname (host, _POSIX_HOST_NAME_MAX);
verify_value (jo, "msg", "hello, I'm test_overrides!");
/* Default facility is user, and since we did not catch openlog, it
should not change. */
verify_value (jo, "facility", "user");
verify_value (jo, "priority", "debug");
/* The program is also caught by openlog(), so we'll get the
default back, unless we use ul_openlog(). */
verify_value (jo, "program", "test_umberlog");
verify_value_exists (jo, "pid");
verify_value_exists (jo, "uid");
verify_value_exists (jo, "gid");
verify_value_exists (jo, "timestamp");
verify_value (jo, "host", host);
json_object_put (jo);
closelog ();
}
END_TEST
START_TEST (test_ul_openlog)
{
char *msg;
struct json_object *jo;
char host[_POSIX_HOST_NAME_MAX + 1];
ul_openlog ("umberlog/test_ul_openlog", 0, LOG_LOCAL0);
msg = ul_format (LOG_DEBUG, "hello, I'm %s!", __FUNCTION__, NULL);
jo = parse_msg (msg);
free (msg);
gethostname (host, _POSIX_HOST_NAME_MAX);
verify_value (jo, "msg", "hello, I'm test_ul_openlog!");
verify_value (jo, "facility", "local0");
verify_value (jo, "priority", "debug");
verify_value (jo, "program", "umberlog/test_ul_openlog");
verify_value_exists (jo, "pid");
verify_value_exists (jo, "uid");
verify_value_exists (jo, "gid");
verify_value_exists (jo, "timestamp");
verify_value (jo, "host", host);
json_object_put (jo);
ul_closelog ();
}
END_TEST
int
main (void)
{
Suite *s;
SRunner *sr;
TCase *ft;
int nfailed;
s = suite_create ("Umberlog (linkable) functional testsuite");
ft = tcase_create ("Basic tests");
tcase_add_test (ft, test_overrides);
tcase_add_test (ft, test_ul_openlog);
suite_add_tcase (s, ft);
sr = srunner_create (s);
srunner_run_all (sr, CK_ENV);
nfailed = srunner_ntests_failed (sr);
srunner_free (sr);
return (nfailed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}
|