brontide: ensure connections are closed after test completion
This commit is contained in:
parent
1899847823
commit
6a42e9057d
@ -13,16 +13,16 @@ import (
|
|||||||
"github.com/roasbeef/btcd/btcec"
|
"github.com/roasbeef/btcd/btcec"
|
||||||
)
|
)
|
||||||
|
|
||||||
func establishTestConnection() (net.Conn, net.Conn, error) {
|
func establishTestConnection() (net.Conn, net.Conn, func(), error) {
|
||||||
// First, generate the long-term private keys both ends of the
|
// First, generate the long-term private keys both ends of the
|
||||||
// connection within our test.
|
// connection within our test.
|
||||||
localPriv, err := btcec.NewPrivateKey(btcec.S256())
|
localPriv, err := btcec.NewPrivateKey(btcec.S256())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
remotePriv, err := btcec.NewPrivateKey(btcec.S256())
|
remotePriv, err := btcec.NewPrivateKey(btcec.S256())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Having a port of ":0" means a random port, and interface will be
|
// Having a port of ":0" means a random port, and interface will be
|
||||||
@ -32,7 +32,7 @@ func establishTestConnection() (net.Conn, net.Conn, error) {
|
|||||||
// Our listener will be local, and the connection remote.
|
// Our listener will be local, and the connection remote.
|
||||||
listener, err := NewListener(localPriv, addr)
|
listener, err := NewListener(localPriv, addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
defer listener.Close()
|
defer listener.Close()
|
||||||
|
|
||||||
@ -65,18 +65,23 @@ func establishTestConnection() (net.Conn, net.Conn, error) {
|
|||||||
select {
|
select {
|
||||||
case err := <-conErrChan:
|
case err := <-conErrChan:
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
case err := <-lisErrChan:
|
case err := <-lisErrChan:
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
localConn := <-lisChan
|
localConn := <-lisChan
|
||||||
remoteConn := <-connChan
|
remoteConn := <-connChan
|
||||||
|
|
||||||
return localConn, remoteConn, nil
|
cleanUp := func() {
|
||||||
|
localConn.Close()
|
||||||
|
remoteConn.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
return localConn, remoteConn, cleanUp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestConnectionCorrectness(t *testing.T) {
|
func TestConnectionCorrectness(t *testing.T) {
|
||||||
@ -85,10 +90,11 @@ func TestConnectionCorrectness(t *testing.T) {
|
|||||||
// Create a test connection, grabbing either side of the connection
|
// Create a test connection, grabbing either side of the connection
|
||||||
// into local variables. If the initial crypto handshake fails, then
|
// into local variables. If the initial crypto handshake fails, then
|
||||||
// we'll get a non-nil error here.
|
// we'll get a non-nil error here.
|
||||||
localConn, remoteConn, err := establishTestConnection()
|
localConn, remoteConn, cleanUp, err := establishTestConnection()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to establish test connection: %v", err)
|
t.Fatalf("unable to establish test connection: %v", err)
|
||||||
}
|
}
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
// Test out some message full-message reads.
|
// Test out some message full-message reads.
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
@ -176,10 +182,11 @@ func TestWriteMessageChunking(t *testing.T) {
|
|||||||
// Create a test connection, grabbing either side of the connection
|
// Create a test connection, grabbing either side of the connection
|
||||||
// into local variables. If the initial crypto handshake fails, then
|
// into local variables. If the initial crypto handshake fails, then
|
||||||
// we'll get a non-nil error here.
|
// we'll get a non-nil error here.
|
||||||
localConn, remoteConn, err := establishTestConnection()
|
localConn, remoteConn, cleanUp, err := establishTestConnection()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to establish test connection: %v", err)
|
t.Fatalf("unable to establish test connection: %v", err)
|
||||||
}
|
}
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
// Attempt to write a message which is over 3x the max allowed payload
|
// Attempt to write a message which is over 3x the max allowed payload
|
||||||
// size.
|
// size.
|
||||||
|
Loading…
Reference in New Issue
Block a user