Skip to content

Commit d9b5468

Browse files
authored
tests: internal: log: make cache_basic_timeout more stable (fluent#6657)
Signed-off-by: Takahiro Yamashita <[email protected]>
1 parent 72b4e39 commit d9b5468

File tree

1 file changed

+51
-18
lines changed

1 file changed

+51
-18
lines changed

tests/internal/log.c

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,41 @@
1111
#define TEST_RECORD_02 "other type of message"
1212
#define TEST_RECORD_02_SIZE sizeof(TEST_RECORD_02) - 1
1313

14+
static int check_interval(int timeout, int *interval)
15+
{
16+
if (!TEST_CHECK( (*interval >= timeout - 1) && *interval <= timeout) ) {
17+
TEST_MSG("interval error. got=%d expect=%d-%d", *interval, timeout -1 ,timeout);
18+
return -1;
19+
}
20+
21+
return 0;
22+
}
23+
24+
static int update_and_check_interval(int timeout, int ret, int *interval)
25+
{
26+
int ret_val;
27+
28+
if (ret == FLB_TRUE) {
29+
*interval += 1;
30+
return 0;
31+
}
32+
33+
/* false means timeout. check interval. */
34+
ret_val = check_interval(timeout, interval);
35+
*interval = 0; /* reset interval */
36+
37+
return ret_val;
38+
}
39+
1440
static void cache_basic_timeout()
1541
{
1642
int i;
43+
int ret;
1744
int ret_1;
1845
int ret_2;
46+
int timeout = 5;
47+
int interval1 = 0;
48+
int interval2 = 0;
1949
struct flb_log_cache *cache;
2050
struct flb_log_cache_entry *entry;
2151

@@ -45,32 +75,35 @@ static void cache_basic_timeout()
4575
flb_log_cache_destroy(cache);
4676

4777
/* create a new cache */
48-
cache = flb_log_cache_create(5, 4);
78+
cache = flb_log_cache_create(timeout, 4);
4979
TEST_CHECK(cache != NULL);
5080

51-
for (i = 0; i < 10; i++) {
52-
ret_1 = flb_log_cache_check_suppress(cache, TEST_RECORD_01, TEST_RECORD_01_SIZE);
53-
ret_2 = flb_log_cache_check_suppress(cache, TEST_RECORD_02, TEST_RECORD_02_SIZE);
81+
ret_1 = flb_log_cache_check_suppress(cache, TEST_RECORD_01, TEST_RECORD_01_SIZE);
82+
ret_2 = flb_log_cache_check_suppress(cache, TEST_RECORD_02, TEST_RECORD_02_SIZE);
83+
TEST_CHECK(ret_1 == FLB_FALSE);
84+
TEST_CHECK(ret_2 == FLB_FALSE);
85+
sleep(1);
5486

55-
if (i == 0) {
56-
TEST_CHECK(ret_1 == FLB_FALSE);
57-
TEST_CHECK(ret_2 == FLB_FALSE);
58-
}
59-
else if (i >= 1 && i < 5) {
60-
TEST_CHECK(ret_1 == FLB_TRUE);
61-
TEST_CHECK(ret_2 == FLB_TRUE);
62-
}
63-
else if (i == 5) {
64-
TEST_CHECK(ret_1 == FLB_FALSE);
65-
TEST_CHECK(ret_2 == FLB_FALSE);
87+
for (i = 1; i < 10; i++) {
88+
ret_1 = flb_log_cache_check_suppress(cache, TEST_RECORD_01, TEST_RECORD_01_SIZE);
89+
ret = update_and_check_interval(timeout, ret_1, &interval1);
90+
if (!TEST_CHECK(ret == 0)) {
91+
TEST_MSG("update_and_check_interval for TEST_RECORD_01 failed. i=%d", i);
6692
}
67-
else {
68-
TEST_CHECK(ret_1 == FLB_TRUE);
69-
TEST_CHECK(ret_2 == FLB_TRUE);
93+
94+
ret_2 = flb_log_cache_check_suppress(cache, TEST_RECORD_02, TEST_RECORD_02_SIZE);
95+
ret = update_and_check_interval(timeout, ret_2, &interval2);
96+
if (!TEST_CHECK(ret == 0)) {
97+
TEST_MSG("update_and_check_interval for TEST_RECORD_02 failed. i=%d", i);
7098
}
7199

72100
sleep(1);
73101
}
102+
ret = update_and_check_interval(timeout, ret_1, &interval1);
103+
TEST_CHECK(ret == 0);
104+
105+
ret = update_and_check_interval(timeout, ret_2, &interval2);
106+
TEST_CHECK(ret == 0);
74107

75108
ret_1 = flb_log_cache_check_suppress(cache, TEST_RECORD_01, TEST_RECORD_01_SIZE);
76109
TEST_CHECK(ret_1 == FLB_FALSE);

0 commit comments

Comments
 (0)