Skip to content

Commit

Permalink
Fix obsaddr_test compare function
Browse files Browse the repository at this point in the history
  • Loading branch information
Kubuxu committed Apr 23, 2017
1 parent ed50ad2 commit 0dee2f4
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 13 deletions.
4 changes: 1 addition & 3 deletions p2p/protocol/identify/obsaddr.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,7 @@ func (oas *ObservedAddrSet) Addrs() []ma.Multiaddr {
continue
}

if a.Activated {
addrs = append(addrs, a.Addr)
} else if a.TryActivate(oas.ttl) {
if a.Activated || a.TryActivate(oas.ttl) {
addrs = append(addrs, a.Addr)
}
}
Expand Down
32 changes: 22 additions & 10 deletions p2p/protocol/identify/obsaddr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ func TestObsAddrSet(t *testing.T) {
}

addrsMarch := func(a, b []ma.Multiaddr) bool {
if len(a) != len(b) {
return false
}

for _, aa := range a {
found := false
for _, bb := range b {
Expand All @@ -38,8 +42,12 @@ func TestObsAddrSet(t *testing.T) {
a3 := m("/ip4/1.2.3.4/tcp/1233")
a4 := m("/ip4/1.2.3.4/tcp/1234")
a5 := m("/ip4/1.2.3.4/tcp/1235")
a6 := m("/ip4/1.2.3.6/tcp/1236")
a7 := m("/ip4/1.2.3.7/tcp/1237")

b1 := m("/ip4/1.2.3.6/tcp/1236")
b2 := m("/ip4/1.2.3.7/tcp/1237")
b3 := m("/ip4/1.2.3.8/tcp/1237")
b4 := m("/ip4/1.2.3.9/tcp/1237")
b5 := m("/ip4/1.2.3.10/tcp/1237")

oas := ObservedAddrSet{}

Expand Down Expand Up @@ -72,28 +80,32 @@ func TestObsAddrSet(t *testing.T) {
t.Error("addrs should _still_ be empty (same obs group)")
}

oas.Add(a1, a6)
oas.Add(a1, b1)
oas.Add(a1, b2)
oas.Add(a1, b3)
if !addrsMarch(oas.Addrs(), []ma.Multiaddr{a1}) {
t.Error("addrs should only have a1")
}

oas.Add(a2, a5)
oas.Add(a1, a5)
oas.Add(a1, a5)
oas.Add(a2, a6)
oas.Add(a1, a6)
oas.Add(a1, a6)
oas.Add(a2, a7)
oas.Add(a1, a7)
oas.Add(a1, a7)
oas.Add(a2, b1)
oas.Add(a1, b1)
oas.Add(a1, b1)
oas.Add(a2, b2)
oas.Add(a1, b2)
oas.Add(a1, b2)
oas.Add(a2, b4)
oas.Add(a2, b5)
if !addrsMarch(oas.Addrs(), []ma.Multiaddr{a1, a2}) {
t.Error("addrs should only have a1, a2")
}

// change the timeout constant so we can time it out.
oas.SetTTL(time.Millisecond * 200)
<-time.After(time.Millisecond * 210)
if !addrsMarch(oas.Addrs(), []ma.Multiaddr{nil}) {
if !addrsMarch(oas.Addrs(), nil) {
t.Error("addrs should have timed out")
}
}

0 comments on commit 0dee2f4

Please sign in to comment.