From 8aa5acacaab482dfba1a17734880cb01aac84f09 Mon Sep 17 00:00:00 2001 From: chenzizhan Date: Wed, 27 Sep 2023 10:29:25 +0800 Subject: test hll and histogram --- test/test_metric_histogram.cpp | 102 +++++++++++++---------------------------- 1 file changed, 31 insertions(+), 71 deletions(-) (limited to 'test/test_metric_histogram.cpp') diff --git a/test/test_metric_histogram.cpp b/test/test_metric_histogram.cpp index 4487e6e..81e1e50 100644 --- a/test/test_metric_histogram.cpp +++ b/test/test_metric_histogram.cpp @@ -12,12 +12,9 @@ struct fieldstat *test_init_standard_instance_one_cube_one_metric_one_cell_hdr() int cube_id = fieldstat_create_cube(instance, &TEST_SHARED_TAG, 1, SAMPLING_MODE_COMPREHENSIVE, 10); EXPECT_EQ(cube_id, 0); - int metric_id = fieldstat_register_hist(instance, cube_id, "czz_test hdr metric", 1, 600000, 3); + int metric_id = fieldstat_register_hist(instance, "czz_test hdr metric", 1, 600000, 3); EXPECT_EQ(metric_id, 0); - int cell_id = fieldstat_cube_add(instance, cube_id, &TEST_TAG_STRING, 1, 1); - EXPECT_EQ(cell_id, 0); - return instance; } @@ -30,21 +27,17 @@ void test_assert_standard_instance(const struct fieldstat *instance) int ret_cell_id = ret_cube_id_arr[0]; free(ret_cube_id_arr); EXPECT_EQ(ret_cell_id, 0); - int ret_metric_id = fieldstat_get_max_metric_id(instance, ret_cell_id); - EXPECT_EQ(ret_metric_id, 0); - const char *name = fieldstat_get_metric_name(instance, 0, 0); + const char *name = fieldstat_get_metric_name(instance, 0); EXPECT_STREQ(name, "czz_test hdr metric"); - int *ret_cell_ids = NULL; + struct fieldstat_tag_list *tag_list = NULL; size_t n_cell = 0; - fieldstat_get_cells_used_by_metric(instance, 0, 0, &ret_cell_ids, &tag_list, &n_cell); + fieldstat_get_cells_used_by_metric(instance, 0, 0, &tag_list, &n_cell); EXPECT_EQ(n_cell, 1); - EXPECT_EQ(ret_cell_ids[0], 0); EXPECT_EQ(tag_list->n_tag, 1); EXPECT_STREQ(tag_list->tag[0].key, TEST_TAG_STRING.key); - free(ret_cell_ids); fieldstat_tag_list_arr_free(tag_list, n_cell); } @@ -52,99 +45,66 @@ TEST(metric_test_histogram, simple_register_and_query) { struct fieldstat *instance = test_init_standard_instance_one_cube_one_metric_one_cell_hdr(); - fieldstat_hist_record(instance, 0, 0, 0, 1234); - fieldstat_hist_record(instance, 0, 0, 0, 1234); - fieldstat_hist_record(instance, 0, 0, 0, 123); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 1234); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 1234); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 123); test_assert_standard_instance(instance); - EXPECT_EQ(fieldstat_hist_value_at_percentile(instance, 0, 0, 0, 50.0), 1234); - EXPECT_EQ(fieldstat_hist_count_le_value(instance, 0, 0, 0, 1000), 1); + EXPECT_EQ(fieldstat_hist_value_at_percentile(instance, 0, 0, &TEST_TAG_LIST_STRING, 50.0), 1234); + EXPECT_EQ(fieldstat_hist_count_le_value(instance, 0, 0, &TEST_TAG_LIST_STRING, 1000), 1); fieldstat_free(instance); } -TEST(metric_test_histogram, serialize_and_merge) +TEST(metric_test_histogram, merge) { struct fieldstat *instance = test_init_standard_instance_one_cube_one_metric_one_cell_hdr(); - fieldstat_hist_record(instance, 0, 0, 0, 1234); - fieldstat_hist_record(instance, 0, 0, 0, 1234); - fieldstat_hist_record(instance, 0, 0, 0, 123); - - char *blob = NULL; - size_t blob_len = 0; - fieldstat_serialize(instance, &blob, &blob_len); - struct fieldstat *instance_from_blob = fieldstat_deserialize(blob, blob_len); - free(blob); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 1234); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 1234); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 123); + struct fieldstat *instance_total = fieldstat_new(); - fieldstat_merge(instance_total, instance_from_blob); + fieldstat_merge(instance_total, instance); // query test_assert_standard_instance(instance_total); - EXPECT_EQ(fieldstat_hist_value_at_percentile(instance_total, 0, 0, 0, 50.0), 1234); - EXPECT_EQ(fieldstat_hist_count_le_value(instance, 0, 0, 0, 1000), 1); + EXPECT_EQ(fieldstat_hist_value_at_percentile(instance_total, 0, 0, &TEST_TAG_LIST_STRING, 50.0), 1234); + EXPECT_EQ(fieldstat_hist_count_le_value(instance, 0, 0, &TEST_TAG_LIST_STRING, 1000), 1); fieldstat_free(instance); - fieldstat_free(instance_from_blob); fieldstat_free(instance_total); } -TEST(metric_test_histogram, serialization_and_merge_twice_with_reset) +TEST(metric_test_histogram, merge_twice_with_reset) { struct fieldstat *instance = test_init_standard_instance_one_cube_one_metric_one_cell_hdr(); - fieldstat_hist_record(instance, 0, 0, 0, 1234); - fieldstat_hist_record(instance, 0, 0, 0, 123); - - char *blob = NULL; - size_t blob_len = 0; - fieldstat_serialize(instance, &blob, &blob_len); - struct fieldstat *instance_from_blob = fieldstat_deserialize(blob, blob_len); - free(blob); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 1234); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 123); + struct fieldstat *instance_total = fieldstat_new(); - fieldstat_merge(instance_total, instance_from_blob); + fieldstat_merge(instance_total, instance); - fieldstat_free(instance_from_blob); fieldstat_reset(instance); - int cell_id = fieldstat_cube_add(instance, 0, &TEST_TAG_STRING, 1, 1); - EXPECT_EQ(cell_id, 0); - fieldstat_hist_record(instance, 0, 0, 0, 1234); - - fieldstat_serialize(instance, &blob, &blob_len); - instance_from_blob = fieldstat_deserialize(blob, blob_len); - free(blob); - fieldstat_merge(instance_total, instance_from_blob); + fieldstat_hist_record(instance, 0, 0, &TEST_TAG_STRING, 1, 1234); + fieldstat_merge(instance_total, instance); test_assert_standard_instance(instance_total); - EXPECT_EQ(fieldstat_hist_value_at_percentile(instance_total, 0, 0, 0, 50.0), 1234); - EXPECT_EQ(fieldstat_hist_count_le_value(instance_total, 0, 0, 0, 1000), 1); + EXPECT_EQ(fieldstat_hist_value_at_percentile(instance_total, 0, 0, &TEST_TAG_LIST_STRING, 50.0), 1234); + EXPECT_EQ(fieldstat_hist_count_le_value(instance_total, 0, 0, &TEST_TAG_LIST_STRING, 1000), 1); fieldstat_free(instance); - fieldstat_free(instance_from_blob); fieldstat_free(instance_total); } -TEST(metric_test_histogram, add_or_set_with_wrong_cell_id_expecting_fail) -{ - struct fieldstat *instance = fieldstat_new(); - int cube_id = fieldstat_create_cube(instance, &TEST_TAG_INT_collided, 1, SAMPLING_MODE_COMPREHENSIVE, 10); - int metric_id = fieldstat_register_hist(instance, cube_id, "czz_test", 1, 600000, 3); - - int ret = fieldstat_hist_record(instance, cube_id, metric_id, 1, 1234); - EXPECT_EQ(ret, FS_ERR_INVALID_TAG); - ret = fieldstat_hist_record(instance, cube_id, metric_id, -1, 1234); - EXPECT_EQ(ret, FS_ERR_INVALID_TAG); - - fieldstat_free(instance); -} - TEST(metric_test_histogram, add_with_wrong_cube_id_expecting_fail) { struct fieldstat *instance = fieldstat_new(); int cube_id = fieldstat_create_cube(instance, &TEST_TAG_INT_collided, 1, SAMPLING_MODE_COMPREHENSIVE, 10); - int ret = fieldstat_hist_record(instance, cube_id + 1, 0, 1, 1); + int ret = fieldstat_hist_record(instance, cube_id + 1, 0, &TEST_TAG_INT, 1, 1); EXPECT_EQ(ret, FS_ERR_INVALID_CUBE_ID); - ret = fieldstat_hist_record(instance, -1, 0, 1, 1); + ret = fieldstat_hist_record(instance, -1, 0, &TEST_TAG_INT, 1, 1); EXPECT_EQ(ret, FS_ERR_INVALID_CUBE_ID); fieldstat_free(instance); @@ -154,11 +114,11 @@ TEST(metric_test_histogram, add_with_wrong_metric_id_expecting_fail) { struct fieldstat *instance = fieldstat_new(); int cube_id = fieldstat_create_cube(instance, &TEST_TAG_INT_collided, 1, SAMPLING_MODE_COMPREHENSIVE, 10); - int metric_id = fieldstat_register_hist(instance, cube_id, "czz_test", 1, 600000, 3); + int metric_id = fieldstat_register_hist(instance, "czz_test", 1, 600000, 3); - int ret = fieldstat_hist_record(instance, cube_id, metric_id + 1, 1, 1); + int ret = fieldstat_hist_record(instance, cube_id, metric_id + 1, &TEST_TAG_INT, 1, 1); EXPECT_EQ(ret, FS_ERR_INVALID_METRIC_ID); - ret = fieldstat_hist_record(instance, cube_id, -1, 1, 1); + ret = fieldstat_hist_record(instance, cube_id, -1, &TEST_TAG_INT, 1, 1); EXPECT_EQ(ret, FS_ERR_INVALID_METRIC_ID); fieldstat_free(instance); -- cgit v1.2.3