1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-09-10 09:52:20 +08:00

test for pinning semantics

This commit is contained in:
Jeromy
2015-03-18 16:48:06 -07:00
parent 6bf341302c
commit 3bf7d5c27e
2 changed files with 40 additions and 1 deletions

View File

@ -152,3 +152,41 @@ func TestPinnerBasic(t *testing.T) {
t.Fatal("could not find recursively pinned node")
}
}
func TestDuplicateSemantics(t *testing.T) {
dstore := dssync.MutexWrap(ds.NewMapDatastore())
bstore := blockstore.NewBlockstore(dstore)
bserv, err := bs.New(bstore, offline.Exchange(bstore))
if err != nil {
t.Fatal(err)
}
dserv := mdag.NewDAGService(bserv)
// TODO does pinner need to share datastore with blockservice?
p := NewPinner(dstore, dserv)
a, _ := randNode()
_, err = dserv.Add(a)
if err != nil {
t.Fatal(err)
}
// pin is recursively
err = p.Pin(a, true)
if err != nil {
t.Fatal(err)
}
// pinning directly should fail
err = p.Pin(a, false)
if err == nil {
t.Fatal("expected direct pin to fail")
}
// pinning recursively again should succeed
err = p.Pin(a, true)
if err != nil {
t.Fatal(err)
}
}