diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/src/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | test/src/gtest_dynamic_fieldstat.cpp | 12 | ||||
| -rw-r--r-- | test/src/gtest_dynamic_fieldstat_output.cpp | 4 | ||||
| -rw-r--r-- | test/src/gtest_fieldstat_interface.cpp | 201 | ||||
| -rw-r--r-- | test/src/gtest_fieldstat_output.cpp | 271 | ||||
| -rw-r--r-- | test/src/gtest_fieldstat_output_file_instance.cpp | 236 |
6 files changed, 597 insertions, 132 deletions
diff --git a/test/src/CMakeLists.txt b/test/src/CMakeLists.txt index 044eb5d..03311e2 100644 --- a/test/src/CMakeLists.txt +++ b/test/src/CMakeLists.txt @@ -16,4 +16,7 @@ add_executable(gtest_dynamic_fieldstat ${SRC} gtest_dynamic_fieldstat.cpp) target_link_libraries(gtest_dynamic_fieldstat gtest-static) add_executable(gtest_dynamic_fieldstat_output ${SRC} gtest_dynamic_fieldstat_output.cpp) -target_link_libraries(gtest_dynamic_fieldstat_output gtest-static)
\ No newline at end of file +target_link_libraries(gtest_dynamic_fieldstat_output gtest-static) + +add_executable(gtest_fieldstat_output_file_instance ${SRC} gtest_fieldstat_output_file_instance.cpp) +target_link_libraries(gtest_fieldstat_output_file_instance gtest-static)
\ No newline at end of file diff --git a/test/src/gtest_dynamic_fieldstat.cpp b/test/src/gtest_dynamic_fieldstat.cpp index c58d4f3..748ed15 100644 --- a/test/src/gtest_dynamic_fieldstat.cpp +++ b/test/src/gtest_dynamic_fieldstat.cpp @@ -1766,7 +1766,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceIncrbyMultiMetric) { int ret = 0; int n_thread = 64; - int n_loops = 1000; + int n_loops = 100; struct dynamic_metric *dyn_metric, *tmp_dyn_metric; struct dynamic_metric **head = NULL; @@ -1909,7 +1909,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceDecrbyMultiMetric) { int ret = 0; int n_thread = 64; - int n_loops = 1000; + int n_loops = 100; struct dynamic_metric *dyn_metric, *tmp_dyn_metric; struct dynamic_metric **head = NULL; @@ -2053,7 +2053,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceSetMultiMetric) { int ret = 0; int n_thread = 64; - int n_loops = 1000; + int n_loops = 100; struct dynamic_metric *dyn_metric, *tmp_dyn_metric; struct dynamic_metric **head = NULL; @@ -2202,7 +2202,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceMultiIncrbyMultiMetric) { int ret = 0; int n_thread = 64; - int n_loops = 1000; + int n_loops = 100; struct dynamic_metric *dyn_metric, *tmp_dyn_metric; struct dynamic_metric **head = NULL; @@ -2348,7 +2348,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceMultiDecrbyMultiMetric) { int ret = 0; int n_thread = 64; - int n_loops = 1000; + int n_loops = 100; struct dynamic_metric *dyn_metric, *tmp_dyn_metric; struct dynamic_metric **head = NULL; @@ -2493,7 +2493,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceMultiSetMultiMetric) { int ret = 0; int n_thread = 64; - int n_loops = 1000; + int n_loops = 100; struct dynamic_metric *dyn_metric, *tmp_dyn_metric; struct dynamic_metric **head = NULL; diff --git a/test/src/gtest_dynamic_fieldstat_output.cpp b/test/src/gtest_dynamic_fieldstat_output.cpp index fb066c4..eb694bd 100644 --- a/test/src/gtest_dynamic_fieldstat_output.cpp +++ b/test/src/gtest_dynamic_fieldstat_output.cpp @@ -73,9 +73,7 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceMultiIncrby) { int ret = 0; int n_thread = 64; - int n_loops = 100000; - - long long value = 0; + int n_loops = 10000; const char *column_name[] = {"packages", "bytes"}; enum field_type column_type[] = {FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER}; diff --git a/test/src/gtest_fieldstat_interface.cpp b/test/src/gtest_fieldstat_interface.cpp index 558f267..58a5128 100644 --- a/test/src/gtest_fieldstat_interface.cpp +++ b/test/src/gtest_fieldstat_interface.cpp @@ -332,7 +332,208 @@ TEST(FeildStatAPI, FieldStatLineProtocolOutputTableMetric) EXPECT_EQ(n_line, n_loops); fieldstat_instance_free(instance); +} + +TEST(FeildStatAPI, SetMetricRatioPara) +{ + int ret = 0; + struct fieldstat_instance * instance = NULL; + int table_id = -1; + int output_metric_ids[10] = {0}; + FILE *fp; + int n_line = 0; + int n_loops = 5; + char line[2048] = {0}; + cJSON *cjson_metric = NULL; + cJSON *cjson_tags = NULL; + char *cjson_metric_str = NULL; + + const char *output_file_path = "/tmp/fieldstat.txt"; + const char *output_telegraf_path = "/tmp/metrics.out"; + const char *table_column_name[] = {"rule", "reg/v6", "stream", "IN_Bps", "cpu_us", "PROC_Bps", "IN_Tps", "PROC_Tps","hit_cnt", "hit_rate"}; + const char *compared_file_output = "Sum 0" + " 0 0.00e+00 5.00e+02" + " 5.00e+00 5.00e+01 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00\n"; + + const char *compare = "{\"fields\":{\"IN_Bps\":1000,\"IN_Tps\":0,\"PROC_Tps\":0,\"cpu_us\":10," + "\"hit_cnt\":0,\"hit_rate\":0,\"reg/v6\":0,\"rule\":0,\"stream\":0}," + "\"name\":\"Sum\",\"tags\":{\"app_name\":\"maat\",\"table_name\":\"maat_info\"}}"; + + + enum field_type table_column_type[10] = {FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER}; + + instance = fieldstat_instance_new("maat"); + EXPECT_STREQ("maat", instance->name); + + table_id = fieldstat_register_table(instance, "maat_info", table_column_name, table_column_type, sizeof(table_column_name)/sizeof(table_column_name[0])); + EXPECT_EQ(0, table_id); + ret = fieldstat_register_table_row(instance, table_id, "Sum", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_set_metric_ratio_para(instance, output_metric_ids[5], output_metric_ids[3], output_metric_ids[4], 1); + EXPECT_EQ(0, ret); + ret = fieldstat_set_local_output(instance, output_file_path, "default"); + EXPECT_EQ(0, ret); + ret = fieldstat_set_line_protocol_server(instance, "127.0.0.1", 8600); + EXPECT_EQ(0, ret); + ret = system("cat /dev/null > /tmp/metrics.out"); + EXPECT_EQ(0, ret); + fieldstat_instance_start(instance); + fieldstat_value_incrby(instance, output_metric_ids[3], 1000); + fieldstat_value_incrby(instance, output_metric_ids[4], 10); + sleep(3); + + fp = fopen("/tmp/fieldstat.txt", "r"); + EXPECT_NE(nullptr, fp); + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + if(n_line == 3) + { + EXPECT_STREQ(compared_file_output, line); + } + n_line++; + } + fclose(fp); + EXPECT_EQ(n_line, n_loops); + + fp = fopen(output_telegraf_path, "r"); + EXPECT_NE(nullptr, fp); + n_line = 0; + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + cjson_metric = cJSON_Parse(line); + EXPECT_NE(nullptr, cjson_metric); + cJSON_DeleteItemFromObject(cjson_metric, "timestamp"); + + cjson_tags = cJSON_GetObjectItem(cjson_metric, "tags"); + EXPECT_NE(nullptr, cjson_tags); + cJSON_DeleteItemFromObject(cjson_tags, "host"); + cjson_metric_str = cJSON_PrintUnformatted(cjson_metric); + EXPECT_NE(nullptr, cjson_metric_str); + if(cjson_metric_str) + { + EXPECT_STREQ(compare, cjson_metric_str); + free(cjson_metric_str); + cjson_metric_str = NULL; + } + cJSON_Delete(cjson_metric); + n_line++; + } + fclose(fp); + + fieldstat_instance_free(instance); +} + +TEST(FeildStatAPI, SetMetricInvisible) +{ + int ret = 0; + struct fieldstat_instance * instance = NULL; + int table_id = -1; + int output_metric_ids[10] = {0}; + FILE *fp; + int n_line = 0; + int n_loops = 5; + char line[2048] = {0}; + cJSON *cjson_metric = NULL; + cJSON *cjson_tags = NULL; + char *cjson_metric_str = NULL; + + const char *output_file_path = "/tmp/fieldstat.txt"; + const char *output_telegraf_path = "/tmp/metrics.out"; + const char *table_column_name[] = {"rule", "reg/v6", "stream", "IN_Bps", "cpu_us", "PROC_Bps", "IN_Tps", "PROC_Tps","hit_cnt", "hit_rate"}; + const char *compared_file_output = "Sum " + " 0 0 0.00e+00" + " 5.00e+02 5.00e+01 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00\n"; + + const char *compare = "{\"fields\":{\"IN_Bps\":1000,\"IN_Tps\":0,\"PROC_Tps\":0," + "\"hit_cnt\":0,\"hit_rate\":0,\"reg/v6\":0,\"rule\":0,\"stream\":0}," + "\"name\":\"Sum\",\"tags\":{\"app_name\":\"maat\",\"table_name\":\"maat_info\"}}"; + + + enum field_type table_column_type[10] = {FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER}; + + instance = fieldstat_instance_new("maat"); + EXPECT_STREQ("maat", instance->name); + + table_id = fieldstat_register_table(instance, "maat_info", table_column_name, table_column_type, sizeof(table_column_name)/sizeof(table_column_name[0])); + EXPECT_EQ(0, table_id); + ret = fieldstat_register_table_row(instance, table_id, "Sum", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_set_metric_ratio_para(instance, output_metric_ids[5], output_metric_ids[3], output_metric_ids[4], 1); + EXPECT_EQ(0, ret); + ret = fieldstat_set_metric_invisible_para(instance, output_metric_ids[4]); + EXPECT_EQ(0, ret); + ret = fieldstat_set_local_output(instance, output_file_path, "default"); + EXPECT_EQ(0, ret); + ret = fieldstat_set_line_protocol_server(instance, "127.0.0.1", 8600); + EXPECT_EQ(0, ret); + ret = system("cat /dev/null > /tmp/metrics.out"); + EXPECT_EQ(0, ret); + fieldstat_instance_start(instance); + fieldstat_value_incrby(instance, output_metric_ids[3], 1000); + fieldstat_value_incrby(instance, output_metric_ids[4], 10); + sleep(3); + + fp = fopen("/tmp/fieldstat.txt", "r"); + EXPECT_NE(nullptr, fp); + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + if(n_line == 3) + { + EXPECT_STREQ(compared_file_output, line); + } + n_line++; + } + fclose(fp); + EXPECT_EQ(n_line, n_loops); + + fp = fopen(output_telegraf_path, "r"); + EXPECT_NE(nullptr, fp); + n_line = 0; + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + cjson_metric = cJSON_Parse(line); + EXPECT_NE(nullptr, cjson_metric); + cJSON_DeleteItemFromObject(cjson_metric, "timestamp"); + + cjson_tags = cJSON_GetObjectItem(cjson_metric, "tags"); + EXPECT_NE(nullptr, cjson_tags); + cJSON_DeleteItemFromObject(cjson_tags, "host"); + cjson_metric_str = cJSON_PrintUnformatted(cjson_metric); + EXPECT_NE(nullptr, cjson_metric_str); + if(cjson_metric_str) + { + EXPECT_STREQ(compare, cjson_metric_str); + free(cjson_metric_str); + cjson_metric_str = NULL; + } + cJSON_Delete(cjson_metric); + n_line++; + } + fclose(fp); + fieldstat_instance_free(instance); } diff --git a/test/src/gtest_fieldstat_output.cpp b/test/src/gtest_fieldstat_output.cpp index 9ae18de..852ad10 100644 --- a/test/src/gtest_fieldstat_output.cpp +++ b/test/src/gtest_fieldstat_output.cpp @@ -10,7 +10,7 @@ extern struct prometheus_endpoint_instance g_prometheus_endpoint_instance; TEST(FeildStatOutput, OutputFile) { int ret = 0; - int n_loops = 4; + int n_loops = 5; struct fieldstat_instance * instance = NULL; int table_id = -1; FILE *fp; @@ -19,33 +19,37 @@ TEST(FeildStatOutput, OutputFile) int output_metric_ids[54] = {0}; const char *output_file_path = "/tmp/fieldstat.txt"; - const char *table_column = "network_activity new_conn_num established_conn_num" - " close_conn_num total_in_bytes total_out_bytes total_in_packets " - "total_out_packets default_conn_num default_in_bytes default_out_bytes " - "default_in_packets default_out_packets allow_conn_num allow_in_bytes " - "allow_out_bytes allow_in_packets allow_out_packets deny_conn_num " - "deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets monitor_conn_num " - "monitor_in_bytes monitor_out_bytes monitor_in_packets monitor_out_packets intercept_conn_num " - "intercept_in_bytes intercept_out_bytes intercept_in_packets intercept_out_packets " - "ipv4_in_packets ipv4_in_bytes ipv4_out_packetsipv4_out_bytes ipv6_in_packets ipv6_in_bytes " - "ipv6_out_packets ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes tcp_out_packets " - "tcp_out_bytes udp_conn_num udp_in_packets udp_in_bytes udp_out_packets udp_out_bytes " - "alert_bytes block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; + const char *compared_table_name = "table name: network_activity\n"; + const char *compared_table_column = " new_conn_num established_conn_nu" + " close_conn_num total_in_bytes total_out_bytes total_in_packets" + " total_out_packets default_conn_num default_in_bytes default_out_bytes" + " default_in_packets default_out_packets allow_conn_num allow_in_bytes" + " allow_out_bytes allow_in_packets allow_out_packets deny_conn_num" + " deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets" + " monitor_conn_num monitor_in_bytes monitor_out_bytes monitor_in_packets" + " monitor_out_packets intercept_conn_num intercept_in_bytes intercept_out_bytes" + " intercept_in_packet intercept_out_packe ipv4_in_packets ipv4_in_bytes" + " ipv4_out_packetsipv ipv6_in_packets ipv6_in_bytes ipv6_out_packets" + " ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes" + " tcp_out_packets tcp_out_bytes udp_conn_num udp_in_packets" + " udp_in_bytes udp_out_packets udp_out_bytes alert_bytes" + " block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; - const char *table_row_value = "TRAFFIC 1000 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 \n"; + const char *compared_table_row_value = "TRAFFIC 5.00e+02 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00\n"; + const char *table_column_name[] = {"new_conn_num", "established_conn_num", "close_conn_num", "total_in_bytes", "total_out_bytes", "total_in_packets", "total_out_packets", "default_conn_num", "default_in_bytes", "default_out_bytes", "default_in_packets", "default_out_packets", "allow_conn_num", @@ -81,11 +85,15 @@ TEST(FeildStatOutput, OutputFile) } if(n_line == 1) { - EXPECT_STREQ(table_column, read_line_buf); + EXPECT_STREQ(compared_table_name, read_line_buf); } if(n_line == 2) { - EXPECT_STREQ(table_row_value, read_line_buf); + EXPECT_STREQ(compared_table_column, read_line_buf); + } + if(n_line == 3) + { + EXPECT_STREQ(compared_table_row_value, read_line_buf); } n_line++; } @@ -259,34 +267,36 @@ TEST(FeildStatOutput, OutputFileAndLineProtocol) cJSON *cjson_tags = NULL; const char *output_file_path = "/tmp/fieldstat.txt"; - const char *table_column = "network_activity new_conn_num established_conn_num" - " close_conn_num total_in_bytes total_out_bytes total_in_packets " - "total_out_packets default_conn_num default_in_bytes default_out_bytes " - "default_in_packets default_out_packets allow_conn_num allow_in_bytes " - "allow_out_bytes allow_in_packets allow_out_packets deny_conn_num " - "deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets monitor_conn_num " - "monitor_in_bytes monitor_out_bytes monitor_in_packets monitor_out_packets intercept_conn_num " - "intercept_in_bytes intercept_out_bytes intercept_in_packets intercept_out_packets " - "ipv4_in_packets ipv4_in_bytes ipv4_out_packetsipv4_out_bytes ipv6_in_packets ipv6_in_bytes " - "ipv6_out_packets ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes tcp_out_packets " - "tcp_out_bytes udp_conn_num udp_in_packets udp_in_bytes udp_out_packets udp_out_bytes " - "alert_bytes block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; + const char *compared_table_name = "table name: network_activity\n"; + const char *compared_table_column = " new_conn_num established_conn_nu" + " close_conn_num total_in_bytes total_out_bytes total_in_packets" + " total_out_packets default_conn_num default_in_bytes default_out_bytes" + " default_in_packets default_out_packets allow_conn_num allow_in_bytes" + " allow_out_bytes allow_in_packets allow_out_packets deny_conn_num" + " deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets" + " monitor_conn_num monitor_in_bytes monitor_out_bytes monitor_in_packets" + " monitor_out_packets intercept_conn_num intercept_in_bytes intercept_out_bytes" + " intercept_in_packet intercept_out_packe ipv4_in_packets ipv4_in_bytes" + " ipv4_out_packetsipv ipv6_in_packets ipv6_in_bytes ipv6_out_packets" + " ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes" + " tcp_out_packets tcp_out_bytes udp_conn_num udp_in_packets" + " udp_in_bytes udp_out_packets udp_out_bytes alert_bytes" + " block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; - const char *table_row_value = "TRAFFIC 1000 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 \n"; - + const char *compared_table_row_value = "TRAFFIC 5.00e+02 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00\n"; const char *compare = "{\"fields\":{\"alert_bytes\":0,\"allow_conn_num\":0,\"allow_in_bytes\":0,\"allow_in_packets\":0,\"allow_out_bytes\":0,"\ "\"allow_out_packets\":0,\"block_bytes\":0,\"close_conn_num\":0,\"default_conn_num\":0,\"default_in_bytes\":0,"\ @@ -327,7 +337,7 @@ TEST(FeildStatOutput, OutputFileAndLineProtocol) EXPECT_EQ(12, instance->output_type); ret = system("cat /dev/null > /tmp/metrics.out"); - ret = system("cat /dev/null > /tmp/fieldstat.txt"); + //ret = system("cat /dev/null > /tmp/fieldstat.txt"); fieldstat_instance_start(instance); fieldstat_value_incrby(instance, output_metric_ids[0], 1000); sleep(3); @@ -364,7 +374,7 @@ TEST(FeildStatOutput, OutputFileAndLineProtocol) fp = fopen("/tmp/fieldstat.txt", "r"); EXPECT_NE(nullptr, fp); n_line = 0; - n_loops = 4; + n_loops = 5; while(!feof(fp)) { @@ -374,11 +384,15 @@ TEST(FeildStatOutput, OutputFileAndLineProtocol) } if(n_line == 1) { - EXPECT_STREQ(table_column, read_line_buf); + EXPECT_STREQ(compared_table_name, read_line_buf); } if(n_line == 2) { - EXPECT_STREQ(table_row_value, read_line_buf); + EXPECT_STREQ(compared_table_column, read_line_buf); + } + if(n_line == 3) + { + EXPECT_STREQ(compared_table_row_value, read_line_buf); } n_line++; } @@ -404,35 +418,36 @@ TEST(FeildStatOutput, OutputFileAndPrometheus) const char *prometheus_output_path = "/tmp/prometheus.txt"; const char *file_output_path = "/tmp/fieldstat.txt"; const char *prometheus_output_result = "tsg_statistic_new_conn_num{app_name=\"tsg_statistic\",table_name=\"network_activity\",line_name=\"TRAFFIC\"} 1000\n"; - const char *table_column = "network_activity new_conn_num established_conn_num" - " close_conn_num total_in_bytes total_out_bytes total_in_packets " - "total_out_packets default_conn_num default_in_bytes default_out_bytes " - "default_in_packets default_out_packets allow_conn_num allow_in_bytes " - "allow_out_bytes allow_in_packets allow_out_packets deny_conn_num " - "deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets monitor_conn_num " - "monitor_in_bytes monitor_out_bytes monitor_in_packets monitor_out_packets intercept_conn_num " - "intercept_in_bytes intercept_out_bytes intercept_in_packets intercept_out_packets " - "ipv4_in_packets ipv4_in_bytes ipv4_out_packetsipv4_out_bytes ipv6_in_packets ipv6_in_bytes " - "ipv6_out_packets ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes tcp_out_packets " - "tcp_out_bytes udp_conn_num udp_in_packets udp_in_bytes udp_out_packets udp_out_bytes " - "alert_bytes block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; + const char *compared_table_name = "table name: network_activity\n"; + const char *compared_table_column = " new_conn_num established_conn_nu" + " close_conn_num total_in_bytes total_out_bytes total_in_packets" + " total_out_packets default_conn_num default_in_bytes default_out_bytes" + " default_in_packets default_out_packets allow_conn_num allow_in_bytes" + " allow_out_bytes allow_in_packets allow_out_packets deny_conn_num" + " deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets" + " monitor_conn_num monitor_in_bytes monitor_out_bytes monitor_in_packets" + " monitor_out_packets intercept_conn_num intercept_in_bytes intercept_out_bytes" + " intercept_in_packet intercept_out_packe ipv4_in_packets ipv4_in_bytes" + " ipv4_out_packetsipv ipv6_in_packets ipv6_in_bytes ipv6_out_packets" + " ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes" + " tcp_out_packets tcp_out_bytes udp_conn_num udp_in_packets" + " udp_in_bytes udp_out_packets udp_out_bytes alert_bytes" + " block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; - const char *table_row_value = "TRAFFIC 1000 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 \n"; - - + const char *compared_table_row_value = "TRAFFIC 5.00e+02 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00\n"; const char *table_column_name[] = {"new_conn_num", "established_conn_num", "close_conn_num", "total_in_bytes", "total_out_bytes", "total_in_packets", "total_out_packets", "default_conn_num", "default_in_bytes", "default_out_bytes", "default_in_packets", "default_out_packets", "allow_conn_num", @@ -460,7 +475,7 @@ TEST(FeildStatOutput, OutputFileAndPrometheus) EXPECT_EQ(9, instance->output_type); ret = system("cat /dev/null > /tmp/prometheus.txt"); - ret = system("cat /dev/null > /tmp/fieldstat.txt"); + //ret = system("cat /dev/null > /tmp/fieldstat.txt"); fieldstat_instance_start(instance); fieldstat_value_incrby(instance, output_metric_ids[0], 1000); sleep(3); @@ -470,7 +485,7 @@ TEST(FeildStatOutput, OutputFileAndPrometheus) fp = fopen("/tmp/fieldstat.txt", "r"); EXPECT_NE(nullptr, fp); n_line = 0; - n_loops = 4; + n_loops = 5; while(!feof(fp)) { @@ -480,11 +495,15 @@ TEST(FeildStatOutput, OutputFileAndPrometheus) } if(n_line == 1) { - EXPECT_STREQ(table_column, line); + EXPECT_STREQ(compared_table_name, line); } if(n_line == 2) { - EXPECT_STREQ(table_row_value, line); + EXPECT_STREQ(compared_table_column, line); + } + if(n_line == 3) + { + EXPECT_STREQ(compared_table_row_value, line); } n_line++; } @@ -527,33 +546,37 @@ TEST(FeildStatOutput, OutputFileAndPrometheusAndLineProtocol) const char *file_output_path = "/tmp/fieldstat.txt"; const char *telegraf_output_file = "/tmp/metrics.out"; const char *prometheus_output_result = "tsg_statistic_new_conn_num{app_name=\"tsg_statistic\",table_name=\"network_activity\",line_name=\"TRAFFIC\"} 1000\n"; - const char *table_column = "network_activity new_conn_num established_conn_num" - " close_conn_num total_in_bytes total_out_bytes total_in_packets " - "total_out_packets default_conn_num default_in_bytes default_out_bytes " - "default_in_packets default_out_packets allow_conn_num allow_in_bytes " - "allow_out_bytes allow_in_packets allow_out_packets deny_conn_num " - "deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets monitor_conn_num " - "monitor_in_bytes monitor_out_bytes monitor_in_packets monitor_out_packets intercept_conn_num " - "intercept_in_bytes intercept_out_bytes intercept_in_packets intercept_out_packets " - "ipv4_in_packets ipv4_in_bytes ipv4_out_packetsipv4_out_bytes ipv6_in_packets ipv6_in_bytes " - "ipv6_out_packets ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes tcp_out_packets " - "tcp_out_bytes udp_conn_num udp_in_packets udp_in_bytes udp_out_packets udp_out_bytes " - "alert_bytes block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; + const char *compared_table_name = "table name: network_activity\n"; + const char *compared_table_column = " new_conn_num established_conn_nu" + " close_conn_num total_in_bytes total_out_bytes total_in_packets" + " total_out_packets default_conn_num default_in_bytes default_out_bytes" + " default_in_packets default_out_packets allow_conn_num allow_in_bytes" + " allow_out_bytes allow_in_packets allow_out_packets deny_conn_num" + " deny_in_bytes deny_out_bytes deny_in_packets deny_out_packets" + " monitor_conn_num monitor_in_bytes monitor_out_bytes monitor_in_packets" + " monitor_out_packets intercept_conn_num intercept_in_bytes intercept_out_bytes" + " intercept_in_packet intercept_out_packe ipv4_in_packets ipv4_in_bytes" + " ipv4_out_packetsipv ipv6_in_packets ipv6_in_bytes ipv6_out_packets" + " ipv6_out_bytes tcp_conn_num tcp_in_packets tcp_in_bytes" + " tcp_out_packets tcp_out_bytes udp_conn_num udp_in_packets" + " udp_in_bytes udp_out_packets udp_out_bytes alert_bytes" + " block_bytes pinning_num maybe_pinning_num not_pinning_num\n"; - const char *table_row_value = "TRAFFIC 1000 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 " - "0 0 0 0 \n"; + const char *compared_table_row_value = "TRAFFIC 5.00e+02 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00" + " 0.00e+00 0.00e+00 0.00e+00 0.00e+00\n"; + @@ -600,7 +623,7 @@ TEST(FeildStatOutput, OutputFileAndPrometheusAndLineProtocol) EXPECT_EQ(9, instance->output_type); ret = system("cat /dev/null > /tmp/prometheus.txt"); - ret = system("cat /dev/null > /tmp/fieldstat.txt"); + //ret = system("cat /dev/null > /tmp/fieldstat.txt"); fieldstat_instance_start(instance); fieldstat_value_incrby(instance, output_metric_ids[0], 1000); sleep(3); @@ -610,7 +633,7 @@ TEST(FeildStatOutput, OutputFileAndPrometheusAndLineProtocol) fp = fopen("/tmp/fieldstat.txt", "r"); EXPECT_NE(nullptr, fp); n_line = 0; - n_loops = 4; + n_loops = 5; while(!feof(fp)) { @@ -620,11 +643,15 @@ TEST(FeildStatOutput, OutputFileAndPrometheusAndLineProtocol) } if(n_line == 1) { - EXPECT_STREQ(table_column, line); + EXPECT_STREQ(compared_table_name, line); } if(n_line == 2) { - EXPECT_STREQ(table_row_value, line); + EXPECT_STREQ(compared_table_column, line); + } + if(n_line == 3) + { + EXPECT_STREQ(compared_table_row_value, line); } n_line++; } diff --git a/test/src/gtest_fieldstat_output_file_instance.cpp b/test/src/gtest_fieldstat_output_file_instance.cpp new file mode 100644 index 0000000..3a171de --- /dev/null +++ b/test/src/gtest_fieldstat_output_file_instance.cpp @@ -0,0 +1,236 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <gtest/gtest.h> +#include "fieldstat.h" +#include "fieldstat_internal.h" + +extern struct prometheus_endpoint_instance g_prometheus_endpoint_instance; + +TEST(FeildStatOutput, OutputMaatTable) +{ + int ret = 0; + struct fieldstat_instance * instance = NULL; + int table_id = -1; + int output_metric_ids[54] = {0}; + FILE *fp; + int n_line = 0; + int n_loops = 48; + char line[2048] = {0}; + + const char *output_file_path = "/tmp/fieldstat.txt"; + const char *table_column_name[] = {"rule", "reg", "v6", "stream", "scan_cnt", "scan_bytes", "scan_cpu_time", "hit_cnt"}; + const char *compared_table_row = "PXY_PROFILE_RUN_SCRIPT" + " 9223372036854775807 0 0 0" + " 0 0 0 0\n"; + + enum field_type table_column_type[8] = {FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE}; + + instance = fieldstat_instance_new("maat"); + EXPECT_STREQ("maat", instance->name); + + table_id = fieldstat_register_table(instance, "maat_info", table_column_name, table_column_type, sizeof(table_column_name)/sizeof(table_column_name[0])); + EXPECT_EQ(0, table_id); + ret = fieldstat_register_table_row(instance, table_id, "Sum", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_CTRL_COMPILE", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "GROUP_PXY_CTRL_COMPILE_RELATION", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "GROUP_GROUP_RELATION", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_IP", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_URL", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_URL", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_FQDN", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_FQDN_CAT", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_HOST", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_HOST_CAT", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_HTTP_SIGNATURE", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_REQ_HDR", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_RES_HDR", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_KEYWORDS", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_REQ_BODY", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_HTTP_RES_BODY", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_SUBSCRIBER_ID", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_APP_ID", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_SOURCE_ADDR", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_DESTINATION_ADDR", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_CACHE_COMPILE", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_CACHE_GROUP", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_CACHE_HTTP_URL", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_CACHE_HTTP_COOKIE", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_PROFILE_TRUSTED_CA_CERT", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_OBJ_TRUSTED_CA_CRL", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_PROFILE_RESPONSE_PAGES", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_PROFILE_HIJACK_FILES", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_PROFILE_INSERT_SCRIPTS", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_COMPILE", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_PROFILE_TRAFFIC_MIRROR", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_PROFILE_DECRYPTION", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_AS_NUMBER", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_SOURCE_ASN", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_DESTINATION_ASN", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_OBJ_GEO_LOCATION", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_SOURCE_LOCATION", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_SECURITY_DESTINATION_LOCATION", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_DOH_QNAME", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_DOH_HOST", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "TSG_FIELD_DOH_HOST_CAT", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_SSL_FINGERPRINT", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + ret = fieldstat_register_table_row(instance, table_id, "PXY_PROFILE_RUN_SCRIPTS", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + + ret = fieldstat_set_local_output(instance, output_file_path, "default"); + EXPECT_EQ(0, ret); + fieldstat_instance_start(instance); + fieldstat_value_incrby(instance, output_metric_ids[0], 9223372036854775807); + sleep(3); + + fp = fopen("/tmp/fieldstat.txt", "r"); + EXPECT_NE(nullptr, fp); + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + if(n_line == 46) + { + EXPECT_STREQ(compared_table_row, line); + } + n_line++; + } + fclose(fp); + EXPECT_EQ(n_line, n_loops); + + fieldstat_instance_free(instance); +} + +TEST(FeildStatOutput, OutputMaatGaugeType) +{ + int ret = 0; + struct fieldstat_instance * instance = NULL; + int metric_id = -1; + FILE *fp; + int n_line = 0; + int n_loops = 6; + char line[2048] = {0}; + + const char *output_file_path = "/tmp/fieldstat.txt"; + const char *compared_row = " version: 922 threads: 0 tables: 0 plug_cached: 0 plug_acc: 0 group: 0 \n"; + + instance = fieldstat_instance_new("maat"); + EXPECT_STREQ("maat", instance->name); + + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "version", NULL, 0); + EXPECT_EQ(0, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "threads", NULL, 0); + EXPECT_EQ(1, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "tables", NULL, 0); + EXPECT_EQ(2, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "plug_cached", NULL, 0); + EXPECT_EQ(3, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "plug_acc", NULL, 0); + EXPECT_EQ(4, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "group", NULL, 0); + EXPECT_EQ(5, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "not_grp", NULL, 0); + EXPECT_EQ(6, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "compile", NULL, 0); + EXPECT_EQ(7, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "garbage_num", NULL, 0); + EXPECT_EQ(8, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "outer_mid", NULL, 0); + EXPECT_EQ(9, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "z_stream", NULL, 0); + EXPECT_EQ(10, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "nt_grp_hit", NULL, 0); + EXPECT_EQ(11, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "scan_bytes", NULL, 0); + EXPECT_EQ(12, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "scan_times", NULL, 0); + EXPECT_EQ(13, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "update_err", NULL, 0); + EXPECT_EQ(14, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "scan_error", NULL, 0); + EXPECT_EQ(15, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "cmd_commit", NULL, 0); + EXPECT_EQ(16, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "cmd_in_q", NULL, 0); + EXPECT_EQ(17, metric_id); + metric_id = fieldstat_register(instance, FIELD_TYPE_GAUGE, "line_cmd/s", NULL, 0); + EXPECT_EQ(18, metric_id); + + ret = fieldstat_set_local_output(instance, output_file_path, "default"); + EXPECT_EQ(0, ret); + fieldstat_instance_start(instance); + fieldstat_value_incrby(instance, 0, 922); + sleep(3); + + fp = fopen("/tmp/fieldstat.txt", "r"); + EXPECT_NE(nullptr, fp); + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + if(n_line == 1) + { + EXPECT_STREQ(compared_row, line); + } + n_line++; + } + fclose(fp); + EXPECT_EQ(n_line, n_loops); + + fieldstat_instance_free(instance); +} + +int main(int argc, char *argv[]) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}
\ No newline at end of file |
