2012-08-25 22:59:05 +10:00
|
|
|
package dns
|
|
|
|
|
|
|
|
import (
|
2012-10-17 22:56:11 +11:00
|
|
|
"os"
|
2012-08-25 22:59:05 +10:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2012-10-10 19:56:09 +11:00
|
|
|
func TestRadixName(t *testing.T) {
|
|
|
|
tests := map[string]string{".": ".",
|
|
|
|
"www.miek.nl.": ".nl.miek.www",
|
2012-10-10 21:39:45 +11:00
|
|
|
"miek.nl.": ".nl.miek",
|
|
|
|
"mi\\.ek.nl.": ".nl.mi\\.ek",
|
|
|
|
`mi\\.ek.nl.`: `.nl.ek.mi\\`,
|
|
|
|
"": "."}
|
2012-10-10 19:56:09 +11:00
|
|
|
for i, o := range tests {
|
2012-10-10 21:39:45 +11:00
|
|
|
t.Logf("%s %v\n", i, SplitLabels(i))
|
2012-10-10 19:56:09 +11:00
|
|
|
if x := toRadixName(i); x != o {
|
|
|
|
t.Logf("%s should convert to %s, not %s\n", i, o, x)
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-10-17 22:56:11 +11:00
|
|
|
func TestApex(t *testing.T) {
|
|
|
|
f, err := os.Open("t/miek.nl.signed_test")
|
|
|
|
if err != nil {
|
|
|
|
t.Logf("Failed to open zone file")
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
defer f.Close()
|
|
|
|
z := NewZone("miek.nl.")
|
|
|
|
to := ParseZone(f, "miek.nl.", "t/miek.nl.signed_test")
|
|
|
|
for rr := range to {
|
|
|
|
if rr.Error == nil {
|
|
|
|
z.Insert(rr.RR)
|
|
|
|
} else {
|
|
|
|
t.Logf("Error %s\n", rr.Error.Error())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
apex := z.Apex()
|
|
|
|
if apex == nil {
|
|
|
|
t.Fatalf("Apex not found")
|
|
|
|
}
|
|
|
|
t.Logf("Apex found %s", apex.RR[TypeSOA][0].String())
|
|
|
|
apex.RR[TypeSOA][0].(*RR_SOA).Serial++
|
|
|
|
apex = z.Apex()
|
|
|
|
t.Logf("Apex found %s", z.Apex().RR[TypeSOA][0].String())
|
|
|
|
}
|
|
|
|
|
2012-08-25 22:59:05 +10:00
|
|
|
func TestInsert(t *testing.T) {
|
2012-10-15 17:12:49 +11:00
|
|
|
z := NewZone("miek.nl.")
|
|
|
|
mx, _ := NewRR("foo.miek.nl. MX 10 mx.miek.nl.")
|
|
|
|
z.Insert(mx)
|
2012-10-15 17:56:40 +11:00
|
|
|
_, exact := z.Find("foo.miek.nl.")
|
2012-10-15 17:12:49 +11:00
|
|
|
if exact != true {
|
|
|
|
t.Fail() // insert broken?
|
|
|
|
}
|
2012-08-25 22:59:05 +10:00
|
|
|
}
|
2012-10-15 17:12:49 +11:00
|
|
|
|
2012-08-25 22:59:05 +10:00
|
|
|
func TestRemove(t *testing.T) {
|
2012-10-15 17:12:49 +11:00
|
|
|
z := NewZone("miek.nl.")
|
|
|
|
mx, _ := NewRR("foo.miek.nl. MX 10 mx.miek.nl.")
|
|
|
|
z.Insert(mx)
|
|
|
|
zd, exact := z.Find("foo.miek.nl.")
|
|
|
|
if exact != true {
|
|
|
|
t.Fail() // insert broken?
|
|
|
|
}
|
|
|
|
z.Remove(mx)
|
|
|
|
zd, exact = z.Find("foo.miek.nl.")
|
|
|
|
if exact != false {
|
2012-10-15 17:56:40 +11:00
|
|
|
println(zd.String())
|
2012-10-15 17:12:49 +11:00
|
|
|
t.Errorf("zd(%s) exact(%s) still exists", zd, exact) // it should no longer be in the zone
|
|
|
|
}
|
2012-08-25 22:59:05 +10:00
|
|
|
}
|