diff options
-rw-r--r-- | middleware/auto/walk.go | 2 | ||||
-rw-r--r-- | middleware/auto/walk_test.go | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/middleware/auto/walk.go b/middleware/auto/walk.go index 8c3370e16..3f7ebb19f 100644 --- a/middleware/auto/walk.go +++ b/middleware/auto/walk.go @@ -23,7 +23,7 @@ func (a Auto) Walk() error { } filepath.Walk(a.loader.directory, func(path string, info os.FileInfo, err error) error { - if info.IsDir() { + if info == nil || info.IsDir() { return nil } diff --git a/middleware/auto/walk_test.go b/middleware/auto/walk_test.go index f15548dba..29b9dbb55 100644 --- a/middleware/auto/walk_test.go +++ b/middleware/auto/walk_test.go @@ -52,6 +52,25 @@ func TestWalk(t *testing.T) { } } +func TestWalkNonExistent(t *testing.T) { + log.SetOutput(ioutil.Discard) + + nonExistingDir := "highly_unlikely_to_exist_dir" + + ldr := loader{ + directory: nonExistingDir, + re: regexp.MustCompile(`db\.(.*)`), + template: `${1}`, + } + + a := Auto{ + loader: ldr, + Zones: &Zones{}, + } + + a.Walk() +} + func createFiles() (string, error) { dir, err := ioutil.TempDir(os.TempDir(), "coredns") if err != nil { |