32 lines
836 B
Nim
32 lines
836 B
Nim
#
|
|
# Chronos Unittest2 Helpers
|
|
# (c) Copyright 2022-Present
|
|
# Status Research & Development GmbH
|
|
#
|
|
# Licensed under either of
|
|
# Apache License, version 2.0, (LICENSE-APACHEv2)
|
|
# MIT license (LICENSE-MIT)
|
|
import std/tables
|
|
import unittest2
|
|
import ../../chronos
|
|
|
|
export unittest2, chronos
|
|
|
|
template asyncTest*(name: string, body: untyped): untyped =
|
|
test name:
|
|
waitFor((
|
|
proc() {.async, gcsafe.} =
|
|
body
|
|
)())
|
|
|
|
template checkLeaks*(name: string): untyped =
|
|
let counter = getTrackerCounter(name)
|
|
checkpoint:
|
|
"[" & name & "] opened = " & $counter.opened &
|
|
", closed = " & $ counter.closed
|
|
check counter.opened == counter.closed
|
|
|
|
template checkLeaks*(): untyped =
|
|
for key in getThreadDispatcher().trackerCounterKeys():
|
|
checkLeaks(key)
|