]> Sergey Matveev's repositories - btrtrc.git/blobdiff - prioritized_peers_test.go
No Web*
[btrtrc.git] / prioritized_peers_test.go
index e7c5265104c564472006ef5b907ea6146b4c11aa..5e61c25f1f56c4d8c0df6f92f3114a83a3d494cc 100644 (file)
@@ -2,7 +2,6 @@ package torrent
 
 import (
        "net"
-       "sort"
        "testing"
 
        "github.com/google/btree"
@@ -12,35 +11,33 @@ import (
 func TestPrioritizedPeers(t *testing.T) {
        pp := prioritizedPeers{
                om: btree.New(3),
-               getPrio: func(p Peer) peerPriority {
+               getPrio: func(p PeerInfo) peerPriority {
                        return bep40PriorityIgnoreError(p.addr(), IpPort{IP: net.ParseIP("0.0.0.0")})
                },
        }
        _, ok := pp.DeleteMin()
        assert.Panics(t, func() { pp.PopMax() })
        assert.False(t, ok)
-       ps := []Peer{
-               {IP: net.ParseIP("1.2.3.4")},
-               {IP: net.ParseIP("1::2")},
-               {IP: net.ParseIP("")},
+       ps := []PeerInfo{
+               {Addr: ipPortAddr{IP: net.ParseIP("1.2.3.4")}},
+               {Addr: ipPortAddr{IP: net.ParseIP("1::2")}},
+               {Addr: ipPortAddr{IP: net.ParseIP("")}},
+               {Addr: ipPortAddr{IP: net.ParseIP("")}, Trusted: true},
        }
        for i, p := range ps {
-               t.Logf("peer %d priority: %08x\n", i, pp.getPrio(p))
+               t.Logf("peer %d priority: %08x trusted: %t\n", i, pp.getPrio(p), p.Trusted)
                assert.False(t, pp.Add(p))
                assert.True(t, pp.Add(p))
                assert.Equal(t, i+1, pp.Len())
        }
-       sort.Slice(ps, func(i, j int) bool {
-               return pp.getPrio(ps[i]) < pp.getPrio(ps[j])
-       })
-       pop := func(expected *Peer) {
+       pop := func(expected *PeerInfo) {
                if expected == nil {
                        assert.Panics(t, func() { pp.PopMax() })
                } else {
                        assert.Equal(t, *expected, pp.PopMax())
                }
        }
-       min := func(expected *Peer) {
+       min := func(expected *PeerInfo) {
                i, ok := pp.DeleteMin()
                if expected == nil {
                        assert.False(t, ok)
@@ -49,9 +46,10 @@ func TestPrioritizedPeers(t *testing.T) {
                        assert.Equal(t, *expected, i.p)
                }
        }
-       pop(&ps[2])
-       min(&ps[0])
+       pop(&ps[3])
        pop(&ps[1])
+       min(&ps[2])
+       pop(&ps[0])
        min(nil)
        pop(nil)
 }