wip: testing, etc.
This commit is contained in:
		| @@ -105,8 +105,89 @@ func TestStateClient_onPing_timeout(t *testing.T) { | ||||
| 	assertType[packetInit](t, h.Sent[0].Packet) | ||||
| } | ||||
|  | ||||
| // probe direct | ||||
| func TestStateClient_onProbe_direct(t *testing.T) { | ||||
| 	h := NewPeerStateTestHarness() | ||||
| 	h.ConfigClientDirect(t) | ||||
|  | ||||
| // probe relayed - no match | ||||
| 	h.Sent = h.Sent[:0] | ||||
| 	probe := controlMsg[packetProbe]{ | ||||
| 		Packet: packetProbe{ | ||||
| 			TraceID: newTraceID(), | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| // probe relayed - match | ||||
| 	h.OnProbe(probe) | ||||
| 	assertType[*stateClient](t, h.State) | ||||
| 	assertEqual(t, len(h.Sent), 0) | ||||
| } | ||||
|  | ||||
| func TestStateClient_onProbe_noMatch(t *testing.T) { | ||||
| 	h := NewPeerStateTestHarness() | ||||
| 	h.ConfigClientRelayed(t) | ||||
|  | ||||
| 	h.Sent = h.Sent[:0] | ||||
| 	probe := controlMsg[packetProbe]{ | ||||
| 		Packet: packetProbe{ | ||||
| 			TraceID: newTraceID(), | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	h.OnProbe(probe) | ||||
| 	assertType[*stateClient](t, h.State) | ||||
| 	assertEqual(t, len(h.Sent), 0) | ||||
| } | ||||
|  | ||||
| func TestStateClient_onProbe_directUpgrade(t *testing.T) { | ||||
| 	h := NewPeerStateTestHarness() | ||||
| 	h.ConfigClientRelayed(t) | ||||
|  | ||||
| 	state := assertType[*stateClient](t, h.State) | ||||
| 	traceID := newTraceID() | ||||
| 	state.probes[traceID] = sentProbe{ | ||||
| 		SentAt: time.Now(), | ||||
| 		Addr:   addrPort4(1, 2, 3, 4, 500), | ||||
| 	} | ||||
|  | ||||
| 	probe := controlMsg[packetProbe]{ | ||||
| 		Packet: packetProbe{TraceID: traceID}, | ||||
| 	} | ||||
|  | ||||
| 	assertEqual(t, h.Published.Direct, false) | ||||
| 	h.Sent = h.Sent[:0] | ||||
| 	h.OnProbe(probe) | ||||
| 	assertEqual(t, h.Published.Direct, true) | ||||
|  | ||||
| 	assertEqual(t, len(h.Sent), 1) | ||||
| 	assertType[packetSyn](t, h.Sent[0].Packet) | ||||
| } | ||||
|  | ||||
| func TestStateClient_onLocalDiscovery_direct(t *testing.T) { | ||||
| 	h := NewPeerStateTestHarness() | ||||
| 	h.ConfigClientDirect(t) | ||||
|  | ||||
| 	h.Sent = h.Sent[:0] | ||||
| 	pkt := controlMsg[packetLocalDiscovery]{ | ||||
| 		Packet: packetLocalDiscovery{}, | ||||
| 	} | ||||
|  | ||||
| 	h.OnLocalDiscovery(pkt) | ||||
| 	assertType[*stateClient](t, h.State) | ||||
| 	assertEqual(t, len(h.Sent), 0) | ||||
| } | ||||
|  | ||||
| func TestStateClient_onLocalDiscovery_relayed(t *testing.T) { | ||||
| 	h := NewPeerStateTestHarness() | ||||
| 	h.ConfigClientRelayed(t) | ||||
|  | ||||
| 	h.Sent = h.Sent[:0] | ||||
| 	pkt := controlMsg[packetLocalDiscovery]{ | ||||
| 		SrcAddr: addrPort4(1, 2, 3, 4, 500), | ||||
| 		Packet:  packetLocalDiscovery{}, | ||||
| 	} | ||||
|  | ||||
| 	h.OnLocalDiscovery(pkt) | ||||
| 	assertType[*stateClient](t, h.State) | ||||
| 	assertEqual(t, len(h.Sent), 1) | ||||
| 	assertType[packetProbe](t, h.Sent[0].Packet) | ||||
| 	assertEqual(t, h.Sent[0].Peer.DirectAddr, addrPort4(1, 2, 3, 4, 456)) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user