summary refs log tree commit diff stats
path: root/tests/stdlib/tgetaddrinfo.nim
diff options
context:
space:
mode:
authorFederico Ceratto <federico.ceratto@gmail.com>2019-01-05 21:12:53 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2019-01-06 20:23:44 +0000
commit2fa35126b09e3487fbb82328238e59b9a4dd6d4c (patch)
tree869c4f2600d3c9ed82510ed7bdb01f3e87f7493d /tests/stdlib/tgetaddrinfo.nim
parentf3bd3691e796f4be5d522b4d0d1c64e30f985e68 (diff)
downloadNim-2fa35126b09e3487fbb82328238e59b9a4dd6d4c.tar.gz
Fix getAddrInfo, add IPPROTO_ICMPV6 Closes #10198
Diffstat (limited to 'tests/stdlib/tgetaddrinfo.nim')
-rw-r--r--tests/stdlib/tgetaddrinfo.nim36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/stdlib/tgetaddrinfo.nim b/tests/stdlib/tgetaddrinfo.nim
new file mode 100644
index 000000000..39102e131
--- /dev/null
+++ b/tests/stdlib/tgetaddrinfo.nim
@@ -0,0 +1,36 @@
+discard """
+  exitcode: 0
+  output: ""
+"""
+
+# bug: https://github.com/nim-lang/Nim/issues/10198
+
+import nativesockets
+
+block DGRAM_UDP:
+  let aiList = getAddrInfo("127.0.0.1", 999.Port, AF_INET, SOCK_DGRAM, IPPROTO_UDP)
+  doAssert aiList != nil
+  doAssert aiList.ai_addr != nil
+  doAssert aiList.ai_addrlen == 16
+  doAssert aiList.ai_next == nil
+  freeAddrInfo aiList
+
+when defined(posix):
+
+  block RAW_ICMP:
+    # the port will be ignored
+    let aiList = getAddrInfo("127.0.0.1", 999.Port, AF_INET, SOCK_RAW, IPPROTO_ICMP)
+    doAssert aiList != nil
+    doAssert aiList.ai_addr != nil
+    doAssert aiList.ai_addrlen == 16
+    doAssert aiList.ai_next == nil
+    freeAddrInfo aiList
+
+  block RAW_ICMPV6:
+    # the port will be ignored
+    let aiList = getAddrInfo("::1", 999.Port, AF_INET6, SOCK_RAW, IPPROTO_ICMPV6)
+    doAssert aiList != nil
+    doAssert aiList.ai_addr != nil
+    doAssert aiList.ai_addrlen == 28
+    doAssert aiList.ai_next == nil
+    freeAddrInfo aiList