summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchenzizhan <[email protected]>2023-08-29 11:53:01 +0800
committerchenzizhan <[email protected]>2023-08-29 11:53:01 +0800
commitf2e0d503ce7097a08c7b010efc43f5133b1ab7d5 (patch)
treecb969cc4f873265ae3f580b286e5c2472b727a77
parentb66c1942eb6e51ad689c8d68b8b7aca63a7308ef (diff)
test and fix unlimited size cube
-rw-r--r--include/fieldstat/fieldstat.h3
-rw-r--r--src/fieldstat.c2
-rw-r--r--test/CMakeLists.txt20
-rw-r--r--test/test_register_and_reset.cpp21
4 files changed, 32 insertions, 14 deletions
diff --git a/include/fieldstat/fieldstat.h b/include/fieldstat/fieldstat.h
index f634b00..60f83f2 100644
--- a/include/fieldstat/fieldstat.h
+++ b/include/fieldstat/fieldstat.h
@@ -54,9 +54,6 @@ struct fieldstat_tag {
};
};
-// todo: tag 可以为NULL
-
-
struct fieldstat;
struct fieldstat *fieldstat_new();
diff --git a/src/fieldstat.c b/src/fieldstat.c
index a0ccdbb..bd166be 100644
--- a/src/fieldstat.c
+++ b/src/fieldstat.c
@@ -277,7 +277,7 @@ int fieldstat_register_cube(struct fieldstat *instance, const struct fieldstat_t
return -1;
}
if (max_n_cell == 0) {
- max_n_cell = INTMAX_MAX;
+ max_n_cell = INT32_MAX;
}
struct fs_cube *cube = fieldstat_cube_new(shared_tags, n_tag, mode, max_n_cell);
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index cf40b3f..a01e876 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -46,14 +46,14 @@ function (add_unit_test file_name)
set_property(TARGET ${file_name} PROPERTY CXX_STANDARD 17)
endfunction()
-add_unit_test(test_empty_tags)
-add_unit_test(test_exporter_json)
-add_unit_test(test_fuzz_test)
-add_unit_test(test_merge)
-add_unit_test(test_metric_counter)
-add_unit_test(test_metric_histogram)
-add_unit_test(test_metric_hll)
-add_unit_test(test_performance)
+# add_unit_test(test_empty_tags)
+# add_unit_test(test_exporter_json)
+# add_unit_test(test_fuzz_test)
+# add_unit_test(test_merge)
+# add_unit_test(test_metric_counter)
+# add_unit_test(test_metric_histogram)
+# add_unit_test(test_metric_hll)
+# add_unit_test(test_performance)
add_unit_test(test_register_and_reset)
-add_unit_test(test_serialize)
-add_unit_test(unit_test_cell_manager) \ No newline at end of file
+# add_unit_test(test_serialize)
+# add_unit_test(unit_test_cell_manager) \ No newline at end of file
diff --git a/test/test_register_and_reset.cpp b/test/test_register_and_reset.cpp
index 28d65a5..80414df 100644
--- a/test/test_register_and_reset.cpp
+++ b/test/test_register_and_reset.cpp
@@ -236,6 +236,27 @@ TEST(test_register, unregister_cube_on_wrong_instance)
free(cube_ids);
}
+TEST(test_register, register_many_cells_on_unlimited_sized_cube)
+{
+ struct fieldstat *instance = fieldstat_new();
+ int cube_id = fieldstat_register_cube(instance, &TEST_SHARED_TAG, 1, SAMPLING_MODE_COMPREHENSIVE, 0);
+ int metric_id = fieldstat_register_counter(instance, cube_id, "counter", COUNTER_MERGE_BY_SUM);
+ int cell_id = 0;
+ struct fieldstat_tag test_tag = {"abc", TAG_INTEGER, {.value_longlong = 0}};
+ for (int i = 0; i < 10000; i++) {
+ test_tag.value_longlong = i;
+ cell_id = fieldstat_cube_add(instance, cube_id, &test_tag, 1, 1);
+ EXPECT_EQ(cell_id, i);
+ fieldstat_counter_incrby(instance, cube_id, metric_id, cell_id, 1);
+ }
+
+ for (int i = 0; i < 10000; i++) {
+ EXPECT_EQ(fieldstat_counter_get(instance, cube_id, metric_id, i), 1);
+ }
+
+ fieldstat_free(instance);
+}
+
int main(int argc, char *argv[])
{
testing::InitGoogleTest(&argc, argv);