10 #include <loglimiter.h>
11 #include <loglimiter-internal.h>
14 void advance_clock(void)
18 time_t __wrap_time(time_t *t)
24 pid_t __wrap_getpid(void)
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);
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)
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;
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;
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;
65 log_config_remove(&conf, "pidlimit|55");
66 __log_limiter_update(&conf);
69 for (int i = 0; i < 1936; ++i) PASS;
71 for (int i = 0; i < 1; ++i) MSG;
72 for (int i = 1; i < 1939; ++i) BLOCK; // ¡No pasarán!
74 for (int i = 0; i < 1975; ++i) PASS; // Hemos pasado
79 __log_limiter_destroy();