ledisdb/server/snapshot_test.go

80 lines
1.4 KiB
Go
Raw Normal View History

2014-10-10 13:57:18 +04:00
package server
import (
"io"
"io/ioutil"
"os"
"path"
"testing"
2015-05-04 17:42:28 +03:00
"github.com/siddontang/ledisdb/config"
2014-10-10 13:57:18 +04:00
)
type testSnapshotDumper struct {
}
func (d *testSnapshotDumper) Dump(w io.Writer) error {
w.Write([]byte("hello world"))
return nil
}
func TestSnapshot(t *testing.T) {
2014-10-11 12:00:59 +04:00
cfg := config.NewConfigDefault()
2014-10-10 13:57:18 +04:00
cfg.Snapshot.MaxNum = 2
cfg.Snapshot.Path = path.Join(os.TempDir(), "snapshot")
2014-10-15 06:18:20 +04:00
2014-10-10 13:57:18 +04:00
defer os.RemoveAll(cfg.Snapshot.Path)
d := new(testSnapshotDumper)
s, err := newSnapshotStore(cfg)
if err != nil {
t.Fatal(err)
}
2014-10-11 13:44:31 +04:00
if f, _, err := s.Create(d); err != nil {
2014-10-10 13:57:18 +04:00
t.Fatal(err)
} else {
defer f.Close()
if b, _ := ioutil.ReadAll(f); string(b) != "hello world" {
t.Fatal("invalid read snapshot")
}
2014-10-10 18:45:22 +04:00
if len(s.names) != 1 {
t.Fatal("must 1 snapshot")
}
}
2014-10-11 13:44:31 +04:00
if f, _, err := s.Create(d); err != nil {
2014-10-10 18:45:22 +04:00
t.Fatal(err)
} else {
defer f.Close()
if b, _ := ioutil.ReadAll(f); string(b) != "hello world" {
t.Fatal("invalid read snapshot")
}
if len(s.names) != 2 {
t.Fatal("must 2 snapshot")
}
}
2014-10-11 13:44:31 +04:00
if f, _, err := s.Create(d); err != nil {
2014-10-10 18:45:22 +04:00
t.Fatal(err)
} else {
defer f.Close()
if b, _ := ioutil.ReadAll(f); string(b) != "hello world" {
t.Fatal("invalid read snapshot")
}
if len(s.names) != 2 {
t.Fatal("must 2 snapshot")
}
2014-10-10 13:57:18 +04:00
}
2014-10-10 18:45:22 +04:00
fs, _ := ioutil.ReadDir(cfg.Snapshot.Path)
if len(fs) != 2 {
t.Fatal("must 2 snapshot")
2014-10-10 13:57:18 +04:00
}
s.Close()
}