summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-03-09 22:58:59 +0100
committerAndreas Rumpf <rumpf_a@web.de>2015-03-09 22:58:59 +0100
commit3e82941f252015ec6ff8660e2c1c04d62984c255 (patch)
treeabbaf26fc110aa9d802b0a12c439e1ce103d1068
parent715cd4657899d5ced65402b2f5492b6008763a1f (diff)
parent2b4dcc9f33522b020e4237764f359c4798319169 (diff)
downloadNim-3e82941f252015ec6ff8660e2c1c04d62984c255.tar.gz
Merge pull request #2300 from reactormonk/better-tester-messages
fixed tester back up
-rw-r--r--tests/testament/tester.nim49
1 files changed, 26 insertions, 23 deletions
diff --git a/tests/testament/tester.nim b/tests/testament/tester.nim
index 0a0d08173..988cfa22e 100644
--- a/tests/testament/tester.nim
+++ b/tests/testament/tester.nim
@@ -142,28 +142,23 @@ 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
 
 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 =
   var x = splitLines(s)
@@ -171,11 +166,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) =
   # major entry point for a single test