From 9d452b417bbe330496347ad2c066d2541921ebd4 Mon Sep 17 00:00:00 2001 From: chenzizhan Date: Fri, 15 Sep 2023 18:14:26 +0800 Subject: stash4.3.0-4.3.4(python api) Signed-off-by: chenzizhan --- test/test_metric_histogram.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'test/test_metric_histogram.cpp') diff --git a/test/test_metric_histogram.cpp b/test/test_metric_histogram.cpp index 3f94245..d720efa 100644 --- a/test/test_metric_histogram.cpp +++ b/test/test_metric_histogram.cpp @@ -3,6 +3,9 @@ #include "fieldstat.h" #include "utils.hpp" +#include "hdr/hdr_histogram.h" +#include "histogram_encoder.h" + struct fieldstat *test_init_standard_instance_one_cube_one_metric_one_cell_hdr() { struct fieldstat *instance = fieldstat_new(); @@ -179,6 +182,41 @@ TEST(metric_test_histogram, can_add_0value) // histogram only allow min_val > 0, fieldstat_free(instance); } +extern "C" { + bool is_hll(char *buf); +} + +TEST(metric_test_histogram, encode_decode_b64) +{ + struct hdr_histogram *h = NULL; + hdr_init(1, 10000, 5, &h); + hdr_record_value(h, 1234); + hdr_record_value(h, 1234); + hdr_record_value(h, 4312); + + char *b64 = NULL; + size_t b64_len = 0; + histogram_encode_into_b64(h, &b64, &b64_len); + + EXPECT_FALSE(is_hll(b64)); + + struct hdr_histogram *h2 = histogram_decode_from_b64(b64, b64_len); + + EXPECT_TRUE(h2 != NULL); + EXPECT_EQ(h->lowest_discernible_value, h2->lowest_discernible_value); + EXPECT_EQ(h->highest_trackable_value, h2->highest_trackable_value); + EXPECT_EQ(h->significant_figures, h2->significant_figures); + EXPECT_EQ(h->counts_len, h2->counts_len); + for (int i = 0; i < h2->counts_len; i++) + { + EXPECT_EQ(h->counts[i], h2->counts[i]); + } + + free(b64); + hdr_close(h); + hdr_close(h2); +} + int main(int argc, char *argv[]) { testing::InitGoogleTest(&argc, argv); -- cgit v1.2.3