Skip to content

Commit

Permalink
Add test for #2003 (#2115)
Browse files Browse the repository at this point in the history
This adds a test for cleanup in c349446

Signed-off-by: Miek Gieben <miek@miek.nl>
  • Loading branch information
miekg committed Sep 22, 2018
1 parent aea2e9f commit 1697ab3
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions plugin/forward/setup_test.go
@@ -1,6 +1,8 @@
package forward

import (
"io/ioutil"
"os"
"reflect"
"strings"
"testing"
Expand Down Expand Up @@ -118,3 +120,55 @@ func TestSetupTLS(t *testing.T) {
}
}
}

func TestSetupResolvconf(t *testing.T) {
const resolv = "resolv.conf"
if err := ioutil.WriteFile(resolv,
[]byte(`nameserver 10.10.255.252
nameserver 10.10.255.253`), 0666); err != nil {
t.Fatalf("Failed to write resolv.conf file: %s", err)
}
defer os.Remove(resolv)

tests := []struct {
input string
shouldErr bool
expectedErr string
expectedNames []string
}{
// pass
{`forward . ` + resolv, false, "", []string{"10.10.255.252:53", "10.10.255.253:53"}},
}

for i, test := range tests {
c := caddy.NewTestController("dns", test.input)
f, err := parseForward(c)

if test.shouldErr && err == nil {
t.Errorf("Test %d: expected error but found %s for input %s", i, err, test.input)
continue
}

if err != nil {
if !test.shouldErr {
t.Errorf("Test %d: expected no error but found one for input %s, got: %v", i, test.input, err)
}

if !strings.Contains(err.Error(), test.expectedErr) {
t.Errorf("Test %d: expected error to contain: %v, found error: %v, input: %s", i, test.expectedErr, err, test.input)
}
}

if !test.shouldErr {
for j, n := range test.expectedNames {
addr := f.proxies[j].addr
if n != addr {
t.Errorf("Test %d, expected %q, got %q", j, n, addr)
}
}
}
for _, p := range f.proxies {
p.health.Check(p) // this should almost always err, we don't care it shoulnd't crash
}
}
}

0 comments on commit 1697ab3

Please sign in to comment.