nim-libp2p/tests/testconnection.nim
Dmitriy Ryajov 5b28e8c488
Cleanup lpstream, Connection and BufferStream (#228)
* count published messages

* don't call `switch.dial` in `subscribeToPeer`

* don't use delegation in connection

* move connection out to own file

* don't breakout on reset

* make sure to call close on secured conn

* add lpstream tracing

* don't breackdown by conn id

* fix import

* remove unused lable

* reset  connection on exception

* add additional metrics for skipped messages

* check for nil in secure.close
2020-06-19 11:29:43 -06:00

50 lines
989 B
Nim

import unittest
import chronos, nimcrypto/utils
import ../libp2p/[stream/connection,
stream/bufferstream]
suite "Connection":
test "close":
proc test(): Future[bool] {.async.} =
var conn = newBufferStream()
await conn.close()
check:
conn.closed == true
result = true
check:
waitFor(test()) == true
test "parent close":
proc test(): Future[bool] {.async.} =
var buf = newBufferStream()
var conn = buf
await conn.close()
check:
conn.closed == true
buf.closed == true
await sleepAsync(1.seconds)
result = true
check:
waitFor(test()) == true
test "child close":
proc test(): Future[bool] {.async.} =
var buf = newBufferStream()
var conn = buf
await buf.close()
check:
conn.closed == true
buf.closed == true
await sleepAsync(1.seconds)
result = true
check:
waitFor(test()) == true