1package dns 2 3// Tests that solve that an specific issue. 4 5import ( 6 "strings" 7 "testing" 8) 9 10func TestTCPRtt(t *testing.T) { 11 m := new(Msg) 12 m.RecursionDesired = true 13 m.SetQuestion("example.org.", TypeA) 14 15 c := &Client{} 16 for _, proto := range []string{"udp", "tcp"} { 17 c.Net = proto 18 _, rtt, err := c.Exchange(m, "8.8.4.4:53") 19 if err != nil { 20 t.Fatal(err) 21 } 22 if rtt == 0 { 23 t.Fatalf("expecting non zero rtt %s, got zero", c.Net) 24 } 25 } 26} 27 28func TestNSEC3MissingSalt(t *testing.T) { 29 rr := testRR("ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. NSEC3 1 1 12 aabbccdd K8UDEMVP1J2F7EG6JEBPS17VP3N8I58H") 30 m := new(Msg) 31 m.Answer = []RR{rr} 32 mb, err := m.Pack() 33 if err != nil { 34 t.Fatalf("expected to pack message. err: %s", err) 35 } 36 if err := m.Unpack(mb); err != nil { 37 t.Fatalf("expected to unpack message. missing salt? err: %s", err) 38 } 39 in := rr.(*NSEC3).Salt 40 out := m.Answer[0].(*NSEC3).Salt 41 if in != out { 42 t.Fatalf("expected salts to match. packed: `%s`. returned: `%s`", in, out) 43 } 44} 45 46func TestNSEC3MixedNextDomain(t *testing.T) { 47 rr := testRR("ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. NSEC3 1 1 12 - k8udemvp1j2f7eg6jebps17vp3n8i58h") 48 m := new(Msg) 49 m.Answer = []RR{rr} 50 mb, err := m.Pack() 51 if err != nil { 52 t.Fatalf("expected to pack message. err: %s", err) 53 } 54 if err := m.Unpack(mb); err != nil { 55 t.Fatalf("expected to unpack message. err: %s", err) 56 } 57 in := strings.ToUpper(rr.(*NSEC3).NextDomain) 58 out := m.Answer[0].(*NSEC3).NextDomain 59 if in != out { 60 t.Fatalf("expected round trip to produce NextDomain `%s`, instead `%s`", in, out) 61 } 62} 63