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