diff --git a/tests/run-tests.py b/tests/run-tests.py index 081b08e4ea1350f5c501b0ae0915547b8acc5503_dGVzdHMvcnVuLXRlc3RzLnB5..a4fce7905721a69d5333ab631cdd8e94271c8631_dGVzdHMvcnVuLXRlc3RzLnB5 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -1200,6 +1200,7 @@ self.warned = [] self.times = [] + self._firststarttime = None # Data stored for the benefit of generating xunit reports. self.successes = [] self.faildata = {} @@ -1324,6 +1325,8 @@ # This module has one limitation. It can only work for Linux user # and not for Windows. test.started = os.times() + if self._firststarttime is None: # thread racy but irrelevant + self._firststarttime = test.started[4] def stopTest(self, test, interrupted=False): super(TestResult, self).stopTest(test) @@ -1332,7 +1335,8 @@ starttime = test.started endtime = test.stopped + origin = self._firststarttime self.times.append((test.name, endtime[2] - starttime[2], # user space CPU time endtime[3] - starttime[3], # sys space CPU time endtime[4] - starttime[4], # real time @@ -1335,7 +1339,9 @@ self.times.append((test.name, endtime[2] - starttime[2], # user space CPU time endtime[3] - starttime[3], # sys space CPU time endtime[4] - starttime[4], # real time + starttime[4] - origin, # start date in run context + endtime[4] - origin, # end date in run context )) if interrupted: @@ -1570,5 +1576,7 @@ tres = {'result': res, 'time': ('%0.3f' % timesd[tc.name][2]), 'cuser': ('%0.3f' % timesd[tc.name][0]), - 'csys': ('%0.3f' % timesd[tc.name][1])} + 'csys': ('%0.3f' % timesd[tc.name][1]), + 'start': ('%0.3f' % timesd[tc.name][3]), + 'end': ('%0.3f' % timesd[tc.name][4])} outcome[tc.name] = tres @@ -1574,5 +1582,4 @@ outcome[tc.name] = tres - jsonout = json.dumps(outcome, sort_keys=True, indent=4) fp.writelines(("testreport =", jsonout)) finally: diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t index 081b08e4ea1350f5c501b0ae0915547b8acc5503_dGVzdHMvdGVzdC1ydW4tdGVzdHMudA==..a4fce7905721a69d5333ab631cdd8e94271c8631_dGVzdHMvdGVzdC1ydW4tdGVzdHMudA== 100644 --- a/tests/test-run-tests.t +++ b/tests/test-run-tests.t @@ -480,4 +480,5 @@ "test-failure.t": [\{] (re) "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) + "end": "\s*[\d\.]{4,5}", ? (re) "result": "failure", ? (re) @@ -483,6 +484,7 @@ "result": "failure", ? (re) + "start": "\s*[\d\.]{4,5}", ? (re) "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-skip.t": { "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) @@ -484,6 +486,7 @@ "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-skip.t": { "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) + "end": "\s*[\d\.]{4,5}", ? (re) "result": "skip", ? (re) @@ -489,6 +492,7 @@ "result": "skip", ? (re) + "start": "\s*[\d\.]{4,5}", ? (re) "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-success.t": [\{] (re) "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) @@ -490,6 +494,7 @@ "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-success.t": [\{] (re) "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) + "end": "\s*[\d\.]{4,5}", ? (re) "result": "success", ? (re) @@ -495,4 +500,5 @@ "result": "success", ? (re) + "start": "\s*[\d\.]{4,5}", ? (re) "time": "\s*[\d\.]{4,5}" (re) } } (no-eol) @@ -519,4 +525,5 @@ "test-failure.t": [\{] (re) "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) + "end": "\s*[\d\.]{4,5}", ? (re) "result": "success", ? (re) @@ -522,6 +529,7 @@ "result": "success", ? (re) + "start": "\s*[\d\.]{4,5}", ? (re) "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-skip.t": { "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) @@ -523,6 +531,7 @@ "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-skip.t": { "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) + "end": "\s*[\d\.]{4,5}", ? (re) "result": "skip", ? (re) @@ -528,6 +537,7 @@ "result": "skip", ? (re) + "start": "\s*[\d\.]{4,5}", ? (re) "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-success.t": [\{] (re) "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) @@ -529,6 +539,7 @@ "time": "\s*[\d\.]{4,5}" (re) }, ? (re) "test-success.t": [\{] (re) "csys": "\s*[\d\.]{4,5}", ? (re) "cuser": "\s*[\d\.]{4,5}", ? (re) + "end": "\s*[\d\.]{4,5}", ? (re) "result": "success", ? (re) @@ -534,4 +545,5 @@ "result": "success", ? (re) + "start": "\s*[\d\.]{4,5}", ? (re) "time": "\s*[\d\.]{4,5}" (re) } } (no-eol)