tests/run-tests.py
changeset 21451 1b3a1ebdcfee
parent 21450 a6e40416f172
child 21452 1517c0461b75
equal deleted inserted replaced
21450:a6e40416f172 21451:1b3a1ebdcfee
   358 
   358 
   359         self._finished = None
   359         self._finished = None
   360         self._ret = None
   360         self._ret = None
   361         self._out = None
   361         self._out = None
   362         self._duration = None
   362         self._duration = None
       
   363         self._result = None
   363 
   364 
   364         # If we're not in --debug mode and reference output file exists,
   365         # If we're not in --debug mode and reference output file exists,
   365         # check test output against it.
   366         # check test output against it.
   366         if runner.options.debug:
   367         if runner.options.debug:
   367             self._refout = None # to match "out is None"
   368             self._refout = None # to match "out is None"
   386         """Tasks to perform before run()."""
   387         """Tasks to perform before run()."""
   387         self._finished = False
   388         self._finished = False
   388         self._ret = None
   389         self._ret = None
   389         self._out = None
   390         self._out = None
   390         self._duration = None
   391         self._duration = None
       
   392         self._result = None
   391 
   393 
   392     def run(self):
   394     def run(self):
   393         """Run this test instance.
   395         """Run this test instance.
   394 
   396 
   395         This will return a tuple describing the result of the test.
   397         This will return a tuple describing the result of the test.
   470 
   472 
   471             if not missing:
   473             if not missing:
   472                 missing = ['irrelevant']
   474                 missing = ['irrelevant']
   473 
   475 
   474             if failed:
   476             if failed:
   475                 res = self.fail('hg have failed checking for %s' % failed[-1],
   477                 self._result = self.fail('hg have failed checking for %s' %
   476                                 ret)
   478                                          failed[-1], ret)
   477             else:
   479             else:
   478                 skipped = True
   480                 skipped = True
   479                 res = self.skip(missing[-1])
   481                 self._result = self.skip(missing[-1])
   480         elif ret == 'timeout':
   482         elif ret == 'timeout':
   481             res = self.fail('timed out', ret)
   483             self._result = self.fail('timed out', ret)
   482         elif out != self._refout:
   484         elif out != self._refout:
   483             info = {}
   485             info = {}
   484             if not options.nodiff:
   486             if not options.nodiff:
   485                 iolock.acquire()
   487                 iolock.acquire()
   486                 if options.view:
   488                 if options.view:
   502                 and not options.debug:
   504                 and not options.debug:
   503                 f = open(self._errpath, 'wb')
   505                 f = open(self._errpath, 'wb')
   504                 for line in out:
   506                 for line in out:
   505                     f.write(line)
   507                     f.write(line)
   506             f.close()
   508             f.close()
   507             res = self.fail(msg, ret)
   509 
       
   510             self._result = self.fail(msg, ret)
   508         elif ret:
   511         elif ret:
   509             res = self.fail(describe(ret), ret)
   512             self._result = self.fail(describe(ret), ret)
   510         else:
   513         else:
   511             res = self.success()
   514             self._result = self.success()
   512 
   515 
   513 
   516 
   514         vlog("# Ret was:", ret)
   517         vlog("# Ret was:", ret)
   515 
   518 
   516         # Don't print progress in unittest mode because that is handled
   519         # Don't print progress in unittest mode because that is handled
   517         # by TestResult.
   520         # by TestResult.
   518         if not options.verbose and not self._unittest:
   521         if not options.verbose and not self._unittest:
   519             iolock.acquire()
   522             iolock.acquire()
   520             sys.stdout.write(res[0])
   523             sys.stdout.write(self._result[0])
   521             sys.stdout.flush()
   524             sys.stdout.flush()
   522             iolock.release()
   525             iolock.release()
   523 
   526 
   524         if not self._unittest:
   527         if not self._unittest:
   525             self.tearDown()
   528             self.tearDown()
   526 
   529 
   527         return res
   530         return self._result
   528 
   531 
   529     def tearDown(self):
   532     def tearDown(self):
   530         """Tasks to perform after run()."""
   533         """Tasks to perform after run()."""
   531         self._runner.times.append((self.name, self._duration))
   534         self._runner.times.append((self.name, self._duration))
   532 
   535