Skip to content

Commit 6174e0e

Browse files
committed
tests: runtime: Make Window compatible for out_file and rotated cases
Signed-off-by: Hiroshi Hatake <hiroshi@chronosphere.io>
1 parent aba8c90 commit 6174e0e

3 files changed

Lines changed: 47 additions & 41 deletions

File tree

tests/runtime/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,8 @@ if(FLB_IN_LIB)
287287
FLB_RT_TEST(FLB_OUT_LIB "group_counter_semantics.c")
288288
endif()
289289
endif()
290-
# These plugins work only on Linux
291-
if(NOT FLB_SYSTEM_WINDOWS)
292-
FLB_RT_TEST(FLB_OUT_FILE "out_file.c")
293-
FLB_RT_TEST(FLB_OUT_FILE "out_file_rotation.c")
294-
endif()
290+
FLB_RT_TEST(FLB_OUT_FILE "out_file.c")
291+
FLB_RT_TEST(FLB_OUT_FILE "out_file_rotation.c")
295292
FLB_RT_TEST(FLB_OUT_S3 "out_s3.c")
296293
FLB_RT_TEST(FLB_OUT_GCS "out_gcs.c")
297294
if (FLB_IN_OPENTELEMETRY AND FLB_OUT_S3)

tests/runtime/out_file.c

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,8 @@ void flb_test_file_path(void)
426426
flb_sds_printf(&path, "%s/%s", TEST_LOGPATH, file);
427427

428428
remove(path);
429-
remove(TEST_LOGPATH);
430-
ret = mkdir(TEST_LOGPATH, S_IRUSR | S_IWUSR | S_IXUSR);
429+
flb_test_rmdir(TEST_LOGPATH);
430+
ret = flb_test_mkdir(TEST_LOGPATH);
431431
if (!TEST_CHECK(ret == 0)) {
432432
TEST_MSG("mkdir failed:path=%s errno=%d",TEST_LOGPATH, errno);
433433
flb_sds_destroy(path);
@@ -469,7 +469,7 @@ void flb_test_file_path(void)
469469
}
470470
flb_sds_destroy(path);
471471
flb_sds_destroy(file);
472-
remove(TEST_LOGPATH);
472+
flb_test_rmdir(TEST_LOGPATH);
473473
}
474474

475475
void flb_test_file_path_file(void)
@@ -492,8 +492,8 @@ void flb_test_file_path_file(void)
492492
flb_sds_printf(&path, "%s/%s", TEST_LOGPATH, TEST_LOGFILE);
493493

494494
remove(path);
495-
remove(TEST_LOGPATH);
496-
ret = mkdir(TEST_LOGPATH, S_IRUSR | S_IWUSR | S_IXUSR);
495+
flb_test_rmdir(TEST_LOGPATH);
496+
ret = flb_test_mkdir(TEST_LOGPATH);
497497
if (!TEST_CHECK(ret == 0)) {
498498
TEST_MSG("mkdir failed:path=%s errno=%d",TEST_LOGPATH, errno);
499499
flb_sds_destroy(path);
@@ -534,7 +534,7 @@ void flb_test_file_path_file(void)
534534
remove(path);
535535
}
536536
flb_sds_destroy(path);
537-
remove(TEST_LOGPATH);
537+
flb_test_rmdir(TEST_LOGPATH);
538538
}
539539

540540
#define JSON_BASIC "[1448403340,{\"key1\":\"val1\", \"key2\":\"val2\"}]"
@@ -570,10 +570,10 @@ void flb_test_file_dynamic_path_file(void)
570570
snprintf(path2, sizeof(path2), "%s/file.20151124", dir2);
571571
remove(path1);
572572
remove(path2);
573-
rmdir(dir1);
574-
rmdir(dir2);
575-
rmdir(tag_dir);
576-
rmdir(TEST_LOGPATH);
573+
flb_test_rmdir(dir1);
574+
flb_test_rmdir(dir2);
575+
flb_test_rmdir(tag_dir);
576+
flb_test_rmdir(TEST_LOGPATH);
577577

