|
|
|
package hosts
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Test_Hosts(t *testing.T) {
|
|
|
|
var h = NewHosts()
|
|
|
|
err := h.Parse("./test_hosts.txt")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
next := h.firstUid
|
|
|
|
for next != 0 {
|
|
|
|
node, _ := h.GetNode(next)
|
|
|
|
fmt.Printf("Last %d, Next: %d, IP: %s, Hosts: %s, Comment: %s\n", node.LastUID(), node.NextUID(), node.IP(), node.Hosts(), node.Comment())
|
|
|
|
next = node.NextUID()
|
|
|
|
}
|
|
|
|
data := h.ListHostsByIP("11.22.33.44")
|
|
|
|
if len(data) != 2 {
|
|
|
|
t.Error("Expected 2, got ", len(data))
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
data = h.ListIPsByHost("dns.b612.me")
|
|
|
|
if len(data) < 1 || data[0] != "4.5.6.7" {
|
|
|
|
t.Error("Expected 4.5.6.7, got ", data)
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.RemoveHosts("dns.b612.me")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
data = h.ListIPsByHost("dns.b612.me")
|
|
|
|
if len(data) > 0 {
|
|
|
|
t.Error("Expected 0, got ", len(data))
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.RemoveHosts("test.dns.set.b612.me")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
data = h.ListIPsByHost("remove.b612.me")
|
|
|
|
if len(data) < 1 || data[0] != "11.22.33.44" {
|
|
|
|
t.Error("Expected 11.22.33.44, got ", data)
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
nodes := h.ListByIP("11.22.33.44")
|
|
|
|
if nodes == nil {
|
|
|
|
t.Error("Expected not nil, got ", nodes)
|
|
|
|
} else {
|
|
|
|
t.Log(nodes)
|
|
|
|
}
|
|
|
|
|
|
|
|
nodes[0].AddHosts("hello.b612.me")
|
|
|
|
err = h.UpdateNode(nodes[0])
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
data = h.ListIPsByHost("hello.b612.me")
|
|
|
|
if len(data) < 1 || data[0] != "11.22.33.44" {
|
|
|
|
t.Error("Not Expected Data", data)
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
insertNode := new(HostNode)
|
|
|
|
insertNode.SetIP("11.11.11.11")
|
|
|
|
insertNode.SetHosts("insert.b612.me")
|
|
|
|
insertNode.SetComment("Insert Node")
|
|
|
|
insertNode.SetNextUID(nodes[0].UID())
|
|
|
|
insertNode.SetLastUID(nodes[0].LastUID())
|
|
|
|
err = h.InsertNode(insertNode)
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
data = h.ListIPsByHost("insert.b612.me")
|
|
|
|
if len(data) < 1 || data[0] != "11.11.11.11" {
|
|
|
|
t.Error("Expected 11.11.11.11 got ", data)
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.SaveAs("./test_hosts_01.txt")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.DeleteNode(insertNode)
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
data = h.ListIPsByHost("insert.b612.me")
|
|
|
|
if len(data) > 0 {
|
|
|
|
t.Error("Expected 0 got ", data)
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
for i := 0; i < 100; i++ {
|
|
|
|
err = h.RemoveHosts("release-ftpd")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
err = h.AddHosts("2.3.4.9", "release-ftpd")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.SetHostIPs("ssh.b612.me", "9.9.9.9")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
data = h.ListIPsByHost("ssh.b612.me")
|
|
|
|
if len(data) == 0 {
|
|
|
|
t.Error("Expected 1 got ", data)
|
|
|
|
} else {
|
|
|
|
t.Log(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.SetIPHosts("10.10.10.10", "ssh.b612.me", "ssr.b612.me")
|
|
|
|
if len(data) == 0 {
|
|
|
|
t.Error("Expected 1 got ", data)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = h.SaveAs("./test_hosts_02.txt")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func BenchmarkAddHosts(b *testing.B) {
|
|
|
|
var h = NewHosts()
|
|
|
|
err := h.Parse("./test_hosts.txt")
|
|
|
|
if err != nil {
|
|
|
|
b.Error(err)
|
|
|
|
}
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
|
err = h.AddHosts("1.3.4.5", "test.b612.me")
|
|
|
|
if err != nil {
|
|
|
|
b.Error(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|