mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
* stdlib tests now check refc too * typo * fixes line numbers * disable cpp * do not touch
53 lines
1.3 KiB
Nim
53 lines
1.3 KiB
Nim
discard """
|
|
action: run
|
|
matrix: "--mm:refc; --mm:orc"
|
|
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
|