github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/client/network/peersdb/peerdb_test.go (about)

     1  package peersdb
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/piotrnar/gocoin/lib/others/qdb"
     8  )
     9  
    10  func test_one_addr(t *testing.T, host string, ip [4]byte, port uint16) {
    11  	var p *PeerAddr
    12  	var e error
    13  	p, e = NewAddrFromString(host, false)
    14  
    15  	if e != nil {
    16  		t.Fatal(e.Error(), host, port, Testnet)
    17  	}
    18  	if p.Ip4 != ip {
    19  		t.Error("Bad IP4 returned", host, port, Testnet)
    20  	}
    21  	if p.Services != Services {
    22  		t.Error("Bad Services returned", host, port, Testnet)
    23  	}
    24  	if p.Port != port {
    25  		t.Error("Bad port returned", host, port, Testnet)
    26  	}
    27  
    28  	p, e = NewAddrFromString(host+":1234", true)
    29  	if e != nil {
    30  		t.Fatal(e.Error(), host, port, Testnet)
    31  	}
    32  	if p.Ip4 != ip {
    33  		t.Error("Bad IP4 returned", host, port, Testnet)
    34  	}
    35  	if p.Services != Services {
    36  		t.Error("Bad Services returned", host, port, Testnet)
    37  	}
    38  	if p.Port != port {
    39  		t.Error("Bad port returned", host, port, Testnet)
    40  	}
    41  
    42  	p, e = NewAddrFromString(host+":1234", false)
    43  	if e != nil {
    44  		t.Fatal(e.Error(), host, port, Testnet)
    45  	}
    46  	if p.Ip4 != ip {
    47  		t.Error("Bad IP4 returned", host, port, Testnet)
    48  	}
    49  	if p.Services != Services {
    50  		t.Error("Bad Services returned", host, port, Testnet)
    51  	}
    52  	if p.Port != 1234 {
    53  		t.Error("Bad port returned", host, port, Testnet)
    54  	}
    55  
    56  	p, e = NewAddrFromString(host+":123456", false)
    57  	if e == nil {
    58  		t.Error("Error expected as port number too high", host, port, Testnet)
    59  	}
    60  
    61  	p, e = NewAddrFromString(host+":123456", true)
    62  	if e != nil {
    63  		t.Error("No Error expected as port number to be ignored", host, port, Testnet)
    64  	}
    65  }
    66  
    67  func TestNewAddrFromString(t *testing.T) {
    68  	PeerDB, _ = qdb.NewDB("tmpdir", true)
    69  
    70  	// mainnet
    71  	Testnet = false
    72  	test_one_addr(t, "slask.gocoin.pl", [4]byte{178, 19, 104, 218}, 8333)
    73  	test_one_addr(t, "1.2.3.4", [4]byte{1, 2, 3, 4}, 8333)
    74  
    75  	// Testnet
    76  	Testnet = true
    77  	test_one_addr(t, "kaja.gocoin.pl", [4]byte{195, 136, 152, 164}, 18333)
    78  	test_one_addr(t, "255.254.253.252", [4]byte{255, 254, 253, 252}, 18333)
    79  
    80  	var e error
    81  	_, e = NewAddrFromString("1.2.3.4.5", false)
    82  	if e == nil {
    83  		println("error expected")
    84  	}
    85  
    86  	_, e = NewAddrFromString("1.2.3.256", false)
    87  	if e == nil {
    88  		println("error expected")
    89  	}
    90  	PeerDB.Close()
    91  	os.RemoveAll("tmpdir")
    92  }