From 962b311727bb460daa92f7a3e1d0e7ce0b7fc16d Mon Sep 17 00:00:00 2001 From: Simon Hafner <hafnersimon@gmail.com> Date: Fri, 15 Feb 2013 20:27:54 -0600 Subject: UTC weekday in JS --- lib/pure/times.nim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/pure/times.nim b/lib/pure/times.nim index 1d6ca2646..da8d86363 100755 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -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) @@ -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 = -- cgit 1.4.1-2-gfad0 From a50393af78074449047b146229626d2196441ef2 Mon Sep 17 00:00:00 2001 From: Simon Hafner <hafnersimon@gmail.com> Date: Fri, 15 Feb 2013 20:28:13 -0600 Subject: elif on JS instead of generic else --- lib/pure/times.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pure/times.nim b/lib/pure/times.nim index da8d86363..6a73303d9 100755 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -428,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() -- cgit 1.4.1-2-gfad0 From 260ddd735a684392de7bb41e6c576ad5af7e163f Mon Sep 17 00:00:00 2001 From: Simon Hafner <hafnersimon@gmail.com> Date: Sat, 9 Feb 2013 15:19:09 -0600 Subject: on the path to get unittest running from JS --- lib/pure/unittest.nim | 39 +++++++++++++++++++++++++++------------ lib/system/jssys.nim | 2 +- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim index fce84bea4..dac9dedcf 100644 --- a/lib/pure/unittest.nim +++ b/lib/pure/unittest.nim @@ -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" + proc 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") diff --git a/lib/system/jssys.nim b/lib/system/jssys.nim index 6040fdf53..789e39d6d 100755 --- a/lib/system/jssys.nim +++ b/lib/system/jssys.nim @@ -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 "" -- cgit 1.4.1-2-gfad0 From 71ade195d1996c0d3d9115af5c53dc8146455970 Mon Sep 17 00:00:00 2001 From: Simon Hafner <hafnersimon@gmail.com> Date: Fri, 15 Feb 2013 20:40:07 -0600 Subject: WA for #329, caused by #335 --- lib/pure/unittest.nim | 2 +- tests/js/tunittests.nim | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 tests/js/tunittests.nim diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim index dac9dedcf..71f4d498b 100644 --- a/lib/pure/unittest.nim +++ b/lib/pure/unittest.nim @@ -58,7 +58,7 @@ proc testDone(name: string, s: TTestStatus) = program_result += 1 if OutputLevel != PRINT_NONE and (OutputLevel == PRINT_ALL or s == FAILED): - proc rawPrint() = echo("[", $s, "] ", 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) diff --git a/tests/js/tunittests.nim b/tests/js/tunittests.nim new file mode 100644 index 000000000..af38cd9b9 --- /dev/null +++ b/tests/js/tunittests.nim @@ -0,0 +1,5 @@ +import unittest + +suite "Bacon": + test ">:)": + check(true == true) -- cgit 1.4.1-2-gfad0