// testPeer tests the given peer's flags and stats func testPeer(t *testing.T, p *peer.Peer, s peerStats) { if p.UserAgent() != s.wantUserAgent { t.Errorf("testPeer: wrong UserAgent - got %v, want %v", p.UserAgent(), s.wantUserAgent) return } if p.Services() != s.wantServices { t.Errorf("testPeer: wrong Services - got %v, want %v", p.Services(), s.wantServices) return } if !p.LastPingTime().Equal(s.wantLastPingTime) { t.Errorf("testPeer: wrong LastPingTime - got %v, want %v", p.LastPingTime(), s.wantLastPingTime) return } if p.LastPingNonce() != s.wantLastPingNonce { t.Errorf("testPeer: wrong LastPingNonce - got %v, want %v", p.LastPingNonce(), s.wantLastPingNonce) return } if p.LastPingMicros() != s.wantLastPingMicros { t.Errorf("testPeer: wrong LastPingMicros - got %v, want %v", p.LastPingMicros(), s.wantLastPingMicros) return } if p.VerAckReceived() != s.wantVerAckReceived { t.Errorf("testPeer: wrong VerAckReceived - got %v, want %v", p.VerAckReceived(), s.wantVerAckReceived) return } if p.VersionKnown() != s.wantVersionKnown { t.Errorf("testPeer: wrong VersionKnown - got %v, want %v", p.VersionKnown(), s.wantVersionKnown) return } if p.ProtocolVersion() != s.wantProtocolVersion { t.Errorf("testPeer: wrong ProtocolVersion - got %v, want %v", p.ProtocolVersion(), s.wantProtocolVersion) return } if p.LastBlock() != s.wantLastBlock { t.Errorf("testPeer: wrong LastBlock - got %v, want %v", p.LastBlock(), s.wantLastBlock) return } // Allow for a deviation of 1s, as the second may tick when the message is // in transit and the protocol doesn't support any further precision. if p.TimeOffset() != s.wantTimeOffset && p.TimeOffset() != s.wantTimeOffset-1 { t.Errorf("testPeer: wrong TimeOffset - got %v, want %v or %v", p.TimeOffset(), s.wantTimeOffset, s.wantTimeOffset-1) return } if p.BytesSent() != s.wantBytesSent { t.Errorf("testPeer: wrong BytesSent - got %v, want %v", p.BytesSent(), s.wantBytesSent) return } if p.BytesReceived() != s.wantBytesReceived { t.Errorf("testPeer: wrong BytesReceived - got %v, want %v", p.BytesReceived(), s.wantBytesReceived) return } if p.StartingHeight() != s.wantStartingHeight { t.Errorf("testPeer: wrong StartingHeight - got %v, want %v", p.StartingHeight(), s.wantStartingHeight) return } if p.Connected() != s.wantConnected { t.Errorf("testPeer: wrong Connected - got %v, want %v", p.Connected(), s.wantConnected) return } stats := p.StatsSnapshot() if p.ID() != stats.ID { t.Errorf("testPeer: wrong ID - got %v, want %v", p.ID(), stats.ID) return } if p.Addr() != stats.Addr { t.Errorf("testPeer: wrong Addr - got %v, want %v", p.Addr(), stats.Addr) return } if p.LastSend() != stats.LastSend { t.Errorf("testPeer: wrong LastSend - got %v, want %v", p.LastSend(), stats.LastSend) return } if p.LastRecv() != stats.LastRecv { t.Errorf("testPeer: wrong LastRecv - got %v, want %v", p.LastRecv(), stats.LastRecv) return } }
// testPeer tests the given peer's flags and stats func testPeer(t *testing.T, p *peer.Peer, s peerStats) { if p.UserAgent() != s.wantUserAgent { t.Errorf("testPeer: wrong UserAgent - got %v, want %v", p.UserAgent(), s.wantUserAgent) return } if p.Services() != s.wantServices { t.Errorf("testPeer: wrong Services - got %v, want %v", p.Services(), s.wantServices) return } if !p.LastPingTime().Equal(s.wantLastPingTime) { t.Errorf("testPeer: wrong LastPingTime - got %v, want %v", p.LastPingTime(), s.wantLastPingTime) return } if p.LastPingNonce() != s.wantLastPingNonce { t.Errorf("testPeer: wrong LastPingNonce - got %v, want %v", p.LastPingNonce(), s.wantLastPingNonce) return } if p.LastPingMicros() != s.wantLastPingMicros { t.Errorf("testPeer: wrong LastPingMicros - got %v, want %v", p.LastPingMicros(), s.wantLastPingMicros) return } if p.VerAckReceived() != s.wantVerAckReceived { t.Errorf("testPeer: wrong VerAckReceived - got %v, want %v", p.VerAckReceived(), s.wantVerAckReceived) return } if p.VersionKnown() != s.wantVersionKnown { t.Errorf("testPeer: wrong VersionKnown - got %v, want %v", p.VersionKnown(), s.wantVersionKnown) return } if p.ProtocolVersion() != s.wantProtocolVersion { t.Errorf("testPeer: wrong ProtocolVersion - got %v, want %v", p.ProtocolVersion(), s.wantProtocolVersion) return } if p.LastBlock() != s.wantLastBlock { t.Errorf("testPeer: wrong LastBlock - got %v, want %v", p.LastBlock(), s.wantLastBlock) return } if p.TimeOffset() != s.wantTimeOffset { t.Errorf("testPeer: wrong TimeOffset - got %v, want %v", p.TimeOffset(), s.wantTimeOffset) return } if p.BytesSent() != s.wantBytesSent { t.Errorf("testPeer: wrong BytesSent - got %v, want %v", p.BytesSent(), s.wantBytesSent) return } if p.BytesReceived() != s.wantBytesReceived { t.Errorf("testPeer: wrong BytesReceived - got %v, want %v", p.BytesReceived(), s.wantBytesReceived) return } if p.StartingHeight() != s.wantStartingHeight { t.Errorf("testPeer: wrong StartingHeight - got %v, want %v", p.StartingHeight(), s.wantStartingHeight) return } if p.Connected() != s.wantConnected { t.Errorf("testPeer: wrong Connected - got %v, want %v", p.Connected(), s.wantConnected) return } stats := p.StatsSnapshot() if p.ID() != stats.ID { t.Errorf("testPeer: wrong ID - got %v, want %v", p.ID(), stats.ID) return } if p.Addr() != stats.Addr { t.Errorf("testPeer: wrong Addr - got %v, want %v", p.Addr(), stats.Addr) return } if p.LastSend() != stats.LastSend { t.Errorf("testPeer: wrong LastSend - got %v, want %v", p.LastSend(), stats.LastSend) return } if p.LastRecv() != stats.LastRecv { t.Errorf("testPeer: wrong LastRecv - got %v, want %v", p.LastRecv(), stats.LastRecv) return } }