To make sure everything still compiles, we add a preliminary include of forward.h to tests.h to make sure it is included in every test source file. We'll clean up the tests.h includes in a later commit. We also add a <errno.h> include to errno-list.h to keep test-errno-list.c compiling. It'll be removed again when we clean up includes in src/basic. Split out of #37344.
43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
|
|
#include <unistd.h>
|
|
|
|
#include "ratelimit.h"
|
|
#include "tests.h"
|
|
#include "time-util.h"
|
|
|
|
TEST(ratelimit_below) {
|
|
int i;
|
|
RateLimit ratelimit = { 1 * USEC_PER_SEC, 10 };
|
|
|
|
for (i = 0; i < 10; i++)
|
|
assert_se(ratelimit_below(&ratelimit));
|
|
assert_se(!ratelimit_below(&ratelimit));
|
|
sleep(1);
|
|
for (i = 0; i < 10; i++)
|
|
assert_se(ratelimit_below(&ratelimit));
|
|
|
|
ratelimit = (const RateLimit) { 0, 10 };
|
|
for (i = 0; i < 10000; i++)
|
|
assert_se(ratelimit_below(&ratelimit));
|
|
}
|
|
|
|
TEST(ratelimit_num_dropped) {
|
|
int i;
|
|
RateLimit ratelimit = { 1 * USEC_PER_SEC, 10 };
|
|
|
|
for (i = 0; i < 10; i++) {
|
|
assert_se(ratelimit_below(&ratelimit));
|
|
assert_se(ratelimit_num_dropped(&ratelimit) == 0);
|
|
}
|
|
assert_se(!ratelimit_below(&ratelimit));
|
|
assert_se(ratelimit_num_dropped(&ratelimit) == 1);
|
|
assert_se(!ratelimit_below(&ratelimit));
|
|
assert_se(ratelimit_num_dropped(&ratelimit) == 2);
|
|
sleep(1);
|
|
assert_se(ratelimit_below(&ratelimit));
|
|
assert_se(ratelimit_num_dropped(&ratelimit) == 0);
|
|
}
|
|
|
|
DEFINE_TEST_MAIN(LOG_INFO);
|