Make use of used in unittest (#5410)

This commit is contained in:
Fabian Keller
2017-02-25 21:18:16 +01:00
committed by Andreas Rumpf
parent 16aafddee5
commit f250c30b9d
3 changed files with 45 additions and 14 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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"