Add benchmark for etchosts.Delete

Also added more checks to test

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
Alexander Morozov 2015-10-16 12:47:25 -07:00
parent cd971b9db4
commit de7607f509

View file

@ -223,6 +223,10 @@ func TestDelete(t *testing.T) {
Hosts: "testhostname2",
IP: "2.2.2.2",
},
Record{
Hosts: "testhostname3",
IP: "3.3.3.3",
},
}); err != nil {
t.Fatal(err)
}
@ -232,6 +236,10 @@ func TestDelete(t *testing.T) {
Hosts: "testhostname1",
IP: "1.1.1.1",
},
Record{
Hosts: "testhostname3",
IP: "3.3.3.3",
},
}); err != nil {
t.Fatal(err)
}
@ -307,3 +315,50 @@ func TestConcurrentWrites(t *testing.T) {
t.Fatalf("Expected to find '%s' got '%s'", expected, content)
}
}
func benchDelete(b *testing.B) {
b.StopTimer()
file, err := ioutil.TempFile("", "")
if err != nil {
b.Fatal(err)
}
defer func() {
b.StopTimer()
file.Close()
os.Remove(file.Name())
b.StartTimer()
}()
err = Build(file.Name(), "", "", "", nil)
if err != nil {
b.Fatal(err)
}
var records []Record
var toDelete []Record
for i := 0; i < 255; i++ {
record := Record{
Hosts: fmt.Sprintf("testhostname%d", i),
IP: fmt.Sprintf("%d.%d.%d.%d", i, i, i, i),
}
records = append(records, record)
if i%2 == 0 {
toDelete = append(records, record)
}
}
if err := Add(file.Name(), records); err != nil {
b.Fatal(err)
}
b.StartTimer()
if err := Delete(file.Name(), toDelete); err != nil {
b.Fatal(err)
}
}
func BenchmarkDelete(b *testing.B) {
for i := 0; i < b.N; i++ {
benchDelete(b)
}
}