|
|
@ -25,8 +25,6 @@ |
|
|
|
#include <grpcpp/ext/otel_plugin.h> |
|
|
|
#include <grpcpp/ext/otel_plugin.h> |
|
|
|
|
|
|
|
|
|
|
|
#include "src/core/ext/xds/xds_enabled_server.h" |
|
|
|
#include "src/core/ext/xds/xds_enabled_server.h" |
|
|
|
#include "src/core/lib/config/core_configuration.h" |
|
|
|
|
|
|
|
#include "src/core/lib/gprpp/env.h" |
|
|
|
|
|
|
|
#include "test/core/util/test_config.h" |
|
|
|
#include "test/core/util/test_config.h" |
|
|
|
|
|
|
|
|
|
|
|
namespace grpc { |
|
|
|
namespace grpc { |
|
|
@ -42,14 +40,7 @@ TEST(GsmDependencyTest, GoogleCloudOpenTelemetryDependency) { |
|
|
|
EXPECT_NE(google::cloud::otel::MakeResourceDetector(), nullptr); |
|
|
|
EXPECT_NE(google::cloud::otel::MakeResourceDetector(), nullptr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class CsmChannelTargetSelectorTest : public ::testing::Test { |
|
|
|
TEST(CsmChannelTargetSelectorTest, NonXdsTargets) { |
|
|
|
protected: |
|
|
|
|
|
|
|
~CsmChannelTargetSelectorTest() override { |
|
|
|
|
|
|
|
grpc_core::CoreConfiguration::Reset(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmChannelTargetSelectorTest, NonXdsTargets) { |
|
|
|
|
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
EXPECT_FALSE(internal::CsmChannelTargetSelector("foo.bar.google.com")); |
|
|
|
EXPECT_FALSE(internal::CsmChannelTargetSelector("foo.bar.google.com")); |
|
|
|
EXPECT_FALSE(internal::CsmChannelTargetSelector("dns:///foo.bar.google.com")); |
|
|
|
EXPECT_FALSE(internal::CsmChannelTargetSelector("dns:///foo.bar.google.com")); |
|
|
@ -59,24 +50,24 @@ TEST_F(CsmChannelTargetSelectorTest, NonXdsTargets) { |
|
|
|
"dns://authority/foo.bar.google.com:1234")); |
|
|
|
"dns://authority/foo.bar.google.com:1234")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmChannelTargetSelectorTest, XdsTargets) { |
|
|
|
TEST(CsmChannelTargetSelectorTest, XdsTargets) { |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
EXPECT_TRUE(internal::CsmChannelTargetSelector("xds:///foo")); |
|
|
|
EXPECT_TRUE(internal::CsmChannelTargetSelector("xds:///foo")); |
|
|
|
EXPECT_TRUE(internal::CsmChannelTargetSelector("xds:///foo.bar")); |
|
|
|
EXPECT_TRUE(internal::CsmChannelTargetSelector("xds:///foo.bar")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmChannelTargetSelectorTest, XdsTargetsWithNonTDAuthority) { |
|
|
|
TEST(CsmChannelTargetSelectorTest, XdsTargetsWithNonTDAuthority) { |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
EXPECT_FALSE(internal::CsmChannelTargetSelector("xds://authority/foo")); |
|
|
|
EXPECT_FALSE(internal::CsmChannelTargetSelector("xds://authority/foo")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmChannelTargetSelectorTest, XdsTargetsWithTDAuthority) { |
|
|
|
TEST(CsmChannelTargetSelectorTest, XdsTargetsWithTDAuthority) { |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
EXPECT_TRUE(internal::CsmChannelTargetSelector( |
|
|
|
EXPECT_TRUE(internal::CsmChannelTargetSelector( |
|
|
|
"xds://traffic-director-global.xds.googleapis.com/foo")); |
|
|
|
"xds://traffic-director-global.xds.googleapis.com/foo")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmChannelTargetSelectorTest, CsmObservabilityOutOfScope) { |
|
|
|
TEST(CsmChannelTargetSelectorTest, CsmObservabilityOutOfScope) { |
|
|
|
{ auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); } |
|
|
|
{ auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); } |
|
|
|
// When CsmObservability goes out of scope, the target selector should return
|
|
|
|
// When CsmObservability goes out of scope, the target selector should return
|
|
|
|
// false as well.
|
|
|
|
// false as well.
|
|
|
@ -86,20 +77,18 @@ TEST_F(CsmChannelTargetSelectorTest, CsmObservabilityOutOfScope) { |
|
|
|
"xds://traffic-director-global.xds.googleapis.com/foo")); |
|
|
|
"xds://traffic-director-global.xds.googleapis.com/foo")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
using CsmServerSelectorTest = CsmChannelTargetSelectorTest; |
|
|
|
TEST(CsmServerSelectorTest, ChannelArgsWithoutXdsServerArg) { |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmServerSelectorTest, ChannelArgsWithoutXdsServerArg) { |
|
|
|
|
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
EXPECT_FALSE(internal::CsmServerSelector(grpc_core::ChannelArgs())); |
|
|
|
EXPECT_FALSE(internal::CsmServerSelector(grpc_core::ChannelArgs())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmServerSelectorTest, ChannelArgsWithXdsServerArg) { |
|
|
|
TEST(CsmServerSelectorTest, ChannelArgsWithXdsServerArg) { |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); |
|
|
|
EXPECT_TRUE(internal::CsmServerSelector( |
|
|
|
EXPECT_TRUE(internal::CsmServerSelector( |
|
|
|
grpc_core::ChannelArgs().Set(GRPC_ARG_XDS_ENABLED_SERVER, true))); |
|
|
|
grpc_core::ChannelArgs().Set(GRPC_ARG_XDS_ENABLED_SERVER, true))); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(CsmServerSelectorTest, CsmObservabilityOutOfScope) { |
|
|
|
TEST(CsmServerSelectorTest, CsmObservabilityOutOfScope) { |
|
|
|
{ auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); } |
|
|
|
{ auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); } |
|
|
|
// When CsmObservability goes out of scope, the server selector should return
|
|
|
|
// When CsmObservability goes out of scope, the server selector should return
|
|
|
|
// false as well.
|
|
|
|
// false as well.
|
|
|
|