From d290591a6f53d74ed00fe49e93654be5c486e998 Mon Sep 17 00:00:00 2001 From: Hans Feldt Date: Tue, 26 May 2015 11:56:24 +0200 Subject: add setup/teardown to scenario base class and runners Prepare for "service type" of scenarios that e.g. needs to start a service in setup and shut it down in teardown. In the runners, instantiation of the scenario is moved after the "worker START" log to get a more logical sequence logged. Change-Id: Idfaf5bb396eab9261e820291885b5a1dbc32f71e JIRA: - Signed-off-by: Hans Feldt --- yardstick/benchmark/runners/arithmetic.py | 8 +++++--- yardstick/benchmark/runners/duration.py | 12 ++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'yardstick/benchmark/runners') diff --git a/yardstick/benchmark/runners/arithmetic.py b/yardstick/benchmark/runners/arithmetic.py index bac7efb49..a3aceb35d 100644 --- a/yardstick/benchmark/runners/arithmetic.py +++ b/yardstick/benchmark/runners/arithmetic.py @@ -26,9 +26,6 @@ def _worker_process(queue, cls, method_name, context, scenario_args): sequence = 1 - benchmark = cls(context) - method = getattr(benchmark, method_name) - interval = context.get("interval", 1) arg_name = context.get('name') stop = context.get('stop') @@ -41,6 +38,10 @@ def _worker_process(queue, cls, method_name, context, scenario_args): LOG.info("worker START, step(%s, %d, %d, %d), class %s", arg_name, start, stop, step, cls) + benchmark = cls(context) + benchmark.setup() + method = getattr(benchmark, method_name) + record_context = {"runner": context["runner"], "host": context["host"]} @@ -91,6 +92,7 @@ def _worker_process(queue, cls, method_name, context, scenario_args): if errors: break + benchmark.teardown() LOG.info("worker END") diff --git a/yardstick/benchmark/runners/duration.py b/yardstick/benchmark/runners/duration.py index 991724826..61d498f02 100644 --- a/yardstick/benchmark/runners/duration.py +++ b/yardstick/benchmark/runners/duration.py @@ -25,13 +25,15 @@ def _worker_process(queue, cls, method_name, context, scenario_args): sequence = 1 - benchmark = cls(context) - method = getattr(benchmark, method_name) interval = context.get("interval", 1) duration = context.get("duration", 60) + LOG.info("worker START, duration %d sec, class %s", duration, cls) + context['runner'] = os.getpid() - LOG.info("worker START, duration %d sec, class %s", duration, cls) + benchmark = cls(context) + benchmark.setup() + method = getattr(benchmark, method_name) record_context = {"runner": context["runner"], "host": context["host"]} @@ -81,7 +83,9 @@ def _worker_process(queue, cls, method_name, context, scenario_args): if (errors and sla_action is None) or (time.time() - start > duration): LOG.info("worker END") - return + break + + benchmark.teardown() class DurationRunner(base.Runner): -- cgit 1.2.3-korg