Merge pull request #336 from Tass/unittest

Unittest
This commit is contained in:
Araq
2013-02-16 11:21:06 -08:00
4 changed files with 36 additions and 15 deletions

View File

@@ -78,6 +78,7 @@ elif defined(JS):
getUTCMinutes: proc (): int
getUTCMonth: proc (): int
getUTCSeconds: proc (): int
getUTCDay: proc (): int
getYear: proc (): int
parse: proc (s: cstring): TTime
setDate: proc (x: int)
@@ -427,7 +428,7 @@ when not defined(JS):
proc cpuTime(): float =
result = toFloat(int(clock())) / toFloat(clocksPerSec)
else:
elif defined(JS):
proc newDate(): TTime {.importc: "new Date", nodecl.}
proc getTime(): TTime = return newDate()
@@ -452,7 +453,7 @@ else:
result.monthday = t.getUTCDate()
result.month = TMonth(t.getUTCMonth())
result.year = t.getUTCFullYear()
result.weekday = weekDays[t.getDay()]
result.weekday = weekDays[t.getUTCDay()]
result.yearday = 0
proc TimeInfoToTime*(timeInfo: TTimeInfo): TTime =

View File

@@ -17,7 +17,13 @@
## It is loosely based on C++'s boost.test and Haskell's QuickTest
import
macros, terminal, os
macros
when defined(stdout):
import os
when not defined(ECMAScript):
import terminal
type
TTestStatus* = enum OK, FAILED
@@ -52,12 +58,15 @@ proc testDone(name: string, s: TTestStatus) =
program_result += 1
if OutputLevel != PRINT_NONE and (OutputLevel == PRINT_ALL or s == FAILED):
var color = (if s == OK: fgGreen else: fgRed)
if ColorOutput:
styledEcho styleBright, color, "[", $s, "] ", fgWhite, name, "\n"
template rawPrint() = echo("[", $s, "] ", name, "\n")
when not defined(ECMAScript):
if ColorOutput and not defined(ECMAScript):
var color = (if s == OK: fgGreen else: fgRed)
styledEcho styleBright, color, "[", $s, "] ", fgWhite, name, "\n"
else:
rawPrint()
else:
echo "[", $s, "] ", name, "\n"
rawPrint()
template test*(name: expr, body: stmt): stmt {.immediate, dirty.} =
bind shouldRun, checkpoints, testDone
@@ -87,7 +96,8 @@ template fail* =
for msg in items(checkpoints):
echo msg
if AbortOnError: quit(1)
when not defined(ECMAScript):
if AbortOnError: quit(1)
TestStatusIMPL = FAILED
checkpoints = @[]
@@ -171,14 +181,19 @@ macro expect*(exceptions: varargs[expr], body: stmt): stmt {.immediate.} =
result = getAst(expectBody(errorTypes, exp.lineinfo, body))
## Reading settings
var envOutLvl = os.getEnv("NIMTEST_OUTPUT_LVL").string
when defined(stdout):
## Reading settings
var envOutLvl = os.getEnv("NIMTEST_OUTPUT_LVL").string
AbortOnError = existsEnv("NIMTEST_ABORT_ON_ERROR")
ColorOutput = not existsEnv("NIMTEST_NO_COLOR")
else:
var envOutLvl = "" # TODO
ColorOutput = false
if envOutLvl.len > 0:
for opt in countup(low(TOutputLevel), high(TOutputLevel)):
if $opt == envOutLvl:
OutputLevel = opt
break
AbortOnError = existsEnv("NIMTEST_ABORT_ON_ERROR")
ColorOutput = not existsEnv("NIMTEST_NO_COLOR")

View File

@@ -42,7 +42,7 @@ proc nimCharToStr(x: char): string {.compilerproc.} =
result = newString(1)
result[0] = x
proc getCurrentExceptionMsg(): string =
proc getCurrentExceptionMsg*(): string =
if excHandler != nil: return $excHandler.exc.msg
return ""

5
tests/js/tunittests.nim Normal file
View File

@@ -0,0 +1,5 @@
import unittest
suite "Bacon":
test ">:)":
check(true == true)