|
@@ -6,6 +6,9 @@
|
6
|
6
|
|
7
|
7
|
pyfcgi_conf_logger_t *conf = &PyFCGI_conf.logs;
|
8
|
8
|
|
|
9
|
+/*
|
|
10
|
+ TC logger init
|
|
11
|
+*/
|
9
|
12
|
START_TEST(test_logger_init)
|
10
|
13
|
{
|
11
|
14
|
|
|
@@ -35,6 +38,10 @@ START_TEST(test_logger_format_add)
|
35
|
38
|
END_TEST
|
36
|
39
|
*/
|
37
|
40
|
|
|
41
|
+/*
|
|
42
|
+ TC logger default values
|
|
43
|
+*/
|
|
44
|
+
|
38
|
45
|
START_TEST(test_logger_parse_field_dtfmt_default)
|
39
|
46
|
{
|
40
|
47
|
int ret;
|
|
@@ -65,6 +72,7 @@ START_TEST(test_logger_parse_field_sz_default)
|
65
|
72
|
ptr = *orig;
|
66
|
73
|
|
67
|
74
|
ret = pyfcgi_logger_parse_field_sz((const char**)&ptr, &val);
|
|
75
|
+ ck_assert_int_eq(ret, 0);
|
68
|
76
|
ck_assert_int_eq(val, 0);
|
69
|
77
|
ck_assert_ptr_eq(ptr, (*orig)+1);
|
70
|
78
|
orig++;
|
|
@@ -106,6 +114,10 @@ START_TEST(test_logger_parse_field_datetime_default)
|
106
|
114
|
}
|
107
|
115
|
END_TEST
|
108
|
116
|
|
|
117
|
+/*
|
|
118
|
+ TC logger field parsing
|
|
119
|
+*/
|
|
120
|
+
|
109
|
121
|
START_TEST(test_logger_parse_field_sz)
|
110
|
122
|
{
|
111
|
123
|
int ret, *res;
|
|
@@ -353,10 +365,63 @@ START_TEST(test_logger_parse_field_msg)
|
353
|
365
|
}
|
354
|
366
|
END_TEST
|
355
|
367
|
|
|
368
|
+/*
|
|
369
|
+ TC logger format parsing error
|
|
370
|
+*/
|
|
371
|
+START_TEST(test_logger_parse_field_sz_err)
|
|
372
|
+{
|
|
373
|
+ int ret, *res;
|
|
374
|
+ size_t val;
|
|
375
|
+ char **ptr, **orig;
|
|
376
|
+ char *vals[] = {"-42:%F}", "abc:}", "", "", NULL};
|
|
377
|
+
|
|
378
|
+ orig = vals;
|
|
379
|
+ while(*orig)
|
|
380
|
+ {
|
|
381
|
+ ptr = orig;
|
|
382
|
+
|
|
383
|
+ ret = pyfcgi_logger_parse_field_sz((const char**)ptr, &val);
|
|
384
|
+ ck_assert_int_eq(val, 0);
|
|
385
|
+ ck_assert_int_ne(ret, 0);
|
|
386
|
+ orig++;
|
|
387
|
+ res++;
|
|
388
|
+ }
|
|
389
|
+}
|
|
390
|
+END_TEST
|
|
391
|
+
|
|
392
|
+START_TEST(test_logger_parse_field_parse_err)
|
|
393
|
+{
|
|
394
|
+ int ret;
|
|
395
|
+ char **val, **ptr;
|
|
396
|
+ char err[PYFCGI_LOGGER_FMT_PARSE_ERRSZ];
|
|
397
|
+ char *vals[] = {"foobar}", "::}", "ident", "",
|
|
398
|
+ "level", "pid", "42}", ":ident:", ":ident}", NULL};
|
|
399
|
+ pyfcgi_logger_fmt_field_t field;
|
|
400
|
+
|
|
401
|
+ val = vals;
|
|
402
|
+ memset(&field, 0, sizeof(pyfcgi_logger_fmt_field_t));
|
|
403
|
+ while(*val)
|
|
404
|
+ {
|
|
405
|
+ ptr = val;
|
|
406
|
+ *err = '\0';
|
|
407
|
+
|
|
408
|
+ ret = pyfcgi_logger_parse_field((const char**)ptr,
|
|
409
|
+ (const char*)*ptr, &field,
|
|
410
|
+ err);
|
|
411
|
+ ck_assert_int_ne(ret, 0);
|
|
412
|
+ ck_assert_int_ne(*err, '\0');
|
|
413
|
+ ck_assert_int_eq(field.type, pyfcgi_logger_field_null);
|
|
414
|
+ val++;
|
|
415
|
+ }
|
|
416
|
+}
|
|
417
|
+END_TEST
|
|
418
|
+
|
|
419
|
+/* Suite, runner & main */
|
|
420
|
+
|
356
|
421
|
Suite * logger_suite(void)
|
357
|
422
|
{
|
358
|
423
|
Suite *s;
|
359
|
|
- TCase *tc_init, *tc_fmt, *tc_fmt_default;
|
|
424
|
+ TCase *tc_init, *tc_field, *tc_field_default, *tc_parse_err;
|
360
|
425
|
|
361
|
426
|
s = suite_create("Logger");
|
362
|
427
|
|
|
@@ -365,21 +430,27 @@ Suite * logger_suite(void)
|
365
|
430
|
//tcase_add_test(tc_init, test_logger_format_add);
|
366
|
431
|
suite_add_tcase(s, tc_init);
|
367
|
432
|
|
368
|
|
- tc_fmt_default = tcase_create("Logger format parsing default values");
|
369
|
|
- tcase_add_test(tc_fmt_default, test_logger_parse_field_dtfmt_default);
|
370
|
|
- tcase_add_test(tc_fmt_default, test_logger_parse_field_sz_default);
|
371
|
|
- tcase_add_test(tc_fmt_default, test_logger_parse_field_datetime_default);
|
372
|
|
- suite_add_tcase(s, tc_fmt_default);
|
373
|
|
-
|
374
|
|
- tc_fmt = tcase_create("Logger format parsing");
|
375
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_sz);
|
376
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_datetime);
|
377
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_level);
|
378
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_facility);
|
379
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_pid);
|
380
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_ident);
|
381
|
|
- tcase_add_test(tc_fmt, test_logger_parse_field_msg);
|
382
|
|
- suite_add_tcase(s, tc_fmt);
|
|
433
|
+ tc_field_default = tcase_create("Logger format parsing default values");
|
|
434
|
+ tcase_add_test(tc_field_default, test_logger_parse_field_dtfmt_default);
|
|
435
|
+ tcase_add_test(tc_field_default, test_logger_parse_field_sz_default);
|
|
436
|
+ tcase_add_test(tc_field_default, test_logger_parse_field_datetime_default);
|
|
437
|
+ suite_add_tcase(s, tc_field_default);
|
|
438
|
+
|
|
439
|
+ tc_field = tcase_create("Logger format parsing");
|
|
440
|
+ tcase_add_test(tc_field, test_logger_parse_field_sz);
|
|
441
|
+ tcase_add_test(tc_field, test_logger_parse_field_datetime);
|
|
442
|
+ tcase_add_test(tc_field, test_logger_parse_field_level);
|
|
443
|
+ tcase_add_test(tc_field, test_logger_parse_field_facility);
|
|
444
|
+ tcase_add_test(tc_field, test_logger_parse_field_pid);
|
|
445
|
+ tcase_add_test(tc_field, test_logger_parse_field_ident);
|
|
446
|
+ tcase_add_test(tc_field, test_logger_parse_field_msg);
|
|
447
|
+ suite_add_tcase(s, tc_field);
|
|
448
|
+
|
|
449
|
+ tc_parse_err = tcase_create("Logger format parsing errors handling");
|
|
450
|
+ tcase_add_test(tc_parse_err, test_logger_parse_field_sz_err);
|
|
451
|
+ tcase_add_test(tc_parse_err, test_logger_parse_field_parse_err);
|
|
452
|
+ suite_add_tcase(s, tc_parse_err);
|
|
453
|
+
|
383
|
454
|
|
384
|
455
|
return s;
|
385
|
456
|
}
|