578578
ctx = flb_create();
579579
flb_service_set(ctx, "Flush", "1", "Grace", "1",
@@ -609,10 +609,10 @@ void flb_test_file_dynamic_path_file(void)
609609

610610
remove(path1);
611611
remove(path2);
612-
rmdir(dir1);
613-
rmdir(dir2);
614-
rmdir(tag_dir);
615-
rmdir(TEST_LOGPATH);
612+
flb_test_rmdir(dir1);
613+
flb_test_rmdir(dir2);
614+
flb_test_rmdir(tag_dir);
615+
flb_test_rmdir(TEST_LOGPATH);
616616
}
617617

618618
void flb_test_file_dynamic_timestamp(void)
@@ -627,7 +627,7 @@ void flb_test_file_dynamic_timestamp(void)
627627

628628
snprintf(path, sizeof(path), "%s/events.20151124.log", TEST_LOGPATH);
629629
remove(path);
630-
rmdir(TEST_LOGPATH);
630+
flb_test_rmdir(TEST_LOGPATH);
631631

632632
ctx = flb_create();
633633
flb_service_set(ctx, "Flush", "1", "Grace", "1",
@@ -659,7 +659,7 @@ void flb_test_file_dynamic_timestamp(void)
659659
flb_destroy(ctx);
660660

661661
remove(path);
662-
rmdir(TEST_LOGPATH);
662+
flb_test_rmdir(TEST_LOGPATH);
663663
}
664664

665665
void flb_test_file_dynamic_requires_fallback(void)
@@ -703,7 +703,7 @@ void flb_test_file_dynamic_missing_fallback(void)
703703

704704
snprintf(fallback, sizeof(fallback), "%s/fallback.log", TEST_LOGPATH);
705705
remove(fallback);
706-
rmdir(TEST_LOGPATH);
706+
flb_test_rmdir(TEST_LOGPATH);
707707

708708
ctx = flb_create();
709709
flb_service_set(ctx, "Flush", "1", "Grace", "1", "Log_Level", "error", NULL);
@@ -734,7 +734,7 @@ void flb_test_file_dynamic_missing_fallback(void)
734734
flb_destroy(ctx);
735735

736736
remove(fallback);
737-
rmdir(TEST_LOGPATH);
737+
flb_test_rmdir(TEST_LOGPATH);
738738
}
739739

740740
void flb_test_file_dynamic_unsafe_fallback(void)
@@ -750,7 +750,7 @@ void flb_test_file_dynamic_unsafe_fallback(void)
750750
snprintf(fallback, sizeof(fallback), "%s/fallback.log", TEST_LOGPATH);
751751
remove(fallback);
752752
remove("escape.log");
753-
rmdir(TEST_LOGPATH);
753+
flb_test_rmdir(TEST_LOGPATH);
754754

755755
ctx = flb_create();
756756
flb_service_set(ctx, "Flush", "1", "Grace", "1", "Log_Level", "error", NULL);
@@ -782,7 +782,7 @@ void flb_test_file_dynamic_unsafe_fallback(void)
782782

783783
TEST_CHECK(access("escape.log", F_OK) != 0);
784784
remove(fallback);
785-
rmdir(TEST_LOGPATH);
785+
flb_test_rmdir(TEST_LOGPATH);
786786
}
787787

788788
void flb_test_file_dynamic_windows_unsafe_fallback(void)
@@ -800,7 +800,7 @@ void flb_test_file_dynamic_windows_unsafe_fallback(void)
800800
snprintf(unsafe, sizeof(unsafe), "%s/host:one.log", TEST_LOGPATH);
801801
remove(fallback);
802802
remove(unsafe);
803-
rmdir(TEST_LOGPATH);
803+
flb_test_rmdir(TEST_LOGPATH);
804804

