assertions: fixes #11545 (#11605)

* assertions: properly fix #11545

* tests/assert: enable excessiveStackTrace

* tests/assert: add test case for #11545

* tfailedassert_stacktrace: disable excessiveStackTrace

* assertions: weird workaround for failing tests

This fixes megatest on *nix, but have no idea why

(cherry picked from commit 2c10b246ec)
This commit is contained in:
alaviss
2019-07-01 11:19:07 +00:00
committed by narimiran
parent e6c963259c
commit eb295bbb7d
5 changed files with 22 additions and 7 deletions

1
tests/assert/config.nims Normal file
View File

@@ -0,0 +1 @@
--excessiveStackTrace:on

View File

@@ -1,9 +1,9 @@
from strutils import endsWith, split
from os import isAbsolute
proc checkMsg*(msg, expectedEnd, name: string)=
proc checkMsg*(msg, expectedEnd, name: string, absolute = true)=
let filePrefix = msg.split(' ', maxSplit = 1)[0]
if not filePrefix.isAbsolute:
if absolute and not filePrefix.isAbsolute:
echo name, ":not absolute: `", msg & "`"
elif not msg.endsWith expectedEnd:
echo name, ":expected suffix:\n`" & expectedEnd & "`\ngot:\n`" & msg & "`"

View File

@@ -1,10 +1,11 @@
discard """
cmd: "nim $target $options --excessiveStackTrace:off $file"
output: '''true'''
"""
const expected = """
tfailedassert_stacktrace.nim(34) tfailedassert_stacktrace
tfailedassert_stacktrace.nim(33) foo
tfailedassert_stacktrace.nim(35) tfailedassert_stacktrace
tfailedassert_stacktrace.nim(34) foo
assertions.nim(*) failedAssertImpl
assertions.nim(*) raiseAssert
fatal.nim(*) sysFatal"""

View File

@@ -0,0 +1,11 @@
discard """
cmd: "nim $target $options --excessiveStackTrace:off $file"
output: '''
test:ok
'''
"""
import testhelper
try:
doAssert(false, "msg")
except AssertionError as e:
checkMsg(e.msg, "trelativeassert.nim(9, 11) `false` msg", "test", false)