diff options
author | Araq <rumpf_a@web.de> | 2011-06-27 08:33:03 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-06-27 08:33:03 +0200 |
commit | 3091bc4958a32065b90895c83c6393b9129e0366 (patch) | |
tree | 98a437a6a4eee918f6e4306fda0a30456ec0dc7f /tests/tester.nim | |
parent | 3e91b456e5418471417d6651bdfe8c8f195e1a53 (diff) | |
download | Nim-3091bc4958a32065b90895c83c6393b9129e0366.tar.gz |
importCompilerProc pragma introduced because the hacks for typeinfo.nim did not suffice
Diffstat (limited to 'tests/tester.nim')
-rwxr-xr-x | tests/tester.nim | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/tests/tester.nim b/tests/tester.nim index 5908b8e29..3883969b9 100755 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -10,12 +10,14 @@ ## This program verifies Nimrod against the testcases. import - parseutils, strutils, pegs, os, osproc, streams, parsecfg, browsers, json + parseutils, strutils, pegs, os, osproc, streams, parsecfg, browsers, json, + marshal const cmdTemplate = r"nimrod cc --hints:on $# $#" resultsFile = "testresults.html" jsonFile = "testresults.json" + Usage = "usage: tester reject|compile|examples|run|merge [nimrod options]" type TTestAction = enum @@ -141,6 +143,12 @@ proc initResults: TResults = result.skipped = 0 result.data = "" +proc readResults(filename: string): TResults = + result = marshal.to[TResults](readFile(filename)) + +proc writeResults(filename: string, r: TResults) = + writeFile(filename, $$r) + proc `$`(x: TResults): string = result = ("Tests passed: $1 / $3 <br />\n" & "Tests skipped: $2 / $3 <br />\n") % @@ -275,22 +283,45 @@ proc outputJSON(reject, compile, run: TResults) = var s = pretty(doc) writeFile(jsonFile, s) -var options = "" -var rejectRes = initResults() -var compileRes = initResults() -var runRes = initResults() +proc main(action: string) = + const + compileJson = "compile.json" + runJson = "run.json" + rejectJson = "reject.json" + var options = "" + for i in 2.. paramCount(): + add(options, " ") + add(options, paramStr(i)) -for i in 1.. paramCount(): - add(options, " ") - add(options, paramStr(i)) + case action + of "reject": + var rejectRes = initResults() + reject(rejectRes, "tests/reject", options) + writeResults(rejectJson, rejectRes) + of "compile": + var compileRes = initResults() + compile(compileRes, "tests/accept/compile/t*.nim", options) + writeResults(compileJson, compileRes) + of "examples": + var compileRes = readResults(compileJson) + compileExample(compileRes, "lib/pure/*.nim", options) + compileExample(compileRes, "examples/*.nim", options) + compileExample(compileRes, "examples/gtk/*.nim", options) + writeResults(compileJson, compileRes) + of "run": + var runRes = initResults() + run(runRes, "tests/accept/run", options) + writeResults(runJson, runRes) + of "merge": + var rejectRes = readResults(rejectJson) + var compileRes = readResults(compileJson) + var runRes = readResults(runJson) + listResults(rejectRes, compileRes, runRes) + outputJSON(rejectRes, compileRes, runRes) + else: + quit usage -reject(rejectRes, "tests/reject", options) -compile(compileRes, "tests/accept/compile/t*.nim", options) -compileExample(compileRes, "lib/pure/*.nim", options) -compileExample(compileRes, "examples/*.nim", options) -compileExample(compileRes, "examples/gtk/*.nim", options) -run(runRes, "tests/accept/run", options) -listResults(rejectRes, compileRes, runRes) -outputJSON(rejectRes, compileRes, runRes) -openDefaultBrowser(resultsFile) +if paramCount() == 0: + quit usage +main(paramStr(1)) |