diff options
author | Araq <rumpf_a@web.de> | 2011-05-09 22:29:41 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-05-09 22:29:41 +0200 |
commit | 5c9552437cd44726e6bb75e46a3e39d9eb445bf2 (patch) | |
tree | e35622e89511254c2977af25877c93fc7b0389da | |
parent | f717f1e628782cc54a69ce589249d694a77015bb (diff) | |
parent | 74b1b28f7e8d832a002502011e800405dedfb6dd (diff) | |
download | Nim-5c9552437cd44726e6bb75e46a3e39d9eb445bf2.tar.gz |
Merge branch 'master' of github.com:Araq/Nimrod
-rwxr-xr-x | tests/tester.nim | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/tests/tester.nim b/tests/tester.nim index 6b43b30c7..1c8ce6fe2 100755 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -10,11 +10,12 @@ ## This program verifies Nimrod against the testcases. import - parseutils, strutils, pegs, os, osproc, streams, parsecfg, browsers + parseutils, strutils, pegs, os, osproc, streams, parsecfg, browsers, json const cmdTemplate = r"nimrod cc --hints:on $# $#" resultsFile = "testresults.html" + jsonFile = "testresults.json" type TTestAction = enum @@ -180,10 +181,9 @@ proc listResults(reject, compile, run: TResults) = s.add($run) s.add(TableHeader4 & run.data & TableFooter) s.add("</html>") - var outp: TFile - if open(outp, resultsFile, fmWrite): - write(outp, s) - close(outp) + var outp = open(resultsFile, fmWrite) + write(outp, s) + close(outp) proc cmpMsgs(r: var TResults, expected, given: TSpec, test: string) = if strip(expected.msg) notin strip(given.msg): @@ -266,6 +266,22 @@ proc compileExample(r: var TResults, pattern, options: string) = proc testLib(r: var TResults, options: string) = nil +proc toJson(res: TResults): PJsonNode = + result = newJObject() + result["total"] = newJInt(res.total) + result["passed"] = newJInt(res.passed) + result["skipped"] = newJInt(res.skipped) + +proc outputJSON(reject, compile, run: TResults) = + var doc = newJObject() + doc["reject"] = toJson(reject) + doc["compile"] = toJson(compile) + doc["run"] = toJson(run) + var s = pretty(doc) + var outp = open(jsonFile, fmWrite) + write(outp, s) + close(outp) + var options = "" var rejectRes = initResults() var compileRes = initResults() @@ -281,5 +297,6 @@ 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) |