Skip to content

Commit

Permalink
Add unit test for duplicate addresses
Browse files Browse the repository at this point in the history
  • Loading branch information
zasweq committed Sep 30, 2024
1 parent b86a6d5 commit 4706b80
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions balancer/endpointsharding/endpointsharding_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,26 @@ func (s) TestEndpointShardingBasic(t *testing.T) {
t.Fatalf("error in expected round robin: %v", err)
}
}

// TestEndpointShardingBalancerAPI tests that when endpoint sharding gets a
// Client Conn update with a duplicate address across endpoints the
// UpdateClientConnState operation errors.
func (s) TestEndpointShardingBalancerAPI(t *testing.T) {
es := NewBalancer(nil, balancer.BuildOptions{})
addr := resolver.Address{Addr: "addr1"}
err := es.UpdateClientConnState(balancer.ClientConnState{
ResolverState: resolver.State{
Endpoints: []resolver.Endpoint{
{Addresses: []resolver.Address{addr}},
{Addresses: []resolver.Address{addr}},
},
},
})
wantErr := fmt.Sprintf("duplicate addr %v present in endpoints list", addr)
if err == nil {
t.Fatalf("es.UpdateClientConnState() got: %v, want: %v", err, wantErr)
}
if err.Error() != wantErr {
t.Fatalf("es.UpdateClientConnState() got: %v, want: %v", err, wantErr)
}
}

0 comments on commit 4706b80

Please sign in to comment.