diff options
Diffstat (limited to 'src/fluent-bit/tests/runtime/CMakeLists.txt')
-rw-r--r-- | src/fluent-bit/tests/runtime/CMakeLists.txt | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/fluent-bit/tests/runtime/CMakeLists.txt b/src/fluent-bit/tests/runtime/CMakeLists.txt new file mode 100644 index 000000000..d6d3e7101 --- /dev/null +++ b/src/fluent-bit/tests/runtime/CMakeLists.txt @@ -0,0 +1,173 @@ +find_package(Threads REQUIRED) + +include_directories(acutest/) + +define_property(GLOBAL PROPERTY CHECK_PROGRAMS + BRIEF_DOCS "Runtime Test Programs" + FULL_DOCS "Runtime Test Programs") +set_property(GLOBAL PROPERTY CHECK_PROGRAMS "") + +# Macro to set definitions +macro(FLB_RT_TEST BUILT src) + if (${BUILT}) + list(APPEND CHECK_PROGRAMS + ${src} + ) + endif() +endmacro() + +# Macro to set definitions +macro(FLB_RT_CORE_TEST BUILT src) + list(APPEND CHECK_PROGRAMS + ${src} + ) +endmacro() + +# Core +FLB_RT_CORE_TEST(FLB_COROUTINE_TIMEOUT "core-timeout.c") + +FLB_RT_TEST(FLB_CHUNK_TRACE "core_chunk_trace.c") + +# Input Plugins +FLB_RT_TEST(FLB_IN_EVENT_TEST "in_event_test.c") + +if(FLB_OUT_LIB) + # These plugins works only on Linux + if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + FLB_RT_TEST(FLB_IN_CPU "in_cpu.c") + FLB_RT_TEST(FLB_IN_DISK "in_disk.c") + FLB_RT_TEST(FLB_IN_MEM "in_mem.c") + FLB_RT_TEST(FLB_IN_PROC "in_proc.c") + FLB_RT_TEST(FLB_IN_NETIF "in_netif.c") + FLB_RT_TEST(FLB_IN_PODMAN_METRICS "in_podman_metrics.c") + endif() + FLB_RT_TEST(FLB_IN_HEAD "in_head.c") + FLB_RT_TEST(FLB_IN_DUMMY "in_dummy.c") + FLB_RT_TEST(FLB_IN_HTTP "in_http.c") + FLB_RT_TEST(FLB_IN_ELASTICSEARCH "in_elasticsearch.c") + FLB_RT_TEST(FLB_IN_MQTT "in_mqtt.c") + FLB_RT_TEST(FLB_IN_OPENTELEMETRY "in_opentelemetry.c") + FLB_RT_TEST(FLB_IN_RANDOM "in_random.c") + FLB_RT_TEST(FLB_IN_STATSD "in_statsd.c") + FLB_RT_TEST(FLB_IN_SPLUNK "in_splunk.c") + FLB_RT_TEST(FLB_IN_SYSLOG "in_syslog.c") + FLB_RT_TEST(FLB_IN_TAIL "in_tail.c") + FLB_RT_TEST(FLB_IN_UDP "in_udp.c") + FLB_RT_TEST(FLB_IN_TCP "in_tcp.c") + FLB_RT_TEST(FLB_IN_FORWARD "in_forward.c") + FLB_RT_TEST(FLB_IN_FLUENTBIT_METRICS "in_fluentbit_metrics.c") +endif() + +# Filter Plugins +if(FLB_IN_LIB AND FLB_OUT_LIB) + FLB_RT_TEST(FLB_FILTER_AWS "filter_aws.c") + FLB_RT_TEST(FLB_FILTER_CHECKLIST "filter_checklist.c") + FLB_RT_TEST(FLB_FILTER_EXPECT "filter_expect.c") + FLB_RT_TEST(FLB_FILTER_STDOUT "filter_stdout.c") + FLB_RT_TEST(FLB_FILTER_GREP "filter_grep.c") + FLB_RT_TEST(FLB_FILTER_THROTTLE "filter_throttle.c") + FLB_RT_TEST(FLB_FILTER_THROTTLE_SIZE "filter_throttle_size.c") + FLB_RT_TEST(FLB_FILTER_NEST "filter_nest.c") + FLB_RT_TEST(FLB_FILTER_REWRITE_TAG "filter_rewrite_tag.c") + FLB_RT_TEST(FLB_FILTER_KUBERNETES "filter_kubernetes.c") + FLB_RT_TEST(FLB_FILTER_PARSER "filter_parser.c") + FLB_RT_TEST(FLB_FILTER_MODIFY "filter_modify.c") + FLB_RT_TEST(FLB_FILTER_LUA "filter_lua.c") + FLB_RT_TEST(FLB_FILTER_TYPE_CONVERTER "filter_type_converter.c") + FLB_RT_TEST(FLB_FILTER_RECORD_MODIFIER "filter_record_modifier.c") + FLB_RT_TEST(FLB_FILTER_MULTILINE "filter_multiline.c") + if (FLB_FILTER_WASM) + FLB_RT_TEST(FLB_FILTER_WASM "filter_wasm.c") + endif () + FLB_RT_TEST(FLB_FILTER_ECS "filter_ecs.c") + FLB_RT_TEST(FLB_FILTER_LOG_TO_METRICS "filter_log_to_metrics.c") +endif() + + +# Output Plugins +if(FLB_IN_LIB) + FLB_RT_TEST(FLB_OUT_LIB "core_engine.c") + FLB_RT_TEST(FLB_OUT_LIB "core_log.c") + FLB_RT_TEST(FLB_OUT_LIB "config_map_opts.c") + FLB_RT_TEST(FLB_OUT_COUNTER "out_counter.c") + FLB_RT_TEST(FLB_OUT_DATADOG "out_datadog.c") + FLB_RT_TEST(FLB_OUT_SKYWALKING "out_skywalking.c") + FLB_RT_TEST(FLB_OUT_ES "out_elasticsearch.c") + FLB_RT_TEST(FLB_OUT_OPENSEARCH "out_opensearch.c") + FLB_RT_TEST(FLB_OUT_EXIT "out_exit.c") + FLB_RT_TEST(FLB_OUT_FLOWCOUNTER "out_flowcounter.c") + FLB_RT_TEST(FLB_OUT_FORWARD "out_forward.c") + FLB_RT_TEST(FLB_OUT_HTTP "out_http.c") + FLB_RT_TEST(FLB_OUT_LIB "out_lib.c") + FLB_RT_TEST(FLB_OUT_LOKI "out_loki.c") + FLB_RT_TEST(FLB_OUT_NULL "out_null.c") + FLB_RT_TEST(FLB_OUT_PLOT "out_plot.c") + FLB_RT_TEST(FLB_OUT_RETRY "out_retry.c") + FLB_RT_TEST(FLB_OUT_SPLUNK "out_splunk.c") + FLB_RT_TEST(FLB_OUT_STDOUT "out_stdout.c") + FLB_RT_TEST(FLB_OUT_SYSLOG "out_syslog.c") + FLB_RT_TEST(FLB_OUT_TCP "out_tcp.c") + + if (FLB_RECORD_ACCESSOR) + FLB_RT_TEST(FLB_OUT_STACKDRIVER "out_stackdriver.c") + endif() + + FLB_RT_TEST(FLB_OUT_CLOUDWATCH_LOGS "out_cloudwatch.c") + FLB_RT_TEST(FLB_OUT_KINESIS_FIREHOSE "out_firehose.c") + FLB_RT_TEST(FLB_OUT_KINESIS_STREAMS "out_kinesis.c") + # These plugins work only on Linux + if(NOT FLB_SYSTEM_WINDOWS) + FLB_RT_TEST(FLB_OUT_FILE "out_file.c") + endif() + FLB_RT_TEST(FLB_OUT_S3 "out_s3.c") + FLB_RT_TEST(FLB_OUT_TD "out_td.c") + +endif() + +if (FLB_CUSTOM_CALYPTIA) + FLB_RT_TEST(FLB_CUSTOM_CALYPTIA "custom_calyptia_test.c") +endif() + + +# HTTP Client Debug (requires -DFLB_HTTP_CLIENT_DEBUG=On) +if(FLB_HTTP_CLIENT_DEBUG) + FLB_RT_TEST(FLB_OUT_TD "http_callbacks.c") +endif() + +set(SYSTEMD_LIB, "") +if(FLB_HAVE_SYSTEMD) + set(SYSTEMD_LIB, "systemd") +endif() + +set(FLB_TESTS_DATA_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/flb_tests_runtime.h.in" + "${CMAKE_CURRENT_SOURCE_DIR}/flb_tests_runtime.h" + ) + +foreach(source_file ${CHECK_PROGRAMS}) + get_filename_component(o_source_file_we ${source_file} NAME_WE) + set(source_file_we flb-rt-${o_source_file_we}) + if(FLB_WITHOUT_${source_file_we}) + message("Skipping test ${source_file_we}") + else() + add_executable( + ${source_file_we} + ${source_file} + ) + add_sanitizers(${source_file_we}) + target_link_libraries(${source_file_we} + fluent-bit-static + ${CMAKE_THREAD_LIBS_INIT} + ${SYSTEMD_LIB} + ) + if(FLB_AVRO_ENCODER) + target_link_libraries(${source_file_we} avro-static jansson) + endif() + add_test(NAME ${source_file_we} + COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${source_file_we} + WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/build) + set_tests_properties(${source_file_we} PROPERTIES LABELS "runtime") + set_property(TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-D${o_source_file_we}") + endif() +endforeach() |