summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorEuan Torano <euantorano@gmail.com>2017-07-09 20:50:47 +0100
committerEuan Torano <euantorano@gmail.com>2017-07-09 20:50:47 +0100
commit3f3853945d161a2ada421530bbcd43c7ab74a2eb (patch)
tree5393142ed675766507af72cf9554ffaebd84d0dc /tests
parenta5681d03e38006655b2b6383253c701a8d5409f4 (diff)
downloadNim-3f3853945d161a2ada421530bbcd43c7ab74a2eb.tar.gz
Adding test for recvline
Signed-off-by: Euan Torano <euantorano@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/async/tasyncRecvLine.nim54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/async/tasyncRecvLine.nim b/tests/async/tasyncRecvLine.nim
new file mode 100644
index 000000000..5db51671e
--- /dev/null
+++ b/tests/async/tasyncRecvLine.nim
@@ -0,0 +1,54 @@
+discard """
+  file: "tasyncsend4754.nim"
+  output: '''
+Hello World
+Hello World
+'''
+"""
+
+import asyncdispatch, asyncnet
+
+const recvLinePort = Port(6047)
+
+proc setupTestServer(): AsyncSocket =
+  result = newAsyncSocket()
+  result.setSockOpt(OptReuseAddr, true)
+  result.bindAddr(recvLinePort)
+  result.listen()
+
+proc testUnbuffered(): Future[void] {.async.} =
+  let serverSock = setupTestServer()
+  let serverAcceptClientFut = serverSock.accept()
+
+  let clientSock = newAsyncSocket(buffered = false)
+  let clientConnectFut = clientSock.connect("localhost", recvLinePort)
+
+  let serverAcceptedClient = await serverAcceptClientFut
+  await clientConnectFut
+
+  await serverAcceptedClient.send("Hello World\c\L")
+
+  echo await clientSock.recvLine()
+
+  clientSock.close()
+  serverSock.close()
+
+proc testBuffered(): Future[void] {.async.} =
+  let serverSock = setupTestServer()
+  let serverAcceptClientFut = serverSock.accept()
+
+  let clientSock = newAsyncSocket(buffered = true)
+  let clientConnectFut = clientSock.connect("localhost", recvLinePort)
+
+  let serverAcceptedClient = await serverAcceptClientFut
+  await clientConnectFut
+
+  await serverAcceptedClient.send("Hello World\c\L")
+
+  echo await clientSock.recvLine()
+
+  clientSock.close()
+  serverSock.close()
+
+waitFor testUnbuffered()
+waitFor testBuffered()