diff --git a/cache/cache_test.go b/cache/cache_test.go index cb0fc76c..bc484e0f 100644 --- a/cache/cache_test.go +++ b/cache/cache_test.go @@ -5,7 +5,7 @@ import ( "time" ) -func Test_cache(t *testing.T) { +func TestCache(t *testing.T) { bm, err := NewCache("memory", `{"interval":20}`) if err != nil { t.Error("init err") @@ -51,3 +51,51 @@ func Test_cache(t *testing.T) { t.Error("delete err") } } + +func TestFileCache(t *testing.T) { + bm, err := NewCache("file", `{"CachePath":"/cache","FileSuffix":".bin","DirectoryLevel":2,"EmbedExpiry":0}`) + if err != nil { + t.Error("init err") + } + if err = bm.Put("astaxie", 1, 10); err != nil { + t.Error("set Error", err) + } + if !bm.IsExist("astaxie") { + t.Error("check err") + } + + if v := bm.Get("astaxie"); v.(int) != 1 { + t.Error("get err") + } + + if err = bm.Incr("astaxie"); err != nil { + t.Error("Incr Error", err) + } + + if v := bm.Get("astaxie"); v.(int) != 2 { + t.Error("get err") + } + + if err = bm.Decr("astaxie"); err != nil { + t.Error("Incr Error", err) + } + + if v := bm.Get("astaxie"); v.(int) != 1 { + t.Error("get err") + } + bm.Delete("astaxie") + if bm.IsExist("astaxie") { + t.Error("delete err") + } + //test string + if err = bm.Put("astaxie", "author", 10); err != nil { + t.Error("set Error", err) + } + if !bm.IsExist("astaxie") { + t.Error("check err") + } + + if v := bm.Get("astaxie"); v.(string) != "author" { + t.Error("get err") + } +} diff --git a/cache/file.go b/cache/file.go index 3807fa7c..410da3a0 100644 --- a/cache/file.go +++ b/cache/file.go @@ -61,6 +61,7 @@ func (this *FileCache) StartAndGC(config string) error { var cfg map[string]string json.Unmarshal([]byte(config), &cfg) //fmt.Println(cfg) + //fmt.Println(config) if _, ok := cfg["CachePath"]; !ok { cfg["CachePath"] = FileCachePath } @@ -135,7 +136,7 @@ func (this *FileCache) Get(key string) interface{} { return "" } var to FileCacheItem - Gob_decode([]byte(filedata), &to) + Gob_decode(filedata, &to) if to.Expired < time.Now().Unix() { return "" } @@ -177,7 +178,7 @@ func (this *FileCache) Delete(key string) error { func (this *FileCache) Incr(key string) error { data := this.Get(key) var incr int - fmt.Println(reflect.TypeOf(data).Name()) + //fmt.Println(reflect.TypeOf(data).Name()) if reflect.TypeOf(data).Name() != "int" { incr = 0 } else { @@ -210,8 +211,7 @@ func (this *FileCache) IsExist(key string) bool { // Clean cached files. // not implemented. func (this *FileCache) ClearAll() error { - //this.CachePath .递归删除 - + //this.CachePath return nil } @@ -271,7 +271,7 @@ func Gob_encode(data interface{}) ([]byte, error) { } // Gob decodes file cache item. -func Gob_decode(data []byte, to interface{}) error { +func Gob_decode(data []byte, to *FileCacheItem) error { buf := bytes.NewBuffer(data) dec := gob.NewDecoder(buf) return dec.Decode(&to)