Files
Nim/tests/coroutines/texceptions.nim
Timothee Cour 7e1ae35195 testament: error instead of silently ignore invalid targets; remove pointless alias target vs targets; document matrix; DRY (#16343)
* testament: error instead of silently ignore invalid targets
* s/target/targets/
* fix test; refs #16344
* address comments
* Update testament/specs.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-12-14 10:58:29 +01:00

30 lines
651 B
Nim

discard """
targets: "c"
disabled: true
"""
import coro
var
stackCheckValue = 1100220033
numbers = newSeqOfCap[int](10)
proc testExceptions(id: int, sleep: float) =
try:
numbers.add(id)
suspend(sleep)
numbers.add(id)
raise (ref ValueError)()
except:
suspend(sleep)
numbers.add(id)
suspend(sleep)
numbers.add(id)
suspend(sleep)
numbers.add(id)
start(proc() = testExceptions(1, 0.01))
start(proc() = testExceptions(2, 0.011))
coro.run()
doAssert(stackCheckValue == 1100220033, "Thread stack got corrupted")
doAssert(numbers == @[1, 2, 1, 2, 1, 2, 1, 2, 1, 2], "Coroutines executed in incorrect order")