diff options
author | 2016-11-29 12:31:14 -0800 | |
---|---|---|
committer | 2016-11-29 12:31:14 -0800 | |
commit | 3b45b8d60b9f0a1678f5f497345e21f7bc71675a (patch) | |
tree | 5d4f24b130613123358609bbcf742c0a7d6940a8 /test/cpp/util/test_credentials_provider.cc | |
parent | 3b04e7e3795f9f5e339ae7dfc40babb19485cfaf (diff) |
Revert "Test credentials provider update"
Diffstat (limited to 'test/cpp/util/test_credentials_provider.cc')
-rw-r--r-- | test/cpp/util/test_credentials_provider.cc | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/test/cpp/util/test_credentials_provider.cc b/test/cpp/util/test_credentials_provider.cc index 909b02a701..0456b96667 100644 --- a/test/cpp/util/test_credentials_provider.cc +++ b/test/cpp/util/test_credentials_provider.cc @@ -43,9 +43,25 @@ #include "test/core/end2end/data/ssl_test_data.h" namespace grpc { -namespace testing { namespace { +using grpc::testing::CredentialTypeProvider; + +// Provide test credentials. Thread-safe. +class CredentialsProvider { + public: + virtual ~CredentialsProvider() {} + + virtual void AddSecureType( + const grpc::string& type, + std::unique_ptr<CredentialTypeProvider> type_provider) = 0; + virtual std::shared_ptr<ChannelCredentials> GetChannelCredentials( + const grpc::string& type, ChannelArguments* args) = 0; + virtual std::shared_ptr<ServerCredentials> GetServerCredentials( + const grpc::string& type) = 0; + virtual std::vector<grpc::string> GetSecureCredentialsTypeList() = 0; +}; + class DefaultCredentialsProvider : public CredentialsProvider { public: ~DefaultCredentialsProvider() override {} @@ -129,21 +145,37 @@ class DefaultCredentialsProvider : public CredentialsProvider { added_secure_type_providers_; }; +gpr_once g_once_init_provider = GPR_ONCE_INIT; CredentialsProvider* g_provider = nullptr; -} // namespace +void CreateDefaultProvider() { g_provider = new DefaultCredentialsProvider; } -CredentialsProvider* GetCredentialsProvider() { - if (g_provider == nullptr) { - g_provider = new DefaultCredentialsProvider; - } +CredentialsProvider* GetProvider() { + gpr_once_init(&g_once_init_provider, &CreateDefaultProvider); return g_provider; } -void SetCredentialsProvider(CredentialsProvider* provider) { - // For now, forbids overriding provider. - GPR_ASSERT(g_provider == nullptr); - g_provider = provider; +} // namespace + +namespace testing { + +void AddSecureType(const grpc::string& type, + std::unique_ptr<CredentialTypeProvider> type_provider) { + GetProvider()->AddSecureType(type, std::move(type_provider)); +} + +std::shared_ptr<ChannelCredentials> GetChannelCredentials( + const grpc::string& type, ChannelArguments* args) { + return GetProvider()->GetChannelCredentials(type, args); +} + +std::shared_ptr<ServerCredentials> GetServerCredentials( + const grpc::string& type) { + return GetProvider()->GetServerCredentials(type); +} + +std::vector<grpc::string> GetSecureCredentialsTypeList() { + return GetProvider()->GetSecureCredentialsTypeList(); } } // namespace testing |