805805
ctx = flb_create();
806806
flb_service_set(ctx, "Flush", "1", "Grace", "1", "Log_Level", "error", NULL);
@@ -833,7 +833,7 @@ void flb_test_file_dynamic_windows_unsafe_fallback(void)
833833
TEST_CHECK(access(unsafe, F_OK) != 0);
834834
remove(fallback);
835835
remove(unsafe);
836-
rmdir(TEST_LOGPATH);
836+
flb_test_rmdir(TEST_LOGPATH);
837837
}
838838

839839
void flb_test_file_dynamic_limit_fallback(void)
@@ -854,7 +854,7 @@ void flb_test_file_dynamic_limit_fallback(void)
854854
remove(first);
855855
remove(second);
856856
remove(overflow);
857-
rmdir(TEST_LOGPATH);
857+
flb_test_rmdir(TEST_LOGPATH);
858858

859859
ctx = flb_create();
860860
flb_service_set(ctx, "Flush", "1", "Grace", "1", "Log_Level", "error", NULL);
@@ -891,7 +891,7 @@ void flb_test_file_dynamic_limit_fallback(void)
891891
remove(first);
892892
remove(second);
893893
remove(overflow);
894-
rmdir(TEST_LOGPATH);
894+
flb_test_rmdir(TEST_LOGPATH);
895895
}
896896

897897
void flb_test_file_dynamic_path_traversal_fallback(void)
@@ -907,7 +907,7 @@ void flb_test_file_dynamic_path_traversal_fallback(void)
907907
snprintf(fallback, sizeof(fallback), "%s/fallback.log", TEST_LOGPATH);
908908
remove(fallback);
909909
remove("unsafe.log");
910-
rmdir(TEST_LOGPATH);
910+
flb_test_rmdir(TEST_LOGPATH);
911911

912912
ctx = flb_create();
913913
flb_service_set(ctx, "Flush", "1", "Grace", "1", "Log_Level", "error", NULL);
@@ -939,7 +939,7 @@ void flb_test_file_dynamic_path_traversal_fallback(void)
939939

940940
TEST_CHECK(access("unsafe.log", F_OK) != 0);
941941
remove(fallback);
942-
rmdir(TEST_LOGPATH);
942+
flb_test_rmdir(TEST_LOGPATH);
943943
}
944944

945945
void flb_test_file_delim_csv(void)
@@ -1203,7 +1203,7 @@ void flb_test_file_mkdir(void)
12031203
flb_sds_printf(&path, "%s/%s", TEST_LOGPATH, file);
12041204

12051205
remove(path);
1206-
remove(TEST_LOGPATH);
1206+
flb_test_rmdir(TEST_LOGPATH);
12071207

12081208
ctx = flb_create();
12091209
flb_service_set(ctx, "Flush", "1", "Grace", "1", "Log_Level", "error", NULL);
@@ -1240,5 +1240,5 @@ void flb_test_file_mkdir(void)
12401240
}
12411241
flb_sds_destroy(path);
12421242
flb_sds_destroy(file);
1243-
remove(TEST_LOGPATH);
1243+
flb_test_rmdir(TEST_LOGPATH);
12441244
}

tests/runtime/out_file_rotation.c

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
11
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
22

3+
#include <fluent-bit/flb_compat.h>
34
#include "flb_tests_runtime.h"
45
#include <fluent-bit.h>
5-
#include <fluent-bit/flb_compat.h>
66
#include <fluent-bit/flb_engine.h>
77
#include <fluent-bit/flb_gzip.h>
88
#include <fluent-bit/flb_output.h>
9+
#include <fluent-bit/flb_pthread.h>
910
#include <fluent-bit/flb_sds.h>
1011
#include <fluent-bit/flb_time.h>
1112
#include <cmetrics/cmt_counter.h>
1213
#include <limits.h>
13-
#include <pthread.h>
1414
#include <string.h>
1515
#include <sys/stat.h>
1616
#include <sys/types.h>
1717
#include <time.h>
1818
#ifndef FLB_SYSTEM_WINDOWS
1919
#include <dirent.h>
2020
#include <unistd.h>
21-
#define TEST_MKDIR(path) mkdir(path, 0755)
2221
#define PATH_SEPARATOR "/"
2322
#else
2423
#include <direct.h>
2524
#include <windows.h>
26-
#define TEST_MKDIR(path) _mkdir(path)
2725
#define PATH_SEPARATOR "\\"
2826
/* Windows S_ISDIR compatibility */
2927
#ifndef S_ISDIR
3028
#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
3129
#endif
30+
3231
#endif
3332

