|
|
|
@ -115,9 +115,7 @@ TEST(XdsBootstrapTest, Basic) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_EQ(error, GRPC_ERROR_NONE) << grpc_error_std_string(error); |
|
|
|
|
EXPECT_EQ(bootstrap.server().server_uri, "fake:///lb"); |
|
|
|
|
EXPECT_EQ(bootstrap.server().channel_creds_type, "fake"); |
|
|
|
@ -183,9 +181,7 @@ TEST(XdsBootstrapTest, ValidWithoutNode) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_EQ(error, GRPC_ERROR_NONE) << grpc_error_std_string(error); |
|
|
|
|
EXPECT_EQ(bootstrap.server().server_uri, "fake:///lb"); |
|
|
|
|
EXPECT_EQ(bootstrap.server().channel_creds_type, "fake"); |
|
|
|
@ -205,9 +201,7 @@ TEST(XdsBootstrapTest, InsecureCreds) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_EQ(error, GRPC_ERROR_NONE) << grpc_error_std_string(error); |
|
|
|
|
EXPECT_EQ(bootstrap.server().server_uri, "fake:///lb"); |
|
|
|
|
EXPECT_EQ(bootstrap.server().channel_creds_type, "insecure"); |
|
|
|
@ -243,9 +237,7 @@ TEST(XdsBootstrapTest, GoogleDefaultCreds) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_EQ(error, GRPC_ERROR_NONE) << grpc_error_std_string(error); |
|
|
|
|
EXPECT_EQ(bootstrap.server().server_uri, "fake:///lb"); |
|
|
|
|
EXPECT_EQ(bootstrap.server().channel_creds_type, "google_default"); |
|
|
|
@ -264,9 +256,7 @@ TEST(XdsBootstrapTest, MissingChannelCreds) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("field:channel_creds error:does not exist.")); |
|
|
|
@ -286,9 +276,7 @@ TEST(XdsBootstrapTest, NoKnownChannelCreds) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"no known creds type found in \"channel_creds\"")); |
|
|
|
@ -299,9 +287,7 @@ TEST(XdsBootstrapTest, MissingXdsServers) { |
|
|
|
|
auto json = Json::Parse("{}"); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("\"xds_servers\" field not present")); |
|
|
|
|
GRPC_ERROR_UNREF(error); |
|
|
|
@ -318,9 +304,7 @@ TEST(XdsBootstrapTest, TopFieldsWrongTypes) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("\"xds_servers\" field is not an array.*" |
|
|
|
|
"\"node\" field is not an object.*" |
|
|
|
@ -340,9 +324,7 @@ TEST(XdsBootstrapTest, XdsServerMissingServerUri) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("errors parsing \"xds_servers\" array.*" |
|
|
|
@ -365,9 +347,7 @@ TEST(XdsBootstrapTest, XdsServerUriAndCredsWrongTypes) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"errors parsing \"xds_servers\" array.*" |
|
|
|
@ -396,9 +376,7 @@ TEST(XdsBootstrapTest, ChannelCredsFieldsWrongTypes) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("errors parsing \"xds_servers\" array.*" |
|
|
|
@ -424,9 +402,7 @@ TEST(XdsBootstrapTest, NodeFieldsWrongTypes) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("errors parsing \"node\" object.*" |
|
|
|
|
"\"id\" field is not a string.*" |
|
|
|
@ -450,9 +426,7 @@ TEST(XdsBootstrapTest, LocalityFieldsWrongType) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("errors parsing \"node\" object.*" |
|
|
|
|
"errors parsing \"locality\" object.*" |
|
|
|
@ -478,9 +452,7 @@ TEST(XdsBootstrapTest, CertificateProvidersElementWrongType) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"errors parsing \"certificate_providers\" object.*" |
|
|
|
@ -506,9 +478,7 @@ TEST(XdsBootstrapTest, CertificateProvidersPluginNameWrongType) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"errors parsing \"certificate_providers\" object.*" |
|
|
|
@ -535,9 +505,7 @@ TEST(XdsBootstrapTest, CertificateProvidersUnrecognizedPluginName) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"errors parsing \"certificate_providers\" object.*" |
|
|
|
@ -578,9 +546,7 @@ TEST(XdsBootstrapTest, AuthorityXdsServerInvalidResourceTemplate) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"errors parsing \"authorities\".*" |
|
|
|
@ -612,9 +578,7 @@ TEST(XdsBootstrapTest, AuthorityXdsServerMissingServerUri) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex("errors parsing \"authorities\".*" |
|
|
|
@ -697,9 +661,7 @@ TEST(XdsBootstrapTest, CertificateProvidersFakePluginParsingError) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
EXPECT_THAT(grpc_error_std_string(error), |
|
|
|
|
::testing::ContainsRegex( |
|
|
|
|
"errors parsing \"certificate_providers\" object.*" |
|
|
|
@ -729,15 +691,10 @@ TEST(XdsBootstrapTest, CertificateProvidersFakePluginParsingSuccess) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
ASSERT_TRUE(GRPC_ERROR_IS_NONE(error)) << grpc_error_std_string(error); |
|
|
|
|
const CertificateProviderStore::PluginDefinition& fake_plugin = |
|
|
|
|
static_cast<const GrpcXdsCertificateProviderPluginMap*>( |
|
|
|
|
bootstrap.certificate_provider_plugin_map()) |
|
|
|
|
->plugin_map() |
|
|
|
|
.at("fake_plugin"); |
|
|
|
|
bootstrap.certificate_providers().at("fake_plugin"); |
|
|
|
|
ASSERT_EQ(fake_plugin.plugin_name, "fake"); |
|
|
|
|
ASSERT_STREQ(fake_plugin.config->name(), "fake"); |
|
|
|
|
ASSERT_EQ(static_cast<RefCountedPtr<FakeCertificateProviderFactory::Config>>( |
|
|
|
@ -764,15 +721,10 @@ TEST(XdsBootstrapTest, CertificateProvidersFakePluginEmptyConfig) { |
|
|
|
|
auto json = Json::Parse(json_str); |
|
|
|
|
ASSERT_TRUE(json.ok()) << json.status(); |
|
|
|
|
grpc_error_handle error = GRPC_ERROR_NONE; |
|
|
|
|
GrpcXdsBootstrap bootstrap( |
|
|
|
|
std::move(*json), |
|
|
|
|
absl::make_unique<GrpcXdsCertificateProviderPluginMap>(), &error); |
|
|
|
|
GrpcXdsBootstrap bootstrap(std::move(*json), &error); |
|
|
|
|
ASSERT_TRUE(GRPC_ERROR_IS_NONE(error)) << grpc_error_std_string(error); |
|
|
|
|
const CertificateProviderStore::PluginDefinition& fake_plugin = |
|
|
|
|
static_cast<const GrpcXdsCertificateProviderPluginMap*>( |
|
|
|
|
bootstrap.certificate_provider_plugin_map()) |
|
|
|
|
->plugin_map() |
|
|
|
|
.at("fake_plugin"); |
|
|
|
|
bootstrap.certificate_providers().at("fake_plugin"); |
|
|
|
|
ASSERT_EQ(fake_plugin.plugin_name, "fake"); |
|
|
|
|
ASSERT_STREQ(fake_plugin.config->name(), "fake"); |
|
|
|
|
ASSERT_EQ(static_cast<RefCountedPtr<FakeCertificateProviderFactory::Config>>( |
|
|
|
|