diff options
Diffstat (limited to 'middleware/erratic/setup_test.go')
-rw-r--r-- | middleware/erratic/setup_test.go | 50 |
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) + } + } +} |