fix #14320 (tasyncawait.nim is recently very flaky) + avoid hardcoding service ports everywhere + flakyAssert (#14327)

* hotfix #14320 tasyncawait.nim is recently very flaky
* fix #14327
* add flakyAssert
This commit is contained in:
Timothee Cour 2020-05-13 02:05:47 -07:00 • committed by GitHub
commit 1648f1dd99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 102 additions and 92 deletions

View file

@ -1,24 +1,24 @@
discard """
output: "Finished"
"""
import asyncdispatch, asyncnet
proc createServer(port: Port) {.async.} =
var port: Port
proc createServer() {.async.} =
var server = newAsyncSocket()
server.setSockOpt(OptReuseAddr, true)
bindAddr(server, port)
bindAddr(server)
port = getLocalAddr(server)[1]
server.listen()
while true:
let client = await server.accept()
discard await client.recvLine()
asyncCheck createServer(10335.Port)
asyncCheck createServer()
var done = false
proc f(): Future[void] {.async.} =
let s = newAsyncNativeSocket()
await s.connect("localhost", 10335.Port)
let s = createAsyncNativeSocket()
await s.connect("localhost", port)
await s.send("123")
echo "Finished"
done = true
waitFor f()
doAssert done