Better error reporting

This commit is contained in:
Productive2 2021-02-08 18:18:34 +01:00
parent 8d4af722f0
commit bfb57b1552
3 changed files with 28 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import testconfig
import testbuilder
import testrun
import testeval
import localization
import os
import strformat
@ -43,6 +44,7 @@ when isMainModule:
var debugActions: seq[DebugAction]
var targetFiles: seq[string]
var verbose = true
var crash = false
var quitVal = QuitValue.Success
proc evalKey(key: string) =
@ -55,6 +57,8 @@ when isMainModule:
debugActions.add(DebugAction.Interactive)
elif key == "s" or key == "silent":
verbose = false
elif key == "crash":
crash = true
elif key == "stdout":
debugActions.add(DebugAction.Stdout)
else:
@ -133,6 +137,8 @@ Flags:
setLogfiles(targetFiles)
# start of JATS
try:
if crash:
raise newException(CatchableError, "Crash.")
log(LogLevel.Debug, &"Welcome to JATS")
runNimTests()
var jatr = "jatr"
@ -161,6 +167,11 @@ Flags:
quitVal = QuitValue.Failure
log(LogLevel.Debug, &"Quitting JATS.")
# special options to view the entire debug log
except:
errorDisplay()
writeLine stderr, getCurrentExceptionMsg()
writeStacktrace()
finally:
let logs = getTotalLog()
for action in debugActions:

16
tests/localization.nim Normal file
View File

@ -0,0 +1,16 @@
import base64
const language = 1
when language == 1:
const aa* = "ICBfX18gICAgX19fICAgX19fICBfX18gIF9fXyAgX19fICAgICAgIF9fICAgICAgX18gIF9fXyAgICBfX18gICBfX18gIF9fXyAgX19fICBfX18gCiAvIF8gXCAgLyBfIFwgfCBfIFwvIF9ffHxfIF98fCBfX3wgICAgICBcIFwgICAgLyAvIC8gXyBcICAvIF8gXCB8IF8gXC8gX198fF8gX3x8IF9ffAp8IChfKSB8fCAoXykgfHwgIF8vXF9fIFwgfCB8IHwgX3wgICAgICAgIFwgXC9cLyAvIHwgKF8pIHx8IChfKSB8fCAgXy9cX18gXCB8IHwgfCBffCAKIFxfX18vICBcX19fLyB8X3wgIHxfX18vfF9fX3x8X19ffCAgICAgICAgXF8vXF8vICAgXF9fXy8gIFxfX18vIHxffCAgfF9fXy98X19ffHxfX198Cgo="
const bb* = "VXd1IFdlIG1hZGUgYSBmKmNreSB3dWNreSEhIEEgd2l0dGxlIGYqY2tvIGJvaW5nbyE="
const cc* = "VGhlIGNvZGUgbW9ua2V5cyBhdCBvdXIgaGVhZHF1YXJ0ZXJzIGFyZSB3b3JraW5nIFZFV1kgSEFXRCB0byBmaXggdGhpcyEK"
proc errorDisplay* =
when language == 1:
echo decode aa
echo decode bb
echo decode cc
else:
echo "Unsupported language."

View File

@ -56,6 +56,7 @@ proc log*(level: LogLevel, msg: string) =
setForegroundColor(fgDefault)
proc fatal*(msg: string) =
write stderr, msg
log(LogLevel.Fatal, msg)
raise newException(CatchableError, msg)