aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/channel
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-07-18 18:31:09 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2018-07-19 08:15:49 -0700
commitbbee13661c82c13e2f1b728c94f9535112f54d92 (patch)
treeed60505ea44cdde179e837ff13050445afe7809b /test/core/channel
parent481c1d57e7fc92f74c79b9aa0f7c8f0eaa51000b (diff)
Add channelz subchannel support
Diffstat (limited to 'test/core/channel')
-rw-r--r--test/core/channel/channelz_test.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/core/channel/channelz_test.cc b/test/core/channel/channelz_test.cc
index ad5f86d934..b8e65ebfb3 100644
--- a/test/core/channel/channelz_test.cc
+++ b/test/core/channel/channelz_test.cc
@@ -163,6 +163,14 @@ void ValidateChannel(ChannelNode* channel, validate_channel_data_args args) {
gpr_free(core_api_json_str);
}
+void ValidateSubchannel(SubchannelNode* subchannel,
+ validate_channel_data_args args) {
+ char* json_str = subchannel->RenderJsonString();
+ grpc::testing::ValidateSubchannelProtoJsonTranslation(json_str);
+ ValidateCounters(json_str, args);
+ gpr_free(json_str);
+}
+
grpc_millis GetLastCallStartedMillis(ChannelNode* channel) {
ChannelNodePeer peer(channel);
return peer.last_call_started_millis();
@@ -275,8 +283,29 @@ TEST(ChannelzGetTopChannelsTest, InternalChannelTest) {
grpc_channel_destroy(internal_channel);
}
+class ChannelzSubchannelTest : public ::testing::TestWithParam<size_t> {};
+
+TEST_P(ChannelzSubchannelTest, BasicTest) {
+ grpc_core::ExecCtx exec_ctx;
+ RefCountedPtr<SubchannelNode> channelz_subchannel =
+ MakeRefCounted<SubchannelNode>(GetParam());
+ channelz_subchannel->RecordCallStarted();
+ channelz_subchannel->RecordCallFailed();
+ channelz_subchannel->RecordCallSucceeded();
+ ValidateSubchannel(channelz_subchannel.get(), {1, 1, 1});
+ channelz_subchannel->RecordCallStarted();
+ channelz_subchannel->RecordCallFailed();
+ channelz_subchannel->RecordCallSucceeded();
+ channelz_subchannel->RecordCallStarted();
+ channelz_subchannel->RecordCallFailed();
+ channelz_subchannel->RecordCallSucceeded();
+ ValidateSubchannel(channelz_subchannel.get(), {3, 3, 3});
+}
+
INSTANTIATE_TEST_CASE_P(ChannelzChannelTestSweep, ChannelzChannelTest,
::testing::Values(0, 1, 2, 6, 10, 15));
+INSTANTIATE_TEST_CASE_P(ChannelzSubchannelTestSweep, ChannelzSubchannelTest,
+ ::testing::Values(0, 1, 10, 15));
} // namespace testing
} // namespace channelz