summary refs log tree commit diff stats
path: root/tests/testament
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-03-07 11:26:13 +0100
committerAndreas Rumpf <rumpf_a@web.de>2015-03-07 11:26:13 +0100
commit1a9f266e50de51dabd473f51c6cb0a87cc5439ca (patch)
treefca89ae47d6752e6c251e903b559d468bcf76315 /tests/testament
parentd8ad078f6c2266090ff5f387f6d0423439da75e6 (diff)
parentfb8c0280bd20004231ef9fecd8610b6385d52aa5 (diff)
downloadNim-1a9f266e50de51dabd473f51c6cb0a87cc5439ca.tar.gz
Merge pull request #2275 from reactormonk/better-tester-messages
better messages for nimout
Diffstat (limited to 'tests/testament')
-rw-r--r--tests/testament/tester.nim30
1 files changed, 16 insertions, 14 deletions
diff --git a/tests/testament/tester.nim b/tests/testament/tester.nim
index 881a41ce6..0a0d08173 100644
--- a/tests/testament/tester.nim
+++ b/tests/testament/tester.nim
@@ -141,7 +141,7 @@ proc generatedFile(path, name: string, target: TTarget): string =
     (if target == targetJS: path.splitPath.tail & "_" else: "compiler_") &
     name.changeFileExt(ext)
 
-proc codegenCheck(test: TTest, check: string, given: var TSpec) =
+proc codegenCheck(test: TTest, check: string, given: var TSpec, r: var TResults) =
   if check.len > 0:
     try:
       let (path, name, ext2) = test.name.splitFile
@@ -154,19 +154,29 @@ proc codegenCheck(test: TTest, check: string, given: var TSpec) =
       given.err = reInvalidPeg
     except IOError:
       given.err = reCodeNotFound
+    r.addResult(test, "", given.msg, given.err)
 
-proc nimoutCheck(test: TTest; expectedNimout: string; given: var TSpec) =
+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)
+
 
 proc makeDeterministic(s: string): string =
   var x = splitLines(s)
   sort(x, system.cmp)
   result = join(x, "\n")
 
+proc compilerOutputTests(test: TTest, given: var TSpec, expected: TSpec, r: var TResults) =
+  if given.err == reSuccess:
+    codegenCheck(test, expected.ccodeCheck, given, r)
+    nimoutCheck(test, expected.nimout, given, r)
+  if given.err == reSuccess: inc(r.passed)
+
+
 proc testSpec(r: var TResults, test: TTest) =
   # major entry point for a single test
   let tname = test.name.addFileExt(".nim")
@@ -179,13 +189,9 @@ proc testSpec(r: var TResults, test: TTest) =
   else:
     case expected.action
     of actionCompile:
-      var given = callCompiler(expected.cmd, test.name, test.options,
-                               test.target)
-      if given.err == reSuccess:
-        codegenCheck(test, expected.ccodeCheck, given)
-        nimoutCheck(test, expected.nimout, given)
-      r.addResult(test, "", given.msg, given.err)
-      if given.err == reSuccess: inc(r.passed)
+      var given = callCompiler(expected.cmd, test.name,
+        test.options & " --hint[Path]:off --hint[Processing]:off", test.target)
+      compilerOutputTests(test, given, expected, r)
     of actionRun:
       var given = callCompiler(expected.cmd, test.name, test.options,
                                test.target)
@@ -215,11 +221,7 @@ proc testSpec(r: var TResults, test: TTest) =
             if bufB != strip(expected.outp):
               if not (expected.substr and expected.outp in bufB):
                 given.err = reOutputsDiffer
-            if given.err == reSuccess:
-              codeGenCheck(test, expected.ccodeCheck, given)
-              nimoutCheck(test, expected.nimout, given)
-            if given.err == reSuccess: inc(r.passed)
-            r.addResult(test, expected.outp, buf.string, given.err)
+            compilerOutputTests(test, given, expected, r)
         else:
           r.addResult(test, expected.outp, "executable not found", reExeNotFound)
     of actionReject: