12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- discard """
- action: run
- output: '''
- [Suite] inet_ntop tests
- '''
- """
- when defined(windows):
- import winlean
- elif defined(posix):
- import posix
- else:
- {.error: "Unsupported OS".}
- import unittest, strutils
- suite "inet_ntop tests":
- setup:
- when defined(windows):
- var wsa: WSAData
- discard wsaStartup(0x101'i16, wsa.addr)
-
- test "IP V4":
- # regular
- var ip4 = InAddr()
- ip4.s_addr = 0x10111213'u32
- check: ip4.s_addr == 0x10111213'u32
- var buff: array[0..255, char]
- let r = inet_ntop(AF_INET, cast[pointer](ip4.s_addr.addr), cast[cstring](buff[0].addr), buff.len.int32)
- let res = if r == nil: "" else: $r
- check: res == "19.18.17.16"
-
- test "IP V6":
- when defined(windows):
- let ipv6Support = (getVersion() and 0xff) > 0x5
- else:
- let ipv6Support = true
-
- var ip6 = [0x1000'u16, 0x1001, 0x2000, 0x2001, 0x3000, 0x3001, 0x4000, 0x4001]
- var buff: array[0..255, char]
- let r = inet_ntop(AF_INET6, cast[pointer](ip6[0].addr), cast[cstring](buff[0].addr), buff.len.int32)
- let res = if r == nil: "" else: $r
- check: not ipv6Support or res == "10:110:20:120:30:130:40:140"
- test "InAddr":
- # issue 19244
- var ip4 = InAddr(s_addr: 0x10111213'u32)
- check: ip4.s_addr == 0x10111213'u32
|