wip: cleanup and testing
This commit is contained in:
parent
d78d704a45
commit
17ffc01be2
@ -30,3 +30,53 @@ func TestStateServer_onInit(t *testing.T) {
|
|||||||
assertEqual(t, msg.Packet.TraceID, resp.TraceID)
|
assertEqual(t, msg.Packet.TraceID, resp.TraceID)
|
||||||
assertEqual(t, resp.Version, version)
|
assertEqual(t, resp.Version, version)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onSynDirect(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Public(t)
|
||||||
|
|
||||||
|
msg := controlMsg[packetSyn]{
|
||||||
|
SrcIP: 3,
|
||||||
|
SrcAddr: addrPort4(1, 2, 3, 4, 1000),
|
||||||
|
Packet: packetSyn{
|
||||||
|
TraceID: newTraceID(),
|
||||||
|
Direct: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
msg.Packet.PossibleAddrs[0] = addrPort4(1, 1, 1, 1, 1000)
|
||||||
|
msg.Packet.PossibleAddrs[1] = addrPort4(1, 1, 1, 2, 2000)
|
||||||
|
|
||||||
|
h.OnSyn(msg)
|
||||||
|
assertEqual(t, len(h.Sent), 1)
|
||||||
|
assertEqual(t, h.Sent[0].Peer.DirectAddr, msg.SrcAddr)
|
||||||
|
resp := assertType[packetAck](t, h.Sent[0].Packet)
|
||||||
|
assertEqual(t, msg.Packet.TraceID, resp.TraceID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onSynRelayed(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
|
||||||
|
msg := controlMsg[packetSyn]{
|
||||||
|
SrcIP: 3,
|
||||||
|
SrcAddr: addrPort4(1, 2, 3, 4, 1000),
|
||||||
|
Packet: packetSyn{
|
||||||
|
TraceID: newTraceID(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
msg.Packet.PossibleAddrs[0] = addrPort4(1, 1, 1, 1, 1000)
|
||||||
|
msg.Packet.PossibleAddrs[1] = addrPort4(1, 1, 1, 2, 2000)
|
||||||
|
|
||||||
|
h.OnSyn(msg)
|
||||||
|
assertEqual(t, len(h.Sent), 3)
|
||||||
|
assertEqual(t, h.Sent[0].Peer.DirectAddr, msg.SrcAddr)
|
||||||
|
resp := assertType[packetAck](t, h.Sent[0].Packet)
|
||||||
|
assertEqual(t, msg.Packet.TraceID, resp.TraceID)
|
||||||
|
|
||||||
|
for i, pkt := range h.Sent[1:] {
|
||||||
|
assertEqual(t, pkt.Peer.DirectAddr, msg.Packet.PossibleAddrs[i])
|
||||||
|
assertType[packetProbe](t, pkt.Packet)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -9,6 +9,13 @@ func addrPort4(a, b, c, d byte, port uint16) netip.AddrPort {
|
|||||||
return netip.AddrPortFrom(netip.AddrFrom4([4]byte{a, b, c, d}), port)
|
return netip.AddrPortFrom(netip.AddrFrom4([4]byte{a, b, c, d}), port)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func assertNil(t *testing.T, err error) {
|
||||||
|
t.Helper()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func assertType[T any](t *testing.T, obj any) T {
|
func assertType[T any](t *testing.T, obj any) T {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
x, ok := obj.(T)
|
x, ok := obj.(T)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user