summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/functional/test_cli_scenario.py20
-rw-r--r--tests/unit/benchmark/scenarios/test_base.py53
-rw-r--r--tests/unit/network_services/traffic_profile/test_prox_mpls.py95
-rw-r--r--tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py54
4 files changed, 114 insertions, 108 deletions
diff --git a/tests/functional/test_cli_scenario.py b/tests/functional/test_cli_scenario.py
index 4741e8244..63b533b85 100755
--- a/tests/functional/test_cli_scenario.py
+++ b/tests/functional/test_cli_scenario.py
@@ -32,31 +32,25 @@ class ScenarioTestCase(unittest.TestCase):
def test_scenario_show_Lmbench(self):
res = self.yardstick("scenario show Lmbench")
- lmbench = "Execute lmbench memory read latency"
- "or memory bandwidth benchmark in a host" in res
- self.assertTrue(lmbench)
+ self.assertIn("Execute lmbench memory read latency or memory "
+ "bandwidth benchmark in a hos", res)
def test_scenario_show_Perf(self):
res = self.yardstick("scenario show Perf")
- perf = "Execute perf benchmark in a host" in res
- self.assertTrue(perf)
+ self.assertIn("Execute perf benchmark in a host", res)
def test_scenario_show_Fio(self):
res = self.yardstick("scenario show Fio")
- fio = "Execute fio benchmark in a host" in res
- self.assertTrue(fio)
+ self.assertIn("Execute fio benchmark in a host", res)
def test_scenario_show_Ping(self):
res = self.yardstick("scenario show Ping")
- ping = "Execute ping between two hosts" in res
- self.assertTrue(ping)
+ self.assertIn("Execute ping between two hosts", res)
def test_scenario_show_Iperf3(self):
res = self.yardstick("scenario show Iperf3")
- iperf3 = "Execute iperf3 between two hosts" in res
- self.assertTrue(iperf3)
+ self.assertIn("Execute iperf3 between two hosts", res)
def test_scenario_show_Pktgen(self):
res = self.yardstick("scenario show Pktgen")
- pktgen = "Execute pktgen between two hosts" in res
- self.assertTrue(pktgen)
+ self.assertIn("Execute pktgen between two hosts", res)
diff --git a/tests/unit/benchmark/scenarios/test_base.py b/tests/unit/benchmark/scenarios/test_base.py
new file mode 100644
index 000000000..78e342978
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/test_base.py
@@ -0,0 +1,53 @@
+# Copyright 2017: Intel Ltd.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import unittest
+
+from yardstick.benchmark.scenarios import base
+
+
+class ScenarioTestCase(unittest.TestCase):
+
+ def test_get_scenario_type(self):
+ scenario_type = 'dummy scenario'
+
+ class DummyScenario(base.Scenario):
+ __scenario_type__ = scenario_type
+
+ self.assertEqual(scenario_type, DummyScenario.get_scenario_type())
+
+ def test_get_scenario_type_not_defined(self):
+ class DummyScenario(base.Scenario):
+ pass
+
+ self.assertEqual(str(None), DummyScenario.get_scenario_type())
+
+ def test_get_description(self):
+ docstring = """First line
+ Second line
+ Third line
+ """
+
+ class DummyScenario(base.Scenario):
+ __doc__ = docstring
+
+ self.assertEqual(docstring.splitlines()[0],
+ DummyScenario.get_description())
+
+ def test_get_description_empty(self):
+ class DummyScenario(base.Scenario):
+ pass
+
+ self.assertEqual(str(None), DummyScenario.get_description())
diff --git a/tests/unit/network_services/traffic_profile/test_prox_mpls.py b/tests/unit/network_services/traffic_profile/test_prox_mpls.py
deleted file mode 100644
index 00a690d2a..000000000
--- a/tests/unit/network_services/traffic_profile/test_prox_mpls.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-
-import unittest
-import mock
-
-from tests.unit import STL_MOCKS
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxTestDataTuple
- from yardstick.network_services.traffic_profile.prox_mpls_tag_untag import ProxMplsTagUntagProfile
-
-
-class TestProxMplsTagUntagProfile(unittest.TestCase):
-
- def test_mpls_1(self):
- def target(*args, **kwargs):
- runs.append(args[2])
- if args[2] < 0 or args[2] > 100:
- raise RuntimeError(' '.join([str(args), str(runs)]))
- if args[2] > 75.0:
- return fail_tuple, {}
- return success_tuple, {}
-
- tp_config = {
- 'traffic_profile': {
- 'packet_sizes': [200],
- },
- }
-
- runs = []
- success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
- fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
-
- traffic_generator = mock.MagicMock()
-
- profile = ProxMplsTagUntagProfile(tp_config)
- profile.init(mock.MagicMock())
- profile._profile_helper = profile_helper = mock.MagicMock()
- profile_helper.run_test = target
-
- profile.execute_traffic(traffic_generator)
- self.assertEqual(round(profile.current_lower, 2), 74.69)
- self.assertEqual(round(profile.current_upper, 2), 75.39)
- self.assertEqual(len(runs), 8)
-
- def test_mpls_2(self):
- def target(*args, **kwargs):
- runs.append(args[2])
- if args[2] < 0 or args[2] > 100:
- raise RuntimeError(' '.join([str(args), str(runs)]))
- if args[2] > 25.0:
- return fail_tuple, {}
- return success_tuple, {}
-
- tp_config = {
- 'traffic_profile': {
- 'packet_sizes': [200],
- 'test_precision': 2.0,
- },
- }
-
- runs = []
- success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
- fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
-
- traffic_generator = mock.MagicMock()
-
- profile = ProxMplsTagUntagProfile(tp_config)
- profile.init(mock.MagicMock())
- profile._profile_helper = profile_helper = mock.MagicMock()
- profile_helper.run_test = target
-
- profile.execute_traffic(traffic_generator)
- self.assertEqual(round(profile.current_lower, 2), 24.06)
- self.assertEqual(round(profile.current_upper, 2), 25.47)
- self.assertEqual(len(runs), 7)
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py b/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py
index d08c62e0b..a2a5058fc 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py
+++ b/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py
@@ -18,6 +18,8 @@
from __future__ import absolute_import
import unittest
+
+import copy
import mock
SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
@@ -75,6 +77,8 @@ class TestTrexTrafficGen(unittest.TestCase):
'driver': "i40e",
'dst_ip': '152.16.100.20',
'local_iface_name': 'xe0',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe0',
'local_mac': '00:00:00:00:00:02'},
'vnfd-connection-point-ref': 'xe0',
'name': 'xe0'},
@@ -89,6 +93,8 @@ class TestTrexTrafficGen(unittest.TestCase):
'bandwidth': '10 Gbps',
'dst_ip': '152.16.40.20',
'local_iface_name': 'xe1',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe1',
'local_mac': '00:00:00:00:00:01'},
'vnfd-connection-point-ref': 'xe1',
'name': 'xe1'}]}],
@@ -386,6 +392,8 @@ class TestTrexTrafficGen(unittest.TestCase):
self.sut._connect_client.get_stats = mock.Mock(return_value="0")
self.sut.resource_helper.RUN_DURATION = 0
self.sut.resource_helper.QUEUE_WAIT_TIME = 0
+ # must generate cfg before we can run traffic so Trex port mapping is created
+ self.sut.resource_helper.generate_cfg()
self.sut._traffic_runner(mock_traffic_profile)
@mock.patch(SSH_HELPER)
@@ -397,6 +405,52 @@ class TestTrexTrafficGen(unittest.TestCase):
self.assertIsNone(trex_traffic_gen.resource_helper.generate_cfg())
@mock.patch(SSH_HELPER)
+ def test_build_ports_reversed_pci_ordering(self, ssh):
+ mock_ssh(ssh)
+ vnfd = copy.deepcopy(self.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ vnfd['vdu'][0]['external-interface'] = [
+ {'virtual-interface':
+ {'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 2,
+ 'bandwidth': '10 Gbps',
+ 'driver': "i40e",
+ 'dst_ip': '152.16.100.20',
+ 'local_iface_name': 'xe0',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe0',
+ 'local_mac': '00:00:00:00:00:02'},
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'},
+ {'virtual-interface':
+ {'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:04:00.0',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'driver': "i40e",
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_iface_name': 'xe1',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe1',
+ 'local_mac': '00:00:00:00:00:01'},
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'}]
+ trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.resource_helper.generate_cfg()
+ trex_traffic_gen.resource_helper._build_ports()
+ self.assertEqual(sorted(trex_traffic_gen.resource_helper.all_ports), [0, 1])
+ # there is a gap in ordering
+ self.assertEqual(dict(trex_traffic_gen.resource_helper.dpdk_to_trex_port_map),
+ {0: 0, 2: 1})
+
+ @mock.patch(SSH_HELPER)
def test_run_traffic(self, ssh):
mock_ssh(ssh)