middleware/debug: add (#735)
* middleware/debug: add Add a debug "middleware" that disables the recover() and just lets CoreDNS crash; very useful for testing. Fixes ##563 * fix test * Feedback: check the value of Debug
This commit is contained in:
parent
46bf7f3106
commit
8e86fa6f23
8 changed files with 137 additions and 28 deletions
49
middleware/debug/debug_test.go
Normal file
49
middleware/debug/debug_test.go
Normal file
|
@ -0,0 +1,49 @@
|
|||
package debug
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/core/dnsserver"
|
||||
|
||||
"github.com/mholt/caddy"
|
||||
)
|
||||
|
||||
func TestDebug(t *testing.T) {
|
||||
log.SetOutput(ioutil.Discard)
|
||||
|
||||
tests := []struct {
|
||||
input string
|
||||
shouldErr bool
|
||||
expectedDebug bool
|
||||
}{
|
||||
// positive
|
||||
{
|
||||
`debug`, false, true,
|
||||
},
|
||||
// negative
|
||||
{
|
||||
`debug off`, true, false,
|
||||
},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
c := caddy.NewTestController("dns", test.input)
|
||||
err := setup(c)
|
||||
cfg := dnsserver.GetConfig(c)
|
||||
|
||||
if test.shouldErr && err == nil {
|
||||
t.Fatalf("Test %d: Expected error but found %s for input %s", i, err, test.input)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
if !test.shouldErr {
|
||||
t.Fatalf("Test %d: Expected no error but found one for input %s. Error was: %v", i, test.input, err)
|
||||
}
|
||||
}
|
||||
if cfg.Debug != test.expectedDebug {
|
||||
t.Fatalf("Test %d: Expected debug to be: %t, but got: %t, input: %s", i, test.expectedDebug, test.input)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue