コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
            # 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:
コード例 #4
0
        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: