Merge pull request #93 from status-im/update-asynctest

Update asynctest and fix warnings
This commit is contained in:
markspanbroek 2021-09-23 13:47:24 +02:00 committed by GitHub
commit 1abf5f2f91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 58 additions and 72 deletions

View File

@ -1,32 +0,0 @@
## nim-websock
## Copyright (c) 2021 Status Research & Development GmbH
## Licensed under either of
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
## at your option.
## This file may not be copied, modified, or distributed except according to
## those terms.
import unittest2
export unittest2 except suite, test
template suite*(name, body) =
suite name:
template setup(setupBody) {.used.} =
setup:
let asyncproc = proc {.async.} = setupBody
waitFor asyncproc()
template teardown(teardownBody) {.used.} =
teardown:
let asyncproc = proc {.async.} = teardownBody
waitFor asyncproc()
let suiteproc = proc = body # Avoids GcUnsafe2 warnings with chronos
suiteproc()
template test*(name, body) =
test name:
let asyncproc = proc {.async.} = body
waitFor asyncproc()

View File

@ -8,7 +8,6 @@
## those terms.
import
std/[strutils],
pkg/[stew/results,
stew/base64,
chronos,

View File

@ -8,7 +8,6 @@
## those terms.
import
std/[strutils],
pkg/[stew/results,
stew/byteutils,
chronos,

View File

@ -8,9 +8,9 @@
## those terms.
import std/os
import pkg/[chronos, stew/byteutils, stew/io2]
import ../asyncunit
import ../../websock/websock, ../helpers
import pkg/[chronos, stew/io2]
import pkg/asynctest/unittest2
import ../../websock/websock
import ../../websock/extensions/compression/deflate
const

View File

@ -9,9 +9,9 @@
import std/strutils
import pkg/[chronos, stew/byteutils]
import pkg/asynctest/unittest2
import ../../ws/ws
import ../asyncunit
type
ExtHandler = proc(ext: Ext, frame: Frame): Future[Frame] {.raises: [Defect].}

View File

@ -8,7 +8,7 @@
## those terms.
import pkg/[chronos, stew/byteutils]
import ../asyncunit
import pkg/asynctest/unittest2
import ./base64ext, ./hexext
import ../../websock/websock, ../helpers

View File

@ -14,16 +14,11 @@ import pkg/[
chronos,
chronos/streams/tlsstream,
httputils,
chronicles,
stew/byteutils]
chronicles]
import ../websock/websock
import ./keys
let
WSSecureKey* = TLSPrivateKey.init(SecureKey)
WSSecureCert* = TLSCertificate.init(SecureCert)
const WSPath* = when defined secure: "/wss" else: "/ws"
proc rndStr*(size: int): string =
@ -43,8 +38,8 @@ proc waitForClose*(ws: WSSession) {.async.} =
proc createServer*(
address = initTAddress("127.0.0.1:8888"),
tlsPrivateKey = WSSecureKey,
tlsCertificate = WSSecureCert,
tlsPrivateKey = TLSPrivateKey.init(SecureKey),
tlsCertificate = TLSCertificate.init(SecureCert),
handler: HttpAsyncCallback = nil,
flags: set[ServerFlags] = {ServerFlags.TcpNoDelay, ServerFlags.ReuseAddr},
tlsFlags: set[TLSFlags] = {},
@ -74,7 +69,7 @@ proc createServer*(
except TransportOsError as exc:
error "Transport error", exc = exc.msg
asyncCheck accepts()
asyncSpawn accepts()
else:
server.handler = handler
server.start()

View File

@ -8,7 +8,8 @@
## those terms.
import
pkg/[asynctest, chronos],
pkg/chronos,
pkg/asynctest/unittest2,
../websock/extensions
suite "extension parser":

View File

@ -7,16 +7,18 @@
## This file may not be copied, modified, or distributed except according to
## those terms.
import pkg/[asynctest, stew/byteutils]
import pkg/stew/byteutils
import pkg/asynctest/unittest2
include ../websock/frame
include ../websock/utils
# TODO: Fix Test.
var maskKey: array[4, char]
suite "Test data frames":
var maskKey: array[4, char]
test "# 7bit length text":
check (await Frame(
fin: false,
@ -252,6 +254,8 @@ suite "Test data frames":
suite "Test control frames":
var maskKey: array[4, char]
test "Close":
check (await Frame(
fin: true,

View File

@ -11,7 +11,7 @@ import
std/[strutils],
pkg/[
stew/byteutils,
asynctest,
asynctest/unittest2,
chronos,
chronicles
],
@ -78,12 +78,11 @@ proc waitForClose(ws: WSSession) {.async.} =
except CatchableError:
trace "Closing websocket"
# TODO: use new test framework from dryajov
# if it is ready.
var server: HttpServer
let address = initTAddress("127.0.0.1:8888")
suite "UTF-8 validator in action":
var server: HttpServer
let address = initTAddress("127.0.0.1:8888")
teardown:
server.stop()
await server.closeWait()

View File

@ -7,25 +7,25 @@
## This file may not be copied, modified, or distributed except according to
## those terms.
import std/[strutils, random]
import std/strutils
import pkg/[
httputils,
chronos,
chronicles,
stew/byteutils]
stew/byteutils,
asynctest/unittest2]
import ../websock/websock
import ./asynctest
import ./helpers
let
address* = initTAddress("127.0.0.1:8888")
var
server: HttpServer
let address = initTAddress("127.0.0.1:8888")
suite "Test handshake":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -98,6 +98,9 @@ suite "Test handshake":
protocols = @["proto"])
suite "Test transmission":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -163,6 +166,10 @@ suite "Test transmission":
await waitForClose(session)
suite "Test ping-pong":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -280,6 +287,10 @@ suite "Test ping-pong":
await session.close()
suite "Test framing":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -338,6 +349,10 @@ suite "Test framing":
await waitForClose(session)
suite "Test Closing":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -564,6 +579,9 @@ suite "Test Closing":
await session.close(reason = "HH")
suite "Test Payload":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -789,6 +807,9 @@ suite "Test Payload":
ws.binary == false
suite "Test Binary message with Payload":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()
@ -953,6 +974,9 @@ suite "Test Binary message with Payload":
ws.binary == true
suite "Partial frames":
var
server: HttpServer
teardown:
server.stop()
await server.closeWait()

View File

@ -19,7 +19,7 @@ requires "chronos >= 3.0.0"
requires "httputils >= 0.2.0"
requires "chronicles#ba2817f1"
requires "stew >= 0.1.0"
requires "asynctest >= 0.2.0 & < 0.3.0"
requires "asynctest >= 0.3.0 & < 0.4.0"
requires "nimcrypto"
requires "bearssl"
requires "https://github.com/status-im/nim-zlib"

View File

@ -7,7 +7,6 @@
## This file may not be copied, modified, or distributed except according to
## those terms.
import std/tables
import ./extensions/extutils
# import ./extensions/compression/compression

View File

@ -9,7 +9,6 @@
import std/uri
import pkg/[
chronos,
chronos/apps/http/httptable,
chronos/streams/tlsstream,
httputils]

View File

@ -13,8 +13,7 @@ import std/[tables,
strutils,
strformat,
sequtils,
uri,
parseutils]
uri]
import pkg/[chronos,
chronos/apps/http/httptable,