def main(self, reporter=None): |
""" main loop for running tests. """ |
args = self.config.args |
|
hm = HostManager(self.config) |
reporter, startserverflag = self.init_reporter(reporter, |
hm.hosts, RemoteReporter) |
reporter, checkfun = self.wrap_reporter(reporter) |
|
reporter(repevent.TestStarted(hm.hosts, self.config.topdir, |
hm.roots)) |
|
try: |
-> nodes = hm.setup_hosts(reporter) |
reporter(repevent.RsyncFinished()) |
try: |
self.dispatch_tests(nodes, reporter, checkfun) |
except (KeyboardInterrupt, SystemExit): |
print >>sys.stderr, "C-c pressed waiting for gateways to teardown..." |
channels = [node.channel for node in nodes] |
hm.kill_channels(channels) |
hm.teardown_gateways(reporter, channels) |
print >>sys.stderr, "... Done" |
raise |
|
channels = [node.channel for node in nodes] |
hm.teardown_hosts(reporter, channels, nodes, |
exitfirst=self.config.option.exitfirst) |
reporter(repevent.Nodes(nodes)) |
retval = reporter(repevent.TestFinished()) |
self.kill_server(startserverflag) |
return retval |
except (KeyboardInterrupt, SystemExit): |
reporter(repevent.InterruptedExecution()) |
self.kill_server(startserverflag) |
raise |
except: |
reporter(repevent.CrashedExecution()) |
self.kill_server(startserverflag) |
raise |