mirror of https://github.com/status-im/nim-eth.git
28 lines
643 B
Nim
28 lines
643 B
Nim
# TODO: Make this part of the test suite.
|
|
# We need to be able to test that a program fails in certain way.
|
|
# The testing framework from Chronicles can be extracted in a separate package.
|
|
|
|
import
|
|
chronos,
|
|
../eth/async_utils
|
|
|
|
type
|
|
SomeRecoverableError = object of CatchableError
|
|
SomeDefect = object of Defect
|
|
|
|
proc failingAsyncProc(err: ref Exception = nil) {.async.} =
|
|
await sleepAsync(0)
|
|
if err != nil:
|
|
raise err
|
|
|
|
proc main {.async.} =
|
|
type Error =
|
|
# Exception
|
|
SomeDefect
|
|
# SomeRecoverableError
|
|
traceAsyncErrors failingAsyncProc(newException(Error, "some exception"))
|
|
|
|
waitFor main()
|
|
waitFor sleepAsync(2000)
|
|
|