mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-23 03:17:43 +08:00
Changed lots of peer use, and changed the peerstore to ensure there is only ever one peer in use. Fixed #174
91 lines
1.9 KiB
Go
91 lines
1.9 KiB
Go
package peer
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
|
|
)
|
|
|
|
func setupPeer(id string, addr string) (Peer, error) {
|
|
tcp, err := ma.NewMultiaddr(addr)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
p := WithIDString(id)
|
|
p.AddAddress(tcp)
|
|
return p, nil
|
|
}
|
|
|
|
func TestPeerstore(t *testing.T) {
|
|
|
|
ps := NewPeerstore()
|
|
|
|
p11, _ := setupPeer("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31", "/ip4/127.0.0.1/tcp/1234")
|
|
p21, _ := setupPeer("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a32", "/ip4/127.0.0.1/tcp/2345")
|
|
// p31, _ := setupPeer("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33", "/ip4/127.0.0.1/tcp/3456")
|
|
// p41, _ := setupPeer("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a34", "/ip4/127.0.0.1/tcp/4567")
|
|
|
|
p13, err := ps.Add(p11)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if p13 != p11 {
|
|
t.Error("these should be the same")
|
|
}
|
|
|
|
p12, err := ps.Get(ID("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31"))
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if p11 != p12 {
|
|
t.Error(errors.New("peers should be the same"))
|
|
}
|
|
|
|
p23, err := ps.Add(p21)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
if p23 != p21 {
|
|
t.Error("These should be the same")
|
|
}
|
|
|
|
p22, err := ps.Get(ID("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a32"))
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if p21 != p22 {
|
|
t.Error(errors.New("peers should be the same"))
|
|
}
|
|
|
|
_, err = ps.Get(ID("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"))
|
|
if err != nil {
|
|
t.Error(errors.New("should not have an error here"))
|
|
}
|
|
|
|
err = ps.Delete(ID("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31"))
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
// reconstruct!
|
|
_, err = ps.Get(ID("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31"))
|
|
if err != nil {
|
|
t.Error(errors.New("should not have an error anyway. reconstruct!"))
|
|
}
|
|
|
|
p22, err = ps.Get(ID("11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a32"))
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if p21 != p22 {
|
|
t.Error(errors.New("peers should be the same"))
|
|
}
|
|
|
|
}
|