mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* Implement upgrade mechanism for p2p * Remove dependencies from flowcontext to v3 * Add p2p v4 * Add Ready flow * Remove copy paste code of v3 * Register SendAddresses flow at the top level * Add option to set protocol version from CLI and add TestAddressExchangeV3V4 * Send ready message on minimal net adapter * Rename defaultMaxProtocolVersion->maxAcceptableProtocolVersion
92 lines
2.7 KiB
Go
92 lines
2.7 KiB
Go
// Copyright (c) 2013-2016 The btcsuite developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package appmessage
|
|
|
|
import (
|
|
"net"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/davecgh/go-spew/spew"
|
|
"github.com/kaspanet/kaspad/infrastructure/network/netadapter/id"
|
|
)
|
|
|
|
// TestVersion tests the MsgVersion API.
|
|
func TestVersion(t *testing.T) {
|
|
pver := uint32(4)
|
|
|
|
// Create version message data.
|
|
tcpAddrMe := &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: 16111}
|
|
me := NewNetAddress(tcpAddrMe)
|
|
generatedID, err := id.GenerateID()
|
|
if err != nil {
|
|
t.Fatalf("id.GenerateID: %s", err)
|
|
}
|
|
|
|
// Ensure we get the correct data back out.
|
|
msg := NewMsgVersion(me, generatedID, "mainnet", nil, 4)
|
|
if msg.ProtocolVersion != pver {
|
|
t.Errorf("NewMsgVersion: wrong protocol version - got %v, want %v",
|
|
msg.ProtocolVersion, pver)
|
|
}
|
|
if !reflect.DeepEqual(msg.Address, me) {
|
|
t.Errorf("NewMsgVersion: wrong me address - got %v, want %v",
|
|
spew.Sdump(&msg.Address), spew.Sdump(me))
|
|
}
|
|
if msg.ID.String() != generatedID.String() {
|
|
t.Errorf("NewMsgVersion: wrong nonce - got %s, want %s",
|
|
msg.ID, generatedID)
|
|
}
|
|
if msg.UserAgent != DefaultUserAgent {
|
|
t.Errorf("NewMsgVersion: wrong user agent - got %v, want %v",
|
|
msg.UserAgent, DefaultUserAgent)
|
|
}
|
|
if msg.DisableRelayTx {
|
|
t.Errorf("NewMsgVersion: disable relay tx is not false by "+
|
|
"default - got %v, want %v", msg.DisableRelayTx, false)
|
|
}
|
|
|
|
msg.AddUserAgent("myclient", "1.2.3", "optional", "comments")
|
|
customUserAgent := DefaultUserAgent + "myclient:1.2.3(optional; comments)/"
|
|
if msg.UserAgent != customUserAgent {
|
|
t.Errorf("AddUserAgent: wrong user agent - got %s, want %s",
|
|
msg.UserAgent, customUserAgent)
|
|
}
|
|
|
|
msg.AddUserAgent("mygui", "3.4.5")
|
|
customUserAgent += "mygui:3.4.5/"
|
|
if msg.UserAgent != customUserAgent {
|
|
t.Errorf("AddUserAgent: wrong user agent - got %s, want %s",
|
|
msg.UserAgent, customUserAgent)
|
|
}
|
|
|
|
// Version message should not have any services set by default.
|
|
if msg.Services != 0 {
|
|
t.Errorf("NewMsgVersion: wrong default services - got %v, want %v",
|
|
msg.Services, 0)
|
|
|
|
}
|
|
if msg.HasService(SFNodeNetwork) {
|
|
t.Errorf("HasService: SFNodeNetwork service is set")
|
|
}
|
|
|
|
// Ensure the command is expected value.
|
|
wantCmd := MessageCommand(0)
|
|
if cmd := msg.Command(); cmd != wantCmd {
|
|
t.Errorf("NewMsgVersion: wrong command - got %v want %v",
|
|
cmd, wantCmd)
|
|
}
|
|
|
|
// Ensure adding the full service node flag works.
|
|
msg.AddService(SFNodeNetwork)
|
|
if msg.Services != SFNodeNetwork {
|
|
t.Errorf("AddService: wrong services - got %v, want %v",
|
|
msg.Services, SFNodeNetwork)
|
|
}
|
|
if !msg.HasService(SFNodeNetwork) {
|
|
t.Errorf("HasService: SFNodeNetwork service not set")
|
|
}
|
|
}
|