Merge branch 'EDGE-142' of github.sec.samsung.net:RS7-EdgeComputing/edge-home-orchest...
[platform/core/system/edge-orchestration.git] / vendor / github.com / miekg / dns / sanitize_test.go
1 package dns
2
3 import "testing"
4
5 func TestDedup(t *testing.T) {
6         testcases := map[[3]RR][]string{
7                 [...]RR{
8                         testRR("mIek.nl. IN A 127.0.0.1"),
9                         testRR("mieK.nl. IN A 127.0.0.1"),
10                         testRR("miek.Nl. IN A 127.0.0.1"),
11                 }: {"mIek.nl.\t3600\tIN\tA\t127.0.0.1"},
12                 [...]RR{
13                         testRR("miEk.nl. 2000 IN A 127.0.0.1"),
14                         testRR("mieK.Nl. 1000 IN A 127.0.0.1"),
15                         testRR("Miek.nL. 500 IN A 127.0.0.1"),
16                 }: {"miEk.nl.\t500\tIN\tA\t127.0.0.1"},
17                 [...]RR{
18                         testRR("miek.nl. IN A 127.0.0.1"),
19                         testRR("miek.nl. CH A 127.0.0.1"),
20                         testRR("miek.nl. IN A 127.0.0.1"),
21                 }: {"miek.nl.\t3600\tIN\tA\t127.0.0.1",
22                         "miek.nl.\t3600\tCH\tA\t127.0.0.1",
23                 },
24                 [...]RR{
25                         testRR("miek.nl. CH A 127.0.0.1"),
26                         testRR("miek.nl. IN A 127.0.0.1"),
27                         testRR("miek.de. IN A 127.0.0.1"),
28                 }: {"miek.nl.\t3600\tCH\tA\t127.0.0.1",
29                         "miek.nl.\t3600\tIN\tA\t127.0.0.1",
30                         "miek.de.\t3600\tIN\tA\t127.0.0.1",
31                 },
32                 [...]RR{
33                         testRR("miek.de. IN A 127.0.0.1"),
34                         testRR("miek.nl. 200 IN A 127.0.0.1"),
35                         testRR("miek.nl. 300 IN A 127.0.0.1"),
36                 }: {"miek.de.\t3600\tIN\tA\t127.0.0.1",
37                         "miek.nl.\t200\tIN\tA\t127.0.0.1",
38                 },
39         }
40
41         for rr, expected := range testcases {
42                 out := Dedup([]RR{rr[0], rr[1], rr[2]}, nil)
43                 for i, o := range out {
44                         if o.String() != expected[i] {
45                                 t.Fatalf("expected %v, got %v", expected[i], o.String())
46                         }
47                 }
48         }
49 }
50
51 func BenchmarkDedup(b *testing.B) {
52         rrs := []RR{
53                 testRR("miEk.nl. 2000 IN A 127.0.0.1"),
54                 testRR("mieK.Nl. 1000 IN A 127.0.0.1"),
55                 testRR("Miek.nL. 500 IN A 127.0.0.1"),
56         }
57         m := make(map[string]RR)
58         for i := 0; i < b.N; i++ {
59                 Dedup(rrs, m)
60         }
61 }
62
63 func TestNormalizedString(t *testing.T) {
64         tests := map[RR]string{
65                 testRR("mIEk.Nl. 3600 IN A 127.0.0.1"):     "miek.nl.\tIN\tA\t127.0.0.1",
66                 testRR("m\\ iek.nL. 3600 IN A 127.0.0.1"):  "m\\ iek.nl.\tIN\tA\t127.0.0.1",
67                 testRR("m\\\tIeK.nl. 3600 in A 127.0.0.1"): "m\\009iek.nl.\tIN\tA\t127.0.0.1",
68         }
69         for tc, expected := range tests {
70                 n := normalizedString(tc)
71                 if n != expected {
72                         t.Errorf("expected %s, got %s", expected, n)
73                 }
74         }
75 }