mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-06 00:38:08 +08:00
Merge pull request #3516 from Zanadar/test/routing/offline
Test/routing/offline
This commit is contained in:
commit
548490f558
79
routing/offline/offline_test.go
Normal file
79
routing/offline/offline_test.go
Normal file
@ -0,0 +1,79 @@
|
||||
package offline
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"github.com/ipfs/go-ipfs/thirdparty/testutil"
|
||||
ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestOfflineRouterStorage(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
nds := ds.NewMapDatastore()
|
||||
privkey, _, _ := testutil.RandTestKeyPair(128)
|
||||
offline := NewOfflineRouter(nds, privkey)
|
||||
|
||||
err := offline.PutValue(ctx, "key", []byte("testing 1 2 3"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
val, err := offline.GetValue(ctx, "key")
|
||||
if !bytes.Equal([]byte("testing 1 2 3"), val) {
|
||||
t.Fatal("OfflineRouter does not properly store")
|
||||
}
|
||||
|
||||
val, err = offline.GetValue(ctx, "notHere")
|
||||
if err == nil {
|
||||
t.Fatal("Router should throw errors for unfound records")
|
||||
}
|
||||
|
||||
recVal, err := offline.GetValues(ctx, "key", 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = offline.GetValues(ctx, "notHere", 0)
|
||||
if err == nil {
|
||||
t.Fatal("Router should throw errors for unfound records")
|
||||
}
|
||||
|
||||
local := recVal[0].Val
|
||||
if !bytes.Equal([]byte("testing 1 2 3"), local) {
|
||||
t.Fatal("OfflineRouter does not properly store")
|
||||
}
|
||||
}
|
||||
|
||||
func TestOfflineRouterLocal(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
nds := ds.NewMapDatastore()
|
||||
privkey, _, _ := testutil.RandTestKeyPair(128)
|
||||
offline := NewOfflineRouter(nds, privkey)
|
||||
|
||||
id, _ := testutil.RandPeerID()
|
||||
_, err := offline.FindPeer(ctx, id)
|
||||
if err != ErrOffline {
|
||||
t.Fatal("OfflineRouting should alert that its offline")
|
||||
}
|
||||
|
||||
cid, _ := testutil.RandCidV0()
|
||||
pChan := offline.FindProvidersAsync(ctx, cid, 1)
|
||||
p, ok := <-pChan
|
||||
if ok {
|
||||
t.Fatalf("FindProvidersAsync did not return a closed channel. Instead we got %+v !", p)
|
||||
}
|
||||
|
||||
cid, _ = testutil.RandCidV0()
|
||||
err = offline.Provide(ctx, cid)
|
||||
if err != ErrOffline {
|
||||
t.Fatal("OfflineRouting should alert that its offline")
|
||||
}
|
||||
|
||||
err = offline.Bootstrap(ctx)
|
||||
if err != nil {
|
||||
t.Fatal("You shouldn't be able to bootstrap offline routing.")
|
||||
}
|
||||
}
|
||||
9
thirdparty/testutil/gen.go
vendored
9
thirdparty/testutil/gen.go
vendored
@ -9,6 +9,7 @@ import (
|
||||
"testing"
|
||||
|
||||
u "gx/ipfs/Qmb912gdngC1UWwTkhuW8knyRbcWeu5kqkxBpveLmW8bSr/go-ipfs-util"
|
||||
cid "gx/ipfs/QmcTcsTvfaeEBRFo1TkFgT8sRmgi1n1LTZpecfVP8fzpGD/go-cid"
|
||||
peer "gx/ipfs/QmfMmLGoKzCHDN7cGgk64PJr4iipzidDRME8HABSJqvmhC/go-libp2p-peer"
|
||||
ci "gx/ipfs/QmfWDLQjGjVe4fr5CoztYW2DYYjRysMJrFe1RCsXLPTf46/go-libp2p-crypto"
|
||||
|
||||
@ -50,6 +51,14 @@ func RandPeerID() (peer.ID, error) {
|
||||
return peer.ID(h), nil
|
||||
}
|
||||
|
||||
func RandCidV0() (*cid.Cid, error) {
|
||||
buf := make([]byte, 16)
|
||||
if _, err := io.ReadFull(u.NewTimeSeededRand(), buf); err != nil {
|
||||
return &cid.Cid{}, err
|
||||
}
|
||||
return cid.NewCidV0(buf), nil
|
||||
}
|
||||
|
||||
func RandPeerIDFatal(t testing.TB) peer.ID {
|
||||
p, err := RandPeerID()
|
||||
if err != nil {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user