mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
* use `{.push warning[BareExcept]:off.}` to override settings temporarily
* likewise, suppress expect
This commit is contained in:
@@ -550,14 +550,14 @@ template test*(name, body) {.dirty.} =
|
||||
for formatter in formatters:
|
||||
formatter.testStarted(name)
|
||||
|
||||
{.warning[BareExcept]:off.}
|
||||
{.push warning[BareExcept]:off.}
|
||||
try:
|
||||
when declared(testSetupIMPLFlag): testSetupIMPL()
|
||||
when declared(testTeardownIMPLFlag):
|
||||
defer: testTeardownIMPL()
|
||||
{.warning[BareExcept]:on.}
|
||||
{.push warning[BareExcept]:on.}
|
||||
body
|
||||
{.warning[BareExcept]:off.}
|
||||
{.pop.}
|
||||
|
||||
except:
|
||||
let e = getCurrentException()
|
||||
@@ -579,7 +579,7 @@ template test*(name, body) {.dirty.} =
|
||||
)
|
||||
testEnded(testResult)
|
||||
checkpoints = @[]
|
||||
{.warning[BareExcept]:on.}
|
||||
{.pop.}
|
||||
|
||||
proc checkpoint*(msg: string) =
|
||||
## Set a checkpoint identified by `msg`. Upon test failure all
|
||||
@@ -767,8 +767,11 @@ macro expect*(exceptions: varargs[typed], body: untyped): untyped =
|
||||
defectiveRobot()
|
||||
|
||||
template expectBody(errorTypes, lineInfoLit, body): NimNode {.dirty.} =
|
||||
{.push warning[BareExcept]:off.}
|
||||
try:
|
||||
{.push warning[BareExcept]:on.}
|
||||
body
|
||||
{.pop.}
|
||||
checkpoint(lineInfoLit & ": Expect Failed, no exception was thrown.")
|
||||
fail()
|
||||
except errorTypes:
|
||||
@@ -776,6 +779,7 @@ macro expect*(exceptions: varargs[typed], body: untyped): untyped =
|
||||
except:
|
||||
checkpoint(lineInfoLit & ": Expect Failed, unexpected exception was thrown.")
|
||||
fail()
|
||||
{.pop.}
|
||||
|
||||
var errorTypes = newNimNode(nnkBracket)
|
||||
for exp in exceptions:
|
||||
|
||||
@@ -98,7 +98,7 @@ template doAssertRaises*(exception: typedesc, code: untyped) =
|
||||
const begin = "expected raising '" & astToStr(exception) & "', instead"
|
||||
const msgEnd = " by: " & astToStr(code)
|
||||
template raisedForeign {.gensym.} = raiseAssert(begin & " raised foreign exception" & msgEnd)
|
||||
{.warning[BareExcept]:off.}
|
||||
{.push warning[BareExcept]:off.}
|
||||
when Exception is exception:
|
||||
try:
|
||||
if true:
|
||||
@@ -117,6 +117,6 @@ template doAssertRaises*(exception: typedesc, code: untyped) =
|
||||
mixin `$` # alternatively, we could define $cstring in this module
|
||||
raiseAssert(begin & " raised '" & $e.name & "'" & msgEnd)
|
||||
except: raisedForeign()
|
||||
{.warning[BareExcept]:on.}
|
||||
{.pop.}
|
||||
if wrong:
|
||||
raiseAssert(begin & " nothing was raised" & msgEnd)
|
||||
|
||||
Reference in New Issue
Block a user