# # 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) if counter.opened != counter.closed: echo "[" & name & "] opened = ", counter.opened, ", closed = ", counter.closed check counter.opened == counter.closed template checkLeaks*(): untyped = for key in getThreadDispatcher().trackerCounterKeys(): checkLeaks(key)