MCPcopy Create free account
hub / github.com/CPChain/chain / testDBFuncs

Function testDBFuncs

database/db_test.go:25–104  ·  view source on GitHub ↗
(db database.Database, t *testing.T)

Source from the content-addressed store, hash-verified

23}()
24
25func testDBFuncs(db database.Database, t *testing.T) {
26 t.Parallel()
27
28 // put the values
29 for _, v := range testValues {
30 err := db.Put([]byte(v), []byte(v))
31 if err != nil {
32 t.Fatalf("put failed: %v\n", err)
33 }
34 }
35
36 // check if we have the values
37 for _, v := range testValues {
38 if hasKey, _ := db.Has([]byte(v)); !hasKey {
39 t.Fatalf("key not found for: %q", v)
40 }
41 }
42
43 // get the values
44 for _, v := range testValues {
45 data, err := db.Get([]byte(v))
46 if err != nil {
47 t.Fatalf("get failed: %v\n", err)
48 }
49 if !bytes.Equal(data, []byte(v)) {
50 t.Fatalf("get returned wrong result, got %q expected %q\n", string(data), v)
51 }
52 }
53
54 // override each key with the value "?"
55 for _, v := range testValues {
56 err := db.Put([]byte(v), []byte("?"))
57 if err != nil {
58 t.Fatalf("put override failed: %v\n", err)
59 }
60 }
61
62 // check value
63 for _, v := range testValues {
64 data, err := db.Get([]byte(v))
65 if err != nil {
66 t.Fatalf("get failed: %v\n", err)
67 }
68 if !bytes.Equal(data, []byte("?")) {
69 t.Fatalf("get returned wrong result, got %q expected ?\n", string(data))
70 }
71 }
72
73 // check modification on retrieved values doesn't affect those stored in the db
74 for _, v := range testValues {
75 orig, err := db.Get([]byte(v))
76 if err != nil {
77 t.Fatalf("get failed: %v\n", err)
78 }
79 orig[0] = byte(0xff)
80 data, err := db.Get([]byte(v))
81 if err != nil {
82 t.Fatalf("get failed: %v\n", err)

Callers 3

TestMemDatabaseFuncsFunction · 0.85
TestLDBFuncsFunction · 0.85
TestLDBTableFuncsFunction · 0.85

Calls 5

PutMethod · 0.65
HasMethod · 0.65
GetMethod · 0.65
EqualMethod · 0.65
DeleteMethod · 0.65

Tested by

no test coverage detected