File: five_tuple_test.go

package info (click to toggle)
golang-github-pion-turn.v2 2.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-backports, forky, sid, trixie
  • size: 716 kB
  • sloc: makefile: 4
file content (73 lines) | stat: -rw-r--r-- 1,446 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package allocation

import (
	"net"
	"testing"
)

func TestFiveTupleProtocol(t *testing.T) {
	udpExpect := Protocol(0)
	tcpExpect := Protocol(1)

	if udpExpect != UDP {
		t.Errorf("Invalid UDP Protocol value, expect %d but %d", udpExpect, UDP)
	}

	if tcpExpect != TCP {
		t.Errorf("Invalid TCP Protocol value, expect %d but %d", tcpExpect, TCP)
	}
}

func TestFiveTupleEqual(t *testing.T) {
	srcAddr1, _ := net.ResolveUDPAddr("udp", "0.0.0.0:3478")
	srcAddr2, _ := net.ResolveUDPAddr("udp", "0.0.0.0:3479")

	dstAddr1, _ := net.ResolveUDPAddr("udp", "0.0.0.0:3480")
	dstAddr2, _ := net.ResolveUDPAddr("udp", "0.0.0.0:3481")

	tt := []struct {
		name   string
		expect bool
		a      *FiveTuple
		b      *FiveTuple
	}{
		{
			"Equal",
			true,
			&FiveTuple{UDP, srcAddr1, dstAddr1},
			&FiveTuple{UDP, srcAddr1, dstAddr1},
		},
		{
			"DifferentProtocol",
			false,
			&FiveTuple{UDP, srcAddr1, dstAddr1},
			&FiveTuple{TCP, srcAddr1, dstAddr1},
		},
		{
			"DifferentSrcAddr",
			false,
			&FiveTuple{UDP, srcAddr1, dstAddr1},
			&FiveTuple{UDP, srcAddr2, dstAddr1},
		},
		{
			"DifferentDstAddr",
			false,
			&FiveTuple{UDP, srcAddr1, dstAddr1},
			&FiveTuple{UDP, srcAddr1, dstAddr2},
		},
	}

	for _, tc := range tt {
		a := tc.a
		b := tc.b
		expect := tc.expect

		t.Run(tc.name, func(t *testing.T) {
			fact := a.Equal(b)

			if expect != fact {
				t.Errorf("%v, %v equal check should be %t, but %t", a, b, expect, fact)
			}
		})
	}
}