@cryptotaxi247 / kubo / commits / b78069475

fix(bitswap) init wantlist

+ test that a partners wants are remembered by message receiver

Brian Tiger Chow committed Sep 18, 2014 at 14:28 UTC b780694757e4c1ef55f22094ea8e4fdcef951af8
2 files changed +19
bitswap/strategy/ledger.go
+1
@@ -14,6 +14,7 @@ type keySet map[u.Key]struct{}
14
15 func newLedger(p *peer.Peer, strategy strategyFunc) *ledger {
16 return &ledger{
17 + wantList: keySet{},
18 Strategy: strategy,
19 Partner: p,
20 }
bitswap/strategy/strategy_test.go
+18
@@ -5,6 +5,7 @@ import (
5
6 message "github.com/jbenet/go-ipfs/bitswap/message"
7 "github.com/jbenet/go-ipfs/peer"
8 + "github.com/jbenet/go-ipfs/util/testutil"
9 )
10
11 type peerAndStrategist struct {
@@ -19,6 +20,23 @@ func newPeerAndStrategist(idStr string) peerAndStrategist {
20 }
21 }
22
23 +func TestBlockRecordedAsWantedAfterMessageReceived(t *testing.T) {
24 + beggar := newPeerAndStrategist("can't be chooser")
25 + chooser := newPeerAndStrategist("chooses JIF")
26 +
27 + block := testutil.NewBlockOrFail(t, "data wanted by beggar")
28 +
29 + messageFromBeggarToChooser := message.New()
30 + messageFromBeggarToChooser.AppendWanted(block.Key())
31 +
32 + chooser.MessageReceived(beggar.Peer, messageFromBeggarToChooser)
33 + // for this test, doesn't matter if you record that beggar sent
34 +
35 + if !chooser.IsWantedByPeer(block.Key(), beggar.Peer) {
36 + t.Fatal("chooser failed to record that beggar wants block")
37 + }
38 +}
39 +
40 func TestPeerIsAddedToPeersWhenMessageReceivedOrSent(t *testing.T) {
41
42 sanfrancisco := newPeerAndStrategist("sf")