bug 568285 - jstests.py: option to write list of failures to a file. r=dmandelin
authorIgor Bukanov <igor@mir2.org>
Sat, 29 May 2010 23:15:53 +0200
changeset 43209 d52bf0cbc073d909138e2abb984e976e5194a0f8
parent 43208 51a5c26e7a6325c460c0968bd83a198413f8bad5
child 43210 92a66e7519b743d754459b7ff7c351ab3f7d6315
push id13641
push userrsayre@mozilla.com
push dateSun, 06 Jun 2010 19:08:23 +0000
treeherdermozilla-central@5b3604a3cfbe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdmandelin
bugs568285
milestone1.9.3a5pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
bug 568285 - jstests.py: option to write list of failures to a file. r=dmandelin
js/src/tests/jstests.py
--- a/js/src/tests/jstests.py
+++ b/js/src/tests/jstests.py
@@ -144,16 +144,23 @@ class ResultsSink:
     def list(self):
         for label, paths in sorted(self.groups.items()):
             if label == '': continue
 
             print label
             for path in paths:
                 print '    %s'%path
 
+        if OPTIONS.failure_file:
+              failure_file = open(OPTIONS.failure_file, 'w')
+              if not self.all_passed():
+                  for path in self.groups['REGRESSIONS']:
+                      print >> failure_file, path
+              failure_file.close()
+
         suffix = '' if self.finished else ' (partial run -- interrupted by user)'
         if self.all_passed():
             print 'PASS' + suffix
         else:
             print 'FAIL' + suffix
 
     def all_passed(self):
         return 'REGRESSIONS' not in self.groups
@@ -213,16 +220,18 @@ if __name__ == '__main__':
     op.add_option('-g', '--debug', dest='debug', action='store_true',
                   help='run test in debugger')
     op.add_option('--valgrind', dest='valgrind', action='store_true',
                   help='run tests in valgrind')
     op.add_option('--valgrind-args', dest='valgrind_args',
                   help='extra args to pass to valgrind')
     op.add_option('-c', '--check-manifest', dest='check_manifest', action='store_true',
                   help='check for test files not listed in the manifest')
+    op.add_option('--failure-file', dest='failure_file',
+                  help='write tests that have not passed to the given file')
     (OPTIONS, args) = op.parse_args()
     if len(args) < 1:
         if not OPTIONS.check_manifest:
             op.error('missing JS_SHELL argument')
         JS, args = None, []
     else:
         JS, args = args[0], args[1:]
     # Convert to an absolute path so we can run JS from a different directory.