Commit aa296039 authored by Juan Batiz-Benet's avatar Juan Batiz-Benet Committed by Brian Tiger Chow

dht tests pass again

parent afb1d010
...@@ -46,7 +46,7 @@ func peersToPBPeers(peers []*peer.Peer) []*Message_Peer { ...@@ -46,7 +46,7 @@ func peersToPBPeers(peers []*peer.Peer) []*Message_Peer {
func (m *Message) GetClusterLevel() int { func (m *Message) GetClusterLevel() int {
level := m.GetClusterLevelRaw() - 1 level := m.GetClusterLevelRaw() - 1
if level < 0 { if level < 0 {
u.PErr("GetClusterLevel: no routing level specified, assuming 0\n") u.DErr("GetClusterLevel: no routing level specified, assuming 0\n")
level = 0 level = 0
} }
return int(level) return int(level)
......
...@@ -215,6 +215,7 @@ func (dht *IpfsDHT) putProvider(ctx context.Context, p *peer.Peer, key string) e ...@@ -215,6 +215,7 @@ func (dht *IpfsDHT) putProvider(ctx context.Context, p *peer.Peer, key string) e
return err return err
} }
u.DOut("[%s] putProvider: %s for %s\n", dht.self.ID.Pretty(), p.ID.Pretty(), key)
if *rpmes.Key != *pmes.Key { if *rpmes.Key != *pmes.Key {
return errors.New("provider not added correctly") return errors.New("provider not added correctly")
} }
...@@ -393,6 +394,8 @@ func (dht *IpfsDHT) addProviders(key u.Key, peers []*Message_Peer) []*peer.Peer ...@@ -393,6 +394,8 @@ func (dht *IpfsDHT) addProviders(key u.Key, peers []*Message_Peer) []*peer.Peer
continue continue
} }
u.DOut("[%s] adding provider: %s for %s", dht.self.ID.Pretty(), p, key)
// Dont add outselves to the list // Dont add outselves to the list
if p.ID.Equal(dht.self.ID) { if p.ID.Equal(dht.self.ID) {
continue continue
...@@ -464,7 +467,7 @@ func (dht *IpfsDHT) peerFromInfo(pbp *Message_Peer) (*peer.Peer, error) { ...@@ -464,7 +467,7 @@ func (dht *IpfsDHT) peerFromInfo(pbp *Message_Peer) (*peer.Peer, error) {
} }
// create new Peer // create new Peer
p := &peer.Peer{ID: id} p = &peer.Peer{ID: id}
p.AddAddress(maddr) p.AddAddress(maddr)
dht.peerstore.Put(p) dht.peerstore.Put(p)
} }
......
...@@ -86,7 +86,9 @@ func makePeer(addr *ma.Multiaddr) *peer.Peer { ...@@ -86,7 +86,9 @@ func makePeer(addr *ma.Multiaddr) *peer.Peer {
} }
func TestPing(t *testing.T) { func TestPing(t *testing.T) {
u.Debug = true // t.Skip("skipping test to debug another")
u.Debug = false
addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/2222") addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/2222")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
...@@ -104,6 +106,8 @@ func TestPing(t *testing.T) { ...@@ -104,6 +106,8 @@ func TestPing(t *testing.T) {
defer dhtA.Halt() defer dhtA.Halt()
defer dhtB.Halt() defer dhtB.Halt()
defer dhtA.network.Close()
defer dhtB.network.Close()
_, err = dhtA.Connect(peerB) _, err = dhtA.Connect(peerB)
if err != nil { if err != nil {
...@@ -118,7 +122,9 @@ func TestPing(t *testing.T) { ...@@ -118,7 +122,9 @@ func TestPing(t *testing.T) {
} }
func TestValueGetSet(t *testing.T) { func TestValueGetSet(t *testing.T) {
u.Debug = true // t.Skip("skipping test to debug another")
u.Debug = false
addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/1235") addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/1235")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
...@@ -136,6 +142,8 @@ func TestValueGetSet(t *testing.T) { ...@@ -136,6 +142,8 @@ func TestValueGetSet(t *testing.T) {
defer dhtA.Halt() defer dhtA.Halt()
defer dhtB.Halt() defer dhtB.Halt()
defer dhtA.network.Close()
defer dhtB.network.Close()
_, err = dhtA.Connect(peerB) _, err = dhtA.Connect(peerB)
if err != nil { if err != nil {
...@@ -155,140 +163,149 @@ func TestValueGetSet(t *testing.T) { ...@@ -155,140 +163,149 @@ func TestValueGetSet(t *testing.T) {
} }
// func TestProvides(t *testing.T) { func TestProvides(t *testing.T) {
// u.Debug = false // t.Skip("skipping test to debug another")
//
// _, peers, dhts := setupDHTS(4, t) u.Debug = false
// defer func() {
// for i := 0; i < 4; i++ { _, peers, dhts := setupDHTS(4, t)
// dhts[i].Halt() defer func() {
// } for i := 0; i < 4; i++ {
// }() dhts[i].Halt()
// defer dhts[i].network.Close()
// _, err := dhts[0].Connect(peers[1]) }
// if err != nil { }()
// t.Fatal(err)
// } _, err := dhts[0].Connect(peers[1])
// if err != nil {
// _, err = dhts[1].Connect(peers[2]) t.Fatal(err)
// if err != nil { }
// t.Fatal(err)
// } _, err = dhts[1].Connect(peers[2])
// if err != nil {
// _, err = dhts[1].Connect(peers[3]) t.Fatal(err)
// if err != nil { }
// t.Fatal(err)
// } _, err = dhts[1].Connect(peers[3])
// if err != nil {
// err = dhts[3].putLocal(u.Key("hello"), []byte("world")) t.Fatal(err)
// if err != nil { }
// t.Fatal(err)
// } err = dhts[3].putLocal(u.Key("hello"), []byte("world"))
// if err != nil {
// bits, err := dhts[3].getLocal(u.Key("hello")) t.Fatal(err)
// if err != nil && bytes.Equal(bits, []byte("world")) { }
// t.Fatal(err)
// } bits, err := dhts[3].getLocal(u.Key("hello"))
// if err != nil && bytes.Equal(bits, []byte("world")) {
// err = dhts[3].Provide(u.Key("hello")) t.Fatal(err)
// if err != nil { }
// t.Fatal(err)
// } err = dhts[3].Provide(u.Key("hello"))
// if err != nil {
// time.Sleep(time.Millisecond * 60) t.Fatal(err)
// }
// provs, err := dhts[0].FindProviders(u.Key("hello"), time.Second)
// if err != nil { time.Sleep(time.Millisecond * 60)
// t.Fatal(err)
// } provs, err := dhts[0].FindProviders(u.Key("hello"), time.Second)
// if err != nil {
// if len(provs) != 1 { t.Fatal(err)
// t.Fatal("Didnt get back providers") }
// }
// } if len(provs) != 1 {
// t.Fatal("Didnt get back providers")
// func TestLayeredGet(t *testing.T) { }
// u.Debug = false }
// addrs, _, dhts := setupDHTS(4, t)
// defer func() { func TestLayeredGet(t *testing.T) {
// for i := 0; i < 4; i++ { // t.Skip("skipping test to debug another")
// dhts[i].Halt()
// } u.Debug = false
// }() _, peers, dhts := setupDHTS(4, t)
// defer func() {
// _, err := dhts[0].Connect(addrs[1]) for i := 0; i < 4; i++ {
// if err != nil { dhts[i].Halt()
// t.Fatalf("Failed to connect: %s", err) defer dhts[i].network.Close()
// } }
// }()
// _, err = dhts[1].Connect(addrs[2])
// if err != nil { _, err := dhts[0].Connect(peers[1])
// t.Fatal(err) if err != nil {
// } t.Fatalf("Failed to connect: %s", err)
// }
// _, err = dhts[1].Connect(addrs[3])
// if err != nil { _, err = dhts[1].Connect(peers[2])
// t.Fatal(err) if err != nil {
// } t.Fatal(err)
// }
// err = dhts[3].putLocal(u.Key("hello"), []byte("world"))
// if err != nil { _, err = dhts[1].Connect(peers[3])
// t.Fatal(err) if err != nil {
// } t.Fatal(err)
// }
// err = dhts[3].Provide(u.Key("hello"))
// if err != nil { err = dhts[3].putLocal(u.Key("hello"), []byte("world"))
// t.Fatal(err) if err != nil {
// } t.Fatal(err)
// }
// time.Sleep(time.Millisecond * 60)
// err = dhts[3].Provide(u.Key("hello"))
// val, err := dhts[0].GetValue(u.Key("hello"), time.Second) if err != nil {
// if err != nil { t.Fatal(err)
// t.Fatal(err) }
// }
// time.Sleep(time.Millisecond * 60)
// if string(val) != "world" {
// t.Fatal("Got incorrect value.") val, err := dhts[0].GetValue(u.Key("hello"), time.Second)
// } if err != nil {
// t.Fatal(err)
// } }
//
// func TestFindPeer(t *testing.T) { if string(val) != "world" {
// u.Debug = false t.Fatal("Got incorrect value.")
// }
// addrs, peers, dhts := setupDHTS(4, t)
// go func() { }
// for i := 0; i < 4; i++ {
// dhts[i].Halt() func TestFindPeer(t *testing.T) {
// } // t.Skip("skipping test to debug another")
// }()
// u.Debug = false
// _, err := dhts[0].Connect(addrs[1])
// if err != nil { _, peers, dhts := setupDHTS(4, t)
// t.Fatal(err) defer func() {
// } for i := 0; i < 4; i++ {
// dhts[i].Halt()
// _, err = dhts[1].Connect(addrs[2]) dhts[i].network.Close()
// if err != nil { }
// t.Fatal(err) }()
// }
// _, err := dhts[0].Connect(peers[1])
// _, err = dhts[1].Connect(addrs[3]) if err != nil {
// if err != nil { t.Fatal(err)
// t.Fatal(err) }
// }
// _, err = dhts[1].Connect(peers[2])
// p, err := dhts[0].FindPeer(peers[2].ID, time.Second) if err != nil {
// if err != nil { t.Fatal(err)
// t.Fatal(err) }
// }
// _, err = dhts[1].Connect(peers[3])
// if p == nil { if err != nil {
// t.Fatal("Failed to find peer.") t.Fatal(err)
// } }
//
// if !p.ID.Equal(peers[2].ID) { p, err := dhts[0].FindPeer(peers[2].ID, time.Second)
// t.Fatal("Didnt find expected peer.") if err != nil {
// } t.Fatal(err)
// } }
if p == nil {
t.Fatal("Failed to find peer.")
}
if !p.ID.Equal(peers[2].ID) {
t.Fatal("Didnt find expected peer.")
}
}
...@@ -92,6 +92,8 @@ func (f *fauxNet) SendMessage(msg.NetMessage) error { ...@@ -92,6 +92,8 @@ func (f *fauxNet) SendMessage(msg.NetMessage) error {
func (f *fauxNet) Close() error { return nil } func (f *fauxNet) Close() error { return nil }
func TestGetFailures(t *testing.T) { func TestGetFailures(t *testing.T) {
// t.Skip("skipping test because it makes a lot of output")
ctx := context.Background() ctx := context.Background()
fn := &fauxNet{} fn := &fauxNet{}
fs := &fauxSender{} fs := &fauxSender{}
...@@ -189,6 +191,8 @@ func _randPeer() *peer.Peer { ...@@ -189,6 +191,8 @@ func _randPeer() *peer.Peer {
} }
func TestNotFound(t *testing.T) { func TestNotFound(t *testing.T) {
// t.Skip("skipping test because it makes a lot of output")
fn := &fauxNet{} fn := &fauxNet{}
fs := &fauxSender{} fs := &fauxSender{}
...@@ -233,7 +237,7 @@ func TestNotFound(t *testing.T) { ...@@ -233,7 +237,7 @@ func TestNotFound(t *testing.T) {
}) })
v, err := d.GetValue(u.Key("hello"), time.Second*5) v, err := d.GetValue(u.Key("hello"), time.Second*5)
u.POut("get value got %v\n", v) u.DOut("get value got %v\n", v)
if err != nil { if err != nil {
switch err { switch err {
case u.ErrNotFound: case u.ErrNotFound:
...@@ -251,6 +255,8 @@ func TestNotFound(t *testing.T) { ...@@ -251,6 +255,8 @@ func TestNotFound(t *testing.T) {
// If less than K nodes are in the entire network, it should fail when we make // If less than K nodes are in the entire network, it should fail when we make
// a GET rpc and nobody has the value // a GET rpc and nobody has the value
func TestLessThanKResponses(t *testing.T) { func TestLessThanKResponses(t *testing.T) {
// t.Skip("skipping test because it makes a lot of output")
u.Debug = false u.Debug = false
fn := &fauxNet{} fn := &fauxNet{}
fs := &fauxSender{} fs := &fauxSender{}
......
...@@ -176,7 +176,7 @@ func (dht *IpfsDHT) handleAddProvider(p *peer.Peer, pmes *Message) (*Message, er ...@@ -176,7 +176,7 @@ func (dht *IpfsDHT) handleAddProvider(p *peer.Peer, pmes *Message) (*Message, er
dht.self.ID.Pretty(), p.ID.Pretty(), peer.ID(key).Pretty()) dht.self.ID.Pretty(), p.ID.Pretty(), peer.ID(key).Pretty())
dht.providers.AddProvider(key, p) dht.providers.AddProvider(key, p)
return nil, nil return pmes, nil // send back same msg as confirmation.
} }
// Halt stops all communications from this peer and shut down // Halt stops all communications from this peer and shut down
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment