Skip to content

Commit

Permalink
add more test cases to resourceversiontable
Browse files Browse the repository at this point in the history
Signed-off-by: Ronnie Personal <76408835+Ronnie-personal@users.noreply.github.com>
  • Loading branch information
Ronnie-personal committed Aug 4, 2023
1 parent bf02df5 commit 3715b44
Showing 1 changed file with 177 additions and 3 deletions.
180 changes: 177 additions & 3 deletions internal/xds/types/resourceversiontable_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,58 @@ func TestAddOrReplaceXdsResource(t *testing.T) {
},
},
}
testEndpoint := &endpointv3.ClusterLoadAssignment{
ClusterName: "test-cluster",
Endpoints: []*endpointv3.LocalityLbEndpoints{
{
LbEndpoints: []*endpointv3.LbEndpoint{
{
HostIdentifier: &endpointv3.LbEndpoint_Endpoint{
Endpoint: &endpointv3.Endpoint{
Address: &corev3.Address{
Address: &corev3.Address_SocketAddress{
SocketAddress: &corev3.SocketAddress{
Address: "exampleservice.examplenamespace.svc.cluster.local",
PortSpecifier: &corev3.SocketAddress_PortValue{
PortValue: 5000,
},
Protocol: corev3.SocketAddress_TCP,
},
},
},
},
},
},
},
},
},
}
updatedEndpoint := &endpointv3.ClusterLoadAssignment{
ClusterName: "test-cluster",
Endpoints: []*endpointv3.LocalityLbEndpoints{
{
LbEndpoints: []*endpointv3.LbEndpoint{
{
HostIdentifier: &endpointv3.LbEndpoint_Endpoint{
Endpoint: &endpointv3.Endpoint{
Address: &corev3.Address{
Address: &corev3.Address_SocketAddress{
SocketAddress: &corev3.SocketAddress{
Address: "modified.example.svc.cluster.local",
PortSpecifier: &corev3.SocketAddress_PortValue{
PortValue: 5000,
},
Protocol: corev3.SocketAddress_TCP,
},
},
},
},
},
},
},
},
},
}
testRouteConfig := &routev3.RouteConfiguration{
Name: "test-route-config",
VirtualHosts: []*routev3.VirtualHost{
Expand Down Expand Up @@ -274,6 +326,58 @@ func TestAddOrReplaceXdsResource(t *testing.T) {
},
},
},
{
name: "inject-new-endpoint",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.EndpointType: []types.Resource{},
},
},
typeIn: resourcev3.EndpointType,
resourceIn: testEndpoint,
funcIn: func(existing types.Resource, new types.Resource) bool {
oldEndpoint := existing.(*endpointv3.ClusterLoadAssignment)
newEndpoint := new.(*endpointv3.ClusterLoadAssignment)
if newEndpoint == nil || oldEndpoint == nil {
return false
}
if oldEndpoint.ClusterName == newEndpoint.ClusterName {
return true
}
return false
},
tableOut: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.EndpointType: []types.Resource{testEndpoint},
},
},
},
{
name: "replace-endpoint",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.EndpointType: []types.Resource{testEndpoint},
},
},
typeIn: resourcev3.EndpointType,
resourceIn: updatedEndpoint,
funcIn: func(existing types.Resource, new types.Resource) bool {
oldEndpoint := existing.(*endpointv3.ClusterLoadAssignment)
newEndpoint := new.(*endpointv3.ClusterLoadAssignment)
if newEndpoint == nil || oldEndpoint == nil {
return false
}
if oldEndpoint.ClusterName == newEndpoint.ClusterName {
return true
}
return false
},
tableOut: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.EndpointType: []types.Resource{updatedEndpoint},
},
},
},
{
name: "inject-new-listener",
tableIn: &ResourceVersionTable{
Expand Down Expand Up @@ -507,6 +611,32 @@ func TestInvalidAddXdsResource(t *testing.T) {
},
},
}
invalidEndpoint := &endpointv3.ClusterLoadAssignment{
ClusterName: "test-cluster",
Endpoints: []*endpointv3.LocalityLbEndpoints{
{
LbEndpoints: []*endpointv3.LbEndpoint{
{
HostIdentifier: &endpointv3.LbEndpoint_Endpoint{
Endpoint: &endpointv3.Endpoint{
Address: &corev3.Address{
Address: &corev3.Address_SocketAddress{
SocketAddress: &corev3.SocketAddress{
Address: "",
PortSpecifier: &corev3.SocketAddress_PortValue{
PortValue: 5000,
},
Protocol: corev3.SocketAddress_TCP,
},
},
},
},
},
},
},
},
},
}

invalidSecret := &tlsv3.Secret{
Name: "=*&",
Expand All @@ -532,7 +662,7 @@ func TestInvalidAddXdsResource(t *testing.T) {
tableOut *ResourceVersionTable
}{
{
name: "inject-new-listener",
name: "inject-invalid-listener",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.ListenerType: []types.Resource{},
Expand All @@ -558,7 +688,7 @@ func TestInvalidAddXdsResource(t *testing.T) {
},
},
{
name: "inject-new-route-config",
name: "inject-invalid-route-config",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.RouteType: []types.Resource{},
Expand All @@ -580,7 +710,7 @@ func TestInvalidAddXdsResource(t *testing.T) {
tableOut: nil,
},
{
name: "inject-new-cluster",
name: "inject-invalid-cluster",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.ClusterType: []types.Resource{},
Expand Down Expand Up @@ -711,6 +841,50 @@ func TestInvalidAddXdsResource(t *testing.T) {
},
tableOut: nil,
},
{
name: "inject-invalid-endpoint",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.EndpointType: []types.Resource{},
},
},
typeIn: resourcev3.EndpointType,
resourceIn: invalidEndpoint,
funcIn: func(existing types.Resource, new types.Resource) bool {
oldEndpoint := existing.(*endpointv3.ClusterLoadAssignment)
newEndpoint := new.(*endpointv3.ClusterLoadAssignment)
if newEndpoint == nil || oldEndpoint == nil {
return false
}
if oldEndpoint.ClusterName == newEndpoint.ClusterName {
return true
}
return false
},
tableOut: nil,
},
{
name: "cast-endpoint-type",
tableIn: &ResourceVersionTable{
XdsResources: XdsResources{
resourcev3.EndpointType: []types.Resource{},
},
},
typeIn: resourcev3.EndpointType,
resourceIn: invalidListener,
funcIn: func(existing types.Resource, new types.Resource) bool {
oldEndpoint := existing.(*endpointv3.ClusterLoadAssignment)
newEndpoint := new.(*endpointv3.ClusterLoadAssignment)
if newEndpoint == nil || oldEndpoint == nil {
return false
}
if oldEndpoint.ClusterName == newEndpoint.ClusterName {
return true
}
return false
},
tableOut: nil,
},
}
for _, tc := range testCases {
tc := tc
Expand Down

0 comments on commit 3715b44

Please sign in to comment.