diff options
Diffstat (limited to 'tests/stdlib/tssl.nim')
-rw-r--r-- | tests/stdlib/tssl.nim | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/tests/stdlib/tssl.nim b/tests/stdlib/tssl.nim index fd85cb55b..379c1b1e5 100644 --- a/tests/stdlib/tssl.nim +++ b/tests/stdlib/tssl.nim @@ -16,22 +16,9 @@ when not defined(ssl): const DummyData = "dummy data\n" -proc createSocket(): Socket = - result = newSocket(buffered = false) - result.setSockOpt(OptReuseAddr, true) - result.setSockOpt(OptReusePort, true) - -proc createServer(serverContext: SslContext): (Socket, Port) = - var server = createSocket() - serverContext.wrapSocket(server) - server.bindAddr(address = "localhost") - let (_, port) = server.getLocalAddr() - server.listen() - return (server, port) - proc abruptShutdown(port: Port) {.thread.} = let clientContext = newContext(verifyMode = CVerifyNone) - var client = createSocket() + var client = newSocket(buffered = false) clientContext.wrapSocket(client) client.connect("localhost", port) @@ -40,7 +27,7 @@ proc abruptShutdown(port: Port) {.thread.} = proc notifiedShutdown(port: Port) {.thread.} = let clientContext = newContext(verifyMode = CVerifyNone) - var client = createSocket() + var client = newSocket(buffered = false) clientContext.wrapSocket(client) client.connect("localhost", port) @@ -62,7 +49,13 @@ proc main() = keyFile = "tests/testdata/mycert.pem") block peer_close_during_write_without_shutdown: - var (server, port) = createServer(serverContext) + var server = newSocket(buffered = false) + defer: server.close() + serverContext.wrapSocket(server) + server.bindAddr(address = "localhost") + let (_, port) = server.getLocalAddr() + server.listen() + var clientThread: Thread[Port] createThread(clientThread, abruptShutdown, port) @@ -80,14 +73,19 @@ proc main() = discard finally: peer.close() - server.close() when defined(posix): if sigaction(SIGPIPE, oldSigPipeHandler, nil) == -1: raiseOSError(osLastError(), "Couldn't restore SIGPIPE handler") block peer_close_before_received_shutdown: - var (server, port) = createServer(serverContext) + var server = newSocket(buffered = false) + defer: server.close() + serverContext.wrapSocket(server) + server.bindAddr(address = "localhost") + let (_, port) = server.getLocalAddr() + server.listen() + var clientThread: Thread[Port] createThread(clientThread, abruptShutdown, port) @@ -106,10 +104,15 @@ proc main() = discard peer.getFd.shutdown(SD_SEND) finally: peer.close() - server.close() block peer_close_after_received_shutdown: - var (server, port) = createServer(serverContext) + var server = newSocket(buffered = false) + defer: server.close() + serverContext.wrapSocket(server) + server.bindAddr(address = "localhost") + let (_, port) = server.getLocalAddr() + server.listen() + var clientThread: Thread[Port] createThread(clientThread, notifiedShutdown, port) @@ -129,6 +132,5 @@ proc main() = discard peer.getFd.shutdown(SD_SEND) finally: peer.close() - server.close() when isMainModule: main() |