aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/mem_storage_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/mem_storage_test.go')
-rw-r--r--Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/mem_storage_test.go66
1 files changed, 66 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/mem_storage_test.go b/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/mem_storage_test.go
new file mode 100644
index 000000000..23bb074b4
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/mem_storage_test.go
@@ -0,0 +1,66 @@
+// Copyright (c) 2013, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package storage
+
+import (
+ "bytes"
+ "testing"
+)
+
+func TestMemStorage(t *testing.T) {
+ m := NewMemStorage()
+
+ l, err := m.Lock()
+ if err != nil {
+ t.Fatal("storage lock failed(1): ", err)
+ }
+ _, err = m.Lock()
+ if err == nil {
+ t.Fatal("expect error for second storage lock attempt")
+ } else {
+ t.Logf("storage lock got error: %s (expected)", err)
+ }
+ l.Release()
+ _, err = m.Lock()
+ if err != nil {
+ t.Fatal("storage lock failed(2): ", err)
+ }
+
+ f := m.GetFile(1, TypeTable)
+ if f.Num() != 1 && f.Type() != TypeTable {
+ t.Fatal("invalid file number and type")
+ }
+ w, _ := f.Create()
+ w.Write([]byte("abc"))
+ w.Close()
+ if ff, _ := m.GetFiles(TypeAll); len(ff) != 1 {
+ t.Fatal("invalid GetFiles len")
+ }
+ buf := new(bytes.Buffer)
+ r, err := f.Open()
+ if err != nil {
+ t.Fatal("Open: got error: ", err)
+ }
+ buf.ReadFrom(r)
+ r.Close()
+ if got := buf.String(); got != "abc" {
+ t.Fatalf("Read: invalid value, want=abc got=%s", got)
+ }
+ if _, err := f.Open(); err != nil {
+ t.Fatal("Open: got error: ", err)
+ }
+ if _, err := m.GetFile(1, TypeTable).Open(); err == nil {
+ t.Fatal("expecting error")
+ }
+ f.Remove()
+ if ff, _ := m.GetFiles(TypeAll); len(ff) != 0 {
+ t.Fatal("invalid GetFiles len", len(ff))
+ }
+ if _, err := f.Open(); err == nil {
+ t.Fatal("expecting error")
+ }
+}