Files
Nim/tests/stdlib/tstackframes.nim
Timothee Cour 19cab9fa51 stacktraces can now show custom runtime msgs per frame (#13351)
* stacktraces can now show custom runtime msgs
* improve tests/stdlib/tstackframes.nim
* fix test for --gc:arc
* test --stacktraceMsgs:on and --stacktraceMsgs:off
* --stacktracemsgs:off by default
2020-03-30 13:45:32 +02:00

35 lines
1023 B
Nim

import std/[strformat,os,osproc]
import "$nim/compiler/unittest_light" # works even if moved by megatest
proc main(opt: string, expected: string) =
const nim = getCurrentCompilerExe()
const file = currentSourcePath().parentDir / "mstackframes.nim"
let cmd = fmt"{nim} c -r --excessiveStackTrace:off --stacktraceMsgs:{opt} --hints:off {file}"
let (output, exitCode) = execCmdEx(cmd)
assertEquals output, expected
doAssert exitCode == 0
main("on"): """
mstackframes.nim(38) mstackframes
mstackframes.nim(29) main
z: 0
z: 1
mstackframes.nim(20) main2 ("main2", 5, 1)
mstackframes.nim(20) main2 ("main2", 4, 2)
mstackframes.nim(20) main2 ("main2", 3, 3)
mstackframes.nim(19) main2 ("main2", 2, 4)
mstackframes.nim(18) bar ("bar ",)
"""
main("off"): """
mstackframes.nim(38) mstackframes
mstackframes.nim(29) main
mstackframes.nim(20) main2
mstackframes.nim(20) main2
mstackframes.nim(20) main2
mstackframes.nim(19) main2
mstackframes.nim(18) bar
"""