summary refs log tree commit diff stats
path: root/tests/stdlib/tnetconnect.nim
blob: ae654aed9b95481b156c92096e80b4b22ed2654d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
discard """
  disabled: "i386"
  matrix: "-d:ssl"
"""

import std/net
from std/strutils import `%`
from stdtest/testutils import enableRemoteNetworking

# bug #15215
proc test() =
  let ctx = newContext()

  proc fn(url: string) =
    let socket = newSocket()
    defer: close(socket)
    connect(socket, url, Port(443), 5000) # typically 20 could be enough
    send(socket, "GET / HTTP/1.0\nHost: $#\nConnection: close\n\n" % [url])
    wrapSocket(ctx, socket)

  # trying 2 sites makes it more resilent: refs #17458 this could give:
  # * Call to 'connect' timed out. [TimeoutError]
  # * No route to host [OSError]
  try:
    fn("www.nim-lang.org")
  except TimeoutError, OSError:
    fn("www.google.com")

when enableRemoteNetworking:
  test()