fixes #1744
This commit is contained in:
parent
73dda8a81d
commit
bd88e526cf
4 changed files with 70 additions and 12 deletions
50
tests/vm/tstringnil.nim
Normal file
50
tests/vm/tstringnil.nim
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# bug #1744
|
||||
|
||||
import macros
|
||||
|
||||
type
|
||||
SuiteTest = object
|
||||
suiteName: string
|
||||
suiteDesc: string
|
||||
testName: string
|
||||
testDesc: string
|
||||
testBlock: PNimrodNode
|
||||
|
||||
proc buildSuiteContents(suiteName, suiteDesc, suiteBloc: PNimrodNode): tuple[tests: seq[SuiteTest]] {.compileTime.} =
|
||||
var
|
||||
tests:seq[SuiteTest] = @[]
|
||||
|
||||
for child in suiteBloc.children():
|
||||
case $child[0].ident:
|
||||
of "test":
|
||||
|
||||
var testObj = SuiteTest()
|
||||
if suiteName.kind == nnkNilLit:
|
||||
testObj.suiteName = nil
|
||||
else:
|
||||
testObj.suiteName = $suiteName
|
||||
if suiteDesc.kind == nnkNilLit:
|
||||
testObj.suiteDesc = nil
|
||||
else:
|
||||
testObj.suiteDesc = suiteDesc.strVal
|
||||
testObj.testName = $child[1] # should not ever be nil
|
||||
if child[2].kind == nnkNilLit:
|
||||
testObj.testDesc = nil
|
||||
else:
|
||||
testObj.testDesc = child[2].strVal
|
||||
testObj.testBlock = child[3][6]
|
||||
|
||||
tests.add(testObj)
|
||||
|
||||
else:
|
||||
discard
|
||||
|
||||
return (tests: tests)
|
||||
|
||||
macro suite(suiteName, suiteDesc: expr, suiteBloc: stmt): stmt {.immediate.} =
|
||||
let contents = buildSuiteContents(suiteName, suiteDesc, suiteBloc)
|
||||
|
||||
# Test above
|
||||
suite basics, "Description of such":
|
||||
test(t5, nil):
|
||||
assert false
|
||||
Loading…
Add table
Add a link
Reference in a new issue