go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

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 }