etcd/store/stats_test.go

166 lines
3.5 KiB
Go
Raw Normal View History

2013-09-29 03:26:19 +04:00
package store
import (
"math/rand"
"testing"
"time"
)
func TestBasicStats(t *testing.T) {
2013-10-14 21:12:30 +04:00
s := newStore()
2013-09-29 03:26:19 +04:00
keys := GenKeys(rand.Intn(100), 5)
var i uint64
2013-10-16 10:18:03 +04:00
var GetSuccess, GetFail, CreateSuccess, CreateFail, DeleteSuccess, DeleteFail uint64
var UpdateSuccess, UpdateFail, CompareAndSwapSuccess, CompareAndSwapFail, watcher_number uint64
2013-09-29 03:26:19 +04:00
for _, k := range keys {
i++
2013-10-15 10:15:31 +04:00
_, err := s.Create(k, "bar", false, time.Now().Add(time.Second*time.Duration(rand.Intn(6))), i, 1)
2013-09-29 03:26:19 +04:00
if err != nil {
2013-10-16 10:18:03 +04:00
CreateFail++
2013-09-29 03:26:19 +04:00
} else {
2013-10-16 10:18:03 +04:00
CreateSuccess++
2013-09-29 03:26:19 +04:00
}
}
2013-09-30 10:39:40 +04:00
time.Sleep(time.Second * 3)
2013-09-29 03:26:19 +04:00
for _, k := range keys {
_, err := s.Get(k, false, false, i, 1)
if err != nil {
GetFail++
} else {
GetSuccess++
}
}
for _, k := range keys {
i++
2013-10-16 10:18:03 +04:00
_, err := s.Update(k, "foo", time.Now().Add(time.Second*time.Duration(rand.Intn(6))), i, 1)
2013-09-29 03:26:19 +04:00
if err != nil {
UpdateFail++
} else {
UpdateSuccess++
}
}
2013-09-30 10:39:40 +04:00
time.Sleep(time.Second * 3)
2013-09-29 03:26:19 +04:00
for _, k := range keys {
_, err := s.Get(k, false, false, i, 1)
if err != nil {
GetFail++
} else {
GetSuccess++
}
}
for _, k := range keys {
i++
2013-10-15 09:22:23 +04:00
_, err := s.CompareAndSwap(k, "foo", 0, "bar", Permanent, i, 1)
2013-09-29 03:26:19 +04:00
if err != nil {
CompareAndSwapFail++
2013-09-29 03:26:19 +04:00
} else {
CompareAndSwapSuccess++
2013-09-29 03:26:19 +04:00
}
}
for _, k := range keys {
s.Watch(k, false, 0, i, 1)
watcher_number++
}
for _, k := range keys {
_, err := s.Get(k, false, false, i, 1)
if err != nil {
GetFail++
} else {
GetSuccess++
}
}
for _, k := range keys {
i++
_, err := s.Delete(k, false, i, 1)
if err != nil {
DeleteFail++
} else {
watcher_number--
DeleteSuccess++
}
}
for _, k := range keys {
_, err := s.Get(k, false, false, i, 1)
if err != nil {
GetFail++
} else {
GetSuccess++
}
}
if GetSuccess != s.Stats.GetSuccess {
t.Fatalf("GetSuccess [%d] != Stats.GetSuccess [%d]", GetSuccess, s.Stats.GetSuccess)
}
if GetFail != s.Stats.GetFail {
t.Fatalf("GetFail [%d] != Stats.GetFail [%d]", GetFail, s.Stats.GetFail)
}
2013-10-16 10:18:03 +04:00
if CreateSuccess != s.Stats.CreateSuccess {
t.Fatalf("CreateSuccess [%d] != Stats.CreateSuccess [%d]", CreateSuccess, s.Stats.CreateSuccess)
2013-09-29 03:26:19 +04:00
}
2013-10-16 10:18:03 +04:00
if CreateFail != s.Stats.CreateFail {
t.Fatalf("CreateFail [%d] != Stats.CreateFail [%d]", CreateFail, s.Stats.CreateFail)
2013-09-29 03:26:19 +04:00
}
if DeleteSuccess != s.Stats.DeleteSuccess {
t.Fatalf("DeleteSuccess [%d] != Stats.DeleteSuccess [%d]", DeleteSuccess, s.Stats.DeleteSuccess)
}
if DeleteFail != s.Stats.DeleteFail {
t.Fatalf("DeleteFail [%d] != Stats.DeleteFail [%d]", DeleteFail, s.Stats.DeleteFail)
}
if UpdateSuccess != s.Stats.UpdateSuccess {
t.Fatalf("UpdateSuccess [%d] != Stats.UpdateSuccess [%d]", UpdateSuccess, s.Stats.UpdateSuccess)
}
if UpdateFail != s.Stats.UpdateFail {
t.Fatalf("UpdateFail [%d] != Stats.UpdateFail [%d]", UpdateFail, s.Stats.UpdateFail)
}
if CompareAndSwapSuccess != s.Stats.CompareAndSwapSuccess {
t.Fatalf("TestAndSetSuccess [%d] != Stats.CompareAndSwapSuccess [%d]", CompareAndSwapSuccess, s.Stats.CompareAndSwapSuccess)
2013-09-29 03:26:19 +04:00
}
if CompareAndSwapFail != s.Stats.CompareAndSwapFail {
t.Fatalf("TestAndSetFail [%d] != Stats.TestAndSetFail [%d]", CompareAndSwapFail, s.Stats.CompareAndSwapFail)
2013-09-29 03:26:19 +04:00
}
2013-10-14 21:12:30 +04:00
s = newStore()
2013-10-16 10:18:03 +04:00
CreateSuccess = 0
CreateFail = 0
2013-09-30 10:39:40 +04:00
for _, k := range keys {
i++
2013-10-15 10:15:31 +04:00
_, err := s.Create(k, "bar", false, time.Now().Add(time.Second*3), i, 1)
2013-09-30 10:39:40 +04:00
if err != nil {
2013-10-16 10:18:03 +04:00
CreateFail++
2013-09-30 10:39:40 +04:00
} else {
2013-10-16 10:18:03 +04:00
CreateSuccess++
2013-09-30 10:39:40 +04:00
}
}
time.Sleep(6 * time.Second)
2013-10-16 10:18:03 +04:00
ExpireCount := CreateSuccess
2013-09-30 10:39:40 +04:00
if ExpireCount != s.Stats.ExpireCount {
t.Fatalf("ExpireCount [%d] != Stats.ExpireCount [%d]", ExpireCount, s.Stats.ExpireCount)
}
2013-09-29 03:26:19 +04:00
}