diff --git a/interop/client/client.go b/interop/client/client.go index 42d4208bdc35..af2744e1fe02 100644 --- a/interop/client/client.go +++ b/interop/client/client.go @@ -48,9 +48,10 @@ import ( "google.golang.org/grpc/resolver" "google.golang.org/grpc/testdata" - _ "google.golang.org/grpc/balancer/grpclb" // Register the grpclb load balancing policy. - _ "google.golang.org/grpc/balancer/rls" // Register the RLS load balancing policy. - "google.golang.org/grpc/xds/googledirectpath" // Register xDS resolver required for c2p directpath. + _ "google.golang.org/grpc/balancer/grpclb" // Register the grpclb load balancing policy. + _ "google.golang.org/grpc/balancer/randomsubsetting" // Register the random_subsetting_experimental load balancing policy. + _ "google.golang.org/grpc/balancer/rls" // Register the RLS load balancing policy. + "google.golang.org/grpc/xds/googledirectpath" // Register xDS resolver required for c2p directpath. testgrpc "google.golang.org/grpc/interop/grpc_testing" ) @@ -402,6 +403,9 @@ func main() { case "orca_oob": interop.DoORCAOOBTest(ctx, tc) logger.Infoln("ORCAOOB done") + case "random_subsetting": + interop.DoEmptyUnaryCall(ctx, tc) + logger.Infoln("Random subsetting done") default: logger.Fatal("Unsupported test case: ", *testCase) } diff --git a/interop/interop_test.sh b/interop/interop_test.sh index 5240c26f5ea5..b9fc223bebb7 100755 --- a/interop/interop_test.sh +++ b/interop/interop_test.sh @@ -94,6 +94,7 @@ CASES=( "orca_oob" "rpc_soak" "channel_soak" + "random_subsetting" ) # Build server @@ -112,6 +113,8 @@ else pass "successfully built client" fi +SERVICE_CONFIG='{ "loadBalancingConfig": [{ "test_backend_metrics_load_balancer": {} }]}' + # Start server SERVER_LOG="$(mktemp)" GRPC_GO_LOG_SEVERITY_LEVEL=info go run ./interop/server --use_tls &> $SERVER_LOG & @@ -119,12 +122,15 @@ GRPC_GO_LOG_SEVERITY_LEVEL=info go run ./interop/server --use_tls &> $SERVER_LOG for case in ${CASES[@]}; do echo "$(tput setaf 4) $(date): testing: ${case} $(tput sgr 0)" + if [[ "${case}" == "random_subsetting" ]]; then + SERVICE_CONFIG='{ "loadBalancingConfig": [{ "random_subsetting_experimental": { "subsetSize": 3, "childPolicy": [{ "round_robin": {} }] } }]}' + fi CLIENT_LOG="$(mktemp)" if ! GRPC_GO_LOG_SEVERITY_LEVEL=info withTimeout 20 go run ./interop/client \ --use_tls \ --server_host_override=foo.test.google.fr \ --use_test_ca --test_case="${case}" \ - --service_config_json='{ "loadBalancingConfig": [{ "test_backend_metrics_load_balancer": {} }]}' \ + --service_config_json="${SERVICE_CONFIG}" \ &> $CLIENT_LOG; then fail "FAIL: test case ${case} got server log: