Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_runner.py
Show First 20 Lines • Show All 366 Lines • ▼ Show 20 Lines | def get_next(self): | ||||
log_stderr)) | log_stderr)) | ||||
if not self.jobs: | if not self.jobs: | ||||
raise IndexError('pop from empty list') | raise IndexError('pop from empty list') | ||||
while True: | while True: | ||||
# Return first proc that finishes | # Return first proc that finishes | ||||
time.sleep(.5) | time.sleep(.5) | ||||
for j in self.jobs: | for j in self.jobs: | ||||
(name, time0, proc, log_out, log_err) = j | (name, time0, proc, log_out, log_err) = j | ||||
if on_ci() and int(time.time() - time0) > 20 * 60: | if on_ci() and int(time.time() - time0) > 40 * 60: | ||||
# In travis, timeout individual tests after 20 minutes (to stop tests hanging and not | # In travis, timeout individual tests after 20 minutes (to stop tests hanging and not | ||||
# providing useful output. | # providing useful output. | ||||
proc.send_signal(signal.SIGINT) | proc.send_signal(signal.SIGINT) | ||||
if proc.poll() is not None: | if proc.poll() is not None: | ||||
log_out.seek(0), log_err.seek(0) | log_out.seek(0), log_err.seek(0) | ||||
[stdout, stderr] = [l.read().decode('utf-8') | [stdout, stderr] = [l.read().decode('utf-8') | ||||
for l in (log_out, log_err)] | for l in (log_out, log_err)] | ||||
log_out.close(), log_err.close() | log_out.close(), log_err.close() | ||||
▲ Show 20 Lines • Show All 231 Lines • Show Last 20 Lines |