mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	This adds a test for cleanup in c349446a
Signed-off-by: Miek Gieben <miek@miek.nl>
			
			
This commit is contained in:
		| @@ -1,6 +1,8 @@ | ||||
| package forward | ||||
|  | ||||
| import ( | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 	"reflect" | ||||
| 	"strings" | ||||
| 	"testing" | ||||
| @@ -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 | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user