33+
#define TEST_MKDIR(path) flb_test_mkdir(path)
34+
3435
/* Test data */
3536
#include "data/common/json_invalid.h" /* JSON_INVALID */
3637
#include "data/common/json_long.h" /* JSON_LONG */
@@ -228,7 +229,7 @@ static int recursive_delete_directory(const char *dir_path)
228229
closedir(dir);
229230

230231
/* Remove the directory itself */
231-
if (rmdir(dir_path) != 0) {
232+
if (flb_test_rmdir(dir_path) != 0) {
232233
ret = -1;
233234
}
234235

@@ -1118,11 +1119,15 @@ void flb_test_file_rotation_path(void)
11181119
TEST_LOGPATH);
11191120
recursive_delete_directory(TEST_LOGPATH);
11201121
TEST_MKDIR(TEST_LOGPATH);
1122+
#ifdef __GNUC__
11211123
#pragma GCC diagnostic push
11221124
#pragma GCC diagnostic ignored "-Wformat-truncation"
1125+
#endif
11231126
snprintf(logfile, sizeof(logfile), "%s" PATH_SEPARATOR "path_test.log",
11241127
test_path);
1128+
#ifdef __GNUC__
11251129
#pragma GCC diagnostic pop
1130+
#endif
11261131

11271132
ctx = flb_create();
11281133
TEST_ASSERT(flb_service_set(ctx, "Flush", TEST_FLUSH_INTERVAL, "Grace", "1", "Log_Level",
@@ -1179,11 +1184,15 @@ void flb_test_file_rotation_mkdir(void)
11791184
"%s" PATH_SEPARATOR "nested" PATH_SEPARATOR "deep" PATH_SEPARATOR
11801185
"path",
11811186
TEST_LOGPATH);
1187+
#ifdef __GNUC__
11821188
#pragma GCC diagnostic push
11831189
#pragma GCC diagnostic ignored "-Wformat-truncation"
1190+
#endif
11841191
snprintf(logfile, sizeof(logfile), "%s" PATH_SEPARATOR "test_mkdir.log",
11851192
nested_path);
1193+
#ifdef __GNUC__
11861194
#pragma GCC diagnostic pop
1195+
#endif
11871196

11881197
recursive_delete_directory(TEST_LOGPATH);
11891198

@@ -2028,8 +2037,8 @@ void flb_test_file_rotation_gzip_compression_exact_chunk(void)
20282037
json_payload = flb_malloc(json_size);
20292038
TEST_CHECK(json_payload != NULL);
20302039

2031-
snprintf(json_payload, json_size, "[%lu, {\"message\": \"%s\"}]",
2032-
time(NULL), large_message);
2040+
snprintf(json_payload, json_size, "[%lld, {\"message\": \"%s\"}]",
2041+
(long long) time(NULL), large_message);
20332042

20342043
bytes = flb_lib_push(ctx, in_ffd, json_payload, strlen(json_payload));
20352044
TEST_CHECK(bytes == strlen(json_payload));
@@ -2463,7 +2472,7 @@ void flb_test_file_rotation_open_failure_releases_lock(void)
24632472
#ifdef FLB_SYSTEM_WINDOWS
24642473
TEST_ASSERT(RemoveDirectoryA(logfile) != 0);
24652474
#else
2466-
TEST_ASSERT(rmdir(logfile) == 0);
2475+
TEST_ASSERT(flb_test_rmdir(logfile) == 0);
24672476
#endif
24682477

24692478
for (i = 0; i < 3; i++) {

0 commit comments

Comments
 (0)