server_config_selector_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 
20 
21 #include <gtest/gtest.h>
22 
23 #include <grpc/grpc.h>
24 #include <grpc/support/log.h>
25 
28 
29 namespace grpc {
30 namespace testing {
31 namespace {
32 
35 
36 class TestServerConfigSelectorProvider : public ServerConfigSelectorProvider {
38  std::unique_ptr<ServerConfigSelectorWatcher> /* watcher */) override {
39  return absl::UnavailableError("Test ServerConfigSelector");
40  }
41 
42  void Orphan() override {}
43 
44  void CancelWatch() override {}
45 };
46 
47 // Test that ServerConfigSelectorProvider can be safely copied to channel args
48 // and destroyed
49 TEST(ServerConfigSelectorProviderTest, CopyChannelArgs) {
50  auto server_config_selector_provider =
51  grpc_core::MakeRefCounted<TestServerConfigSelectorProvider>();
52  grpc_arg arg = server_config_selector_provider->MakeChannelArg();
54  EXPECT_EQ(server_config_selector_provider,
56  .GetObject<ServerConfigSelectorProvider>());
58 }
59 
60 // Test compare on channel args with the same ServerConfigSelectorProvider
61 TEST(ServerConfigSelectorProviderTest, ChannelArgsCompare) {
62  auto server_config_selector_provider =
63  grpc_core::MakeRefCounted<TestServerConfigSelectorProvider>();
64  grpc_arg arg = server_config_selector_provider->MakeChannelArg();
68  .GetObject<ServerConfigSelectorProvider>(),
70  .GetObject<ServerConfigSelectorProvider>());
72  grpc_channel_args_destroy(new_args);
73 }
74 
75 } // namespace
76 } // namespace testing
77 } // namespace grpc
78 
79 int main(int argc, char** argv) {
80  ::testing::InitGoogleTest(&argc, argv);
82  grpc_init();
83  int ret = RUN_ALL_TESTS();
84  grpc_shutdown();
85  return ret;
86 }
grpc_core::ServerConfigSelectorProvider
Definition: server_config_selector.h:57
grpc_arg
Definition: grpc_types.h:103
testing
Definition: aws_request_signer_test.cc:25
log.h
generate.env
env
Definition: generate.py:37
grpc
Definition: grpcpp/alarm.h:33
grpc_core::ChannelArgs::FromC
static ChannelArgs FromC(const grpc_channel_args *args)
Definition: channel_args.cc:84
grpc_channel_args
Definition: grpc_types.h:132
server_config_selector.h
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
main
int main(int argc, char **argv)
Definition: server_config_selector_test.cc:79
grpc.h
grpc_channel_args_destroy
void grpc_channel_args_destroy(grpc_channel_args *a)
Definition: channel_args.cc:360
arg
Definition: cmdline.cc:40
grpc_core::ServerConfigSelector
Definition: server_config_selector.h:41
grpc_channel_args_copy
grpc_channel_args * grpc_channel_args_copy(const grpc_channel_args *src)
Definition: channel_args.cc:285
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
test_config.h
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
ret
UniquePtr< SSL_SESSION > ret
Definition: ssl_x509.cc:1029
grpc::testing::TestEnvironment
Definition: test/core/util/test_config.h:54
absl::UnavailableError
Status UnavailableError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:375
grpc::testing::EXPECT_EQ
EXPECT_EQ(options.token_exchange_service_uri, "https://foo/exchange")
channel_args.h
grpc::testing::TEST
TEST(StatsTest, IncCounters)
Definition: stats_test.cc:51
absl::StatusOr
Definition: abseil-cpp/absl/status/statusor.h:187
grpc_init
GRPCAPI void grpc_init(void)
Definition: init.cc:146
grpc_shutdown
GRPCAPI void grpc_shutdown(void)
Definition: init.cc:209
grpc_channel_args_copy_and_add
grpc_channel_args * grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add)
Definition: channel_args.cc:224


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:17