diff options
author | DanielMartinBuckley <daniel.m.buckley@intel.com> | 2018-09-10 19:02:10 +0100 |
---|---|---|
committer | Emma Foley <emma.l.foley@intel.com> | 2018-10-03 10:10:22 +0000 |
commit | 5f84d63605d7dbcf23ef329680b6721953bd598b (patch) | |
tree | 8e776a944986c39e89184d01a67335145f833eb5 /yardstick/network_services | |
parent | add2bdefb0a8585929b07bf2985b9e4f2c48ef56 (diff) |
NSB PROX NFVi Test does not stop after reaching expected precision
JIRA: YARDSTICK-1419
When using prox_binsearch algorithm, a binary search is
performed, increasing lower bound when step was successful
and decreasing upper bound when the step was a failure.
This runs until the test_precision (as specified in the
traffic profile) is reached. When the test precision
is reached, the test is not completed until the
runner duration is reached.
As runner duration is usually high (e.g. 1800sec), the
tests take much too long to execute.
This makes it difficult to create test suites.
Change-Id: I6cc503a09fb534a556c61c805e6df4786bb8cc4b
Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
(cherry picked from commit 7d5ff45a3b793f5e50b4a32b2438ab11fed6c899)
Diffstat (limited to 'yardstick/network_services')
4 files changed, 10 insertions, 3 deletions
diff --git a/yardstick/network_services/traffic_profile/base.py b/yardstick/network_services/traffic_profile/base.py index 4fbceea9b..ea3f17874 100644 --- a/yardstick/network_services/traffic_profile/base.py +++ b/yardstick/network_services/traffic_profile/base.py @@ -97,6 +97,9 @@ class TrafficProfile(object): self.params = tp_config self.config = TrafficProfileConfig(tp_config) + def is_ended(self): + return False + def execute_traffic(self, traffic_generator, **kawrgs): """ This methods defines the behavior of the traffic generator. It will be called in a loop until the traffic generator exits. diff --git a/yardstick/network_services/traffic_profile/prox_binsearch.py b/yardstick/network_services/traffic_profile/prox_binsearch.py index 16a0411ec..5b3c9756e 100644 --- a/yardstick/network_services/traffic_profile/prox_binsearch.py +++ b/yardstick/network_services/traffic_profile/prox_binsearch.py @@ -66,6 +66,9 @@ class ProxBinSearchProfile(ProxProfile): yield test_value test_value = self.mid_point + def is_ended(self): + return self.done.is_set() + def run_test_with_pkt_size(self, traffic_gen, pkt_size, duration): """Run the test for a single packet size. diff --git a/yardstick/network_services/traffic_profile/prox_profile.py b/yardstick/network_services/traffic_profile/prox_profile.py index 343ef1da2..de4b3f9a0 100644 --- a/yardstick/network_services/traffic_profile/prox_profile.py +++ b/yardstick/network_services/traffic_profile/prox_profile.py @@ -16,6 +16,7 @@ from __future__ import absolute_import import logging +import multiprocessing from yardstick.network_services.traffic_profile.base import TrafficProfile from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxProfileHelper @@ -56,7 +57,7 @@ class ProxProfile(TrafficProfile): def __init__(self, tp_config): super(ProxProfile, self).__init__(tp_config) self.queue = None - self.done = False + self.done = multiprocessing.Event() self.results = [] # TODO: get init values from tp_config @@ -116,7 +117,7 @@ class ProxProfile(TrafficProfile): try: pkt_size = next(self.pkt_size_iterator) except StopIteration: - self.done = True + self.done.set() return # Adjust packet size upwards if it's less than the minimum diff --git a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py index 3241719e8..321c05779 100644 --- a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py +++ b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py @@ -984,7 +984,7 @@ class ProxResourceHelper(ClientResourceHelper): def _run_traffic_once(self, traffic_profile): traffic_profile.execute_traffic(self) - if traffic_profile.done: + if traffic_profile.done.is_set(): self._queue.put({'done': True}) LOG.debug("tg_prox done") self._terminated.value = 1 |