mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-19 08:40:42 +00:00
Add unit tests for RepackSubsets to take pod UID into consideration
This commit is contained in:
parent
55daf3b80e
commit
79e54c2679
@ -120,10 +120,10 @@ func LessEndpointAddress(a, b *api.EndpointAddress) bool {
|
|||||||
if ipComparison != 0 {
|
if ipComparison != 0 {
|
||||||
return ipComparison < 0
|
return ipComparison < 0
|
||||||
}
|
}
|
||||||
if (b.TargetRef == nil) {
|
if b.TargetRef == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if (a.TargetRef == nil) {
|
if a.TargetRef == nil {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return a.TargetRef.UID < b.TargetRef.UID
|
return a.TargetRef.UID < b.TargetRef.UID
|
||||||
|
@ -22,8 +22,14 @@ import (
|
|||||||
|
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func podRef(uid string) *api.ObjectReference {
|
||||||
|
ref := api.ObjectReference{UID: types.UID(uid)}
|
||||||
|
return &ref
|
||||||
|
}
|
||||||
|
|
||||||
func TestPackSubsets(t *testing.T) {
|
func TestPackSubsets(t *testing.T) {
|
||||||
// The downside of table-driven tests is that some things have to live outside the table.
|
// The downside of table-driven tests is that some things have to live outside the table.
|
||||||
fooObjRef := api.ObjectReference{Name: "foo"}
|
fooObjRef := api.ObjectReference{Name: "foo"}
|
||||||
@ -56,6 +62,26 @@ func TestPackSubsets(t *testing.T) {
|
|||||||
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}},
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}},
|
||||||
Ports: []api.EndpointPort{{Port: 111}},
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
}},
|
}},
|
||||||
|
}, {
|
||||||
|
name: "one set, one ip, one UID, one port",
|
||||||
|
given: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
expect: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
}, {
|
||||||
|
name: "one set, one ip, empty UID, one port",
|
||||||
|
given: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
expect: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
}, {
|
}, {
|
||||||
name: "one set, two ips, one port",
|
name: "one set, two ips, one port",
|
||||||
given: []api.EndpointSubset{{
|
given: []api.EndpointSubset{{
|
||||||
@ -135,6 +161,19 @@ func TestPackSubsets(t *testing.T) {
|
|||||||
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}},
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}},
|
||||||
Ports: []api.EndpointPort{{Port: 111}, {Port: 222}},
|
Ports: []api.EndpointPort{{Port: 111}, {Port: 222}},
|
||||||
}},
|
}},
|
||||||
|
}, {
|
||||||
|
name: "two sets, dup ip, dup uids, two ports",
|
||||||
|
given: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}, {
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 222}},
|
||||||
|
}},
|
||||||
|
expect: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}, {Port: 222}},
|
||||||
|
}},
|
||||||
}, {
|
}, {
|
||||||
name: "two sets, two ips, dup port",
|
name: "two sets, two ips, dup port",
|
||||||
given: []api.EndpointSubset{{
|
given: []api.EndpointSubset{{
|
||||||
@ -148,6 +187,62 @@ func TestPackSubsets(t *testing.T) {
|
|||||||
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}},
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}},
|
||||||
Ports: []api.EndpointPort{{Port: 111}},
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
}},
|
}},
|
||||||
|
}, {
|
||||||
|
name: "two set, dup ip, two uids, dup ports",
|
||||||
|
given: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}, {
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-2")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
expect: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{
|
||||||
|
{IP: "1.2.3.4", TargetRef: podRef("uid-1")},
|
||||||
|
{IP: "1.2.3.4", TargetRef: podRef("uid-2")},
|
||||||
|
},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
}, {
|
||||||
|
name: "two set, dup ip, with and without uid, dup ports",
|
||||||
|
given: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}, {
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-2")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
expect: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{
|
||||||
|
{IP: "1.2.3.4"},
|
||||||
|
{IP: "1.2.3.4", TargetRef: podRef("uid-2")},
|
||||||
|
},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
}, {
|
||||||
|
name: "two sets, two ips, two dup ip with uid, dup port, wrong order",
|
||||||
|
given: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "5.6.7.8"}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}, {
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "5.6.7.8", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}, {
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4", TargetRef: podRef("uid-1")}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}, {
|
||||||
|
Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
|
expect: []api.EndpointSubset{{
|
||||||
|
Addresses: []api.EndpointAddress{
|
||||||
|
{IP: "1.2.3.4"},
|
||||||
|
{IP: "1.2.3.4", TargetRef: podRef("uid-1")},
|
||||||
|
{IP: "5.6.7.8"},
|
||||||
|
{IP: "5.6.7.8", TargetRef: podRef("uid-1")},
|
||||||
|
},
|
||||||
|
Ports: []api.EndpointPort{{Port: 111}},
|
||||||
|
}},
|
||||||
}, {
|
}, {
|
||||||
name: "two sets, two ips, two ports",
|
name: "two sets, two ips, two ports",
|
||||||
given: []api.EndpointSubset{{
|
given: []api.EndpointSubset{{
|
||||||
|
Loading…
Reference in New Issue
Block a user