@ -24,7 +24,7 @@
# include <grpcpp/ext/csm_observability.h>
# include <grpcpp/ext/otel_plugin.h>
# include "src/core/lib/gprpp/env .h"
# include "src/core/ext/xds/xds_enabled_server .h"
# include "test/core/util/test_config.h"
namespace grpc {
@ -41,6 +41,7 @@ TEST(GsmDependencyTest, GoogleCloudOpenTelemetryDependency) {
}
TEST ( CsmChannelTargetSelectorTest , NonXdsTargets ) {
auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ;
EXPECT_FALSE ( internal : : CsmChannelTargetSelector ( " foo.bar.google.com " ) ) ;
EXPECT_FALSE ( internal : : CsmChannelTargetSelector ( " dns:///foo.bar.google.com " ) ) ;
EXPECT_FALSE (
@ -50,19 +51,52 @@ TEST(CsmChannelTargetSelectorTest, NonXdsTargets) {
}
TEST ( CsmChannelTargetSelectorTest , XdsTargets ) {
auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ;
EXPECT_TRUE ( internal : : CsmChannelTargetSelector ( " xds:///foo " ) ) ;
EXPECT_TRUE ( internal : : CsmChannelTargetSelector ( " xds:///foo.bar " ) ) ;
}
TEST ( CsmChannelTargetSelectorTest , XdsTargetsWithNonTDAuthority ) {
auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ;
EXPECT_FALSE ( internal : : CsmChannelTargetSelector ( " xds://authority/foo " ) ) ;
}
TEST ( CsmChannelTargetSelectorTest , XdsTargetsWithTDAuthority ) {
auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ;
EXPECT_TRUE ( internal : : CsmChannelTargetSelector (
" xds://traffic-director-global.xds.googleapis.com/foo " ) ) ;
}
TEST ( CsmChannelTargetSelectorTest , CsmObservabilityOutOfScope ) {
{ auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ; }
// When CsmObservability goes out of scope, the target selector should return
// false as well.
EXPECT_FALSE ( internal : : CsmChannelTargetSelector ( " foo.bar.google.com " ) ) ;
EXPECT_FALSE ( internal : : CsmChannelTargetSelector ( " xds:///foo " ) ) ;
EXPECT_FALSE ( internal : : CsmChannelTargetSelector (
" xds://traffic-director-global.xds.googleapis.com/foo " ) ) ;
}
TEST ( CsmServerSelectorTest , ChannelArgsWithoutXdsServerArg ) {
auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ;
EXPECT_FALSE ( internal : : CsmServerSelector ( grpc_core : : ChannelArgs ( ) ) ) ;
}
TEST ( CsmServerSelectorTest , ChannelArgsWithXdsServerArg ) {
auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ;
EXPECT_TRUE ( internal : : CsmServerSelector (
grpc_core : : ChannelArgs ( ) . Set ( GRPC_ARG_XDS_ENABLED_SERVER , true ) ) ) ;
}
TEST ( CsmServerSelectorTest , CsmObservabilityOutOfScope ) {
{ auto obs = experimental : : CsmObservabilityBuilder ( ) . BuildAndRegister ( ) ; }
// When CsmObservability goes out of scope, the server selector should return
// false as well.
EXPECT_FALSE ( internal : : CsmServerSelector ( grpc_core : : ChannelArgs ( ) ) ) ;
EXPECT_FALSE ( internal : : CsmServerSelector (
grpc_core : : ChannelArgs ( ) . Set ( GRPC_ARG_XDS_ENABLED_SERVER , true ) ) ) ;
}
} // namespace
} // namespace testing
} // namespace grpc