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, 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)
|
||||
}
|
||||
|
||||
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 {
|
||||
t.Helper()
|
||||
x, ok := obj.(T)
|
||||
|
Loading…
x
Reference in New Issue
Block a user