aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Noah Eisen <ncteisen@gmail.com>2018-03-19 12:05:18 -0700
committerGravatar GitHub <noreply@github.com>2018-03-19 12:05:18 -0700
commitf2bea3725f8218777268decfd37c7b543f839d9f (patch)
treed2d56cf0a2c35d12b3548b9bb0389961df47a923 /test
parent373866da41cf86ec23fa3420b08a3d0a55151b58 (diff)
Revert "Channel Tracing Implementation; Part 1"
Diffstat (limited to 'test')
-rw-r--r--test/core/channel/BUILD29
-rw-r--r--test/core/channel/channel_trace_test.cc240
-rw-r--r--test/core/client_channel/BUILD12
-rw-r--r--test/core/client_channel/status_util_test.cc (renamed from test/core/channel/status_util_test.cc)2
-rw-r--r--test/core/surface/public_headers_must_be_c89.c2
-rw-r--r--test/cpp/util/BUILD18
-rw-r--r--test/cpp/util/channel_trace_proto_helper.cc56
-rw-r--r--test/cpp/util/channel_trace_proto_helper.h30
8 files changed, 13 insertions, 376 deletions
diff --git a/test/core/channel/BUILD b/test/core/channel/BUILD
index 6bf4fcdbb8..c5dfd8ef37 100644
--- a/test/core/channel/BUILD
+++ b/test/core/channel/BUILD
@@ -65,32 +65,3 @@ grpc_cc_test(
"//test/core/util:grpc_test_util",
],
)
-
-grpc_cc_test(
- name = "channel_trace_test",
- srcs = ["channel_trace_test.cc"],
- language = "C++",
- deps = [
- "//:gpr",
- "//:grpc",
- "//:grpc++",
- "//test/core/util:gpr_test_util",
- "//test/core/util:grpc_test_util",
- "//test/cpp/util:channel_trace_proto_helper",
- ],
- external_deps = [
- "gtest",
- ],
-)
-
-grpc_cc_test(
- name = "status_util_test",
- srcs = ["status_util_test.cc"],
- language = "C++",
- deps = [
- "//:grpc",
- ],
- external_deps = [
- "gtest",
- ],
-)
diff --git a/test/core/channel/channel_trace_test.cc b/test/core/channel/channel_trace_test.cc
deleted file mode 100644
index 3c73e33612..0000000000
--- a/test/core/channel/channel_trace_test.cc
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- *
- * Copyright 2017 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <gtest/gtest.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-
-#include "src/core/lib/channel/channel_trace.h"
-#include "src/core/lib/channel/channel_trace_registry.h"
-#include "src/core/lib/gpr/useful.h"
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/json/json.h"
-
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/channel_trace_proto_helper.h"
-
-// remove me
-#include <grpc/support/string_util.h>
-#include <stdlib.h>
-#include <string.h>
-
-namespace grpc_core {
-namespace testing {
-namespace {
-
-grpc_json* GetJsonChild(grpc_json* parent, const char* key) {
- EXPECT_NE(parent, nullptr);
- for (grpc_json* child = parent->child; child != nullptr;
- child = child->next) {
- if (child->key != nullptr && strcmp(child->key, key) == 0) return child;
- }
- return nullptr;
-}
-
-void ValidateJsonArraySize(grpc_json* json, const char* key,
- size_t expected_size) {
- grpc_json* arr = GetJsonChild(json, key);
- ASSERT_NE(arr, nullptr);
- ASSERT_EQ(arr->type, GRPC_JSON_ARRAY);
- size_t count = 0;
- for (grpc_json* child = arr->child; child != nullptr; child = child->next) {
- ++count;
- }
- ASSERT_EQ(count, expected_size);
-}
-
-void ValidateChannelTraceData(grpc_json* json,
- size_t num_events_logged_expected,
- size_t actual_num_events_expected) {
- ASSERT_NE(json, nullptr);
- grpc_json* num_events_logged_json = GetJsonChild(json, "numEventsLogged");
- ASSERT_NE(num_events_logged_json, nullptr);
- grpc_json* start_time = GetJsonChild(json, "creationTime");
- ASSERT_NE(start_time, nullptr);
- size_t num_events_logged =
- (size_t)strtol(num_events_logged_json->value, nullptr, 0);
- ASSERT_EQ(num_events_logged, num_events_logged_expected);
- ValidateJsonArraySize(json, "events", actual_num_events_expected);
-}
-
-void AddSimpleTrace(RefCountedPtr<ChannelTrace> tracer) {
- tracer->AddTraceEvent(ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("simple trace"));
-}
-
-// checks for the existence of all the required members of the tracer.
-void ValidateChannelTrace(RefCountedPtr<ChannelTrace> tracer,
- size_t expected_num_event_logged, size_t max_nodes) {
- if (!max_nodes) return;
- char* json_str = tracer->RenderTrace();
- grpc::testing::ValidateChannelTraceProtoJsonTranslation(json_str);
- grpc_json* json = grpc_json_parse_string(json_str);
- ValidateChannelTraceData(json, expected_num_event_logged,
- GPR_MIN(expected_num_event_logged, max_nodes));
- grpc_json_destroy(json);
- gpr_free(json_str);
-}
-
-void ValidateTraceDataMatchedUuidLookup(RefCountedPtr<ChannelTrace> tracer) {
- intptr_t uuid = tracer->GetUuid();
- if (uuid == -1) return; // Doesn't make sense to lookup if tracing disabled
- char* tracer_json_str = tracer->RenderTrace();
- ChannelTrace* uuid_lookup =
- grpc_channel_trace_registry_get_channel_trace(uuid);
- char* uuid_lookup_json_str = uuid_lookup->RenderTrace();
- EXPECT_EQ(strcmp(tracer_json_str, uuid_lookup_json_str), 0);
- gpr_free(tracer_json_str);
- gpr_free(uuid_lookup_json_str);
-}
-
-} // anonymous namespace
-
-class ChannelTracerTest : public ::testing::TestWithParam<size_t> {};
-
-// Tests basic ChannelTrace functionality like construction, adding trace, and
-// lookups by uuid.
-TEST_P(ChannelTracerTest, BasicTest) {
- grpc_core::ExecCtx exec_ctx;
- RefCountedPtr<ChannelTrace> tracer = MakeRefCounted<ChannelTrace>(GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateTraceDataMatchedUuidLookup(tracer);
- tracer->AddTraceEvent(ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("trace three"));
- tracer->AddTraceEvent(ChannelTrace::Severity::Error,
- grpc_slice_from_static_string("trace four error"));
- ValidateChannelTrace(tracer, 4, GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateChannelTrace(tracer, 6, GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateChannelTrace(tracer, 10, GetParam());
- ValidateTraceDataMatchedUuidLookup(tracer);
- tracer.reset(nullptr);
-}
-
-// Tests more complex functionality, like a parent channel tracking
-// subchannles. This exercises the ref/unref patterns since the parent tracer
-// and this function will both hold refs to the subchannel.
-TEST_P(ChannelTracerTest, ComplexTest) {
- grpc_core::ExecCtx exec_ctx;
- RefCountedPtr<ChannelTrace> tracer = MakeRefCounted<ChannelTrace>(GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- RefCountedPtr<ChannelTrace> sc1 = MakeRefCounted<ChannelTrace>(GetParam());
- tracer->AddTraceEventReferencingSubchannel(
- ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("subchannel one created"), sc1);
- ValidateChannelTrace(tracer, 3, GetParam());
- AddSimpleTrace(sc1);
- AddSimpleTrace(sc1);
- AddSimpleTrace(sc1);
- ValidateChannelTrace(sc1, 3, GetParam());
- AddSimpleTrace(sc1);
- AddSimpleTrace(sc1);
- AddSimpleTrace(sc1);
- ValidateChannelTrace(sc1, 6, GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateChannelTrace(tracer, 5, GetParam());
- ValidateTraceDataMatchedUuidLookup(tracer);
- RefCountedPtr<ChannelTrace> sc2 = MakeRefCounted<ChannelTrace>(GetParam());
- tracer->AddTraceEventReferencingChannel(
- ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("LB channel two created"), sc2);
- tracer->AddTraceEventReferencingSubchannel(
- ChannelTrace::Severity::Warning,
- grpc_slice_from_static_string("subchannel one inactive"), sc1);
- ValidateChannelTrace(tracer, 7, GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateTraceDataMatchedUuidLookup(tracer);
- tracer.reset(nullptr);
- sc1.reset(nullptr);
- sc2.reset(nullptr);
-}
-
-// Test a case in which the parent channel has subchannels and the subchannels
-// have connections. Ensures that everything lives as long as it should then
-// gets deleted.
-TEST_P(ChannelTracerTest, TestNesting) {
- grpc_core::ExecCtx exec_ctx;
- RefCountedPtr<ChannelTrace> tracer = MakeRefCounted<ChannelTrace>(GetParam());
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateChannelTrace(tracer, 2, GetParam());
- RefCountedPtr<ChannelTrace> sc1 = MakeRefCounted<ChannelTrace>(GetParam());
- tracer->AddTraceEventReferencingChannel(
- ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("subchannel one created"), sc1);
- ValidateChannelTrace(tracer, 3, GetParam());
- AddSimpleTrace(sc1);
- RefCountedPtr<ChannelTrace> conn1 = MakeRefCounted<ChannelTrace>(GetParam());
- // nesting one level deeper.
- sc1->AddTraceEventReferencingSubchannel(
- ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("connection one created"), conn1);
- ValidateChannelTrace(tracer, 3, GetParam());
- AddSimpleTrace(conn1);
- AddSimpleTrace(tracer);
- AddSimpleTrace(tracer);
- ValidateChannelTrace(tracer, 5, GetParam());
- ValidateChannelTrace(conn1, 1, GetParam());
- RefCountedPtr<ChannelTrace> sc2 = MakeRefCounted<ChannelTrace>(GetParam());
- tracer->AddTraceEventReferencingSubchannel(
- ChannelTrace::Severity::Info,
- grpc_slice_from_static_string("subchannel two created"), sc2);
- // this trace should not get added to the parents children since it is already
- // present in the tracer.
- tracer->AddTraceEventReferencingChannel(
- ChannelTrace::Severity::Warning,
- grpc_slice_from_static_string("subchannel one inactive"), sc1);
- AddSimpleTrace(tracer);
- ValidateChannelTrace(tracer, 8, GetParam());
- tracer.reset(nullptr);
- sc1.reset(nullptr);
- sc2.reset(nullptr);
- conn1.reset(nullptr);
-}
-
-INSTANTIATE_TEST_CASE_P(ChannelTracerTestSweep, ChannelTracerTest,
- ::testing::Values(0, 1, 2, 6, 10, 15));
-
-} // namespace testing
-} // namespace grpc_core
-
-int main(int argc, char** argv) {
- grpc_test_init(argc, argv);
- grpc_init();
- ::testing::InitGoogleTest(&argc, argv);
- int ret = RUN_ALL_TESTS();
- grpc_shutdown();
- return ret;
-}
diff --git a/test/core/client_channel/BUILD b/test/core/client_channel/BUILD
index 5148dc5f74..d430b722df 100644
--- a/test/core/client_channel/BUILD
+++ b/test/core/client_channel/BUILD
@@ -53,3 +53,15 @@ grpc_cc_test(
"//test/core/util:grpc_test_util",
],
)
+
+grpc_cc_test(
+ name = "status_util_test",
+ srcs = ["status_util_test.cc"],
+ language = "C++",
+ deps = [
+ "//:grpc",
+ ],
+ external_deps = [
+ "gtest",
+ ],
+)
diff --git a/test/core/channel/status_util_test.cc b/test/core/client_channel/status_util_test.cc
index 1d64bf1995..f944990ad2 100644
--- a/test/core/channel/status_util_test.cc
+++ b/test/core/client_channel/status_util_test.cc
@@ -16,7 +16,7 @@
*
*/
-#include "src/core/lib/channel/status_util.h"
+#include "src/core/ext/filters/client_channel/status_util.h"
#include <gtest/gtest.h>
diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c
index d858603e47..bd4dc0b60e 100644
--- a/test/core/surface/public_headers_must_be_c89.c
+++ b/test/core/surface/public_headers_must_be_c89.c
@@ -106,8 +106,6 @@ int main(int argc, char **argv) {
printf("%lx", (unsigned long) grpc_insecure_channel_create);
printf("%lx", (unsigned long) grpc_lame_client_channel_create);
printf("%lx", (unsigned long) grpc_channel_destroy);
- printf("%lx", (unsigned long) grpc_channel_get_trace);
- printf("%lx", (unsigned long) grpc_channel_get_uuid);
printf("%lx", (unsigned long) grpc_call_cancel);
printf("%lx", (unsigned long) grpc_call_cancel_with_status);
printf("%lx", (unsigned long) grpc_call_ref);
diff --git a/test/cpp/util/BUILD b/test/cpp/util/BUILD
index 4ac8572072..4f84c73820 100644
--- a/test/cpp/util/BUILD
+++ b/test/cpp/util/BUILD
@@ -85,24 +85,6 @@ grpc_cc_library(
)
grpc_cc_library(
- name = "channel_trace_proto_helper",
- srcs = [
- "channel_trace_proto_helper.cc",
- ],
- hdrs = [
- "channel_trace_proto_helper.h",
- ],
- deps = [
- "//:grpc++",
- "//src/proto/grpc/channelz:channelz_proto",
- ],
- external_deps = [
- "gtest",
- "protobuf",
- ],
-)
-
-grpc_cc_library(
name = "test_util_unsecure",
srcs = GRPCXX_TESTUTIL_SRCS,
hdrs = GRPCXX_TESTUTIL_HDRS,
diff --git a/test/cpp/util/channel_trace_proto_helper.cc b/test/cpp/util/channel_trace_proto_helper.cc
deleted file mode 100644
index fbc9f1501c..0000000000
--- a/test/cpp/util/channel_trace_proto_helper.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *
- * Copyright 2018 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "test/cpp/util/channel_trace_proto_helper.h"
-
-#include <google/protobuf/text_format.h>
-#include <google/protobuf/util/json_util.h>
-
-#include <grpc/grpc.h>
-#include <grpc/support/log.h>
-#include <gtest/gtest.h>
-
-#include "src/proto/grpc/channelz/channelz.pb.h"
-
-namespace grpc {
-namespace testing {
-
-void ValidateChannelTraceProtoJsonTranslation(char* tracer_json_c_str) {
- std::string tracer_json_str(tracer_json_c_str);
- grpc::channelz::ChannelTrace channel_trace;
- google::protobuf::util::JsonParseOptions parse_options;
- // If the following line is failing, then uncomment the last line of the
- // comment, and uncomment the lines that print the two strings. You can
- // then compare the output, and determine what fields are missing.
- //
- // options.ignore_unknown_fields = true;
- ASSERT_EQ(google::protobuf::util::JsonStringToMessage(
- tracer_json_str, &channel_trace, parse_options),
- google::protobuf::util::Status::OK);
- std::string proto_json_str;
- ASSERT_EQ(google::protobuf::util::MessageToJsonString(channel_trace,
- &proto_json_str),
- google::protobuf::util::Status::OK);
- // uncomment these to compare the the json strings.
- // gpr_log(GPR_ERROR, "tracer json: %s", tracer_json_str.c_str());
- // gpr_log(GPR_ERROR, "proto json: %s", proto_json_str.c_str());
- ASSERT_EQ(tracer_json_str, proto_json_str);
-}
-
-} // namespace testing
-} // namespace grpc
diff --git a/test/cpp/util/channel_trace_proto_helper.h b/test/cpp/util/channel_trace_proto_helper.h
deleted file mode 100644
index d7043d9f06..0000000000
--- a/test/cpp/util/channel_trace_proto_helper.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *
- * Copyright 2018 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#ifndef GRPC_TEST_CPP_UTIL_CHANNEL_TRACE_PROTO_HELPER_H
-#define GRPC_TEST_CPP_UTIL_CHANNEL_TRACE_PROTO_HELPER_H
-
-namespace grpc {
-namespace testing {
-
-void ValidateChannelTraceProtoJsonTranslation(char* tracer_json_c_str);
-
-} // namespace testing
-} // namespace grpc
-
-#endif // GRPC_TEST_CPP_UTIL_CHANNEL_TRACE_PROTO_HELPER_H