diff options
Diffstat (limited to 'tests/arc/tasyncawait.nim')
-rw-r--r-- | tests/arc/tasyncawait.nim | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/tests/arc/tasyncawait.nim b/tests/arc/tasyncawait.nim index 89e924104..91a7453cd 100644 --- a/tests/arc/tasyncawait.nim +++ b/tests/arc/tasyncawait.nim @@ -1,9 +1,10 @@ discard """ - output: "5000" - cmd: "nim c --gc:arc $file" + outputsub: "result: 5000" + cmd: "nim c --gc:orc $file" """ -import asyncdispatch, asyncnet, nativesockets, net, strutils, os +import asyncdispatch, asyncnet, nativesockets, net, strutils +from stdtest/netutils import bindAvailablePort var msgCount = 0 @@ -39,31 +40,29 @@ proc readMessages(client: AsyncFD) {.async.} = clientCount.inc break else: - if line.startswith("Message "): + if line.startsWith("Message "): msgCount.inc else: doAssert false -proc createServer(port: Port) {.async.} = - var server = createAsyncNativeSocket() - block: - var name: Sockaddr_in - name.sin_family = typeof(name.sin_family)(toInt(AF_INET)) - name.sin_port = htons(uint16(port)) - name.sin_addr.s_addr = htonl(INADDR_ANY) - if bindAddr(server.SocketHandle, cast[ptr SockAddr](addr(name)), - sizeof(name).Socklen) < 0'i32: - raiseOSError(osLastError()) - +proc createServer(server: AsyncFD) {.async.} = discard server.SocketHandle.listen() while true: asyncCheck readMessages(await accept(server)) -asyncCheck createServer(Port(10335)) -asyncCheck launchSwarm(Port(10335)) -while true: - poll() - if clientCount == swarmSize: break +proc main = + let server = createAsyncNativeSocket() + let port = bindAvailablePort(server.SocketHandle) + asyncCheck createServer(server) + asyncCheck launchSwarm(port) + while true: + poll() + if clientCount == swarmSize: break + +let mem = getOccupiedMem() +main() -assert msgCount == swarmSize * messagesToSend -echo msgCount +doAssert msgCount == swarmSize * messagesToSend +echo "result: ", msgCount +GC_fullCollect() +echo "memory: ", formatSize(getOccupiedMem() - mem) |