admin_services_end2end_test.cc
Go to the documentation of this file.
1 //
2 //
3 // Copyright 2021 gRPC authors.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 //
18 
19 #include <gmock/gmock.h>
20 #include <gtest/gtest.h>
21 
22 #include "absl/strings/str_cat.h"
23 
26 #include <grpcpp/grpcpp.h>
27 
28 #include "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h"
29 #include "test/core/util/port.h"
31 
32 namespace grpc {
33 namespace testing {
34 
36  public:
37  void SetUp() override {
38  std::string address =
40  // Create admin server
43  builder.AddListeningPort(address, InsecureServerCredentials());
45  server_ = builder.BuildAndStart();
46  // Create channel
47  auto reflection_stub = reflection::v1alpha::ServerReflection::NewStub(
49  stream_ = reflection_stub->ServerReflectionInfo(&reflection_ctx_);
50  }
51 
52  std::vector<std::string> GetServiceList() {
53  std::vector<std::string> services;
54  reflection::v1alpha::ServerReflectionRequest request;
55  reflection::v1alpha::ServerReflectionResponse response;
56  request.set_list_services("");
57  stream_->Write(request);
58  stream_->Read(&response);
59  for (auto& service : response.list_services_response().service()) {
60  services.push_back(service.name());
61  }
62  return services;
63  }
64 
65  private:
66  std::unique_ptr<Server> server_;
68  std::shared_ptr<
69  ClientReaderWriter<reflection::v1alpha::ServerReflectionRequest,
70  reflection::v1alpha::ServerReflectionResponse>>
72 };
73 
74 TEST_F(AdminServicesTest, ValidateRegisteredServices) {
75  // Using Contains here, because the server builder might register other
76  // services in certain environments.
78  GetServiceList(),
80  ::testing::Contains("grpc.channelz.v1.Channelz"),
81  ::testing::Contains("grpc.reflection.v1alpha.ServerReflection")));
82 #if defined(GRPC_NO_XDS) || defined(DISABLED_XDS_PROTO_IN_CC)
83  EXPECT_THAT(GetServiceList(),
85  "envoy.service.status.v3.ClientStatusDiscoveryService")));
86 #else
87  EXPECT_THAT(GetServiceList(),
89  "envoy.service.status.v3.ClientStatusDiscoveryService"));
90 #endif // GRPC_NO_XDS or DISABLED_XDS_PROTO_IN_CC
91 }
92 
93 } // namespace testing
94 } // namespace grpc
95 
96 int main(int argc, char** argv) {
98  ::testing::InitGoogleTest(&argc, argv);
99  int ret = RUN_ALL_TESTS();
100  return ret;
101 }
grpc::EXPECT_THAT
EXPECT_THAT(status.error_message(), ::testing::HasSubstr("subject_token_type"))
testing
Definition: aws_request_signer_test.cc:25
port.h
testing::Not
internal::NotMatcher< InnerMatcher > Not(InnerMatcher m)
Definition: cares/cares/test/gmock-1.8.0/gmock/gmock.h:8926
generate.env
env
Definition: generate.py:37
absl::StrCat
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
Definition: abseil-cpp/absl/strings/str_cat.cc:98
grpc
Definition: grpcpp/alarm.h:33
proto_server_reflection_plugin.h
benchmark.request
request
Definition: benchmark.py:77
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
testing::Test
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:402
grpc::testing::AdminServicesTest::GetServiceList
std::vector< std::string > GetServiceList()
Definition: admin_services_end2end_test.cc:52
grpc::ClientReaderWriter
Definition: grpcpp/impl/codegen/channel_interface.h:35
profile_analyzer.builder
builder
Definition: profile_analyzer.py:159
grpc::ServerBuilder
A builder class for the creation and startup of grpc::Server instances.
Definition: grpcpp/server_builder.h:86
grpc::testing::AdminServicesTest::stream_
std::shared_ptr< ClientReaderWriter< reflection::v1alpha::ServerReflectionRequest, reflection::v1alpha::ServerReflectionResponse > > stream_
Definition: admin_services_end2end_test.cc:71
grpc::testing::AdminServicesTest::SetUp
void SetUp() override
Definition: admin_services_end2end_test.cc:37
grpcpp.h
grpc::testing::AdminServicesTest::reflection_ctx_
ClientContext reflection_ctx_
Definition: admin_services_end2end_test.cc:67
grpc::CreateChannel
std::shared_ptr< Channel > CreateChannel(const grpc::string &target, const std::shared_ptr< ChannelCredentials > &creds)
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
admin_services.h
grpc_pick_unused_port_or_die
int grpc_pick_unused_port_or_die(void)
grpc::testing::AdminServicesTest
Definition: admin_services_end2end_test.cc:35
main
int main(int argc, char **argv)
Definition: admin_services_end2end_test.cc:96
grpc::ClientContext
Definition: grpcpp/impl/codegen/client_context.h:195
test_config.h
greeter_client.services
services
Definition: no_codegen/greeter_client.py:34
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
grpc::testing::TEST_F
TEST_F(ChannelArgumentsTest, SetInt)
Definition: channel_arguments_test.cc:134
ret
UniquePtr< SSL_SESSION > ret
Definition: ssl_x509.cc:1029
asyncio_get_stats.response
response
Definition: asyncio_get_stats.py:28
grpc::testing::TestEnvironment
Definition: test/core/util/test_config.h:54
grpc::AddAdminServices
void AddAdminServices(grpc::ServerBuilder *builder)
Definition: admin_services.cc:41
grpc::InsecureServerCredentials
std::shared_ptr< ServerCredentials > InsecureServerCredentials()
Definition: insecure_server_credentials.cc:52
testing::AllOf
internal::AllOfResult2< M1, M2 >::type AllOf(M1 m1, M2 m2)
Definition: cares/cares/test/gmock-1.8.0/gmock/gmock.h:13472
grpc::InsecureChannelCredentials
std::shared_ptr< ChannelCredentials > InsecureChannelCredentials()
Credentials for an unencrypted, unauthenticated channel.
Definition: cpp/client/insecure_credentials.cc:69
service
__attribute__((deprecated("Please use GRPCProtoMethod."))) @interface ProtoMethod NSString * service
Definition: ProtoMethod.h:25
grpc::testing::AdminServicesTest::server_
std::unique_ptr< Server > server_
Definition: admin_services_end2end_test.cc:66
testing::Contains
internal::ContainsMatcher< M > Contains(M matcher)
Definition: cares/cares/test/gmock-1.8.0/gmock/gmock.h:9101
grpc::reflection::InitProtoReflectionServerBuilderPlugin
void InitProtoReflectionServerBuilderPlugin()
Definition: proto_server_reflection_plugin.cc:66


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:40