summary refs log tree commit diff stats
path: root/tests/async/tasyncconnect.nim
diff options
context:
space:
mode:
authorKay Zheng <l04m33@gmail.com>2015-04-18 10:27:35 +0800
committerKay Zheng <l04m33@gmail.com>2015-04-18 10:27:35 +0800
commita11a2f0fdb3ecdd995e4fc1a6cb41de4e7fc12f2 (patch)
treeddec51c41b22c38ad7f4aea2d09b07fa4b9620d3 /tests/async/tasyncconnect.nim
parent3125058b6ab4bd9c3ad2cb103bb326463af0a7ff (diff)
downloadNim-a11a2f0fdb3ecdd995e4fc1a6cb41de4e7fc12f2.tar.gz
Check for async errors in
Diffstat (limited to 'tests/async/tasyncconnect.nim')
-rw-r--r--tests/async/tasyncconnect.nim33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/async/tasyncconnect.nim b/tests/async/tasyncconnect.nim
new file mode 100644
index 000000000..bc63b8e82
--- /dev/null
+++ b/tests/async/tasyncconnect.nim
@@ -0,0 +1,33 @@
+discard """
+  file: "tasyncconnect.nim"
+  exitcode: 1
+  outputsub: "Error: unhandled exception: Connection refused [Exception]"
+"""
+
+import
+    asyncdispatch,
+    posix
+
+
+const
+    testHost = "127.0.0.1"
+    testPort = Port(17357)
+
+
+when defined(windows) or defined(nimdoc):
+    discard
+else:
+    proc testAsyncConnect() {.async.} =
+        var s = newAsyncRawSocket()
+
+        await s.connect(testHost, testPort)
+
+        var peerAddr: SockAddr
+        var addrSize = Socklen(sizeof(peerAddr))
+        var ret = SocketHandle(s).getpeername(addr(peerAddr), addr(addrSize))
+
+        if ret < 0:
+            echo("`connect(...)` failed but no exception was raised.")
+            quit(2)
+
+    waitFor(testAsyncConnect())