remove use of asyncCheck and fix multistream tests

This commit is contained in:
Dmitriy Ryajov 2021-04-07 12:31:50 -06:00
parent 41348f0f3f
commit 099f15f45d
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4
4 changed files with 26 additions and 22 deletions

View File

@ -100,7 +100,7 @@ suite "Identify":
asyncTest "handle failed identify": asyncTest "handle failed identify":
msListen.addHandler(IdentifyCodec, identifyProto1) msListen.addHandler(IdentifyCodec, identifyProto1)
asyncCheck transport1.start(ma) asyncSpawn transport1.start(ma)
proc acceptHandler() {.async.} = proc acceptHandler() {.async.} =
var conn: Connection var conn: Connection

View File

@ -58,7 +58,7 @@ method write*(s: TestSelectStream, msg: seq[byte])
{.async, raises: [Defect, LPStreamClosedError].} = {.async, raises: [Defect, LPStreamClosedError].} =
discard discard
method close(s: TestSelectStream) {.async, gcsafe.} = method close(s: TestSelectStream) {.async, gcsafe, raises: [Defect].} =
s.isClosed = true s.isClosed = true
s.isEof = true s.isEof = true
@ -68,7 +68,8 @@ proc newTestSelectStream(): TestSelectStream =
## Mock stream for handles `ls` test ## Mock stream for handles `ls` test
type type
LsHandler = proc(procs: seq[byte]): Future[void] {.gcsafe.} LsHandler = proc(procs: seq[byte]): Future[void]
{.gcsafe, raises: [Defect].}
TestLsStream = ref object of Connection TestLsStream = ref object of Connection
step*: int step*: int
@ -122,7 +123,8 @@ proc newTestLsStream(ls: LsHandler): TestLsStream {.gcsafe.} =
## Mock stream for handles `na` test ## Mock stream for handles `na` test
type type
NaHandler = proc(procs: string): Future[void] {.gcsafe.} NaHandler = proc(procs: string): Future[void]
{.gcsafe, raises: [Defect].}
TestNaStream = ref object of Connection TestNaStream = ref object of Connection
step*: int step*: int
@ -204,17 +206,19 @@ suite "Multistream select":
asyncTest "test handle `ls`": asyncTest "test handle `ls`":
let ms = newMultistream() let ms = newMultistream()
proc testLsHandler(proto: seq[byte]) {.async, gcsafe.} # forward declaration var conn: Connection
let conn = Connection(newTestLsStream(testLsHandler))
let done = newFuture[void]() let done = newFuture[void]()
proc testLsHandler(proto: seq[byte]) {.async, gcsafe.} = proc testLsHandler(proto: seq[byte]) {.async, gcsafe, raises: [Defect].} =
var strProto: string = string.fromBytes(proto) var strProto: string = string.fromBytes(proto)
check strProto == "\x26/test/proto1/1.0.0\n/test/proto2/1.0.0\n" check strProto == "\x26/test/proto1/1.0.0\n/test/proto2/1.0.0\n"
await conn.close() await conn.close()
done.complete() done.complete()
proc testHandler(conn: Connection, proto: string): Future[void] conn = Connection(newTestLsStream(testLsHandler))
{.async, gcsafe.} = discard
proc testHandler(conn: Connection, proto: string)
{.async, gcsafe, raises: [Defect].} = discard
var protocol: LPProtocol = new LPProtocol var protocol: LPProtocol = new LPProtocol
protocol.handler = testHandler protocol.handler = testHandler
ms.addHandler("/test/proto1/1.0.0", protocol) ms.addHandler("/test/proto1/1.0.0", protocol)
@ -225,13 +229,13 @@ suite "Multistream select":
asyncTest "test handle `na`": asyncTest "test handle `na`":
let ms = newMultistream() let ms = newMultistream()
proc testNaHandler(msg: string): Future[void] {.async, gcsafe.} var conn: Connection
let conn = newTestNaStream(testNaHandler) proc testNaHandler(msg: string): Future[void]
{.async, gcsafe, raises: [Defect].} =
proc testNaHandler(msg: string): Future[void] {.async, gcsafe.} =
echo msg echo msg
check msg == Na check msg == Na
await conn.close() await conn.close()
conn = newTestNaStream(testNaHandler)
var protocol: LPProtocol = new LPProtocol var protocol: LPProtocol = new LPProtocol
proc testHandler(conn: Connection, proc testHandler(conn: Connection,
@ -258,7 +262,7 @@ suite "Multistream select":
msListen.addHandler("/test/proto/1.0.0", protocol) msListen.addHandler("/test/proto/1.0.0", protocol)
let transport1 = TcpTransport.init(upgrade = Upgrade()) let transport1 = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(ma) asyncSpawn transport1.start(ma)
proc acceptHandler(): Future[void] {.async, gcsafe.} = proc acceptHandler(): Future[void] {.async, gcsafe.} =
let conn = await transport1.accept() let conn = await transport1.accept()
@ -350,7 +354,7 @@ suite "Multistream select":
msListen.addHandler("/test/proto/1.0.0", protocol) msListen.addHandler("/test/proto/1.0.0", protocol)
let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(ma) asyncSpawn transport1.start(ma)
proc acceptHandler(): Future[void] {.async, gcsafe.} = proc acceptHandler(): Future[void] {.async, gcsafe.} =
let conn = await transport1.accept() let conn = await transport1.accept()
@ -388,7 +392,7 @@ suite "Multistream select":
msListen.addHandler("/test/proto2/1.0.0", protocol) msListen.addHandler("/test/proto2/1.0.0", protocol)
let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(ma) asyncSpawn transport1.start(ma)
proc acceptHandler(): Future[void] {.async, gcsafe.} = proc acceptHandler(): Future[void] {.async, gcsafe.} =
let conn = await transport1.accept() let conn = await transport1.accept()

View File

@ -82,7 +82,7 @@ suite "Noise":
serverNoise = newNoise(rng, serverInfo.privateKey, outgoing = false) serverNoise = newNoise(rng, serverInfo.privateKey, outgoing = false)
let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(server) asyncSpawn transport1.start(server)
proc acceptHandler() {.async.} = proc acceptHandler() {.async.} =
let conn = await transport1.accept() let conn = await transport1.accept()
@ -121,7 +121,7 @@ suite "Noise":
let let
transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade()) transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(server) asyncSpawn transport1.start(server)
proc acceptHandler() {.async, gcsafe.} = proc acceptHandler() {.async, gcsafe.} =
var conn: Connection var conn: Connection
@ -156,7 +156,7 @@ suite "Noise":
readTask = newFuture[void]() readTask = newFuture[void]()
let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(server) asyncSpawn transport1.start(server)
proc acceptHandler() {.async, gcsafe.} = proc acceptHandler() {.async, gcsafe.} =
let conn = await transport1.accept() let conn = await transport1.accept()

View File

@ -19,7 +19,7 @@ suite "TCP transport":
asyncTest "test listener: handle write": asyncTest "test listener: handle write":
let ma: MultiAddress = Multiaddress.init("/ip4/0.0.0.0/tcp/0").tryGet() let ma: MultiAddress = Multiaddress.init("/ip4/0.0.0.0/tcp/0").tryGet()
let transport: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport.start(ma) asyncSpawn transport.start(ma)
proc acceptHandler() {.async, gcsafe.} = proc acceptHandler() {.async, gcsafe.} =
let conn = await transport.accept() let conn = await transport.accept()
@ -41,7 +41,7 @@ suite "TCP transport":
let ma: MultiAddress = Multiaddress.init("/ip4/0.0.0.0/tcp/0").tryGet() let ma: MultiAddress = Multiaddress.init("/ip4/0.0.0.0/tcp/0").tryGet()
let transport: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport.start(ma) asyncSpawn transport.start(ma)
proc acceptHandler() {.async, gcsafe.} = proc acceptHandler() {.async, gcsafe.} =
var msg = newSeq[byte](6) var msg = newSeq[byte](6)
@ -154,7 +154,7 @@ suite "TCP transport":
asyncTest "e2e: handle read": asyncTest "e2e: handle read":
let ma: MultiAddress = Multiaddress.init("/ip4/0.0.0.0/tcp/0").tryGet() let ma: MultiAddress = Multiaddress.init("/ip4/0.0.0.0/tcp/0").tryGet()
let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade()) let transport1: TcpTransport = TcpTransport.init(upgrade = Upgrade())
asyncCheck transport1.start(ma) asyncSpawn transport1.start(ma)
proc acceptHandler() {.async, gcsafe.} = proc acceptHandler() {.async, gcsafe.} =
let conn = await transport1.accept() let conn = await transport1.accept()