aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/crypto_test.go
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2015-01-22 00:22:49 +0800
committerFelix Lange <fjl@twurst.com>2015-02-06 07:00:35 +0800
commitfaa069a126da29a246193713568634e5be6edd2d (patch)
tree2ee6f138ecc703f61df878678b787408b09e8b3f /p2p/crypto_test.go
parent20aade56c3057a221d7fa7152a4969d5f8f980d5 (diff)
downloadgo-tangerine-faa069a126da29a246193713568634e5be6edd2d.tar.gz
go-tangerine-faa069a126da29a246193713568634e5be6edd2d.tar.zst
go-tangerine-faa069a126da29a246193713568634e5be6edd2d.zip
peer-level integration test for crypto handshake
- add const length params for handshake messages - add length check to fail early - add debug logs to help interop testing (!ABSOLUTELY SHOULD BE DELETED LATER) - wrap connection read/writes in error check - add cryptoReady channel in peer to signal when secure session setup is finished - wait for cryptoReady or timeout in TestPeersHandshake
Diffstat (limited to 'p2p/crypto_test.go')
-rw-r--r--p2p/crypto_test.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/p2p/crypto_test.go b/p2p/crypto_test.go
index 5fbdc61e3..47b16040a 100644
--- a/p2p/crypto_test.go
+++ b/p2p/crypto_test.go
@@ -8,6 +8,7 @@ import (
"fmt"
"net"
"testing"
+ "time"
"github.com/ethereum/go-ethereum/crypto"
"github.com/obscuren/ecies"
@@ -184,7 +185,17 @@ func TestPeersHandshake(t *testing.T) {
_, err := receiver.loop()
errc1 <- err
}()
+ ready := make(chan bool)
+ go func() {
+ <-initiator.cryptoReady
+ <-receiver.cryptoReady
+ close(ready)
+ }()
+ timeout := time.After(1 * time.Second)
select {
+ case <-ready:
+ case <-timeout:
+ t.Errorf("crypto handshake hanging for too long")
case err = <-errc0:
t.Errorf("peer 0 quit with error: %v", err)
case err = <-errc1: