diff options
author | 2019-07-20 18:13:43 +0000 | |
---|---|---|
committer | 2019-07-20 11:13:43 -0700 | |
commit | 01e13c622e087779d5e0e1e82378333ccca9b1fb (patch) | |
tree | f26caac52021e1a30faa5cdd9a4ded51859dd45b /plugin/file/xfr_test.go | |
parent | f7b26db9d02cd301e26e0d42d6c41473b5c23730 (diff) | |
download | coredns-01e13c622e087779d5e0e1e82378333ccca9b1fb.tar.gz coredns-01e13c622e087779d5e0e1e82378333ccca9b1fb.tar.zst coredns-01e13c622e087779d5e0e1e82378333ccca9b1fb.zip |
plugin/file: New zone should have zero records (#3025)
After calling NewZone the number of records should be zero, but due to
how zone.All() was implemented so empty RRs would be added. This then
fails the == 0 check in xfr.go and put nil in the slice, this then
subsequently panics on the Len().
Fix this making All() smarter when adding records. Added little test to
enfore this.
Signed-off-by: Miek Gieben <miek@miek.nl>
Diffstat (limited to 'plugin/file/xfr_test.go')
-rw-r--r-- | plugin/file/xfr_test.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/plugin/file/xfr_test.go b/plugin/file/xfr_test.go index 69ad68e64..c02575556 100644 --- a/plugin/file/xfr_test.go +++ b/plugin/file/xfr_test.go @@ -3,6 +3,7 @@ package file import ( "fmt" "strings" + "testing" ) func ExampleZone_All() { @@ -32,3 +33,11 @@ func ExampleZone_All() { // xfr_test.go:15: a.miek.nl. 1800 IN A 139.162.196.78 // xfr_test.go:15: a.miek.nl. 1800 IN AAAA 2a01:7e00::f03c:91ff:fef1:6735 } + +func TestAllNewZone(t *testing.T) { + zone := NewZone("example.org.", "stdin") + records := zone.All() + if len(records) != 0 { + t.Errorf("Expected %d records in empty zone, got %d", 0, len(records)) + } +} |