forked from sbezverk/nftableslib
/
nfsets_test.go
73 lines (69 loc) · 1.81 KB
/
nfsets_test.go
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 nftableslib
import (
"testing"
"github.com/google/nftables"
)
func TestGenSetKeyType(t *testing.T) {
tests := []struct {
name string
types []nftables.SetDatatype
wantBytes uint32
}{
{
name: "No concat types provided",
types: nil,
wantBytes: 0,
},
{
name: "Single TypeInetProto",
types: []nftables.SetDatatype{nftables.TypeInetProto},
wantBytes: 4,
},
{
name: "Single TypeInetService",
types: []nftables.SetDatatype{nftables.TypeInetService},
wantBytes: 4,
},
{
name: "Single TypeIPAddr",
types: []nftables.SetDatatype{nftables.TypeIPAddr},
wantBytes: 4,
},
{
name: "Single TypeIP6Addr",
types: []nftables.SetDatatype{nftables.TypeIP6Addr},
wantBytes: 16,
},
{
name: "Single TypeEtherAddr",
types: []nftables.SetDatatype{nftables.TypeEtherAddr},
wantBytes: 8,
},
{
name: "Concat TypeInetProto & TypeInetService",
types: []nftables.SetDatatype{nftables.TypeInetProto, nftables.TypeInetService},
wantBytes: 8,
},
{
name: "Concat TypeInetProto & TypeIPAddr",
types: []nftables.SetDatatype{nftables.TypeInetProto, nftables.TypeIPAddr},
wantBytes: 8,
},
{
name: "Concat TypeIPAddr & TypeInetService",
types: []nftables.SetDatatype{nftables.TypeIPAddr, nftables.TypeInetService},
wantBytes: 8,
},
{
name: "Concat TypeInetProto & TypeIPAddr & TypeInetService",
types: []nftables.SetDatatype{nftables.TypeInetProto, nftables.TypeIPAddr, nftables.TypeInetService},
wantBytes: 12,
},
}
for _, tt := range tests {
gotType := GenSetKeyType(tt.types...)
if gotType.Bytes != tt.wantBytes {
t.Errorf("Test \"%s\" failed, expected %d bytes but got %d bytes", tt.name, tt.wantBytes, gotType.Bytes)
}
}
}