diff options
author | Simon Hafner <hafnersimon@gmail.com> | 2015-03-09 11:30:40 -0500 |
---|---|---|
committer | Simon Hafner <hafnersimon@gmail.com> | 2015-03-09 11:30:40 -0500 |
commit | 8f8171a0c4d39302062acccb701d60544e809e8e (patch) | |
tree | 51da4aa31a951298e4fee04e75ba5e4638a7d78a | |
parent | 41ce6571a32ecd63c67ba7f972c7fb1c0f4f9200 (diff) | |
download | Nim-8f8171a0c4d39302062acccb701d60544e809e8e.tar.gz |
fixed tester back up
-rw-r--r-- | tests/testament/tester.nim | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/tests/testament/tester.nim b/tests/testament/tester.nim index 0a0d08173..d34935164 100644 --- a/tests/testament/tester.nim +++ b/tests/testament/tester.nim @@ -142,27 +142,24 @@ proc generatedFile(path, name: string, target: TTarget): string = name.changeFileExt(ext) proc codegenCheck(test: TTest, check: string, given: var TSpec, r: var TResults) = - if check.len > 0: - try: - let (path, name, ext2) = test.name.splitFile - let genFile = generatedFile(path, name, test.target) - echo genFile - let contents = readFile(genFile).string - if contents.find(check.peg) < 0: - given.err = reCodegenFailure - except ValueError: - given.err = reInvalidPeg - except IOError: - given.err = reCodeNotFound - r.addResult(test, "", given.msg, given.err) + try: + let (path, name, ext2) = test.name.splitFile + let genFile = generatedFile(path, name, test.target) + echo genFile + let contents = readFile(genFile).string + if contents.find(check.peg) < 0: + given.err = reCodegenFailure + except ValueError: + given.err = reInvalidPeg + except IOError: + given.err = reCodeNotFound + r.addResult(test, "", given.msg, given.err) proc nimoutCheck(test: TTest; expectedNimout: string; given: var TSpec, r: var TResults) = - if expectedNimout.len > 0: - let exp = expectedNimout.strip.replace("\C\L", "\L") - let giv = given.nimout.strip.replace("\C\L", "\L") - if exp notin giv: - given.err = reMsgsDiffer - r.addResult(test, exp, giv, given.err) + let exp = expectedNimout.strip.replace("\C\L", "\L") + let giv = given.nimout.strip.replace("\C\L", "\L") + if exp notin giv: + given.err = reMsgsDiffer proc makeDeterministic(s: string): string = @@ -171,10 +168,19 @@ proc makeDeterministic(s: string): string = result = join(x, "\n") proc compilerOutputTests(test: TTest, given: var TSpec, expected: TSpec, r: var TResults) = + var expectedmsg: string = "" + var givenmsg: string = "" if given.err == reSuccess: - codegenCheck(test, expected.ccodeCheck, given, r) - nimoutCheck(test, expected.nimout, given, r) + if expected.ccodeCheck.len > 0: + codegenCheck(test, expectedmsg, given, r) + expectedmsg = expected.ccodeCheck + givenmsg = given.msg + if expected.nimout.len > 0: + expectedmsg = expected.nimout + givenmsg = given.nimout.strip + nimoutCheck(test, expectedmsg, given, r) if given.err == reSuccess: inc(r.passed) + r.addResult(test, expectedmsg, givenmsg, given.err) proc testSpec(r: var TResults, test: TTest) = |