dns/sanitize_test.go

76 lines
2.0 KiB
Go
Raw Normal View History

package dns
2015-08-26 06:34:51 +00:00
import "testing"
func TestDedup(t *testing.T) {
2015-08-25 21:35:10 +00:00
testcases := map[[3]RR][]string{
[...]RR{
testRR("mIek.nl. IN A 127.0.0.1"),
testRR("mieK.nl. IN A 127.0.0.1"),
testRR("miek.Nl. IN A 127.0.0.1"),
2016-01-22 16:44:49 +00:00
}: {"mIek.nl.\t3600\tIN\tA\t127.0.0.1"},
[...]RR{
testRR("miEk.nl. 2000 IN A 127.0.0.1"),
testRR("mieK.Nl. 1000 IN A 127.0.0.1"),
testRR("Miek.nL. 500 IN A 127.0.0.1"),
2016-01-22 16:44:49 +00:00
}: {"miEk.nl.\t500\tIN\tA\t127.0.0.1"},
[...]RR{
testRR("miek.nl. IN A 127.0.0.1"),
testRR("miek.nl. CH A 127.0.0.1"),
testRR("miek.nl. IN A 127.0.0.1"),
2016-01-22 16:44:49 +00:00
}: {"miek.nl.\t3600\tIN\tA\t127.0.0.1",
2015-08-25 21:35:10 +00:00
"miek.nl.\t3600\tCH\tA\t127.0.0.1",
},
[...]RR{
testRR("miek.nl. CH A 127.0.0.1"),
testRR("miek.nl. IN A 127.0.0.1"),
testRR("miek.de. IN A 127.0.0.1"),
2016-01-22 16:44:49 +00:00
}: {"miek.nl.\t3600\tCH\tA\t127.0.0.1",
2015-08-26 06:34:51 +00:00
"miek.nl.\t3600\tIN\tA\t127.0.0.1",
2015-08-25 21:35:10 +00:00
"miek.de.\t3600\tIN\tA\t127.0.0.1",
},
[...]RR{
testRR("miek.de. IN A 127.0.0.1"),
testRR("miek.nl. 200 IN A 127.0.0.1"),
testRR("miek.nl. 300 IN A 127.0.0.1"),
2016-01-22 16:44:49 +00:00
}: {"miek.de.\t3600\tIN\tA\t127.0.0.1",
2015-08-26 06:34:51 +00:00
"miek.nl.\t200\tIN\tA\t127.0.0.1",
2015-08-25 21:35:10 +00:00
},
}
for rr, expected := range testcases {
2015-08-31 15:48:28 +00:00
out := Dedup([]RR{rr[0], rr[1], rr[2]}, nil)
2015-08-26 06:34:51 +00:00
for i, o := range out {
if o.String() != expected[i] {
2015-08-26 11:19:22 +00:00
t.Fatalf("expected %v, got %v", expected[i], o.String())
2015-08-26 06:34:51 +00:00
}
}
}
}
2015-08-26 13:13:14 +00:00
func BenchmarkDedup(b *testing.B) {
rrs := []RR{
testRR("miEk.nl. 2000 IN A 127.0.0.1"),
testRR("mieK.Nl. 1000 IN A 127.0.0.1"),
testRR("Miek.nL. 500 IN A 127.0.0.1"),
2015-08-26 06:34:51 +00:00
}
2015-08-31 15:48:28 +00:00
m := make(map[string]RR)
2015-08-26 13:13:14 +00:00
for i := 0; i < b.N; i++ {
2016-01-22 16:44:49 +00:00
Dedup(rrs, m)
2015-08-25 21:35:10 +00:00
}
}
func TestNormalizedString(t *testing.T) {
tests := map[RR]string{
testRR("mIEk.Nl. 3600 IN A 127.0.0.1"): "miek.nl.\tIN\tA\t127.0.0.1",
testRR("m\\ iek.nL. 3600 IN A 127.0.0.1"): "m\\ iek.nl.\tIN\tA\t127.0.0.1",
testRR("m\\\tIeK.nl. 3600 in A 127.0.0.1"): "m\\009iek.nl.\tIN\tA\t127.0.0.1",
}
for tc, expected := range tests {
2015-08-26 13:13:14 +00:00
n := normalizedString(tc)
if n != expected {
t.Errorf("expected %s, got %s", expected, n)
}
}
}