| 54 | } |
| 55 | |
| 56 | TEST_F(MVariableTest, expose) { |
| 57 | std::vector<std::string> list_exposed_vars; |
| 58 | std::list<std::string> labels_value1 {"bj", "get", "200"}; |
| 59 | bvar::MultiDimension<bvar::Adder<int> > my_madder1(labels); |
| 60 | ASSERT_EQ(0UL, bvar::MVariableBase::count_exposed()); |
| 61 | my_madder1.expose("request_count_madder"); |
| 62 | ASSERT_EQ(1UL, bvar::MVariableBase::count_exposed()); |
| 63 | bvar::Adder<int>* my_adder1 = my_madder1.get_stats(labels_value1); |
| 64 | ASSERT_TRUE(my_adder1); |
| 65 | ASSERT_STREQ("request_count_madder", my_madder1.name().c_str()); |
| 66 | |
| 67 | ASSERT_EQ(0, my_madder1.expose("request_count_madder_another")); |
| 68 | ASSERT_STREQ("request_count_madder_another", my_madder1.name().c_str()); |
| 69 | |
| 70 | ASSERT_EQ(0, my_madder1.expose("request-count::madder")); |
| 71 | ASSERT_STREQ("request_count_madder", my_madder1.name().c_str()); |
| 72 | |
| 73 | ASSERT_EQ(0, my_madder1.expose("request.count-madder::BaNaNa")); |
| 74 | ASSERT_STREQ("request_count_madder_ba_na_na", my_madder1.name().c_str()); |
| 75 | |
| 76 | ASSERT_EQ(0, my_madder1.expose_as("foo::bar::Apple", "request")); |
| 77 | ASSERT_STREQ("foo_bar_apple_request", my_madder1.name().c_str()); |
| 78 | |
| 79 | ASSERT_EQ(0, my_madder1.expose_as("foo.bar::BaNaNa", "request")); |
| 80 | ASSERT_STREQ("foo_bar_ba_na_na_request", my_madder1.name().c_str()); |
| 81 | |
| 82 | ASSERT_EQ(0, my_madder1.expose_as("foo::bar.Car_Rot", "request")); |
| 83 | ASSERT_STREQ("foo_bar_car_rot_request", my_madder1.name().c_str()); |
| 84 | |
| 85 | ASSERT_EQ(0, my_madder1.expose_as("foo-bar-RPCTest", "request")); |
| 86 | ASSERT_STREQ("foo_bar_rpctest_request", my_madder1.name().c_str()); |
| 87 | |
| 88 | ASSERT_EQ(0, my_madder1.expose_as("foo-bar-HELLO", "request")); |
| 89 | ASSERT_STREQ("foo_bar_hello_request", my_madder1.name().c_str()); |
| 90 | |
| 91 | my_madder1.expose("request_count_madder"); |
| 92 | ASSERT_STREQ("request_count_madder", my_madder1.name().c_str()); |
| 93 | list_exposed_vars.push_back("request_count_madder"); |
| 94 | |
| 95 | ASSERT_EQ(1UL, my_madder1.count_stats()); |
| 96 | ASSERT_EQ(1UL, bvar::MVariableBase::count_exposed()); |
| 97 | |
| 98 | std::list<std::string> labels2 {"user", "url", "cost"}; |
| 99 | bvar::MultiDimension<bvar::Adder<int> > my_madder2("client_url", labels2); |
| 100 | ASSERT_EQ(2UL, bvar::MVariableBase::count_exposed()); |
| 101 | list_exposed_vars.push_back("client_url"); |
| 102 | |
| 103 | std::list<std::string> labels3 {"product", "system", "module"}; |
| 104 | bvar::MultiDimension<bvar::Adder<int> > my_madder3("request_from", labels3); |
| 105 | list_exposed_vars.push_back("request_from"); |
| 106 | ASSERT_EQ(3UL, bvar::MVariableBase::count_exposed()); |
| 107 | |
| 108 | std::vector<std::string> exposed_vars; |
| 109 | bvar::MVariableBase::list_exposed(&exposed_vars); |
| 110 | ASSERT_EQ(3, exposed_vars.size()); |
| 111 | |
| 112 | my_madder3.hide(); |
| 113 | ASSERT_EQ(2UL, bvar::MVariableBase::count_exposed()); |