| 557 | |
| 558 | template <typename KeyType, typename ValueType> |
| 559 | static void TestLabels() { |
| 560 | std::string mbvar_name = butil::string_printf("my_madder_%d", g_exposed_count); |
| 561 | KeyType labels{"idc", "method", "status"}; |
| 562 | bvar::MultiDimension<bvar::Adder<int>, KeyType> my_madder(mbvar_name, labels); |
| 563 | ASSERT_EQ(labels.size(), my_madder.count_labels()); |
| 564 | ASSERT_STREQ(mbvar_name.c_str(), my_madder.name().c_str()); |
| 565 | ASSERT_EQ(labels, my_madder.labels()); |
| 566 | |
| 567 | using ItemType = typename ValueType::value_type; |
| 568 | ValueType labels_value{ItemType("cv"), ItemType("post"), ItemType("200")}; |
| 569 | bvar::Adder<int>* adder = my_madder.get_stats(labels_value); |
| 570 | ASSERT_NE(nullptr, adder); |
| 571 | ASSERT_TRUE(my_madder.has_stats(labels_value)); |
| 572 | ASSERT_EQ((size_t)1, my_madder.count_stats()); |
| 573 | { |
| 574 | // Compatible with old API. |
| 575 | bvar::Adder<int>* temp = my_madder.get_stats({"cv", "post", "200"}); |
| 576 | ASSERT_EQ(adder, temp); |
| 577 | } |
| 578 | *adder << g_exposed_count; |
| 579 | ASSERT_EQ(g_exposed_count, adder->get_value()); |
| 580 | my_madder.delete_stats(labels_value); |
| 581 | ASSERT_FALSE(my_madder.has_stats(labels_value)); |
| 582 | ASSERT_EQ((size_t)0, my_madder.count_stats()); |
| 583 | } |
| 584 | |
| 585 | TEST_F(MultiDimensionTest, labels) { |
| 586 | TestLabels<std::list<std::string>, std::list<std::string>>(); |
nothing calls this directly
no test coverage detected