mirror of
https://github.com/ipfs/kubo.git
synced 2025-05-20 00:18:12 +08:00

Reverts the changes that allowed small keys (ed25519 keys) to be inlined. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
95 lines
2.5 KiB
Go
95 lines
2.5 KiB
Go
package coreunix
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
core "github.com/ipfs/go-ipfs/core"
|
|
bserv "gx/ipfs/QmPoh3SrQzFBWtdGK6qmHDV4EanKR6kYPj4DD3J2NLoEmZ/go-blockservice"
|
|
merkledag "gx/ipfs/QmdV35UHnL1FM52baPkeUo6u7Fxm2CRUkPTLRPxeF8a4Ap/go-merkledag"
|
|
ft "gx/ipfs/QmdYvDbHp7qAhZ7GsCj6e1cMo55ND6y2mjWVzwdvcv4f12/go-unixfs"
|
|
importer "gx/ipfs/QmdYvDbHp7qAhZ7GsCj6e1cMo55ND6y2mjWVzwdvcv4f12/go-unixfs/importer"
|
|
uio "gx/ipfs/QmdYvDbHp7qAhZ7GsCj6e1cMo55ND6y2mjWVzwdvcv4f12/go-unixfs/io"
|
|
|
|
u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util"
|
|
chunker "gx/ipfs/QmR4QQVkBZsZENRjYFVi8dEtPL3daZRNKk24m4r6WKJHNm/go-ipfs-chunker"
|
|
cid "gx/ipfs/QmR8BauakNcBa3RbE4nbQu76PDiJgoQgz8AJdhJuiU4TAw/go-cid"
|
|
bstore "gx/ipfs/QmS2aqUZLJp8kF1ihE5rvDGE5LvmKDPnx32w9Z1BW9xLV5/go-ipfs-blockstore"
|
|
offline "gx/ipfs/QmYZwey1thDTynSrvd6qQkX24UpTka6TFhQ2v569UpoqxD/go-ipfs-exchange-offline"
|
|
ipld "gx/ipfs/QmcKKBwfz6FyQdHR2jsXrrF6XeSBXYL86anmWNewpFpoF5/go-ipld-format"
|
|
ds "gx/ipfs/Qmf4xQhNomPNhrtZc67qSnfJSjxjXs9LWvknJtSXwimPrM/go-datastore"
|
|
dssync "gx/ipfs/Qmf4xQhNomPNhrtZc67qSnfJSjxjXs9LWvknJtSXwimPrM/go-datastore/sync"
|
|
)
|
|
|
|
func getDagserv(t *testing.T) ipld.DAGService {
|
|
db := dssync.MutexWrap(ds.NewMapDatastore())
|
|
bs := bstore.NewBlockstore(db)
|
|
blockserv := bserv.New(bs, offline.Exchange(bs))
|
|
return merkledag.NewDAGService(blockserv)
|
|
}
|
|
|
|
func TestMetadata(t *testing.T) {
|
|
ctx := context.Background()
|
|
// Make some random node
|
|
ds := getDagserv(t)
|
|
data := make([]byte, 1000)
|
|
u.NewTimeSeededRand().Read(data)
|
|
r := bytes.NewReader(data)
|
|
nd, err := importer.BuildDagFromReader(ds, chunker.DefaultSplitter(r))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
c := nd.Cid()
|
|
|
|
m := new(ft.Metadata)
|
|
m.MimeType = "THIS IS A TEST"
|
|
|
|
// Such effort, many compromise
|
|
ipfsnode := &core.IpfsNode{DAG: ds}
|
|
|
|
mdk, err := AddMetadataTo(ipfsnode, c.String(), m)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
rec, err := Metadata(ipfsnode, mdk)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if rec.MimeType != m.MimeType {
|
|
t.Fatalf("something went wrong in conversion: '%s' != '%s'", rec.MimeType, m.MimeType)
|
|
}
|
|
|
|
cdk, err := cid.Decode(mdk)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
retnode, err := ds.Get(ctx, cdk)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
rtnpb, ok := retnode.(*merkledag.ProtoNode)
|
|
if !ok {
|
|
t.Fatal("expected protobuf node")
|
|
}
|
|
|
|
ndr, err := uio.NewDagReader(ctx, rtnpb, ds)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
out, err := ioutil.ReadAll(ndr)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !bytes.Equal(out, data) {
|
|
t.Fatal("read incorrect data")
|
|
}
|
|
}
|