diff options
author | Martin Klozik <martinx.klozik@intel.com> | 2016-02-23 09:54:43 +0000 |
---|---|---|
committer | Martin Klozik <martinx.klozik@intel.com> | 2016-03-21 14:18:56 +0000 |
commit | b55c8beb6003f07f025fc0edbc08c3e0fcaed064 (patch) | |
tree | 435359b6ba1d382389dedc0d9bccc6964bcbb606 /src | |
parent | 8ee2450bd267c7dc173f62909a8a4ebe13feab84 (diff) |
integration: Support of integration testcases
Generic support for integration testcases with first
set of tests for vswitch testing.
New test option "TestSteps" has been introduced
to define test step by step directly in configuration
file.
In case that this concept will be accepted, there
are plenty of possibilities for future improvements.
For example:
* use it also for performance tests without explicit
call of validation methods
* introduce step macros for repetitive scenarios,
so new tests can be easily written
* further generalization, which would go beyond
usage of controllers and will operate directly
with vswitch, vnf and trafficgen objects
Change-Id: Ifad166c8ef9cfbda6694682fe6b3421e0e97bbf2
JIRA: VSPERF-212
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Christian Trautman <ctrautma@redhat.com>
Reviewed-by: Brian Castelli <brian.castelli@spirent.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/ovs/ofctl.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/ovs/ofctl.py b/src/ovs/ofctl.py index 43151d3a..93894889 100644 --- a/src/ovs/ofctl.py +++ b/src/ovs/ofctl.py @@ -23,6 +23,7 @@ https://github.com/openstack/neutron/blob/6eac1dc99124ca024d6a69b3abfa3bc69c7356 import os import logging import string +import re from tools import tasks from conf import settings @@ -389,3 +390,26 @@ def flow_key(flow): flow_str = _flow_del_key.substitute(_flow_key_param) return flow_str + +def flow_match(flow_dump, flow_src): + """ Compares two flows + + :param flow_dump: string - a string with flow obtained by ovs-ofctl dump-flows + :param flow_src: string - a string with flow obtained by call of flow_key() + + :return: boolean + """ + # perform unifications on both source and destination flows + flow_dump = flow_dump.replace('actions=', 'action=') + flow_src = flow_src.replace('actions=', 'action=') + + # split flow strings into lists of comparable elements + flow_dump_list = re.findall(r"[\w.:=()]+", flow_dump) + flow_src_list = re.findall(r"[\w.:=()]+", flow_src) + + # check if all items from source flow are present in dump flow + flow_src_ctrl = list(flow_src_list) + for rule in flow_src_list: + if rule in flow_dump_list: + flow_src_ctrl.remove(rule) + return True if not len(flow_src_ctrl) else False |