dump_test.go (3676B)
1 package fs 2 3 import ( 4 "bytes" 5 "context" 6 "io/ioutil" 7 "testing" 8 9 "git.defalsify.org/vise.git/db" 10 ) 11 12 func TestDumpFs(t *testing.T) { 13 ctx := context.Background() 14 15 store := NewFsDb() 16 d, err := ioutil.TempDir("", "vise-db-fs-*") 17 if err != nil { 18 t.Fatal(err) 19 } 20 err = store.Connect(ctx, d) 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, []byte("foobar")) { 49 t.Fatalf("expected key 'foobar', got %s", k) 50 } 51 if !bytes.Equal(v, []byte("pinky")) { 52 t.Fatalf("expected val 'pinky', got %s", v) 53 } 54 k, v = o.Next(ctx) 55 if !bytes.Equal(k, []byte("foobarbaz")) { 56 t.Fatalf("expected key 'foobarbaz', got %s", k) 57 } 58 if !bytes.Equal(v, []byte("blinky")) { 59 t.Fatalf("expected val 'blinky', got %s", v) 60 } 61 k, v = o.Next(ctx) 62 if k != nil { 63 t.Fatalf("expected nil, got %s", k) 64 } 65 } 66 67 func TestDumpBinary(t *testing.T) { 68 ctx := context.Background() 69 70 store := NewFsDb() 71 store = store.WithBinary() 72 d, err := ioutil.TempDir("", "vise-db-fsbin-*") 73 if err != nil { 74 t.Fatal(err) 75 } 76 err = store.Connect(ctx, d) 77 if err != nil { 78 t.Fatal(err) 79 } 80 81 store.SetPrefix(db.DATATYPE_USERDATA) 82 err = store.Put(ctx, []byte{0x01, 0x02, 0x03}, []byte("inky")) 83 if err != nil { 84 t.Fatal(err) 85 } 86 err = store.Put(ctx, []byte{0x01, 0x02, 0x04}, []byte("pinky")) 87 if err != nil { 88 t.Fatal(err) 89 } 90 err = store.Put(ctx, []byte{0x02, 0x03, 0x04}, []byte("blinky")) 91 if err != nil { 92 t.Fatal(err) 93 } 94 o, err := store.Dump(ctx, []byte{0x01}) 95 if err != nil { 96 t.Fatal(err) 97 } 98 k, v := o.Next(ctx) 99 if !bytes.Equal(k, []byte{0x01, 0x02, 0x03}) { 100 t.Fatalf("expected key '0x010203', got %x", k) 101 } 102 if !bytes.Equal(v, []byte("inky")) { 103 t.Fatalf("expected val 'inky', got %s", v) 104 } 105 k, v = o.Next(ctx) 106 if !bytes.Equal(k, []byte{0x01, 0x02, 0x04}) { 107 t.Fatalf("expected key '0x010204', got %x", k) 108 } 109 if !bytes.Equal(v, []byte("pinky")) { 110 t.Fatalf("expected val 'pinky', got %s", v) 111 } 112 k, v = o.Next(ctx) 113 if k != nil { 114 t.Fatalf("expected nil, got %s", k) 115 } 116 } 117 118 func TestDumpSessionBinary(t *testing.T) { 119 ctx := context.Background() 120 121 store := NewFsDb() 122 store = store.WithBinary() 123 store.SetSession("foobar") 124 d, err := ioutil.TempDir("", "vise-db-fsbin-*") 125 if err != nil { 126 t.Fatal(err) 127 } 128 err = store.Connect(ctx, d) 129 if err != nil { 130 t.Fatal(err) 131 } 132 133 store.SetPrefix(db.DATATYPE_USERDATA) 134 err = store.Put(ctx, []byte{0x01, 0x02, 0x03}, []byte("inky")) 135 if err != nil { 136 t.Fatal(err) 137 } 138 err = store.Put(ctx, []byte{0x01, 0x02, 0x04}, []byte("pinky")) 139 if err != nil { 140 t.Fatal(err) 141 } 142 err = store.Put(ctx, []byte{0x02, 0x03, 0x04}, []byte("blinky")) 143 if err != nil { 144 t.Fatal(err) 145 } 146 o, err := store.Dump(ctx, []byte{0x01}) 147 if err != nil { 148 t.Fatal(err) 149 } 150 k, v := o.Next(ctx) 151 if !bytes.Equal(k, []byte{0x01, 0x02, 0x03}) { 152 t.Fatalf("expected key '0x010203', got %x", k) 153 } 154 if !bytes.Equal(v, []byte("inky")) { 155 t.Fatalf("expected val 'inky', got %s", v) 156 } 157 k, v = o.Next(ctx) 158 if !bytes.Equal(k, []byte{0x01, 0x02, 0x04}) { 159 t.Fatalf("expected key '0x010204', got %x", k) 160 } 161 if !bytes.Equal(v, []byte("pinky")) { 162 t.Fatalf("expected val 'pinky', got %s", v) 163 } 164 k, v = o.Next(ctx) 165 if k != nil { 166 t.Fatalf("expected nil, got %s", k) 167 } 168 }