wip: testing
This commit is contained in:
parent
17ffc01be2
commit
1d18d297ed
@ -24,7 +24,10 @@ func enterStateServer(data *peerData) peerState {
|
|||||||
|
|
||||||
data.pingTimer.Reset(pingInterval)
|
data.pingTimer.Reset(pingInterval)
|
||||||
|
|
||||||
state := &stateServer{peerData: data}
|
state := &stateServer{
|
||||||
|
peerData: data,
|
||||||
|
lastSeen: time.Now(),
|
||||||
|
}
|
||||||
state.logf("==> Server")
|
state.logf("==> Server")
|
||||||
return state
|
return state
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package peer
|
package peer
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
func TestStateServer_peerUpdate(t *testing.T) {
|
func TestStateServer_peerUpdate(t *testing.T) {
|
||||||
h := NewPeerStateTestHarness()
|
h := NewPeerStateTestHarness()
|
||||||
@ -80,3 +83,82 @@ func TestStateServer_onSynRelayed(t *testing.T) {
|
|||||||
assertType[packetProbe](t, pkt.Packet)
|
assertType[packetProbe](t, pkt.Packet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onProbe(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
|
||||||
|
msg := controlMsg[packetProbe]{
|
||||||
|
SrcIP: 3,
|
||||||
|
Packet: packetProbe{
|
||||||
|
TraceID: newTraceID(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
h.Sent = h.Sent[:0]
|
||||||
|
|
||||||
|
h.OnProbe(msg)
|
||||||
|
assertEqual(t, len(h.Sent), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onProbe_valid(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
|
||||||
|
msg := controlMsg[packetProbe]{
|
||||||
|
SrcIP: 3,
|
||||||
|
SrcAddr: addrPort4(1, 2, 3, 4, 100),
|
||||||
|
Packet: packetProbe{
|
||||||
|
TraceID: newTraceID(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
h.Sent = h.Sent[:0]
|
||||||
|
|
||||||
|
h.OnProbe(msg)
|
||||||
|
assertEqual(t, len(h.Sent), 1)
|
||||||
|
assertType[packetProbe](t, h.Sent[0].Packet)
|
||||||
|
assertEqual(t, h.Sent[0].Peer.DirectAddr, msg.SrcAddr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onPing(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
h.Sent = h.Sent[:0]
|
||||||
|
h.OnPingTimer()
|
||||||
|
assertEqual(t, len(h.Sent), 0)
|
||||||
|
assertType[*stateServer](t, h.State)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onPing_timeout(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
|
||||||
|
h.Sent = h.Sent[:0]
|
||||||
|
state := assertType[*stateServer](t, h.State)
|
||||||
|
state.staged.Up = true
|
||||||
|
state.lastSeen = time.Now().Add(-2 * timeoutInterval)
|
||||||
|
|
||||||
|
h.OnPingTimer()
|
||||||
|
state = assertType[*stateServer](t, h.State)
|
||||||
|
assertEqual(t, len(h.Sent), 0)
|
||||||
|
assertEqual(t, state.staged.Up, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onLocalDiscovery(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
|
||||||
|
msg := controlMsg[packetLocalDiscovery]{
|
||||||
|
SrcIP: 3,
|
||||||
|
SrcAddr: addrPort4(1, 2, 3, 4, 100),
|
||||||
|
}
|
||||||
|
h.OnLocalDiscovery(msg)
|
||||||
|
assertType[*stateServer](t, h.State)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateServer_onAck(t *testing.T) {
|
||||||
|
h := NewPeerStateTestHarness()
|
||||||
|
h.ConfigServer_Relayed(t)
|
||||||
|
msg := controlMsg[packetAck]{}
|
||||||
|
h.OnAck(msg)
|
||||||
|
assertType[*stateServer](t, h.State)
|
||||||
|
}
|
||||||
|
@ -59,10 +59,18 @@ func (h *PeerStateTestHarness) OnSyn(msg controlMsg[packetSyn]) {
|
|||||||
h.State = h.State.OnMsg(msg)
|
h.State = h.State.OnMsg(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *PeerStateTestHarness) OnAck(msg controlMsg[packetAck]) {
|
||||||
|
h.State = h.State.OnMsg(msg)
|
||||||
|
}
|
||||||
|
|
||||||
func (h *PeerStateTestHarness) OnProbe(msg controlMsg[packetProbe]) {
|
func (h *PeerStateTestHarness) OnProbe(msg controlMsg[packetProbe]) {
|
||||||
h.State = h.State.OnMsg(msg)
|
h.State = h.State.OnMsg(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *PeerStateTestHarness) OnLocalDiscovery(msg controlMsg[packetLocalDiscovery]) {
|
||||||
|
h.State = h.State.OnMsg(msg)
|
||||||
|
}
|
||||||
|
|
||||||
func (h *PeerStateTestHarness) OnPingTimer() {
|
func (h *PeerStateTestHarness) OnPingTimer() {
|
||||||
h.State = h.State.OnMsg(pingTimerMsg{})
|
h.State = h.State.OnMsg(pingTimerMsg{})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user