146 lines
2.8 KiB
Go
146 lines
2.8 KiB
Go
package peer
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestConnWriter_WriteData_direct(t *testing.T) {
|
|
p1, p2, _ := NewPeersForTesting()
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.WriteData(2, in)
|
|
|
|
packets := p2.Conn.Packets()
|
|
if len(packets) != 1 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter_WriteData_peerNotUp(t *testing.T) {
|
|
p1, p2, _ := NewPeersForTesting()
|
|
p1.RT.Load().Peers[2].Up = false
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.WriteData(2, in)
|
|
|
|
packets := p2.Conn.Packets()
|
|
if len(packets) != 0 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter_WriteData_relay(t *testing.T) {
|
|
p1, _, p3 := NewPeersForTesting()
|
|
|
|
p1.RT.Load().Peers[2].Direct = false
|
|
p1.RT.Load().RelayIP = 3
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.WriteData(2, in)
|
|
|
|
packets := p3.Conn.Packets()
|
|
if len(packets) != 1 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter_WriteData_relayNotAvailable(t *testing.T) {
|
|
p1, _, p3 := NewPeersForTesting()
|
|
|
|
p1.RT.Load().Peers[2].Direct = false
|
|
p1.RT.Load().Peers[3].Up = false
|
|
p1.RT.Load().RelayIP = 3
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.WriteData(2, in)
|
|
|
|
packets := p3.Conn.Packets()
|
|
if len(packets) != 0 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter_WriteControl_direct(t *testing.T) {
|
|
p1, p2, _ := NewPeersForTesting()
|
|
|
|
orig := PacketProbe{TraceID: newTraceID()}
|
|
|
|
p1.ConnWriter.WriteControl(p1.RT.Load().Peers[2], orig)
|
|
|
|
packets := p2.Conn.Packets()
|
|
if len(packets) != 1 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter_WriteControl_relay(t *testing.T) {
|
|
p1, _, p3 := NewPeersForTesting()
|
|
|
|
p1.RT.Load().Peers[2].Direct = false
|
|
p1.RT.Load().RelayIP = 3
|
|
|
|
orig := PacketProbe{TraceID: newTraceID()}
|
|
|
|
p1.ConnWriter.WriteControl(p1.RT.Load().Peers[2], orig)
|
|
|
|
packets := p3.Conn.Packets()
|
|
if len(packets) != 1 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter_WriteControl_relayNotAvailable(t *testing.T) {
|
|
p1, _, p3 := NewPeersForTesting()
|
|
|
|
p1.RT.Load().Peers[2].Direct = false
|
|
p1.RT.Load().Peers[3].Up = false
|
|
p1.RT.Load().RelayIP = 3
|
|
|
|
orig := PacketProbe{TraceID: newTraceID()}
|
|
|
|
p1.ConnWriter.WriteControl(p1.RT.Load().Peers[2], orig)
|
|
|
|
packets := p3.Conn.Packets()
|
|
if len(packets) != 0 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter__Forward(t *testing.T) {
|
|
p1, p2, _ := NewPeersForTesting()
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.Forward(2, in)
|
|
|
|
packets := p2.Conn.Packets()
|
|
if len(packets) != 1 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter__Forward_notUp(t *testing.T) {
|
|
p1, p2, _ := NewPeersForTesting()
|
|
p1.RT.Load().Peers[2].Up = false
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.Forward(2, in)
|
|
|
|
packets := p2.Conn.Packets()
|
|
if len(packets) != 0 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|
|
|
|
func TestConnWriter__Forward_notDirect(t *testing.T) {
|
|
p1, p2, _ := NewPeersForTesting()
|
|
p1.RT.Load().Peers[2].Direct = false
|
|
|
|
in := RandPacket()
|
|
p1.ConnWriter.Forward(2, in)
|
|
|
|
packets := p2.Conn.Packets()
|
|
if len(packets) != 0 {
|
|
t.Fatal(packets)
|
|
}
|
|
}
|