Browse Source

Add a default behavior to logger_format_add function + tests

Yann Weber 4 years ago
parent
commit
a8e9e8cdec
2 changed files with 47 additions and 0 deletions
  1. 5
    0
      src/logger.c
  2. 42
    0
      tests/check_logger.c

+ 5
- 0
src/logger.c View File

@@ -69,6 +69,11 @@ int pyfcgi_logger_format_add(const char* format, size_t* idx)
69 69
 
70 70
 	conf = &PyFCGI_conf.logs;
71 71
 
72
+	if(!format)
73
+	{
74
+		format = PYFCGI_LOGGER_TIME_FMT_DEFAULT;
75
+	}
76
+
72 77
 	for(i=0; i<conf->format_sz; i++)
73 78
 	{
74 79
 		if(!strcmp(format, conf->formats[i].fmt)) { break; }

+ 42
- 0
tests/check_logger.c View File

@@ -6,6 +6,8 @@
6 6
 
7 7
 pyfcgi_conf_logger_t *conf = &PyFCGI_conf.logs;
8 8
 
9
+char tmpdir[] = "./tmp_PyFCGI_checksXXXXXX";
10
+
9 11
 /*
10 12
 	TC logger init
11 13
 */
@@ -32,15 +34,35 @@ START_TEST(test_logger_format_add)
32 34
 	size_t s;
33 35
 	pyfcgi_logger_init();
34 36
 	const char *fmt = "{datetime} {level} {ident}[{pid}] {msg}";
37
+	const char *fmt2 = "{datetime} {level} {ident} {msg}";
35 38
 
36 39
 	ret = pyfcgi_logger_format_add(fmt, &s);
40
+	ck_assert_int_eq(ret, 0);
37 41
 	ck_assert_int_eq(conf->format_sz, 1);
38 42
 	ck_assert_int_eq(s, 0);
39 43
 	ck_assert_str_eq(conf->formats[s].fmt, fmt);
44
+	ret = pyfcgi_logger_format_add(fmt2, &s);
45
+	ck_assert_int_eq(ret, 0);
46
+	ck_assert_int_eq(conf->format_sz, 2);
47
+	ck_assert_int_eq(s, 1);
48
+	ck_assert_str_eq(conf->formats[s].fmt, fmt2);
49
+	ret = pyfcgi_logger_format_add(fmt, &s);
50
+	ck_assert_int_eq(ret, 0);
51
+	ck_assert_int_eq(conf->format_sz, 2);
52
+	ck_assert_int_eq(s, 0);
53
+	ck_assert_str_eq(conf->formats[s].fmt, fmt);
40 54
 
41 55
 }
42 56
 END_TEST
43 57
 
58
+START_TEST(test_logger_add)
59
+{
60
+	char tmplog[128];
61
+	snprintf(tmplog, 128, "%s/%s", tmpdir, "format_add.log");
62
+	pyfcgi_logger_add(tmplog, 0xFF, 0xFF, NULL);
63
+}
64
+END_TEST
65
+
44 66
 /*
45 67
 	TC logger default values
46 68
 */
@@ -117,6 +139,20 @@ START_TEST(test_logger_parse_field_datetime_default)
117 139
 }
118 140
 END_TEST
119 141
 
142
+START_TEST(test_logger_format_add_default)
143
+{
144
+	int ret;
145
+	size_t s;
146
+	pyfcgi_logger_init();
147
+
148
+	ret = pyfcgi_logger_format_add(NULL, &s);
149
+	ck_assert_int_eq(ret, 0);
150
+	ck_assert_int_eq(conf->format_sz, 1);
151
+	ck_assert_int_eq(s, 0);
152
+	ck_assert_str_eq(conf->formats[s].fmt, PYFCGI_LOGGER_TIME_FMT_DEFAULT);
153
+}
154
+END_TEST
155
+
120 156
 /*
121 157
 	TC logger field parsing
122 158
 */
@@ -476,6 +512,7 @@ Suite * logger_suite(void)
476 512
 	tcase_add_test(tc_field_default, test_logger_parse_field_dtfmt_default);
477 513
 	tcase_add_test(tc_field_default, test_logger_parse_field_sz_default);
478 514
 	tcase_add_test(tc_field_default, test_logger_parse_field_datetime_default);
515
+	tcase_add_test(tc_field_default, test_logger_format_add_default);
479 516
 	suite_add_tcase(s, tc_field_default);
480 517
 
481 518
 	tc_field = tcase_create("Logger format parsing");
@@ -509,6 +546,8 @@ int main(void)
509 546
 	Suite *s;
510 547
 	SRunner *sr;
511 548
 
549
+	mkdtemp(tmpdir);
550
+
512 551
 	s = logger_suite();
513 552
 	sr = srunner_create(s);
514 553
 	
@@ -518,5 +557,8 @@ int main(void)
518 557
 	srunner_run_all(sr, CK_VERBOSE);
519 558
 	nfailed = srunner_ntests_failed(sr);
520 559
 	srunner_free(sr);
560
+
561
+	rmdir(tmpdir);
562
+
521 563
 	return (!nfailed)?EXIT_SUCCESS:EXIT_FAILURE;
522 564
 }

Loading…
Cancel
Save