def test_enable_disable(self): instrument = _instantiate(MockInstrument) instrument2 = _instantiate(MockInstrument2) instrumentation.install(instrument) instrumentation.install(instrument2) instrumentation.disable_all() signal.send(signal.BEFORE_WORKLOAD_EXECUTION, self, context=None) signal.send(signal.AFTER_WORKLOAD_EXECUTION, self, context=None) signal.send(signal.AFTER_WORKLOAD_RESULT_UPDATE, self, context=None) assert_equal(instrument.before, 0) assert_equal(instrument.after, 0) assert_equal(instrument2.before, 0) assert_equal(instrument2.after, 0) assert_equal(instrument2.result, 0) instrumentation.enable(instrument) signal.send(signal.BEFORE_WORKLOAD_EXECUTION, self, context=None) signal.send(signal.AFTER_WORKLOAD_EXECUTION, self, context=None) signal.send(signal.AFTER_WORKLOAD_RESULT_UPDATE, self, context=None) assert_equal(instrument.before, 1) assert_equal(instrument.after, 1) assert_equal(instrument2.before, 0) assert_equal(instrument2.after, 0) assert_equal(instrument2.result, 0) instrumentation.enable_all() signal.send(signal.BEFORE_WORKLOAD_EXECUTION, self, context=None) signal.send(signal.AFTER_WORKLOAD_EXECUTION, self, context=None) signal.send(signal.AFTER_WORKLOAD_RESULT_UPDATE, self, context=None) assert_equal(instrument.before, 2) assert_equal(instrument.after, 2) assert_equal(instrument2.before, 1) assert_equal(instrument2.after, 1) assert_equal(instrument2.result, 1)
# Skip through the remaining jobs. while self.job_queue: self.context.next_job(self.current_job) self.current_job.result.status = IterationResult.ABORTED self._finalize_job() except DeviceNotRespondingError: self.logger.info( 'Device unresponsive and recovery not possible. Skipping the rest of the run.' ) self.context.aborted = True while self.job_queue: self.context.next_job(self.current_job) self.current_job.result.status = IterationResult.SKIPPED self._finalize_job() instrumentation.enable_all() self._finalize_run() self._process_results() self.result_manager.finalize(self.context) self._send(signal.RUN_END) def _initialize_run(self): self.context.runner = self self.context.run_info.start_time = datetime.utcnow() self._connect_to_device() self.logger.info('Initializing device') self.device.initialize(self.context) self.logger.info('Initializing workloads') for workload_spec in self.context.config.workload_specs:
except KeyboardInterrupt: self.logger.info('Got CTRL-C. Finalizing run... (CTRL-C again to abort).') # Skip through the remaining jobs. while self.job_queue: self.context.next_job(self.current_job) self.current_job.result.status = IterationResult.ABORTED self._finalize_job() except DeviceNotRespondingError: self.logger.info('Device unresponsive and recovery not possible. Skipping the rest of the run.') self.context.aborted = True while self.job_queue: self.context.next_job(self.current_job) self.current_job.result.status = IterationResult.SKIPPED self._finalize_job() instrumentation.enable_all() self._finalize_run() self._process_results() self.result_manager.finalize(self.context) self._send(signal.RUN_END) def _initialize_run(self): self.context.runner = self self.context.run_info.start_time = datetime.utcnow() self._connect_to_device() self.logger.info('Initializing device') self.device.initialize(self.context) self.logger.info('Initializing workloads') for workload_spec in self.context.config.workload_specs: