diff options
author | Richard Maw <richard.maw@gmail.com> | 2014-10-11 21:29:27 +0100 |
---|---|---|
committer | Richard Maw <richard.maw@gmail.com> | 2014-10-15 13:35:19 +0000 |
commit | 9b3cd8f334fe335a77b71cdd5c964d88eebd3fbd (patch) | |
tree | 32bf7f10ac140cfb058134fcb77473cea4107798 | |
parent | b7de175d185948c1130a1036ecd11d113dbf1175 (diff) | |
download | cmdtest-9b3cd8f334fe335a77b71cdd5c964d88eebd3fbd.tar.gz |
yarn: Move timing out of .run_scenario
This is in effort of moving the scenario running code into yarnlib,
and being able to make it run scenarios in parallel.
-rwxr-xr-x | yarn | 50 |
1 files changed, 30 insertions, 20 deletions
@@ -235,34 +235,24 @@ class YarnRunner(cliapp.Application): return scenarios def run_scenario(self, scenario_runner, scenario): - self.start_scenario_timing(scenario.name) - started = time.time() - - self.info('Running scenario %s' % scenario.name) - self.ts['scenario_name'] = scenario.name - self.scenarios_run += 1 - - if self.settings['no-act']: - self.info('Pretending everything went OK') - for step in scenario.steps: - self.ts['current_step'] = step - self.remember_scenario_timing(time.time() - started) - return True - os.mkdir(self.scenario_dir(self.tempdir, scenario)) datadir = self.datadir(self.tempdir, scenario) os.mkdir(datadir) - self.info('DATADIR is %s' % datadir) homedir = self.homedir(datadir) os.mkdir(homedir) - self.info('HOME for tests is %s' % homedir) - ok = scenario_runner.run_scenario(scenario, datadir, homedir) + ud = self.pre_scenario(scenario, datadir, homedir) + + if self.settings['no-act']: + self.info('Pretending everything went OK') + for step in scenario.steps: + self.ts['current_step'] = step + ok = True + else: + ok = scenario_runner.run_scenario(scenario, datadir, homedir) - self.remember_scenario_timing(time.time() - started) + self.post_scenario(scenario, datadir, homedir, ud) - if not self.settings['snapshot']: - shutil.rmtree(datadir, ignore_errors=True) return ok def homedir(self, datadir): @@ -277,6 +267,26 @@ class YarnRunner(cliapp.Application): key, value = option_arg.split('=', 1) yield key, value + def pre_scenario(self, scenario, datadir, homedir): + self.start_scenario_timing(scenario.name) + started = time.time() + + self.info('Running scenario %s' % scenario.name) + self.ts['scenario_name'] = scenario.name + self.scenarios_run += 1 + self.info('DATADIR is %s' % datadir) + self.info('HOME for tests is %s' % homedir) + return (started,) + + def post_scenario(self, scenario, datadir, homedir, pre_scenario_userdata): + stopped = time.time() + started, = pre_scenario_userdata + + self.remember_scenario_timing(stopped - started) + + if not self.settings['snapshot']: + shutil.rmtree(datadir, ignore_errors=True) + def pre_step(self, step, **ignored): started = time.time() |