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,8 +140,26 @@ func (tg *TreeGen) Commit(tree string) (_ zodb.Tid, err error) { ...@@ -140,8 +140,26 @@ func (tg *TreeGen) Commit(tree string) (_ zodb.Tid, err error) {
return tid, nil return tid, nil
} }
// XXX func TestΔBTail(t *testing.T) {
func XXX(t *testing.T, tree1, tree2 string) { X := exc.Raiseif
// XXX test known cases tree1 -> tree2
testv := []struct { tree1, tree2 string } {
{"T/B:", "T/B:"},
{"T/B:", "T/B1:a"},
// XXX
}
work, err := ioutil.TempDir("", "δBTail"); X(err)
defer func() {
err := os.RemoveAll(work); X(err)
}()
tg, err := StartTreeGen(work + "/1.fs"); X(err)
defer func() {
err := tg.Close(); X(err)
}()
XXX := func(tree1, tree2 string) {
// XXX commit tree1 // XXX commit tree1
// XXX load tree1 -> get keys for kv1 // XXX load tree1 -> get keys for kv1
// //
...@@ -159,30 +177,16 @@ func XXX(t *testing.T, tree1, tree2 string) { ...@@ -159,30 +177,16 @@ func XXX(t *testing.T, tree1, tree2 string) {
// δB = δbtail.Update(δZ) // δB = δbtail.Update(δZ)
// //
// verify δB has all keys as expected for tracked set // verify δB has all keys as expected for tracked set
}
func TestΔBTail(t *testing.T) { tid, err := tg.Commit(tree1); X(err)
X := exc.Raiseif tid, err = tg.Commit(tree2); X(err)
// XXX test known cases tree1 -> tree2 _ = tid
testv := []struct { tree1, tree2 string } {
{"T/B", "T/B"},
{"T/B", "T/B1:a"},
// XXX
} }
work, err := ioutil.TempDir("", "δBTail"); X(err)
defer func() {
err := os.RemoveAll(work); X(err)
}()
tg, err := StartTreeGen(work + "/1.fs"); X(err)
defer func() {
err := tg.Close(); X(err)
}()
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