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) } } }