summary refs log tree commit diff stats
path: root/tests/arc/tasyncawait.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/arc/tasyncawait.nim')
-rw-r--r--tests/arc/tasyncawait.nim43
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)