coredns/middleware/trace/setup_test.go
John Belamaric bc301be5ee Add tracing option (#487)
Adds a middleware to enable tracing with OpenTracing/OpenZipkin.
Enabling tracing will have a large impact on performance so it is
not advisable in production.
2017-01-23 15:40:47 -05:00

43 lines
1.2 KiB
Go

package trace
import (
"testing"
"github.com/mholt/caddy"
)
func TestTraceParse(t *testing.T) {
tests := []struct {
input string
shouldErr bool
endpoint string
}{
// oks
{`trace`, false, "http://localhost:9411/api/v1/spans"},
{`trace localhost:1234`, false, "http://localhost:1234/api/v1/spans"},
{`trace http://localhost:1234/somewhere/else`, false, "http://localhost:1234/somewhere/else"},
{`trace zipkin localhost:1234`, false, "http://localhost:1234/api/v1/spans"},
{`trace zipkin http://localhost:1234/somewhere/else`, false, "http://localhost:1234/somewhere/else"},
// fails
{`trace footype localhost:4321`, true, ""},
}
for i, test := range tests {
c := caddy.NewTestController("dns", test.input)
m, err := traceParse(c)
if test.shouldErr && err == nil {
t.Errorf("Test %v: Expected error but found nil", i)
continue
} else if !test.shouldErr && err != nil {
t.Errorf("Test %v: Expected no error but found error: %v", i, err)
continue
}
if test.shouldErr {
continue
}
if test.endpoint != m.Endpoint {
t.Errorf("Test %v: Expected endpoint %s but found: %s", i, test.endpoint, m.Endpoint)
}
}
}