diff options
-rw-r--r-- | lib/pure/unittest.nim | 13 | ||||
-rw-r--r-- | tests/stdlib/tunittest.nim | 21 |
2 files changed, 28 insertions, 6 deletions
diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim index 3bf4724b9..092b1fba2 100644 --- a/lib/pure/unittest.nim +++ b/lib/pure/unittest.nim @@ -157,12 +157,13 @@ macro check*(conditions: stmt): stmt {.immediate.} = # Ident !"v" # IntLit 2 paramAst = exp[i][1] - argsAsgns.add getAst(asgn(arg, paramAst)) - argsPrintOuts.add getAst(print(argStr, arg)) - if exp[i].kind != nnkExprEqExpr: - exp[i] = arg - else: - exp[i][1] = arg + if exp[i].typekind notin {ntyTypeDesc}: + argsAsgns.add getAst(asgn(arg, paramAst)) + argsPrintOuts.add getAst(print(argStr, arg)) + if exp[i].kind != nnkExprEqExpr: + exp[i] = arg + else: + exp[i][1] = arg case checked.kind of nnkCallKinds: diff --git a/tests/stdlib/tunittest.nim b/tests/stdlib/tunittest.nim new file mode 100644 index 000000000..b23b3cdab --- /dev/null +++ b/tests/stdlib/tunittest.nim @@ -0,0 +1,21 @@ +import unittest + + +proc doThings(spuds: var int): int = + spuds = 24 + return 99 +test "#964": + var spuds = 0 + check doThings(spuds) == 99 + check spuds == 24 + + +from strutils import toUpper +test "#1384": + check(@["hello", "world"].map(toUpper) == @["HELLO", "WORLD"]) + + +import options +test "unittest typedescs": + check(none(int) == none(int)) + check(none(int) != some(1)) |