| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- package store
- import (
- "math/rand"
- "testing"
- "time"
- )
- func TestBasicStats(t *testing.T) {
- s := newStore()
- keys := GenKeys(rand.Intn(100), 5)
- var i uint64
- var GetSuccess, GetFail, SetSuccess, SetFail, DeleteSuccess, DeleteFail uint64
- var UpdateSuccess, UpdateFail, TestAndSetSuccess, TestAndSetFail, watcher_number uint64
- for _, k := range keys {
- i++
- _, err := s.Create(k, "bar", false, false, time.Now().Add(time.Second*time.Duration(rand.Intn(6))), i, 1)
- if err != nil {
- SetFail++
- } else {
- SetSuccess++
- }
- }
- time.Sleep(time.Second * 3)
- 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.update(k, "foo", time.Now().Add(time.Second*time.Duration(rand.Intn(6))), i, 1)
- if err != nil {
- UpdateFail++
- } else {
- UpdateSuccess++
- }
- }
- time.Sleep(time.Second * 3)
- 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.CompareAndSwap(k, "foo", 0, "bar", Permanent, i, 1)
- if err != nil {
- TestAndSetFail++
- } else {
- TestAndSetSuccess++
- }
- }
- 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)
- }
- if SetSuccess != s.Stats.SetSuccess {
- t.Fatalf("SetSuccess [%d] != Stats.SetSuccess [%d]", SetSuccess, s.Stats.SetSuccess)
- }
- if SetFail != s.Stats.SetFail {
- t.Fatalf("SetFail [%d] != Stats.SetFail [%d]", SetFail, s.Stats.SetFail)
- }
- 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 TestAndSetSuccess != s.Stats.TestAndSetSuccess {
- t.Fatalf("TestAndSetSuccess [%d] != Stats.TestAndSetSuccess [%d]", TestAndSetSuccess, s.Stats.TestAndSetSuccess)
- }
- if TestAndSetFail != s.Stats.TestAndSetFail {
- t.Fatalf("TestAndSetFail [%d] != Stats.TestAndSetFail [%d]", TestAndSetFail, s.Stats.TestAndSetFail)
- }
- s = newStore()
- SetSuccess = 0
- SetFail = 0
- for _, k := range keys {
- i++
- _, err := s.Create(k, "bar", false, false, time.Now().Add(time.Second*3), i, 1)
- if err != nil {
- SetFail++
- } else {
- SetSuccess++
- }
- }
- time.Sleep(6 * time.Second)
- ExpireCount := SetSuccess
- if ExpireCount != s.Stats.ExpireCount {
- t.Fatalf("ExpireCount [%d] != Stats.ExpireCount [%d]", ExpireCount, s.Stats.ExpireCount)
- }
- }
|