Replace () with (void) in function prototypes
[platform/core/system/dlog.git] / src / tests / pid_limiter.c
1 // C
2 #include <assert.h>
3 #include <stdio.h>
4
5 // POSIX
6 #include <time.h>
7
8 // DLog
9 #include <dlog.h>
10 #include <loglimiter.h>
11 #include <loglimiter-internal.h>
12
13 time_t time_ret = 0;
14 void advance_clock(void)
15 {
16         time_ret += 61;
17 }
18 time_t __wrap_time(time_t *t)
19 {
20         return time_ret;
21 }
22
23 pid_t pid_ret = 0;
24 pid_t __wrap_getpid(void)
25 {
26         return pid_ret;
27 }
28
29 int main(void)
30 {
31         struct log_config conf = {NULL, NULL};
32         log_config_set(&conf, "pidlimit|77", "7");
33         log_config_set(&conf, "pidlimit|88", "0");
34         log_config_set(&conf, "pidlimit|55", "125");
35         assert(__log_limiter_create(&conf));
36         __log_limiter_update(&conf);
37
38 #define PASS  assert(__log_limiter_pass_log("FOO", 'W').decision == DECISION_ALLOWED)
39 #define MSG   assert(__log_limiter_pass_log("FOO", 'W').decision == DECISION_PID_LIMIT_EXCEEDED_MESSAGE)
40 #define BLOCK assert(__log_limiter_pass_log("FOO", 'W').decision == DECISION_DENIED)
41
42         pid_ret = 77;
43         for (int i =   0; i <   7; ++i) PASS;
44         for (int i =   7; i <   8; ++i) MSG;
45         for (int i =   8; i < 100; ++i) BLOCK;
46         __log_limiter_update(&conf); // shouldn't have any effect
47         for (int i = 100; i < 200; ++i) BLOCK;
48
49         advance_clock();
50
51         for (int i =   0; i <   7; ++i) PASS;
52         for (int i =   7; i <   8; ++i) MSG;
53         for (int i =   8; i < 100; ++i) BLOCK;
54         pid_ret = 55; // pid change emulates a fork
55         for (int i =   0; i < 125; ++i) PASS;
56         for (int i = 125; i < 126; ++i) MSG;
57         for (int i = 126; i < 333; ++i) BLOCK;
58
59         advance_clock();
60
61         for (int i =   0; i < 125; ++i) PASS;
62         for (int i = 125; i < 126; ++i) MSG;
63         for (int i = 126; i < 333; ++i) BLOCK;
64
65         log_config_remove(&conf, "pidlimit|55");
66         __log_limiter_update(&conf);
67         advance_clock();
68
69         for (int i = 0; i < 1936; ++i) PASS;
70         pid_ret = 88;
71         for (int i = 0; i <    1; ++i) MSG;
72         for (int i = 1; i < 1939; ++i) BLOCK; // ¡No pasarán!
73         pid_ret = 99;
74         for (int i = 0; i < 1975; ++i) PASS; // Hemos pasado
75
76 #undef BLOCK
77 #undef PASS
78
79         __log_limiter_destroy();
80 }