Update to latest asynctest, with unittest2 support

Also fixes a number of GcUnsafe2 warnings,
by placing var declarations inside the suite.
This commit is contained in:
Mark Spanbroek 2021-09-21 09:35:12 +02:00
parent e199aa57da
commit e974a866b6
9 changed files with 50 additions and 54 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

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

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

@ -8,7 +8,8 @@
## those terms.
import
pkg/[asynctest, chronos],
pkg/chronos,
pkg/asynctest/unittest2,
../websock/extensions
suite "extension parser":
@ -266,4 +267,4 @@ suite "extension parser":
test "attreversed":
var app: seq[AppExt]
let res = parseExt("filename=foo.html; attachment", app)
check res == false
check res == false

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

@ -12,20 +12,20 @@ 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"