summary refs log tree commit diff stats
path: root/tests/tester.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-07-01 19:35:19 +0200
committerAraq <rumpf_a@web.de>2012-07-01 19:35:19 +0200
commitfe285b354dee2c8148cd66207d8ed528c7845e5d (patch)
tree01f799a3905ede0ffe6fb5af49d063733203051b /tests/tester.nim
parentee1bcb6414a50642811632a92a803840c1c67036 (diff)
downloadNim-fe285b354dee2c8148cd66207d8ed528c7845e5d.tar.gz
JS codegen enhancements; still unusable
Diffstat (limited to 'tests/tester.nim')
-rwxr-xr-xtests/tester.nim25
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/tester.nim b/tests/tester.nim
index a26b7c178..be0765874 100755
--- a/tests/tester.nim
+++ b/tests/tester.nim
@@ -261,7 +261,10 @@ proc compileSingleTest(r: var TResults, test, options: string) =
   r.addResult(t, given.msg, if given.err: reFailure else: reSuccess)
   if not given.err: inc(r.passed)
 
-proc runSingleTest(r: var TResults, test, options: string) =
+type
+  TTarget = enum targetC, targetJS
+
+proc runSingleTest(r: var TResults, test, options: string, target: TTarget) =
   var test = test.addFileExt(".nim")
   var t = extractFilename(test)
   echo t
@@ -275,9 +278,16 @@ proc runSingleTest(r: var TResults, test, options: string) =
     if given.err:
       r.addResult(t, "", given.msg, reFailure)
     else:
-      var exeFile = changeFileExt(test, ExeExt)
+      var exeFile: string
+      if target == targetC:
+        exeFile = changeFileExt(test, ExeExt)
+      else:
+        let (dir, file, ext) = splitFile(test)
+        exeFile = dir / "nimcache" / file & ".js"
+      
       if existsFile(exeFile):
-        var (buf, exitCode) = execCmdEx(exeFile)
+        var (buf, exitCode) = execCmdEx(
+          (if target==targetJS: "node " else: "") & exeFile)
         if exitCode != expected.ExitCode:
           r.addResult(t, "exitcode: " & $expected.ExitCode,
                          "exitcode: " & $exitCode, reFailure)
@@ -291,6 +301,9 @@ proc runSingleTest(r: var TResults, test, options: string) =
       else:
         r.addResult(t, expected.outp, "executable not found", reFailure)
 
+proc runSingleTest(r: var TResults, test, options: string) =
+  runSingleTest(r, test, options, targetC)
+  
 proc run(r: var TResults, dir, options: string) =
   for test in os.walkFiles(dir / "t*.nim"): runSingleTest(r, test, options)
 
@@ -350,6 +363,12 @@ proc main() =
     run(runRes, "tests/run", p.cmdLineRest.string)
     runSpecialTests(runRes, p.cmdLineRest.string)
     writeResults(runJson, runRes)
+  of "js":
+    var runRes = initResults()
+    if existsFile(runJSon):
+      runRes = readResults(runJson)
+    runJsTests(runRes, p.cmdLineRest.string)
+    writeResults(runJson, runRes)
   of "merge":
     var rejectRes = readResults(rejectJson)
     var compileRes = readResults(compileJson)