mirror of
https://github.com/moby/moby.git
synced 2026-01-11 10:41:43 +00:00
These are no longer needed as these are now part of a module. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
91 lines
2.7 KiB
Go
91 lines
2.7 KiB
Go
package libnetwork
|
|
|
|
import (
|
|
"net/netip"
|
|
"slices"
|
|
"testing"
|
|
|
|
"gotest.tools/v3/assert"
|
|
)
|
|
|
|
func TestEndpointEvent_EquivalentTo(t *testing.T) {
|
|
assert.Check(t, (&endpointEvent{}).EquivalentTo(&endpointEvent{}))
|
|
|
|
a := endpointEvent{
|
|
EndpointRecord: EndpointRecord{
|
|
Name: "foo",
|
|
ServiceName: "bar",
|
|
ServiceID: "baz",
|
|
IngressPorts: []*PortConfig{
|
|
{
|
|
Protocol: ProtocolTCP,
|
|
TargetPort: 80,
|
|
},
|
|
{
|
|
Name: "dns",
|
|
Protocol: ProtocolUDP,
|
|
TargetPort: 5353,
|
|
PublishedPort: 53,
|
|
},
|
|
},
|
|
},
|
|
VirtualIP: netip.MustParseAddr("10.0.0.42"),
|
|
EndpointIP: netip.MustParseAddr("192.168.69.42"),
|
|
}
|
|
assert.Check(t, a.EquivalentTo(&a))
|
|
|
|
reflexiveEquiv := func(a, b *endpointEvent) bool {
|
|
t.Helper()
|
|
assert.Check(t, a.EquivalentTo(b) == b.EquivalentTo(a), "reflexive equivalence")
|
|
return a.EquivalentTo(b)
|
|
}
|
|
|
|
b := a
|
|
b.ServiceDisabled = true
|
|
assert.Check(t, !reflexiveEquiv(&a, &b), "differing by ServiceDisabled")
|
|
|
|
c := a
|
|
c.IngressPorts = slices.Clone(a.IngressPorts)
|
|
slices.Reverse(c.IngressPorts)
|
|
assert.Check(t, reflexiveEquiv(&a, &c), "IngressPorts order should not matter")
|
|
|
|
d := a
|
|
d.IngressPorts = append(d.IngressPorts, a.IngressPorts[0])
|
|
assert.Check(t, !reflexiveEquiv(&a, &d), "Differing number of copies of IngressPort entries should not be equivalent")
|
|
d.IngressPorts = a.IngressPorts[:1]
|
|
assert.Check(t, !reflexiveEquiv(&a, &d), "Removing an IngressPort entry should not be equivalent")
|
|
|
|
e := a
|
|
e.Aliases = []string{"alias1", "alias2"}
|
|
assert.Check(t, !reflexiveEquiv(&a, &e), "Differing Aliases should not be equivalent")
|
|
|
|
f := a
|
|
f.TaskAliases = []string{"taskalias1", "taskalias2"}
|
|
assert.Check(t, !reflexiveEquiv(&a, &f), "Adding TaskAliases should not be equivalent")
|
|
g := a
|
|
g.TaskAliases = []string{"taskalias2", "taskalias1"}
|
|
assert.Check(t, reflexiveEquiv(&f, &g), "TaskAliases order should not matter")
|
|
g.TaskAliases = g.TaskAliases[:1]
|
|
assert.Check(t, !reflexiveEquiv(&f, &g), "Differing number of TaskAliases should not be equivalent")
|
|
|
|
h := a
|
|
h.EndpointIP = netip.MustParseAddr("192.168.69.43")
|
|
assert.Check(t, !reflexiveEquiv(&a, &h), "Differing EndpointIP should not be equivalent")
|
|
|
|
i := a
|
|
i.VirtualIP = netip.MustParseAddr("10.0.0.69")
|
|
assert.Check(t, !reflexiveEquiv(&a, &i), "Differing VirtualIP should not be equivalent")
|
|
|
|
j := a
|
|
j.ServiceID = "qux"
|
|
assert.Check(t, !reflexiveEquiv(&a, &j), "Differing ServiceID should not be equivalent")
|
|
|
|
k := a
|
|
k.ServiceName = "quux"
|
|
assert.Check(t, !reflexiveEquiv(&a, &k), "Differing ServiceName should not be equivalent")
|
|
|
|
l := a
|
|
l.Name = "aaaaa"
|
|
assert.Check(t, !reflexiveEquiv(&a, &l), "Differing Name should not be equivalent")
|
|
}
|