aboutsummaryrefslogtreecommitdiff
path: root/middleware/erratic/setup_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/erratic/setup_test.go')
-rw-r--r--middleware/erratic/setup_test.go50
1 files changed, 49 insertions, 1 deletions
diff --git a/middleware/erratic/setup_test.go b/middleware/erratic/setup_test.go
index 99b545f5e..218973457 100644
--- a/middleware/erratic/setup_test.go
+++ b/middleware/erratic/setup_test.go
@@ -6,7 +6,7 @@ import (
"github.com/mholt/caddy"
)
-func TestSetupWhoami(t *testing.T) {
+func TestSetupErratic(t *testing.T) {
c := caddy.NewTestController("dns", `erratic {
drop
}`)
@@ -26,3 +26,51 @@ func TestSetupWhoami(t *testing.T) {
t.Fatalf("Test 4, expected errors, but got: %q", err)
}
}
+
+func TestParseErratic(t *testing.T) {
+ tests := []struct {
+ input string
+ shouldErr bool
+ drop uint64
+ delay uint64
+ }{
+ // oks
+ {`erratic`, false, 2, 0},
+ {`erratic {
+ drop 2
+ delay 3 1ms
+
+ }`, false, 2, 3},
+ // fails
+ {`erratic {
+ drop -1
+ }`, true, 0, 0},
+ {`erraric {
+ drop 3
+ delay 3 bla
+ }`, true, 0, 0},
+ }
+ for i, test := range tests {
+ c := caddy.NewTestController("dns", test.input)
+ e, err := parseErratic(c)
+ if test.shouldErr && err == nil {
+ t.Errorf("Test %v: Expected error but found nil", i)
+ continue
+ } else if !test.shouldErr && err != nil {
+ t.Errorf("Test %v: Expected no error but found error: %v", i, err)
+ continue
+ }
+
+ if test.shouldErr {
+ continue
+ }
+
+ if test.delay != e.delay {
+ t.Errorf("Test %v: Expected delay %d but found: %d", i, test.delay, e.delay)
+ }
+
+ if test.drop != e.drop {
+ t.Errorf("Test %v: Expected drop %d but found: %d", i, test.drop, e.drop)
+ }
+ }
+}