mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-22 10:57:42 +08:00
This extracts the blocks/blockstore package and renames the blocks/blockstore/util package to /blocks/blockstoreutil (because util depends on Pin and I don't plan to extract Pin and its depedencies). The history of blocks/blockstore has been preserved. It has been gx'ed and imported. Imports have been rewritten accordingly and re-ordered. License: MIT Signed-off-by: Hector Sanjuan <hector@protocol.ai>
81 lines
1.7 KiB
Go
81 lines
1.7 KiB
Go
package offline
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/ipfs/go-ipfs/blocks/blocksutil"
|
|
|
|
u "gx/ipfs/QmNiJuT8Ja3hMVpBHXv3Q6dwmperaQ6JjLtpMQgMCD7xvx/go-ipfs-util"
|
|
ds "gx/ipfs/QmPpegoMqhAEqjncrzArm7KVWAkCm78rqL2DPuNjhPrshg/go-datastore"
|
|
ds_sync "gx/ipfs/QmPpegoMqhAEqjncrzArm7KVWAkCm78rqL2DPuNjhPrshg/go-datastore/sync"
|
|
blockstore "gx/ipfs/QmTVDM4LCSUMFNQzbDLL9zQwp8usE6QHymFdh3h8vL9v6b/go-ipfs-blockstore"
|
|
cid "gx/ipfs/QmcZfnkapfECQGcLZaf9B79NRg7cRa9EnZh4LSbkCzwNvY/go-cid"
|
|
blocks "gx/ipfs/Qmej7nf81hi2x2tvjRBF3mcp74sQyuDH4VMYDGd1YtXjb2/go-block-format"
|
|
)
|
|
|
|
func TestBlockReturnsErr(t *testing.T) {
|
|
off := Exchange(bstore())
|
|
c := cid.NewCidV0(u.Hash([]byte("foo")))
|
|
_, err := off.GetBlock(context.Background(), c)
|
|
if err != nil {
|
|
return // as desired
|
|
}
|
|
t.Fail()
|
|
}
|
|
|
|
func TestHasBlockReturnsNil(t *testing.T) {
|
|
store := bstore()
|
|
ex := Exchange(store)
|
|
block := blocks.NewBlock([]byte("data"))
|
|
|
|
err := ex.HasBlock(block)
|
|
if err != nil {
|
|
t.Fail()
|
|
}
|
|
|
|
if _, err := store.Get(block.Cid()); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestGetBlocks(t *testing.T) {
|
|
store := bstore()
|
|
ex := Exchange(store)
|
|
g := blocksutil.NewBlockGenerator()
|
|
|
|
expected := g.Blocks(2)
|
|
|
|
for _, b := range expected {
|
|
if err := ex.HasBlock(b); err != nil {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
request := func() []*cid.Cid {
|
|
var ks []*cid.Cid
|
|
|
|
for _, b := range expected {
|
|
ks = append(ks, b.Cid())
|
|
}
|
|
return ks
|
|
}()
|
|
|
|
received, err := ex.GetBlocks(context.Background(), request)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var count int
|
|
for range received {
|
|
count++
|
|
}
|
|
if len(expected) != count {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func bstore() blockstore.Blockstore {
|
|
return blockstore.NewBlockstore(ds_sync.MutexWrap(ds.NewMapDatastore()))
|
|
}
|