diff options
-rw-r--r-- | lib/pure/unittest.nim | 12 | ||||
-rw-r--r-- | tests/pragmas/tused.nim | 32 | ||||
-rw-r--r-- | tests/stdlib/tunittest.nim | 15 |
3 files changed, 45 insertions, 14 deletions
diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim index 01af0f839..49e24037a 100644 --- a/lib/pure/unittest.nim +++ b/lib/pure/unittest.nim @@ -95,7 +95,7 @@ proc shouldRun(testName: string): bool = result = true proc startSuite(name: string) = - template rawPrint() = echo("\n[Suite] ", name) + template rawPrint() = echo("\n[Suite] ", name) when not defined(ECMAScript): if colorOutput: styledEcho styleBright, fgBlue, "\n[Suite] ", resetStyle, name @@ -134,15 +134,15 @@ template suite*(name, body) {.dirty.} = ## [OK] (2 + -2) != 4 block: bind startSuite - template setup(setupBody: untyped) {.dirty.} = - var testSetupIMPLFlag = true + template setup(setupBody: untyped) {.dirty, used.} = + var testSetupIMPLFlag {.used.} = true template testSetupIMPL: untyped {.dirty.} = setupBody - template teardown(teardownBody: untyped) {.dirty.} = - var testTeardownIMPLFlag = true + template teardown(teardownBody: untyped) {.dirty, used.} = + var testTeardownIMPLFlag {.used.} = true template testTeardownIMPL: untyped {.dirty.} = teardownBody - let testInSuiteImplFlag = true + let testInSuiteImplFlag {.used.} = true startSuite name body diff --git a/tests/pragmas/tused.nim b/tests/pragmas/tused.nim index f3126bd45..4a317f874 100644 --- a/tests/pragmas/tused.nim +++ b/tests/pragmas/tused.nim @@ -1,13 +1,35 @@ discard """ - output: '''8''' + nimout: ''' +compile start +tused.nim(15, 8) Hint: 'tused.echoSub(a: int, b: int)' is declared but not used [XDeclaredButNotUsed] +compile end''' + output: "8\n8" """ -template implementArithOps(T) = +static: + echo "compile start" + +template implementArithOpsOld(T) = + proc echoAdd(a, b: T) = + echo a + b + proc echoSub(a, b: T) = + echo a - b + +template implementArithOpsNew(T) = proc echoAdd(a, b: T) {.used.} = echo a + b proc echoSub(a, b: T) {.used.} = echo a - b -# no warning produced for the unused 'echoSub' -implementArithOps(int) -echoAdd 3, 5 +block: + # should produce warning for the unused 'echoSub' + implementArithOpsOld(int) + echoAdd 3, 5 + +block: + # no warning produced for the unused 'echoSub' + implementArithOpsNew(int) + echoAdd 3, 5 + +static: + echo "compile end" diff --git a/tests/stdlib/tunittest.nim b/tests/stdlib/tunittest.nim index e87cd3508..3f8601323 100644 --- a/tests/stdlib/tunittest.nim +++ b/tests/stdlib/tunittest.nim @@ -1,5 +1,11 @@ +discard """ + nimout: "compile start\ncompile end" +""" + import unittest, sequtils +static: + echo "compile start" proc doThings(spuds: var int): int = spuds = 24 @@ -10,9 +16,9 @@ test "#964": check spuds == 24 -from strutils import toUpper +from strutils import toUpperAscii test "#1384": - check(@["hello", "world"].map(toUpper) == @["HELLO", "WORLD"]) + check(@["hello", "world"].map(toUpperAscii) == @["HELLO", "WORLD"]) import options @@ -57,7 +63,7 @@ suite "suite with only teardown": suite "suite with only setup": setup: - var testVar = "from setup" + var testVar {.used.} = "from setup" test "unittest with only setup 1": check testVar == "from setup" @@ -89,3 +95,6 @@ suite "bug #4494": var tags = @[1, 2, 3, 4, 5] check: allIt(0..3, tags[it] != tags[it + 1]) + +static: + echo "compile end" |