mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -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 | package forward | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"io/ioutil" | ||||||
|  | 	"os" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"testing" | 	"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