From b7897a6b72d0517c63e346f435f70a0a64ee0bae Mon Sep 17 00:00:00 2001 From: Artur Shellunts Date: Thu, 9 Feb 2023 09:31:34 +0100 Subject: [PATCH] Extract TestPairPriority to separate file --- agent_pair_priority_test.go | 95 +++++++++++++++++++++++++++++++++++++ agent_test.go | 90 ----------------------------------- 2 files changed, 95 insertions(+), 90 deletions(-) create mode 100644 agent_pair_priority_test.go diff --git a/agent_pair_priority_test.go b/agent_pair_priority_test.go new file mode 100644 index 0000000..c7b2802 --- /dev/null +++ b/agent_pair_priority_test.go @@ -0,0 +1,95 @@ +//go:build !js +// +build !js + +package ice + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestPairPriority(t *testing.T) { + + a, err := NewAgent(&AgentConfig{}) + if err != nil { + t.Fatalf("Failed to create agent: %s", err) + } + + hostConfig := &CandidateHostConfig{ + Network: "udp", + Address: "192.168.1.1", + Port: 19216, + Component: 1, + } + hostLocal, err := NewCandidateHost(hostConfig) + if err != nil { + t.Fatalf("Failed to construct local host candidate: %s", err) + } + + relayConfig := &CandidateRelayConfig{ + Network: "udp", + Address: "1.2.3.4", + Port: 12340, + Component: 1, + RelAddr: "4.3.2.1", + RelPort: 43210, + } + relayRemote, err := NewCandidateRelay(relayConfig) + if err != nil { + t.Fatalf("Failed to construct remote relay candidate: %s", err) + } + + srflxConfig := &CandidateServerReflexiveConfig{ + Network: "udp", + Address: "10.10.10.2", + Port: 19218, + Component: 1, + RelAddr: "4.3.2.1", + RelPort: 43212, + } + srflxRemote, err := NewCandidateServerReflexive(srflxConfig) + if err != nil { + t.Fatalf("Failed to construct remote srflx candidate: %s", err) + } + + prflxConfig := &CandidatePeerReflexiveConfig{ + Network: "udp", + Address: "10.10.10.2", + Port: 19217, + Component: 1, + RelAddr: "4.3.2.1", + RelPort: 43211, + } + prflxRemote, err := NewCandidatePeerReflexive(prflxConfig) + if err != nil { + t.Fatalf("Failed to construct remote prflx candidate: %s", err) + } + + hostConfig = &CandidateHostConfig{ + Network: "udp", + Address: "1.2.3.5", + Port: 12350, + Component: 1, + } + hostRemote, err := NewCandidateHost(hostConfig) + if err != nil { + t.Fatalf("Failed to construct remote host candidate: %s", err) + } + + for _, remote := range []Candidate{relayRemote, srflxRemote, prflxRemote, hostRemote} { + p := a.findPair(hostLocal, remote) + + if p == nil { + p = a.addPair(hostLocal, remote) + } + + p.state = CandidatePairStateSucceeded + bestPair := a.getBestValidCandidatePair() + if bestPair.String() != (&CandidatePair{Remote: remote, Local: hostLocal}).String() { + t.Fatalf("Unexpected bestPair %s (expected remote: %s)", bestPair, remote) + } + } + + assert.NoError(t, a.Close()) +} diff --git a/agent_test.go b/agent_test.go index 042ee3c..a08a0d3 100644 --- a/agent_test.go +++ b/agent_test.go @@ -31,96 +31,6 @@ func (m *mockPacketConn) SetDeadline(t time.Time) error { func (m *mockPacketConn) SetReadDeadline(t time.Time) error { return nil } func (m *mockPacketConn) SetWriteDeadline(t time.Time) error { return nil } -func TestPairPriority(t *testing.T) { - report := test.CheckRoutines(t) - defer report() - - // avoid deadlocks? - defer test.TimeOut(1 * time.Second).Stop() - - a, err := NewAgent(&AgentConfig{}) - if err != nil { - t.Fatalf("Failed to create agent: %s", err) - } - - hostConfig := &CandidateHostConfig{ - Network: "udp", - Address: "192.168.1.1", - Port: 19216, - Component: 1, - } - hostLocal, err := NewCandidateHost(hostConfig) - if err != nil { - t.Fatalf("Failed to construct local host candidate: %s", err) - } - - relayConfig := &CandidateRelayConfig{ - Network: "udp", - Address: "1.2.3.4", - Port: 12340, - Component: 1, - RelAddr: "4.3.2.1", - RelPort: 43210, - } - relayRemote, err := NewCandidateRelay(relayConfig) - if err != nil { - t.Fatalf("Failed to construct remote relay candidate: %s", err) - } - - srflxConfig := &CandidateServerReflexiveConfig{ - Network: "udp", - Address: "10.10.10.2", - Port: 19218, - Component: 1, - RelAddr: "4.3.2.1", - RelPort: 43212, - } - srflxRemote, err := NewCandidateServerReflexive(srflxConfig) - if err != nil { - t.Fatalf("Failed to construct remote srflx candidate: %s", err) - } - - prflxConfig := &CandidatePeerReflexiveConfig{ - Network: "udp", - Address: "10.10.10.2", - Port: 19217, - Component: 1, - RelAddr: "4.3.2.1", - RelPort: 43211, - } - prflxRemote, err := NewCandidatePeerReflexive(prflxConfig) - if err != nil { - t.Fatalf("Failed to construct remote prflx candidate: %s", err) - } - - hostConfig = &CandidateHostConfig{ - Network: "udp", - Address: "1.2.3.5", - Port: 12350, - Component: 1, - } - hostRemote, err := NewCandidateHost(hostConfig) - if err != nil { - t.Fatalf("Failed to construct remote host candidate: %s", err) - } - - for _, remote := range []Candidate{relayRemote, srflxRemote, prflxRemote, hostRemote} { - p := a.findPair(hostLocal, remote) - - if p == nil { - p = a.addPair(hostLocal, remote) - } - - p.state = CandidatePairStateSucceeded - bestPair := a.getBestValidCandidatePair() - if bestPair.String() != (&CandidatePair{Remote: remote, Local: hostLocal}).String() { - t.Fatalf("Unexpected bestPair %s (expected remote: %s)", bestPair, remote) - } - } - - assert.NoError(t, a.Close()) -} - func TestOnSelectedCandidatePairChange(t *testing.T) { report := test.CheckRoutines(t) defer report()