Commit 86070cba authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent c98d3f92
...@@ -35,10 +35,10 @@ import ( ...@@ -35,10 +35,10 @@ import (
"lab.nexedi.com/kirr/neo/go/zodb" "lab.nexedi.com/kirr/neo/go/zodb"
) )
// TreeGen represents connection to running `treegen trees`. // TreeGen represents connection to running `treegen trees` server.
// //
// Create it with StartTreeGen(zurl). // Create it with StartTreeGen(zurl).
// - Commit(treeTopology) -> // - Commit(treeTopology) -> tid
type TreeGen struct { type TreeGen struct {
zurl string zurl string
pysrv *exec.Cmd // spawned `treegen trees` pysrv *exec.Cmd // spawned `treegen trees`
...@@ -104,7 +104,7 @@ func StartTreeGen(zurl string) (_ *TreeGen, err error) { ...@@ -104,7 +104,7 @@ func StartTreeGen(zurl string) (_ *TreeGen, err error) {
return nil, fmt.Errorf("root: %s", err) return nil, fmt.Errorf("root: %s", err)
} }
fmt.Printf("XXX started @%s root=%s\n", tg.head, tg.treeRoot) //fmt.Printf("XXX started @%s root=%s\n", tg.head, tg.treeRoot)
return tg, nil return tg, nil
} }
...@@ -140,34 +140,13 @@ func (tg *TreeGen) Commit(tree string) (_ zodb.Tid, err error) { ...@@ -140,34 +140,13 @@ func (tg *TreeGen) Commit(tree string) (_ zodb.Tid, err error) {
return tid, nil return tid, nil
} }
// XXX
func XXX(t *testing.T, tree1, tree2 string) {
// XXX commit tree1
// XXX load tree1 -> get keys for kv1
//
// XXX for all set of {keys} from kv1:
// // prepare initial state with {keys} tracked
// zconn = db.open(at)
// δbtail = NewΔBTail(zconn.At())
// for k in keys:
// v, path = tree.VGet(k)
// δbtail.Track(path)
//
// commit(->tree2)
// δZ = ...
//
// δB = δbtail.Update(δZ)
//
// verify δB has all keys as expected for tracked set
}
func TestΔBTail(t *testing.T) { func TestΔBTail(t *testing.T) {
X := exc.Raiseif X := exc.Raiseif
// XXX test known cases tree1 -> tree2 // XXX test known cases tree1 -> tree2
testv := []struct { tree1, tree2 string } { testv := []struct { tree1, tree2 string } {
{"T/B", "T/B"}, {"T/B:", "T/B:"},
{"T/B", "T/B1:a"}, {"T/B:", "T/B1:a"},
// XXX // XXX
} }
...@@ -180,9 +159,34 @@ func TestΔBTail(t *testing.T) { ...@@ -180,9 +159,34 @@ func TestΔBTail(t *testing.T) {
err := tg.Close(); X(err) err := tg.Close(); X(err)
}() }()
XXX := func(tree1, tree2 string) {
// XXX commit tree1
// XXX load tree1 -> get keys for kv1
//
// XXX for all set of {keys} from kv1:
// // prepare initial state with {keys} tracked
// zconn = db.open(at)
// δbtail = NewΔBTail(zconn.At())
// for k in keys:
// v, path = tree.VGet(k)
// δbtail.Track(path)
//
// commit(->tree2)
// δZ = ...
//
// δB = δbtail.Update(δZ)
//
// verify δB has all keys as expected for tracked set
tid, err := tg.Commit(tree1); X(err)
tid, err = tg.Commit(tree2); X(err)
_ = tid
}
for _, test := range testv { for _, test := range testv {
XXX(t, test.tree1, test.tree2) XXX(test.tree1, test.tree2)
XXX(t, test.tree2, test.tree1) XXX(test.tree2, test.tree1)
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment