OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / syndtr / goleveldb / leveldb / storage / mem_storage_test.go
1 // Copyright (c) 2013, Suryandaru Triandana <syndtr@gmail.com>
2 // All rights reserved.
3 //
4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file.
6
7 package storage
8
9 import (
10         "bytes"
11         "testing"
12 )
13
14 func TestMemStorage(t *testing.T) {
15         m := NewMemStorage()
16
17         l, err := m.Lock()
18         if err != nil {
19                 t.Fatal("storage lock failed(1): ", err)
20         }
21         _, err = m.Lock()
22         if err == nil {
23                 t.Fatal("expect error for second storage lock attempt")
24         } else {
25                 t.Logf("storage lock got error: %s (expected)", err)
26         }
27         l.Unlock()
28         _, err = m.Lock()
29         if err != nil {
30                 t.Fatal("storage lock failed(2): ", err)
31         }
32
33         w, err := m.Create(FileDesc{TypeTable, 1})
34         if err != nil {
35                 t.Fatal("Storage.Create: ", err)
36         }
37         w.Write([]byte("abc"))
38         w.Close()
39         if fds, _ := m.List(TypeAll); len(fds) != 1 {
40                 t.Fatal("invalid GetFiles len")
41         }
42         buf := new(bytes.Buffer)
43         r, err := m.Open(FileDesc{TypeTable, 1})
44         if err != nil {
45                 t.Fatal("Open: got error: ", err)
46         }
47         buf.ReadFrom(r)
48         r.Close()
49         if got := buf.String(); got != "abc" {
50                 t.Fatalf("Read: invalid value, want=abc got=%s", got)
51         }
52         if _, err := m.Open(FileDesc{TypeTable, 1}); err != nil {
53                 t.Fatal("Open: got error: ", err)
54         }
55         if _, err := m.Open(FileDesc{TypeTable, 1}); err == nil {
56                 t.Fatal("expecting error")
57         }
58         m.Remove(FileDesc{TypeTable, 1})
59         if fds, _ := m.List(TypeAll); len(fds) != 0 {
60                 t.Fatal("invalid GetFiles len", len(fds))
61         }
62         if _, err := m.Open(FileDesc{TypeTable, 1}); err == nil {
63                 t.Fatal("expecting error")
64         }
65 }