dump_test.go (1484B)
1 package gdbm 2 3 import ( 4 "bytes" 5 "context" 6 "io/ioutil" 7 "testing" 8 9 "git.defalsify.org/vise.git/db" 10 ) 11 12 func TestDumpGdbm(t *testing.T) { 13 ctx := context.Background() 14 15 store := NewGdbmDb() 16 f, err := ioutil.TempFile("", "vise-db-gdbm-*") 17 if err != nil { 18 t.Fatal(err) 19 } 20 err = store.Connect(ctx, f.Name()) 21 if err != nil { 22 t.Fatal(err) 23 } 24 25 store.SetPrefix(db.DATATYPE_USERDATA) 26 err = store.Put(ctx, []byte("bar"), []byte("inky")) 27 if err != nil { 28 t.Fatal(err) 29 } 30 err = store.Put(ctx, []byte("foobar"), []byte("pinky")) 31 if err != nil { 32 t.Fatal(err) 33 } 34 err = store.Put(ctx, []byte("foobarbaz"), []byte("blinky")) 35 if err != nil { 36 t.Fatal(err) 37 } 38 err = store.Put(ctx, []byte("xyzzy"), []byte("clyde")) 39 if err != nil { 40 t.Fatal(err) 41 } 42 43 o, err := store.Dump(ctx, []byte("foo")) 44 if err != nil { 45 t.Fatal(err) 46 } 47 k, v := o.Next(ctx) 48 //if !bytes.Equal(k, append([]byte{db.DATATYPE_USERDATA}, []byte("foobar")...)) { 49 if !bytes.Equal(k, []byte("foobar")) { 50 t.Fatalf("expected key 'foobar', got '%s'", k) 51 } 52 if !bytes.Equal(v, []byte("pinky")) { 53 t.Fatalf("expected val 'pinky', got %s", v) 54 } 55 k, v = o.Next(ctx) 56 //if !bytes.Equal(k, append([]byte{db.DATATYPE_USERDATA}, []byte("foobarbaz")...)) { 57 if !bytes.Equal(k, []byte("foobarbaz")) { 58 t.Fatalf("expected key 'foobarbaz', got %s", k) 59 } 60 if !bytes.Equal(v, []byte("blinky")) { 61 t.Fatalf("expected val 'blinky', got %s", v) 62 } 63 k, v = o.Next(ctx) 64 if k != nil { 65 t.Fatalf("expected nil, got %s", k) 66 } 67 }