1 #include <cgreen/mocks.h>
2
create_no_debug_exp(void)3 static char *create_no_debug_exp(void)
4 {
5 int uid = getuid();
6 int euid = geteuid();
7 char *exp;
8
9 exp = create_string("debug called for uid=%d euid=%d, "
10 "output disabled\n",
11 uid, euid);
12 return exp;
13 }
14
Ensure(debug_no_output_low_verbose)15 Ensure(debug_no_output_low_verbose) {
16 int level = 10;
17
18 assert_that(log_get_verbose(), is_less_than(level));
19
20 never_expect(mock_vfprintf);
21 never_expect(mock_fprintf);
22
23 debug(level, "some debug");
24 }
25
Ensure(debug_default_output_stderr)26 Ensure(debug_default_output_stderr) {
27 int level = -1;
28
29 expect(mock_vfprintf,
30 when(stream, is_equal_to(stderr)));
31 expect(mock_fprintf,
32 when(stream, is_equal_to(stderr)));
33 expect(mock_fflush,
34 when(file, is_equal_to(stderr)));
35
36 debug(level, "some debug");
37 }
38
Ensure(debug_sets_default_keeps_filename)39 Ensure(debug_sets_default_keeps_filename) {
40 char exp_logname[] = "my cool name";
41
42 log_set_log_filename(exp_logname);
43 debug_default_output_stderr();
44 assert_that(log_get_log_filename(),
45 is_equal_to_string(exp_logname));
46 }
47
Ensure(debug_stub_no_debug)48 Ensure(debug_stub_no_debug) {
49 char *exp;
50 FILE *fp = stderr;
51 int level = -1;
52
53 exp = create_no_debug_exp();
54 always_expect(mock_vfprintf,
55 when(stream, is_equal_to(fp)),
56 when(res_str, is_equal_to_string(exp)));
57 never_expect(mock_fflush);
58
59 log_file("stderr");
60 log_suppress_debug();
61
62 debug(level, "some debug");
63 debug(level, "some debug");
64
65 free(exp);
66 }
67
expect_debug_output(FILE * fp,const char * msg)68 static void expect_debug_output(FILE *fp, const char *msg)
69 {
70 expect(mock_vfprintf,
71 when(stream, is_equal_to(fp)),
72 when(res_str, is_equal_to_string(msg)));
73 expect(mock_fprintf,
74 when(stream, is_equal_to(fp)),
75 when(res_str, is_equal_to_string("\n")));
76 expect(mock_fflush,
77 when(file, is_equal_to(fp)));
78 }
79
Ensure(debug_output)80 Ensure(debug_output) {
81 int level = -1;
82 char my_debug[] = "some debug";
83
84 expect_debug_output(stderr, my_debug);
85
86 debug(level, "some debug");
87 }
88
89 #include "test-log-debug-syslog.c"
90
create_log_debug_suite(void)91 TestSuite *create_log_debug_suite(void)
92 {
93 TestSuite *suite = create_named_test_suite("debug() suite");
94
95 add_test(suite, debug_no_output_low_verbose);
96 add_test(suite, debug_default_output_stderr);
97 add_test(suite, debug_stub_no_debug);
98 add_test(suite, debug_output);
99 add_test(suite, debug_sets_default_keeps_filename);
100
101 add_debug_syslog(suite);
102
103 set_setup(suite, log_init_globals);
104
105 return suite;
106 }
107