-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpf_test.go
96 lines (87 loc) · 2.3 KB
/
pf_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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// +build !windows,!plan9,!linux
package pf
import (
"testing"
)
// TestNewFirewall tests the NewFirewall function
func TestNewFirewall(t *testing.T) {
_, err := NewFirewall()
if err != nil {
t.Errorf("Could not create firewall object: %s", err)
}
_, err = NewFirewall()
if err != nil {
t.Errorf("Could not create firewall object: %s", err)
}
_, err = NewFirewallCustom("/does/not/exist", "/does/also/not/exist")
if err == nil {
t.Errorf("Could not create firewall object: %s", err)
}
}
func TestFirewall_EnableDisable(t *testing.T) {
f, err := NewFirewall()
if err != nil {
t.Errorf("Could not create firewall object: %s", err)
}
if f.Enabled() {
if err := f.Disable(); err != nil {
t.Errorf("Failed to disable firewall: %s", err)
}
if err := f.Enable(); err != nil {
t.Errorf("Failed to enable firewall: %s", err)
}
}
if !f.Enabled() {
if err := f.Enable(); err != nil {
t.Errorf("Failed to enable firewall: %s", err)
}
if err := f.Disable(); err != nil {
t.Errorf("Failed to disable firewall: %s", err)
}
}
}
// TestFirewall_NewAnchor tests the creation of a new anchor object on the FW object
func TestFirewall_NewAnchor(t *testing.T) {
f, err := NewFirewall()
if err != nil {
t.Errorf("Could not create firewall object: %s", err)
}
a := f.NewAnchor("testanchor")
if a.Name != "testanchor" {
t.Errorf("Anchor is not named as expected. Expected 'testanchor', got '%s'", a.Name)
}
}
// TestFirewall_GetTables tests the GetTables method on the FW object
func TestFirewall_GetTables(t *testing.T) {
f, err := NewFirewall()
if err != nil {
t.Errorf("Could not create firewall object: %s", err)
}
_, err = f.GetTables()
if err != nil {
t.Errorf("Failed to get list of tables: %s", err)
}
}
func TestFirewall_AddToTableIP(t *testing.T) {
testTable := []struct {
testName string
tableName string
ipAddr string
shouldFail bool
}{
{"Valid IP", "testtable", "123.123.123.123", false},
}
f, err := NewFirewall()
if err != nil {
t.Errorf("Could not create firewall object: %s", err)
}
for _, testCase := range testTable {
t.Run(testCase.testName, func(t *testing.T) {
if err := f.AddToTableIP(testCase.tableName, testCase.ipAddr); err != nil {
if !testCase.shouldFail {
t.Errorf("Adding IP address to table failed: %s", err)
}
}
})
}
}