changeset 9:a88d1cc4db92

Test runner now displays # passed and failed.
author Atul Varma <varmaa@toolness.com>
date Thu, 10 Sep 2009 10:50:11 -0700
parents fb0b161542b1
children 97f3b2242505
files pydertron.py
diffstat 1 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/pydertron.py	Thu Sep 10 10:43:25 2009 -0700
+++ b/pydertron.py	Thu Sep 10 10:50:11 2009 -0700
@@ -540,8 +540,14 @@
     print name
     sandbox = JsSandbox()
 
+    stats = [0, 0]
+
     @jsexposed(name='print')
     def jsprint(message, label):
+        if label == "pass":
+            stats[0] += 1
+        elif label == "fail":
+            stats[1] += 1
         print "%s %s" % (message, label)
 
     system = sandbox.new_object()
@@ -552,7 +558,10 @@
     retval = sandbox.run_script("require('program')")
     sandbox.finish()
     print
-    return retval
+
+    if retval != 0:
+        stats[1] += 1
+    return stats
 
 if __name__ == '__main__':
     base_libpath = os.path.join("interoperablejs-read-only",
@@ -570,10 +579,18 @@
             for name in os.listdir(base_libpath)
             if name not in ['.svn', 'ORACLE']]
 
+    totals = [0, 0]
+
     for libpath, name in dirs:
-        run_test(name, libpath)
+        passed, failed = run_test(name, libpath)
+        totals[0] += passed
+        totals[1] += failed
+
+    print "passed: %d  failed: %d" % tuple(totals)
 
     import gc
     gc.collect()
     if pydermonkey.get_debug_info()['runtime_count']:
         print "WARNING: JS runtime was not destroyed."
+
+    sys.exit(totals[1])