From 4096c4906d5835292b9968d5261b91a1db9d89b6 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sun, 2 Oct 2016 15:58:01 +0100 Subject: [PATCH] Pr 311 2 (#312) * Add a setup test for middleware/file This fix adds a setup test for middleware/file so that there is a basic coverage for the Corefile processing of middleware/file. This fix is related to 308 (Will look into it). Signed-off-by: Yong Tang * middleware/file: use helper function for test Fixup setup_test.go and use the test.TempFile function to make things somewhat shorter. Use clean up the use of testing.T in TempFile - it is not used. --- middleware/dnssec/cache_test.go | 4 +- middleware/dnssec/dnssec_test.go | 12 +++--- middleware/file/reload_test.go | 2 +- middleware/file/setup_test.go | 65 ++++++++++++++++++++++++++++++++ middleware/test/file.go | 3 +- middleware/test/file_test.go | 2 +- test/cache_test.go | 2 +- test/file.go | 3 +- test/file_test.go | 2 +- test/middleware_dnssec_test.go | 2 +- test/middleware_test.go | 2 +- test/proxy_test.go | 2 +- 12 files changed, 82 insertions(+), 19 deletions(-) create mode 100644 middleware/file/setup_test.go diff --git a/middleware/dnssec/cache_test.go b/middleware/dnssec/cache_test.go index 0f069b6a8..6624f65ec 100644 --- a/middleware/dnssec/cache_test.go +++ b/middleware/dnssec/cache_test.go @@ -9,8 +9,8 @@ import ( ) func TestCacheSet(t *testing.T) { - fPriv, rmPriv, _ := test.TempFile(t, ".", privKey) - fPub, rmPub, _ := test.TempFile(t, ".", pubKey) + fPriv, rmPriv, _ := test.TempFile(".", privKey) + fPub, rmPub, _ := test.TempFile(".", pubKey) defer rmPriv() defer rmPub() diff --git a/middleware/dnssec/dnssec_test.go b/middleware/dnssec/dnssec_test.go index 48f13e935..1b3894204 100644 --- a/middleware/dnssec/dnssec_test.go +++ b/middleware/dnssec/dnssec_test.go @@ -32,8 +32,8 @@ func TestZoneSigningDouble(t *testing.T) { defer rm1() defer rm2() - fPriv1, rmPriv1, _ := test.TempFile(t, ".", privKey1) - fPub1, rmPub1, _ := test.TempFile(t, ".", pubKey1) + fPriv1, rmPriv1, _ := test.TempFile(".", privKey1) + fPub1, rmPub1, _ := test.TempFile(".", pubKey1) defer rmPriv1() defer rmPub1() @@ -57,8 +57,8 @@ func TestZoneSigningDouble(t *testing.T) { // TestSigningDifferentZone tests if a key for miek.nl and be used for example.org. func TestSigningDifferentZone(t *testing.T) { - fPriv, rmPriv, _ := test.TempFile(t, ".", privKey) - fPub, rmPub, _ := test.TempFile(t, ".", pubKey) + fPriv, rmPriv, _ := test.TempFile(".", privKey) + fPub, rmPub, _ := test.TempFile(".", pubKey) defer rmPriv() defer rmPub() @@ -163,8 +163,8 @@ func newDnssec(t *testing.T, zones []string) (Dnssec, func(), func()) { } func newKey(t *testing.T) (*DNSKEY, func(), func()) { - fPriv, rmPriv, _ := test.TempFile(t, ".", privKey) - fPub, rmPub, _ := test.TempFile(t, ".", pubKey) + fPriv, rmPriv, _ := test.TempFile(".", privKey) + fPub, rmPub, _ := test.TempFile(".", pubKey) key, err := ParseKeyFile(fPub, fPriv) if err != nil { diff --git a/middleware/file/reload_test.go b/middleware/file/reload_test.go index 02d789c66..06690805f 100644 --- a/middleware/file/reload_test.go +++ b/middleware/file/reload_test.go @@ -11,7 +11,7 @@ import ( ) func TestZoneReload(t *testing.T) { - fileName, rm, err := test.TempFile(t, ".", reloadZoneTest) + fileName, rm, err := test.TempFile(".", reloadZoneTest) if err != nil { t.Fatalf("failed to create zone: %s", err) } diff --git a/middleware/file/setup_test.go b/middleware/file/setup_test.go new file mode 100644 index 000000000..d2cb1cc60 --- /dev/null +++ b/middleware/file/setup_test.go @@ -0,0 +1,65 @@ +package file + +import ( + "testing" + + "github.com/miekg/coredns/middleware/test" + + "github.com/mholt/caddy" +) + +func TestFileParse(t *testing.T) { + zoneFileName1, rm, err := test.TempFile(".", dbMiekNL) + if err != nil { + t.Fatal(err) + } + defer rm() + + zoneFileName2, rm, err := test.TempFile(".", dbDnssexNLSigned) + if err != nil { + t.Fatal(err) + } + defer rm() + + tests := []struct { + inputFileRules string + shouldErr bool + expectedZones Zones + }{ + { + `file`, + true, + Zones{}, + }, + { + `file ` + zoneFileName1 + ` miek.nl.`, + false, + Zones{Names: []string{"miek.nl."}}, + }, + { + `file ` + zoneFileName2 + ` dnssex.nl.`, + false, + Zones{Names: []string{"dnssex.nl."}}, + }, + } + + for i, test := range tests { + c := caddy.NewTestController("file", test.inputFileRules) + actualZones, err := fileParse(c) + + if err == nil && test.shouldErr { + t.Fatalf("Test %d expected errors, but got no error", i) + } else if err != nil && !test.shouldErr { + t.Fatalf("Test %d expected no errors, but got '%v'", i, err) + } else { + if len(actualZones.Names) != len(test.expectedZones.Names) { + t.Fatalf("Test %d expected %v, got %v", i, test.expectedZones.Names, actualZones.Names) + } + for j, name := range test.expectedZones.Names { + if actualZones.Names[j] != name { + t.Fatalf("Test %d expected %v for %d th zone, got %v", i, name, j, actualZones.Names[j]) + } + } + } + } +} diff --git a/middleware/test/file.go b/middleware/test/file.go index b6068a32b..626224cac 100644 --- a/middleware/test/file.go +++ b/middleware/test/file.go @@ -3,11 +3,10 @@ package test import ( "io/ioutil" "os" - "testing" ) // TempFile will create a temporary file on disk and returns the name and a cleanup function to remove it later. -func TempFile(t *testing.T, dir, content string) (string, func(), error) { +func TempFile(dir, content string) (string, func(), error) { f, err := ioutil.TempFile(dir, "go-test-tmpfile") if err != nil { return "", nil, err diff --git a/middleware/test/file_test.go b/middleware/test/file_test.go index 950ea7cff..ed86a8260 100644 --- a/middleware/test/file_test.go +++ b/middleware/test/file_test.go @@ -3,7 +3,7 @@ package test import "testing" func TestTempFile(t *testing.T) { - _, f, e := TempFile(t, ".", "test") + _, f, e := TempFile(".", "test") if e != nil { t.Fatalf("failed to create temp file: %s", e) } diff --git a/test/cache_test.go b/test/cache_test.go index 8382aabba..ba24962ec 100644 --- a/test/cache_test.go +++ b/test/cache_test.go @@ -17,7 +17,7 @@ import ( func TestLookupCache(t *testing.T) { // Start auth. CoreDNS holding the auth zone. - name, rm, err := test.TempFile(t, ".", exampleOrg) + name, rm, err := test.TempFile(".", exampleOrg) if err != nil { t.Fatalf("failed to created zone: %s", err) } diff --git a/test/file.go b/test/file.go index b6068a32b..626224cac 100644 --- a/test/file.go +++ b/test/file.go @@ -3,11 +3,10 @@ package test import ( "io/ioutil" "os" - "testing" ) // TempFile will create a temporary file on disk and returns the name and a cleanup function to remove it later. -func TempFile(t *testing.T, dir, content string) (string, func(), error) { +func TempFile(dir, content string) (string, func(), error) { f, err := ioutil.TempFile(dir, "go-test-tmpfile") if err != nil { return "", nil, err diff --git a/test/file_test.go b/test/file_test.go index 950ea7cff..ed86a8260 100644 --- a/test/file_test.go +++ b/test/file_test.go @@ -3,7 +3,7 @@ package test import "testing" func TestTempFile(t *testing.T) { - _, f, e := TempFile(t, ".", "test") + _, f, e := TempFile(".", "test") if e != nil { t.Fatalf("failed to create temp file: %s", e) } diff --git a/test/middleware_dnssec_test.go b/test/middleware_dnssec_test.go index 238673925..692e39141 100644 --- a/test/middleware_dnssec_test.go +++ b/test/middleware_dnssec_test.go @@ -12,7 +12,7 @@ import ( ) func TestLookupBalanceRewriteCacheDnssec(t *testing.T) { - name, rm, err := test.TempFile(t, ".", exampleOrg) + name, rm, err := test.TempFile(".", exampleOrg) if err != nil { t.Fatalf("failed to created zone: %s", err) } diff --git a/test/middleware_test.go b/test/middleware_test.go index fb6fa2114..a9b803fc5 100644 --- a/test/middleware_test.go +++ b/test/middleware_test.go @@ -12,7 +12,7 @@ import ( func benchmarkLookupBalanceRewriteCache(b *testing.B) { t := new(testing.T) - name, rm, err := test.TempFile(t, ".", exampleOrg) + name, rm, err := test.TempFile(".", exampleOrg) if err != nil { t.Fatalf("failed to created zone: %s", err) } diff --git a/test/proxy_test.go b/test/proxy_test.go index 634fde888..400aee0b5 100644 --- a/test/proxy_test.go +++ b/test/proxy_test.go @@ -21,7 +21,7 @@ example.org. IN A 127.0.0.2 ` func TestLookupProxy(t *testing.T) { - name, rm, err := test.TempFile(t, ".", exampleOrg) + name, rm, err := test.TempFile(".", exampleOrg) if err != nil { t.Fatalf("failed to created zone: %s", err) }