aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/benchmark/scenarios
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/benchmark/scenarios')
-rw-r--r--tests/unit/benchmark/scenarios/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/availability/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py84
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_attacker_general.py58
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_attacker_process.py55
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_basemonitor.py125
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_baseoperation.py87
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py93
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_director.py104
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_monitor_command.py92
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_monitor_general.py80
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_monitor_multi.py61
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_monitor_process.py59
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_operation_general.py72
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_result_checker_general.py116
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_scenario_general.py71
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_serviceha.py79
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_util.py58
-rw-r--r--tests/unit/benchmark/scenarios/compute/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt5
-rw-r--r--tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt9
-rw-r--r--tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt2
-rw-r--r--tests/unit/benchmark/scenarios/compute/memload_sample_output.txt3
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_cachestat.py97
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_computecapacity.py66
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_cpuload.py264
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_cyclictest.py175
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_lmbench.py198
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_memload.py119
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_plugintest.py62
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_qemumigrate.py166
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_ramspeed.py244
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_spec_cpu.py86
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py84
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_unixbench.py171
-rw-r--r--tests/unit/benchmark/scenarios/dummy/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/dummy/test_dummy.py34
-rw-r--r--tests/unit/benchmark/scenarios/lib/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_add_memory_load.py65
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_attach_volume.py33
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_check_connectivity.py84
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_check_numa_info.py85
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_check_value.py46
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_flavor.py37
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py58
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_image.py41
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_keypair.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_network.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_port.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_router.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_sec_group.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_server.py42
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_subnet.py41
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_volume.py91
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_flavor.py35
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_image.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_keypair.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_network.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_port.py34
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_router.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py37
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_server.py35
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_volume.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_detach_volume.py35
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_flavor.py33
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py51
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_numa_info.py106
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_server.py50
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_server_ip.py41
-rw-r--r--tests/unit/benchmark/scenarios/networking/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/networking/imix_voice.yaml41
-rw-r--r--tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json1
-rw-r--r--tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json1
-rw-r--r--tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml18
-rw-r--r--tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml101
-rwxr-xr-xtests/unit/benchmark/scenarios/networking/netperf_sample_output.json1
-rw-r--r--tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt9
-rw-r--r--tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt13
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_iperf3.py202
-rwxr-xr-xtests/unit/benchmark/scenarios/networking/test_netperf.py130
-rwxr-xr-xtests/unit/benchmark/scenarios/networking/test_netperf_node.py130
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_netutilization.py227
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_networkcapacity.py61
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_nstat.py120
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_ping.py101
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_ping6.py125
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_pktgen.py760
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py192
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py198
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_sfc.py77
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_vnf_generic.py787
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_vsperf.py136
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py244
-rw-r--r--tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml75
-rw-r--r--tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml50
-rw-r--r--tests/unit/benchmark/scenarios/parser/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/parser/test_parser.py79
-rw-r--r--tests/unit/benchmark/scenarios/storage/__init__.py0
-rw-r--r--tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json1
-rw-r--r--tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json1
-rw-r--r--tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json1
-rw-r--r--tests/unit/benchmark/scenarios/storage/test_bonnie.py74
-rw-r--r--tests/unit/benchmark/scenarios/storage/test_fio.py273
-rw-r--r--tests/unit/benchmark/scenarios/storage/test_storagecapacity.py108
-rw-r--r--tests/unit/benchmark/scenarios/storage/test_storperf.py238
-rw-r--r--tests/unit/benchmark/scenarios/test_base.py106
108 files changed, 0 insertions, 9281 deletions
diff --git a/tests/unit/benchmark/scenarios/__init__.py b/tests/unit/benchmark/scenarios/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/availability/__init__.py b/tests/unit/benchmark/scenarios/availability/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/availability/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py b/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py
deleted file mode 100644
index cc179602e..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.attacker import \
- attacker_baremetal
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.subprocess')
-class ExecuteShellTestCase(unittest.TestCase):
-
- def test__fun_execute_shell_command_successful(self, mock_subprocess):
- cmd = "env"
- mock_subprocess.check_output.return_value = (0, 'unittest')
- exitcode, output = attacker_baremetal._execute_shell_command(cmd)
- self.assertEqual(exitcode, 0)
-
- @mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.LOG')
- def test__fun_execute_shell_command_fail_cmd_exception(self, mock_log, mock_subprocess):
- cmd = "env"
- mock_subprocess.check_output.side_effect = RuntimeError
- exitcode, output = attacker_baremetal._execute_shell_command(cmd)
- self.assertEqual(exitcode, -1)
- mock_log.error.assert_called_once()
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.subprocess')
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.ssh')
-class AttackerBaremetalTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ipmi_ip": "10.20.0.5",
- "ipmi_user": "root",
- "ipmi_pwd": "123456",
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.attacker_cfg = {
- 'fault_type': 'bear-metal-down',
- 'host': 'node1',
- }
-
- def test__attacker_baremetal_all_successful(self, mock_ssh, mock_subprocess):
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
- self.context)
-
- ins.setup()
- ins.inject_fault()
- ins.recover()
-
- def test__attacker_baremetal_check_failuer(self, mock_ssh, mock_subprocess):
- mock_ssh.SSH.from_node().execute.return_value = (0, "error check", '')
- ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
- self.context)
- ins.setup()
-
- def test__attacker_baremetal_recover_successful(self, mock_ssh, mock_subprocess):
-
- self.attacker_cfg["jump_host"] = 'node1'
- self.context["node1"]["pwd"] = "123456"
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
- self.context)
-
- ins.setup()
- ins.recover()
diff --git a/tests/unit/benchmark/scenarios/availability/test_attacker_general.py b/tests/unit/benchmark/scenarios/availability/test_attacker_general.py
deleted file mode 100644
index 612b5a662..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_attacker_general.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Juan Qiu and others
-# juan_ qiu@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.attacker
-# .attacker_general
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.attacker import baseattacker
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.'
- 'attacker_general.ssh')
-class GeneralAttackerServiceTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.attacker_cfg = {
- 'fault_type': 'general-attacker',
- 'action_parameter': {'process_name': 'nova_api'},
- 'rollback_parameter': {'process_name': 'nova_api'},
- 'key': 'stop-service',
- 'attack_key': 'stop-service',
- 'host': 'node1',
- }
-
- def test__attacker_service_all_successful(self, mock_ssh):
-
- cls = baseattacker.BaseAttacker.get_attacker_cls(self.attacker_cfg)
- ins = cls(self.attacker_cfg, self.context)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins.setup()
- ins.inject_fault()
- ins.recover()
-
- def test__attacker_service_check_failuer(self, mock_ssh):
-
- cls = baseattacker.BaseAttacker.get_attacker_cls(self.attacker_cfg)
- ins = cls(self.attacker_cfg, self.context)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "error check", '')
- ins.setup()
diff --git a/tests/unit/benchmark/scenarios/availability/test_attacker_process.py b/tests/unit/benchmark/scenarios/availability/test_attacker_process.py
deleted file mode 100644
index 0a8e8322a..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_attacker_process.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.attacker.attacker_process
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.attacker import baseattacker
-
-
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.attacker.attacker_process.ssh')
-class AttackerServiceTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.attacker_cfg = {
- 'fault_type': 'kill-process',
- 'process_name': 'nova-api',
- 'host': 'node1',
- }
-
- def test__attacker_service_all_successful(self, mock_ssh):
-
- cls = baseattacker.BaseAttacker.get_attacker_cls(self.attacker_cfg)
- ins = cls(self.attacker_cfg, self.context)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "10", '')
- ins.setup()
- ins.inject_fault()
- ins.recover()
-
- def test__attacker_service_check_failuer(self, mock_ssh):
-
- cls = baseattacker.BaseAttacker.get_attacker_cls(self.attacker_cfg)
- ins = cls(self.attacker_cfg, self.context)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, None, '')
- ins.setup()
diff --git a/tests/unit/benchmark/scenarios/availability/test_basemonitor.py b/tests/unit/benchmark/scenarios/availability/test_basemonitor.py
deleted file mode 100644
index 92ae8aa88..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_basemonitor.py
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.monitor.monitor_command
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.monitor import basemonitor
-
-
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.basemonitor'
- '.BaseMonitor')
-class MonitorMgrTestCase(unittest.TestCase):
-
- def setUp(self):
- self.monitor_configs = [
- {
- "monitor_type": "openstack-cmd",
- "command_name": "openstack router list",
- "monitor_time": 10,
- "monitor_number": 3,
- "sla": {
- "max_outage_time": 5
- }
- },
- {
- "monitor_type": "process",
- "process_name": "neutron-server",
- "host": "node1",
- "monitor_time": 20,
- "monitor_number": 3,
- "sla": {
- "max_recover_time": 20
- }
- }
- ]
- self.MonitorMgr = basemonitor.MonitorMgr([])
- self.MonitorMgr.init_monitors(self.monitor_configs, None)
- self.monitor_list = self.MonitorMgr._monitor_list
- for mo in self.monitor_list:
- mo._result = {"outage_time": 10}
-
- def test__MonitorMgr_setup_successful(self, mock_monitor):
- instance = basemonitor.MonitorMgr({"nova-api": 10})
- instance.init_monitors(self.monitor_configs, None)
- instance.start_monitors()
- instance.wait_monitors()
-
- ret = instance.verify_SLA()
-
- def test_MonitorMgr_getitem(self, mock_monitor):
- monitorMgr = basemonitor.MonitorMgr({"nova-api": 10})
- monitorMgr.init_monitors(self.monitor_configs, None)
-
- def test_store_result(self, mock_monitor):
- expect = {'process_neutron-server_outage_time': 10,
- 'openstack-router-list_outage_time': 10}
- result = {}
- self.MonitorMgr.store_result(result)
- self.assertDictEqual(result, expect)
-
-
-class BaseMonitorTestCase(unittest.TestCase):
-
- class MonitorSimple(basemonitor.BaseMonitor):
- __monitor_type__ = "MonitorForTest"
-
- def setup(self):
- self.monitor_result = False
-
- def monitor_func(self):
- return self.monitor_result
-
- def setUp(self):
- self.monitor_cfg = {
- 'monitor_type': 'MonitorForTest',
- 'command_name': 'nova image-list',
- 'monitor_time': 0.01,
- 'sla': {'max_outage_time': 5}
- }
-
- def test__basemonitor_start_wait_successful(self):
- ins = basemonitor.BaseMonitor(self.monitor_cfg, None, {"nova-api": 10})
- ins.start_monitor()
- ins.wait_monitor()
-
- def test__basemonitor_all_successful(self):
- ins = self.MonitorSimple(self.monitor_cfg, None, {"nova-api": 10})
- ins.setup()
- ins.run()
- ins.verify_SLA()
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.basemonitor'
- '.multiprocessing')
- def test__basemonitor_func_false(self, mock_multiprocess):
- ins = self.MonitorSimple(self.monitor_cfg, None, {"nova-api": 10})
- ins.setup()
- mock_multiprocess.Event().is_set.return_value = False
- ins.run()
- ins.verify_SLA()
-
- def test__basemonitor_getmonitorcls_successfule(self):
- cls = None
- try:
- cls = basemonitor.BaseMonitor.get_monitor_cls(self.monitor_cfg)
- except Exception:
- pass
- self.assertIsNone(cls)
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/tests/unit/benchmark/scenarios/availability/test_baseoperation.py b/tests/unit/benchmark/scenarios/availability/test_baseoperation.py
deleted file mode 100644
index 03ec1492b..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_baseoperation.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.operation.baseoperation
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.operation import baseoperation
-
-
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.operation.baseoperation'
- '.BaseOperation')
-class OperationMgrTestCase(unittest.TestCase):
-
- def setUp(self):
- config = {
- 'operation_type': 'general-operation',
- 'key': 'service-status'
- }
-
- self.operation_configs = []
- self.operation_configs.append(config)
-
- def test_all_successful(self, mock_operation):
- mgr_ins = baseoperation.OperationMgr()
- mgr_ins.init_operations(self.operation_configs, None)
- operation_ins = mgr_ins["service-status"]
- mgr_ins.rollback()
-
- def test_getitem_fail(self, mock_operation):
- mgr_ins = baseoperation.OperationMgr()
- mgr_ins.init_operations(self.operation_configs, None)
- with self.assertRaises(KeyError):
- operation_ins = mgr_ins["operation-not-exist"]
-
-
-class TestOperation(baseoperation.BaseOperation):
- __operation__type__ = "test-operation"
-
- def setup(self):
- pass
-
- def run(self):
- pass
-
- def rollback(self):
- pass
-
-
-class BaseOperationTestCase(unittest.TestCase):
-
- def setUp(self):
- self.config = {
- 'operation_type': 'general-operation',
- 'key': 'service-status'
- }
-
- def test_all_successful(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- base_ins.setup()
- base_ins.run()
- base_ins.rollback()
-
- def test_get_script_fullpath(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- base_ins.get_script_fullpath("ha_tools/test.bash")
-
- def test_get_operation_cls_successful(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- operation_ins = base_ins.get_operation_cls("test-operation")
-
- def test_get_operation_cls_fail(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- with self.assertRaises(RuntimeError):
- operation_ins = base_ins.get_operation_cls("operation-not-exist")
diff --git a/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py b/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
deleted file mode 100644
index 36ce900fb..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.result_checker
-# .baseresultchecker
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.result_checker import \
- baseresultchecker
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.result_checker'
- '.baseresultchecker.BaseResultChecker')
-class ResultCheckerMgrTestCase(unittest.TestCase):
-
- def setUp(self):
- config = {
- 'checker_type': 'general-result-checker',
- 'key': 'process-checker'
- }
-
- self.checker_configs = []
- self.checker_configs.append(config)
-
- def test_ResultCheckerMgr_setup_successful(self, mock_basechacer):
- mgr_ins = baseresultchecker.ResultCheckerMgr()
- mgr_ins.init_ResultChecker(self.checker_configs, None)
- mgr_ins.verify()
-
- def test_getitem_succeessful(self, mock_basechacer):
- mgr_ins = baseresultchecker.ResultCheckerMgr()
- mgr_ins.init_ResultChecker(self.checker_configs, None)
- checker_ins = mgr_ins["process-checker"]
-
- def test_getitem_fail(self, mock_basechacer):
- mgr_ins = baseresultchecker.ResultCheckerMgr()
- mgr_ins.init_ResultChecker(self.checker_configs, None)
- with self.assertRaises(KeyError):
- checker_ins = mgr_ins["checker-not-exist"]
-
-
-class BaseResultCheckerTestCase(unittest.TestCase):
-
- class ResultCheckeSimple(baseresultchecker.BaseResultChecker):
- __result_checker__type__ = "ResultCheckeForTest"
-
- def setup(self):
- self.success = False
-
- def verify(self):
- return self.success
-
- def setUp(self):
- self.checker_cfg = {
- 'checker_type': 'general-result-checker',
- 'key': 'process-checker'
- }
-
- def test_baseresultchecker_setup_verify_successful(self):
- ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
- ins.setup()
- ins.verify()
-
- def test_baseresultchecker_verfiy_pass(self):
- ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
- ins.setup()
- ins.actualResult = True
- ins.expectedResult = True
- ins.verify()
-
- def test_get_script_fullpath(self):
- ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
- path = ins.get_script_fullpath("test.bash")
-
- def test_get_resultchecker_cls_successful(self):
- baseresultchecker.BaseResultChecker.get_resultchecker_cls(
- "ResultCheckeForTest")
-
- def test_get_resultchecker_cls_fail(self):
- with self.assertRaises(RuntimeError):
- baseresultchecker.BaseResultChecker.get_resultchecker_cls(
- "ResultCheckeNotExist")
diff --git a/tests/unit/benchmark/scenarios/availability/test_director.py b/tests/unit/benchmark/scenarios/availability/test_director.py
deleted file mode 100644
index d01a60e2d..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_director.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.director
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.director import Director
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.director.basemonitor')
-@mock.patch('yardstick.benchmark.scenarios.availability.director.baseattacker')
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.director.baseoperation')
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.director.baseresultchecker')
-class DirectorTestCase(unittest.TestCase):
-
- def setUp(self):
- self.scenario_cfg = {
- 'type': "general_scenario",
- 'options': {
- 'attackers': [{
- 'fault_type': "general-attacker",
- 'key': "kill-process"}],
- 'monitors': [{
- 'monitor_type': "general-monitor",
- 'key': "service-status"}],
- 'operations': [{
- 'operation_type': 'general-operation',
- 'key': 'service-status'}],
- 'resultCheckers': [{
- 'checker_type': 'general-result-checker',
- 'key': 'process-checker', }],
- 'steps': [
- {
- 'actionKey': "service-status",
- 'actionType': "operation",
- 'index': 1},
- {
- 'actionKey': "kill-process",
- 'actionType': "attacker",
- 'index': 2},
- {
- 'actionKey': "process-checker",
- 'actionType': "resultchecker",
- 'index': 3},
- {
- 'actionKey': "service-status",
- 'actionType': "monitor",
- 'index': 4},
- ]
- }
- }
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.ctx = {"nodes": {"node1": host}}
-
- def test_director_all_successful(self, mock_checer, mock_opertion,
- mock_attacker, mock_monitor):
- ins = Director(self.scenario_cfg, self.ctx)
- opertion_action = ins.createActionPlayer("operation", "service-status")
- attacker_action = ins.createActionPlayer("attacker", "kill-process")
- checker_action = ins.createActionPlayer("resultchecker",
- "process-checker")
- monitor_action = ins.createActionPlayer("monitor", "service-status")
-
- opertion_rollback = ins.createActionRollbacker("operation",
- "service-status")
- attacker_rollback = ins.createActionRollbacker("attacker",
- "kill-process")
- ins.executionSteps.append(opertion_rollback)
- ins.executionSteps.append(attacker_rollback)
-
- opertion_action.action()
- attacker_action.action()
- checker_action.action()
- monitor_action.action()
-
- attacker_rollback.rollback()
- opertion_rollback.rollback()
-
- ins.stopMonitors()
- ins.verify()
- ins.knockoff()
-
- def test_director_get_wrong_item(self, mock_checer, mock_opertion,
- mock_attacker, mock_monitor):
- ins = Director(self.scenario_cfg, self.ctx)
- ins.createActionPlayer("wrong_type", "wrong_key")
- ins.createActionRollbacker("wrong_type", "wrong_key")
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_command.py b/tests/unit/benchmark/scenarios/availability/test_monitor_command.py
deleted file mode 100644
index b84cef23c..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_command.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.monitor.monitor_command
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.monitor import monitor_command
-
-
-@mock.patch('subprocess.check_output')
-class ExecuteShellTestCase(unittest.TestCase):
-
- def test__fun_execute_shell_command_successful(self, mock_subprocess_check_output):
- cmd = "env"
- mock_subprocess_check_output.return_value = (0, 'unittest')
- exitcode, _ = monitor_command._execute_shell_command(cmd)
- self.assertEqual(exitcode, 0)
-
- @mock.patch('yardstick.benchmark.scenarios.availability.monitor.monitor_command.LOG')
- def test__fun_execute_shell_command_fail_cmd_exception(self, mock_log,
- mock_subprocess_check_output):
- cmd = "env"
- mock_subprocess_check_output.side_effect = RuntimeError
- exitcode, _ = monitor_command._execute_shell_command(cmd)
- self.assertEqual(exitcode, -1)
- mock_log.error.assert_called_once()
-
-
-@mock.patch('subprocess.check_output')
-class MonitorOpenstackCmdTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.config = {
- 'monitor_type': 'openstack-api',
- 'command_name': 'nova image-list',
- 'monitor_time': 1,
- 'sla': {'max_outage_time': 5}
- }
-
- def test__monitor_command_monitor_func_successful(self, mock_subprocess_check_output):
-
- instance = monitor_command.MonitorOpenstackCmd(self.config, None, {"nova-api": 10})
- instance.setup()
- mock_subprocess_check_output.return_value = (0, 'unittest')
- ret = instance.monitor_func()
- self.assertTrue(ret)
- instance._result = {"outage_time": 0}
- instance.verify_SLA()
-
- @mock.patch('yardstick.benchmark.scenarios.availability.monitor.monitor_command.LOG')
- def test__monitor_command_monitor_func_failure(self, mock_log, mock_subprocess_check_output):
- mock_subprocess_check_output.return_value = (1, 'unittest')
- instance = monitor_command.MonitorOpenstackCmd(self.config, None, {"nova-api": 10})
- instance.setup()
- mock_subprocess_check_output.side_effect = RuntimeError
- ret = instance.monitor_func()
- self.assertFalse(ret)
- mock_log.error.assert_called_once()
- instance._result = {"outage_time": 10}
- instance.verify_SLA()
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
- '.ssh')
- def test__monitor_command_ssh_monitor_successful(self, mock_ssh, mock_subprocess_check_output):
-
- mock_subprocess_check_output.return_value = (0, 'unittest')
- self.config["host"] = "node1"
- instance = monitor_command.MonitorOpenstackCmd(
- self.config, self.context, {"nova-api": 10})
- instance.setup()
- mock_ssh.SSH.from_node().execute.return_value = (0, "0", '')
- ret = instance.monitor_func()
- self.assertTrue(ret)
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_general.py b/tests/unit/benchmark/scenarios/availability/test_monitor_general.py
deleted file mode 100644
index c14f073ec..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_general.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.monitor
-# .monitor_general
-
-from __future__ import absolute_import
-import mock
-import unittest
-from yardstick.benchmark.scenarios.availability.monitor import monitor_general
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
- 'monitor_general.ssh')
-@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
- 'monitor_general.open')
-class GeneralMonitorServiceTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.monitor_cfg = {
- 'monitor_type': 'general-monitor',
- 'key': 'service-status',
- 'monitor_key': 'service-status',
- 'host': 'node1',
- 'monitor_time': 3,
- 'parameter': {'serviceName': 'haproxy'},
- 'sla': {'max_outage_time': 1}
- }
- self.monitor_cfg_noparam = {
- 'monitor_type': 'general-monitor',
- 'key': 'service-status',
- 'monitor_key': 'service-status',
- 'host': 'node1',
- 'monitor_time': 3,
- 'sla': {'max_outage_time': 1}
- }
-
- def test__monitor_general_all_successful(self, mock_open, mock_ssh):
- ins = monitor_general.GeneralMonitor(self.monitor_cfg, self.context, {"nova-api": 10})
-
- ins.setup()
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins.monitor_func()
- ins._result = {'outage_time': 0}
- ins.verify_SLA()
-
- def test__monitor_general_all_successful_noparam(self, mock_open,
- mock_ssh):
- ins = monitor_general.GeneralMonitor(
- self.monitor_cfg_noparam, self.context, {"nova-api": 10})
-
- ins.setup()
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins.monitor_func()
- ins._result = {'outage_time': 0}
- ins.verify_SLA()
-
- def test__monitor_general_failure(self, mock_open, mock_ssh):
- ins = monitor_general.GeneralMonitor(
- self.monitor_cfg_noparam, self.context, {"nova-api": 10})
-
- ins.setup()
- mock_ssh.SSH.from_node().execute.return_value = (1, "error", 'error')
- ins.monitor_func()
- ins._result = {'outage_time': 2}
- ins.verify_SLA()
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py b/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py
deleted file mode 100644
index b59ec6cf1..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.monitor
-# .monitor_multi
-
-from __future__ import absolute_import
-import mock
-import unittest
-from yardstick.benchmark.scenarios.availability.monitor import monitor_multi
-
-@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
- 'monitor_general.ssh')
-@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
- 'monitor_general.open')
-class MultiMonitorServiceTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.monitor_cfg = {
- 'monitor_type': 'general-monitor',
- 'monitor_number': 3,
- 'key': 'service-status',
- 'monitor_key': 'service-status',
- 'host': 'node1',
- 'monitor_time': 0.1,
- 'parameter': {'serviceName': 'haproxy'},
- 'sla': {'max_outage_time': 1}
- }
-
- def test__monitor_multi_all_successful(self, mock_open, mock_ssh):
- ins = monitor_multi.MultiMonitor(self.monitor_cfg, self.context, {"nova-api": 10})
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
-
- ins.start_monitor()
- ins.wait_monitor()
- ins.verify_SLA()
-
- def test__monitor_multi_all_fail(self, mock_open, mock_ssh):
- ins = monitor_multi.MultiMonitor(self.monitor_cfg, self.context, {"nova-api": 10})
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
-
- ins.start_monitor()
- ins.wait_monitor()
- ins.verify_SLA()
-
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_process.py b/tests/unit/benchmark/scenarios/availability/test_monitor_process.py
deleted file mode 100644
index 41ce5445e..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_process.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.monitor.monitor_process
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.monitor import monitor_process
-
-
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.monitor_process.ssh')
-class MonitorProcessTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.monitor_cfg = {
- 'monitor_type': 'process',
- 'process_name': 'nova-api',
- 'host': "node1",
- 'monitor_time': 1,
- 'sla': {'max_recover_time': 5}
- }
-
- def test__monitor_process_all_successful(self, mock_ssh):
-
- ins = monitor_process.MonitorProcess(self.monitor_cfg, self.context, {"nova-api": 10})
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "1", '')
- ins.setup()
- ins.monitor_func()
- ins._result = {"outage_time": 0}
- ins.verify_SLA()
-
- def test__monitor_process_down_failuer(self, mock_ssh):
-
- ins = monitor_process.MonitorProcess(self.monitor_cfg, self.context, {"nova-api": 10})
-
- mock_ssh.SSH.from_node().execute.return_value = (0, "0", '')
- ins.setup()
- ins.monitor_func()
- ins._result = {"outage_time": 10}
- ins.verify_SLA()
diff --git a/tests/unit/benchmark/scenarios/availability/test_operation_general.py b/tests/unit/benchmark/scenarios/availability/test_operation_general.py
deleted file mode 100644
index fb8ccb122..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_operation_general.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.operation
-# .operation_general
-
-from __future__ import absolute_import
-import mock
-import unittest
-from yardstick.benchmark.scenarios.availability.operation import \
- operation_general
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.operation.'
- 'operation_general.ssh')
-@mock.patch('yardstick.benchmark.scenarios.availability.operation.'
- 'operation_general.open')
-class GeneralOperaionTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.operation_cfg = {
- 'operation_type': 'general-operation',
- 'action_parameter': {'ins_cup': 2},
- 'rollback_parameter': {'ins_id': 'id123456'},
- 'key': 'nova-create-instance',
- 'operation_key': 'nova-create-instance',
- 'host': 'node1',
- }
- self.operation_cfg_noparam = {
- 'operation_type': 'general-operation',
- 'key': 'nova-create-instance',
- 'operation_key': 'nova-create-instance',
- 'host': 'node1',
- }
-
- def test__operation_successful(self, mock_open, mock_ssh):
- ins = operation_general.GeneralOperaion(self.operation_cfg,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "success", '')
- ins.setup()
- ins.run()
- ins.rollback()
-
- def test__operation_successful_noparam(self, mock_open, mock_ssh):
- ins = operation_general.GeneralOperaion(self.operation_cfg_noparam,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "success", '')
- ins.setup()
- ins.run()
- ins.rollback()
-
- def test__operation_fail(self, mock_open, mock_ssh):
- ins = operation_general.GeneralOperaion(self.operation_cfg,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (1, "failed", '')
- ins.setup()
- ins.run()
- ins.rollback()
diff --git a/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py b/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
deleted file mode 100644
index d036bb0da..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.result_checker
-# .result_checker_general
-
-from __future__ import absolute_import
-import mock
-import unittest
-import copy
-
-from yardstick.benchmark.scenarios.availability.result_checker import \
- result_checker_general
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.result_checker.'
- 'result_checker_general.ssh')
-@mock.patch('yardstick.benchmark.scenarios.availability.result_checker.'
- 'result_checker_general.open')
-class GeneralResultCheckerTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.checker_cfg = {
- 'parameter': {'processname': 'process'},
- 'checker_type': 'general-result-checker',
- 'condition': 'eq',
- 'expectedValue': 1,
- 'key': 'process-checker',
- 'checker_key': 'process-checker',
- 'host': 'node1'
- }
-
- def test__result_checker_eq(self, mock_open, mock_ssh):
- ins = result_checker_general.GeneralResultChecker(self.checker_cfg,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "1", '')
- ins.setup()
- self.assertTrue(ins.verify())
-
- def test__result_checker_gt(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config['condition'] = 'gt'
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "2", '')
- ins.setup()
- self.assertTrue(ins.verify())
-
- def test__result_checker_gt_eq(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config['condition'] = 'gt_eq'
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "1", '')
- ins.setup()
- self.assertTrue(ins.verify())
-
- def test__result_checker_lt(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config['condition'] = 'lt'
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "0", '')
- ins.setup()
- self.assertTrue(ins.verify())
-
- def test__result_checker_lt_eq(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config['condition'] = 'lt_eq'
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "1", '')
- ins.setup()
- self.assertTrue(ins.verify())
-
- def test__result_checker_in(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config['condition'] = 'in'
- config['expectedValue'] = "value"
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "value return", '')
- ins.setup()
- self.assertTrue(ins.verify())
-
- def test__result_checker_wrong(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config['condition'] = 'wrong'
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (0, "1", '')
- ins.setup()
- self.assertFalse(ins.verify())
-
- def test__result_checker_fail(self, mock_open, mock_ssh):
- config = copy.deepcopy(self.checker_cfg)
- config.pop('parameter')
- ins = result_checker_general.GeneralResultChecker(config,
- self.context)
- mock_ssh.SSH.from_node().execute.return_value = (1, "fail", '')
- ins.setup()
- ins.verify()
diff --git a/tests/unit/benchmark/scenarios/availability/test_scenario_general.py b/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
deleted file mode 100644
index 244a5e798..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.scenario_general
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.scenario_general import \
- ScenarioGeneral
-
-
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.scenario_general.Director')
-class ScenarioGeneralTestCase(unittest.TestCase):
-
- def setUp(self):
- self.scenario_cfg = {
- 'type': "general_scenario",
- 'options': {
- 'attackers': [{
- 'fault_type': "general-attacker",
- 'key': "kill-process"}],
- 'monitors': [{
- 'monitor_type': "general-monitor",
- 'key': "service-status"}],
- 'steps': [
- {
- 'actionKey': "kill-process",
- 'actionType': "attacker",
- 'index': 1},
- {
- 'actionKey': "service-status",
- 'actionType': "monitor",
- 'index': 2}]
- }
- }
-
- def test_scenario_general_all_successful(self, mock_director):
- ins = ScenarioGeneral(self.scenario_cfg, None)
- ins.setup()
- ins.run({})
- ins.teardown()
-
- def test_scenario_general_exception(self, mock_director):
- ins = ScenarioGeneral(self.scenario_cfg, None)
- mock_obj = mock.Mock()
- mock_obj.createActionPlayer.side_effect = KeyError('Wrong')
- ins.director = mock_obj
- ins.director.data = {}
- ins.run({})
- ins.teardown()
-
- def test_scenario_general_case_fail(self, mock_director):
- ins = ScenarioGeneral(self.scenario_cfg, None)
- mock_obj = mock.Mock()
- mock_obj.verify.return_value = False
- ins.director = mock_obj
- ins.director.data = {}
- ins.run({})
- ins.pass_flag = True
- ins.teardown()
diff --git a/tests/unit/benchmark/scenarios/availability/test_serviceha.py b/tests/unit/benchmark/scenarios/availability/test_serviceha.py
deleted file mode 100644
index 97d534894..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_serviceha.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.serviceha
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability import serviceha
-
-
-class ServicehaTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.ctx = {"nodes": {"node1": host}}
- attacker_cfg = {
- "fault_type": "kill-process",
- "process_name": "nova-api",
- "host": "node1"
- }
- attacker_cfgs = []
- attacker_cfgs.append(attacker_cfg)
- monitor_cfg = {
- "monitor_cmd": "nova image-list",
- "monitor_time": 0.1
- }
- monitor_cfgs = []
- monitor_cfgs.append(monitor_cfg)
-
- options = {
- "attackers": attacker_cfgs,
- "monitors": monitor_cfgs
- }
- sla = {"outage_time": 5}
- self.args = {"options": options, "sla": sla}
-
- @mock.patch('yardstick.benchmark.scenarios.availability.serviceha.basemonitor')
- @mock.patch(
- 'yardstick.benchmark.scenarios.availability.serviceha.baseattacker')
- def test__serviceha_setup_run_successful(self, _,
- mock_monitor):
- p = serviceha.ServiceHA(self.args, self.ctx)
-
- p.setup()
- self.assertTrue(p.setup_done)
- mock_monitor.MonitorMgr().verify_SLA.return_value = True
- ret = {}
- p.run(ret)
- p.teardown()
-
- p.setup()
- self.assertTrue(p.setup_done)
-
-# def test__serviceha_run_sla_error(self, mock_attacker, mock_monitor):
-# p = serviceha.ServiceHA(self.args, self.ctx)
-
-# p.setup()
-# self.assertTrue(p.setup_done)
-#
-# result = {}
-# result["outage_time"] = 10
-# mock_monitor.Monitor().get_result.return_value = result
-
-# ret = {}
-# self.assertRaises(AssertionError, p.run, ret)
diff --git a/tests/unit/benchmark/scenarios/availability/test_util.py b/tests/unit/benchmark/scenarios/availability/test_util.py
deleted file mode 100644
index 548efe91b..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_util.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Kanglin Yin and others
-# 14_ykl@tongji.edu.cn
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.utils
-
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability import util
-
-
-class ExecuteShellTestCase(unittest.TestCase):
-
- def setUp(self):
- self.param_config = {'serviceName': '@serviceName', 'value': 1}
- self.intermediate_variables = {'@serviceName': 'nova-api'}
- self.std_output = '| id | 1 |'
- self.cmd_config = {'cmd': 'ls', 'param': '-a'}
-
- self._mock_subprocess = mock.patch.object(util, 'subprocess')
- self.mock_subprocess = self._mock_subprocess.start()
- self.addCleanup(self._stop_mock)
-
- def _stop_mock(self):
- self._mock_subprocess.stop()
-
- def test_util_build_command_shell(self):
- result = util.build_shell_command(self.param_config, True,
- self.intermediate_variables)
- self.assertIn("nova-api", result)
-
- def test_read_stdout_item(self):
- result = util.read_stdout_item(self.std_output, 'id')
- self.assertEqual('1', result)
-
- def test_buildshellparams(self):
- result = util.buildshellparams(self.cmd_config, True)
- self.assertEqual('/bin/bash -s {0} {1}', result)
-
- def test__fun_execute_shell_command_successful(self):
- cmd = "env"
- self.mock_subprocess.check_output.return_value = (0, 'unittest')
- exitcode, _ = util.execute_shell_command(cmd)
- self.assertEqual(exitcode, 0)
-
- def test__fun_execute_shell_command_fail_cmd_exception(self):
- cmd = "env"
- self.mock_subprocess.check_output.side_effect = RuntimeError
- exitcode, _ = util.execute_shell_command(cmd)
- self.assertEqual(exitcode, -1)
diff --git a/tests/unit/benchmark/scenarios/compute/__init__.py b/tests/unit/benchmark/scenarios/compute/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/compute/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt b/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt
deleted file mode 100644
index e2c79a9b1..000000000
--- a/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Counting cache functions... Output every 1 seconds.
- HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
- 6462 0 29 100.0% 1157 66782
-
-Ending tracing...
diff --git a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt b/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
deleted file mode 100644
index 723e64bcb..000000000
--- a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Linux 3.13.0-68-generic (elxg482ls42) 11/30/2015 _x86_64_ (1 CPU)
-
-04:34:26 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
-04:34:26 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
-04:34:26 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
-
-Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
-Average: all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
-Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
diff --git a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt b/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt
deleted file mode 100644
index c66520a27..000000000
--- a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-cpu 245813227 366650 17338727 1195600354 2652765 178 177114 0 80439531 0
-cpu0 32334587 35782 1659040 87008833 401178 60 73571 0 8030817 0
diff --git a/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt b/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt
deleted file mode 100644
index 1793e2f10..000000000
--- a/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt
+++ /dev/null
@@ -1,3 +0,0 @@
- total used free shared buff/cache available
-Mem: 263753976 76737332 187016644 2844 853528 67252400
-Swap: 268029948 0 268029948
diff --git a/tests/unit/benchmark/scenarios/compute/test_cachestat.py b/tests/unit/benchmark/scenarios/compute/test_cachestat.py
deleted file mode 100644
index b0ddfc6b4..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_cachestat.py
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.cachestat.CACHEstat
-
-from __future__ import absolute_import
-import mock
-import unittest
-import os
-
-from yardstick.benchmark.scenarios.compute import cachestat
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.cachestat.ssh')
-class CACHEstatTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_cachestat_successful_setup(self, mock_ssh):
- c = cachestat.CACHEstat({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- c.setup()
- self.assertIsNotNone(c.client)
- self.assertTrue(c.setup_done)
-
- def test_execute_command_success(self, mock_ssh):
- c = cachestat.CACHEstat({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- expected_result = 'abcdefg'
- mock_ssh.SSH.from_node().execute.return_value = (0, expected_result, '')
- result = c._execute_command("foo")
- self.assertEqual(result, expected_result)
-
- def test_execute_command_failed(self, mock_ssh):
- c = cachestat.CACHEstat({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (127, '', 'Failed executing \
- command')
- self.assertRaises(RuntimeError, c._execute_command,
- "cat /proc/meminfo")
-
- def test_get_cache_usage_successful(self, mock_ssh):
- options = {
- "interval": 1,
- }
- args = {"options": options}
- c = cachestat.CACHEstat(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- output = self._read_file("cachestat_sample_output.txt")
- mock_ssh.SSH.from_node().execute.return_value = (0, output, '')
- result = c._get_cache_usage()
- expected_result = {"cachestat": {"cache0": {"HITS": "6462",
- "DIRTIES": "29",
- "RATIO": "100.0%",
- "MISSES": "0",
- "BUFFERS_MB": "1157",
- "CACHE_MB": "66782"}},
- "average": {"HITS": 6462, "DIRTIES": 29,
- "RATIO": "100.0%",
- "MISSES": 0, "BUFFERS_MB": 1157,
- "CACHE_MB": 66782},
- "max": {"HITS": 6462,
- "DIRTIES": 29, "RATIO": 100.0, "MISSES": 0,
- "BUFFERS_MB": 1157, "CACHE_MB": 66782}}
-
- self.assertEqual(result, expected_result)
-
- def _read_file(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, filename)
- with open(output) as f:
- sample_output = f.read()
- return sample_output
diff --git a/tests/unit/benchmark/scenarios/compute/test_computecapacity.py b/tests/unit/benchmark/scenarios/compute/test_computecapacity.py
deleted file mode 100644
index 7b9a5ad4a..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_computecapacity.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.compute.computecapacity.ComputeCapacity
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.compute import computecapacity
-
-SAMPLE_OUTPUT = '{"Cpu_number": "2", "Core_number": "24",\
- "Memory_size": "263753976 kB", "Thread_number": "48",\
- "Cache_size": "30720 KB", "HT_Open": "0"}'
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.computecapacity.ssh')
-class ComputeCapacityTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'nodes': {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key",
- 'password': "root"
- },
- }
- }
-
- self.result = {}
-
- def test_capacity_successful_setup(self, mock_ssh):
- c = computecapacity.ComputeCapacity({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- c.setup()
- self.assertIsNotNone(c.client)
- self.assertTrue(c.setup_done)
-
- def test_capacity_successful(self, mock_ssh):
- c = computecapacity.ComputeCapacity({}, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, SAMPLE_OUTPUT, '')
- c.run(self.result)
- expected_result = jsonutils.loads(SAMPLE_OUTPUT)
- self.assertEqual(self.result, expected_result)
-
- def test_capacity_unsuccessful_script_error(self, mock_ssh):
- c = computecapacity.ComputeCapacity({}, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, c.run, self.result)
diff --git a/tests/unit/benchmark/scenarios/compute/test_cpuload.py b/tests/unit/benchmark/scenarios/compute/test_cpuload.py
deleted file mode 100644
index 840ac7885..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_cpuload.py
+++ /dev/null
@@ -1,264 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.lmbench.Lmbench
-
-from __future__ import absolute_import
-import mock
-import unittest
-import os
-
-from yardstick.benchmark.scenarios.compute import cpuload
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.cpuload.ssh')
-class CPULoadTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_setup_mpstat_installed(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- l.setup()
- self.assertIsNotNone(l.client)
- self.assertTrue(l.setup_done)
- self.assertTrue(l.has_mpstat)
-
- def test_setup_mpstat_not_installed(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (127, '', '')
-
- l.setup()
- self.assertIsNotNone(l.client)
- self.assertTrue(l.setup_done)
- self.assertFalse(l.has_mpstat)
-
- def test_execute_command_success(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- l.setup()
-
- expected_result = 'abcdefg'
- mock_ssh.SSH.from_node().execute.return_value = (0, expected_result, '')
- result = l._execute_command("foo")
- self.assertEqual(result, expected_result)
-
- def test_execute_command_failed(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- l.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (127, '', 'abcdefg')
- self.assertRaises(RuntimeError, l._execute_command,
- "cat /proc/loadavg")
-
- def test_get_loadavg(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- l.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = \
- (0, '1.50 1.45 1.51 3/813 14322', '')
- result = l._get_loadavg()
- expected_result = \
- {'loadavg': ['1.50', '1.45', '1.51', '3/813', '14322']}
- self.assertEqual(result, expected_result)
-
- def test_get_cpu_usage_mpstat(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- l.setup()
-
- l.interval = 1
- l.count = 1
- mpstat_output = self._read_file("cpuload_sample_output1.txt")
- mock_ssh.SSH.from_node().execute.return_value = (0, mpstat_output, '')
- result = l._get_cpu_usage_mpstat()
-
- expected_result = \
- {"mpstat_minimum":
- {"cpu": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
- "%idle": "100.00", "%guest": "0.00",
- "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
- "%irq": "0.00", "%nice": "0.00"},
- "cpu0": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
- "%idle": "100.00", "%guest": "0.00",
- "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
- "%irq": "0.00", "%nice": "0.00"}},
- "mpstat_average":
- {"cpu": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
- "%idle": "100.00", "%guest": "0.00",
- "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
- "%irq": "0.00", "%nice": "0.00"},
- "cpu0": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
- "%idle": "100.00", "%guest": "0.00",
- "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
- "%irq": "0.00", "%nice": "0.00"}},
- "mpstat_maximun":
- {"cpu": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
- "%idle": "100.00", "%guest": "0.00",
- "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
- "%irq": "0.00", "%nice": "0.00"},
- "cpu0": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
- "%idle": "100.00", "%guest": "0.00",
- "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
- "%irq": "0.00", "%nice": "0.00"}}}
-
- self.assertDictEqual(result, expected_result)
-
- def test_get_cpu_usage(self, mock_ssh):
- options = {
- "interval": 0,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- l.setup()
-
- l.interval = 0
- output = self._read_file("cpuload_sample_output2.txt")
- mock_ssh.SSH.from_node().execute.return_value = (0, output, '')
- result = l._get_cpu_usage()
-
- expected_result = \
- {'mpstat':
- {'cpu':
- {'%steal': '0.00',
- '%usr': '11.31',
- '%gnice': '0.00',
- '%idle': '81.78',
- '%iowait': '0.18',
- '%guest': '5.50',
- '%sys': '1.19',
- '%soft': '0.01',
- '%irq': '0.00',
- '%nice': '0.03'},
- 'cpu0':
- {'%steal': '0.00',
- '%usr': '20.00',
- '%gnice': '0.00',
- '%idle': '71.60',
- '%iowait': '0.33',
- '%guest': '6.61',
- '%sys': '1.37',
- '%soft': '0.06',
- '%irq': '0.00',
- '%nice': '0.03'}}}
-
- self.assertDictEqual(result, expected_result)
-
- def test_run_proc_stat(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
-
- args = {'options': options}
-
- l = cpuload.CPULoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
- l.setup()
-
- l.interval = 0
- stat_output = self._read_file("cpuload_sample_output2.txt")
- mock_ssh.SSH.from_node().execute.side_effect = \
- [(0, '1.50 1.45 1.51 3/813 14322', ''), (0, stat_output, '')]
-
- l.run(self.result)
- expected_result = {
- 'loadavg': ['1.50', '1.45', '1.51', '3/813', '14322'],
- 'mpstat':
- {'cpu':
- {'%steal': '0.00',
- '%usr': '11.31',
- '%gnice': '0.00',
- '%idle': '81.78',
- '%iowait': '0.18',
- '%guest': '5.50',
- '%sys': '1.19',
- '%soft': '0.01',
- '%irq': '0.00',
- '%nice': '0.03'},
- 'cpu0':
- {'%steal': '0.00',
- '%usr': '20.00',
- '%gnice': '0.00',
- '%idle': '71.60',
- '%iowait': '0.33',
- '%guest': '6.61',
- '%sys': '1.37',
- '%soft': '0.06',
- '%irq': '0.00',
- '%nice': '0.03'}}}
-
- self.assertDictEqual(self.result, expected_result)
-
- def _read_file(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, filename)
- with open(output) as f:
- sample_output = f.read()
- return sample_output
diff --git a/tests/unit/benchmark/scenarios/compute/test_cyclictest.py b/tests/unit/benchmark/scenarios/compute/test_cyclictest.py
deleted file mode 100644
index 51ffd2488..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_cyclictest.py
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.cyclictest.Cyclictest
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.compute import cyclictest
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.cyclictest.ssh')
-class CyclictestTestCase(unittest.TestCase):
-
- def setUp(self):
- self.scenario_cfg = {
- "host": "kvm.LF",
- "setup_options": {
- "rpm_dir": "/opt/rpm",
- "host_setup_seqs": [
- "host-setup0.sh",
- "host-setup1.sh",
- "host-run-qemu.sh"
- ],
- "script_dir": "/opt/scripts",
- "image_dir": "/opt/image",
- "guest_setup_seqs": [
- "guest-setup0.sh",
- "guest-setup1.sh"
- ]
- },
- "sla": {
- "action": "monitor",
- "max_min_latency": 50,
- "max_avg_latency": 100,
- "max_max_latency": 1000
- },
- "options": {
- "priority": 99,
- "threads": 1,
- "loops": 1000,
- "affinity": 1,
- "interval": 1000,
- "histogram": 90
- }
- }
- self.context_cfg = {
- "host": {
- "ip": "10.229.43.154",
- "key_filename": "/yardstick/resources/files/yardstick_key",
- "role": "BareMetal",
- "name": "kvm.LF",
- "user": "root"
- }
- }
-
- def test_cyclictest_successful_setup(self, mock_ssh):
-
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- c.setup()
- self.assertIsNotNone(c.guest)
- self.assertIsNotNone(c.host)
- self.assertTrue(c.setup_done)
-
- def test_cyclictest_successful_no_sla(self, mock_ssh):
- result = {}
- self.scenario_cfg.pop("sla", None)
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- c.guest = mock_ssh.SSH.from_node()
- sample_output = '{"min": 100, "avg": 500, "max": 1000}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- c.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_cyclictest_successful_sla(self, mock_ssh):
- result = {}
- self.scenario_cfg.update({"sla": {
- "action": "monitor",
- "max_min_latency": 100,
- "max_avg_latency": 500,
- "max_max_latency": 1000
- }
- })
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- c.guest = mock_ssh.SSH.from_node()
- sample_output = '{"min": 100, "avg": 500, "max": 1000}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- c.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_cyclictest_unsuccessful_sla_min_latency(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_min_latency": 10}})
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- c.guest = mock_ssh.SSH.from_node()
- sample_output = '{"min": 100, "avg": 500, "max": 1000}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, c.run, result)
-
- def test_cyclictest_unsuccessful_sla_avg_latency(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_avg_latency": 10}})
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- c.guest = mock_ssh.SSH.from_node()
- sample_output = '{"min": 100, "avg": 500, "max": 1000}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, c.run, result)
-
- def test_cyclictest_unsuccessful_sla_max_latency(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_max_latency": 10}})
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- c.guest = mock_ssh.SSH.from_node()
- sample_output = '{"min": 100, "avg": 500, "max": 1000}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, c.run, result)
-
- def test_cyclictest_unsuccessful_script_error(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_max_latency": 10}})
- c = cyclictest.Cyclictest(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
-
- c.guest = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, c.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_lmbench.py b/tests/unit/benchmark/scenarios/compute/test_lmbench.py
deleted file mode 100644
index 65939c6ba..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_lmbench.py
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.lmbench.Lmbench
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.compute import lmbench
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.lmbench.ssh')
-class LmbenchTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_successful_setup(self, mock_ssh):
-
- l = lmbench.Lmbench({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- l.setup()
- self.assertIsNotNone(l.client)
- self.assertTrue(l.setup_done)
-
- def test_unsuccessful_unknown_type_run(self, mock_ssh):
-
- options = {
- "test_type": "foo"
- }
- args = {'options': options}
-
- l = lmbench.Lmbench(args, self.ctx)
-
- self.assertRaises(RuntimeError, l.run, self.result)
-
- def test_successful_latency_run_no_sla(self, mock_ssh):
-
- options = {
- "test_type": "latency",
- "stride": 64,
- "stop_size": 16
- }
- args = {'options': options}
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = '[{"latency": 4.944, "size": 0.00049}]'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- l.run(self.result)
- expected_result = {"latencies0.latency": 4.944, "latencies0.size": 0.00049}
- self.assertEqual(self.result, expected_result)
-
- def test_successful_bandwidth_run_no_sla(self, mock_ssh):
-
- options = {
- "test_type": "bandwidth",
- "size": 500,
- "benchmark": "rd",
- "warmup": 0
- }
- args = {"options": options}
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = '{"size(MB)": 0.262144, "bandwidth(MBps)": 11025.5}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- l.run(self.result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(self.result, expected_result)
-
- def test_successful_latency_run_sla(self, mock_ssh):
-
- options = {
- "test_type": "latency",
- "stride": 64,
- "stop_size": 16
- }
- args = {
- "options": options,
- "sla": {"max_latency": 35}
- }
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = '[{"latency": 4.944, "size": 0.00049}]'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- l.run(self.result)
- expected_result = {"latencies0.latency": 4.944, "latencies0.size": 0.00049}
- self.assertEqual(self.result, expected_result)
-
- def test_successful_bandwidth_run_sla(self, mock_ssh):
-
- options = {
- "test_type": "bandwidth",
- "size": 500,
- "benchmark": "rd",
- "warmup": 0
- }
- args = {
- "options": options,
- "sla": {"min_bandwidth": 10000}
- }
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = '{"size(MB)": 0.262144, "bandwidth(MBps)": 11025.5}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- l.run(self.result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(self.result, expected_result)
-
- def test_unsuccessful_latency_run_sla(self, mock_ssh):
-
- options = {
- "test_type": "latency",
- "stride": 64,
- "stop_size": 16
- }
- args = {
- "options": options,
- "sla": {"max_latency": 35}
- }
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = '[{"latency": 37.5, "size": 0.00049}]'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, l.run, self.result)
-
- def test_unsuccessful_bandwidth_run_sla(self, mock_ssh):
-
- options = {
- "test_type": "bandwidth",
- "size": 500,
- "benchmark": "rd",
- "warmup": 0
- }
- args = {
- "options": options,
- "sla": {"min_bandwidth": 10000}
- }
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = '{"size(MB)": 0.262144, "bandwidth(MBps)": 9925.5}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, l.run, self.result)
-
- def test_successful_latency_for_cache_run_sla(self, mock_ssh):
-
- options = {
- "test_type": "latency_for_cache",
- "repetition": 1,
- "warmup": 0
- }
- args = {
- "options": options,
- "sla": {"max_latency": 35}
- }
- l = lmbench.Lmbench(args, self.ctx)
-
- sample_output = "{\"L1cache\": 1.6}"
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- l.run(self.result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(self.result, expected_result)
-
- def test_unsuccessful_script_error(self, mock_ssh):
-
- options = {"test_type": "bandwidth"}
- args = {"options": options}
- l = lmbench.Lmbench(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, l.run, self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_memload.py b/tests/unit/benchmark/scenarios/compute/test_memload.py
deleted file mode 100644
index ebae9993d..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_memload.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.memload.MEMLoad
-
-from __future__ import absolute_import
-import mock
-import unittest
-import os
-
-from yardstick.benchmark.scenarios.compute import memload
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.memload.ssh')
-class MEMLoadTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_memload_successful_setup(self, mock_ssh):
- m = memload.MEMLoad({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- m.setup()
- self.assertIsNotNone(m.client)
- self.assertTrue(m.setup_done)
-
- def test_execute_command_success(self, mock_ssh):
- m = memload.MEMLoad({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- m.setup()
-
- expected_result = 'abcdefg'
- mock_ssh.SSH.from_node().execute.return_value = (0, expected_result, '')
- result = m._execute_command("foo")
- self.assertEqual(result, expected_result)
-
- def test_execute_command_failed(self, mock_ssh):
- m = memload.MEMLoad({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- m.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (127, '', 'Failed executing \
- command')
- self.assertRaises(RuntimeError, m._execute_command,
- "cat /proc/meminfo")
-
- def test_get_mem_usage_successful(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
- args = {"options": options}
- m = memload.MEMLoad(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- m.setup()
-
- output = self._read_file("memload_sample_output.txt")
- mock_ssh.SSH.from_node().execute.return_value = (0, output, '')
- result = m._get_mem_usage()
- expected_result = {
- "max": {
- 'shared': 2844,
- 'buff/cache': 853528,
- 'total': 263753976,
- 'free': 187016644,
- 'used': 76737332
- },
- "average": {
- 'shared': 2844,
- 'buff/cache': 853528,
- 'total': 263753976,
- 'free': 187016644,
- 'used': 76737332
- },
- "free": {
- "memory0": {
- "used": "76737332",
- "buff/cache": "853528",
- "free": "187016644",
- "shared": "2844",
- "total": "263753976",
- "available": "67252400"
- }
- }
- }
-
- self.assertEqual(result, expected_result)
-
- def _read_file(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, filename)
- with open(output) as f:
- sample_output = f.read()
- return sample_output
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_plugintest.py b/tests/unit/benchmark/scenarios/compute/test_plugintest.py
deleted file mode 100644
index 680f6ad65..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_plugintest.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.plugintest.PluginTest
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.compute import plugintest
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.plugintest.ssh')
-class PluginTestTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'nodes': {
- 'host1': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key",
- 'password': "root"
- },
- }
- }
-
- self.result = {}
-
- def test_sample_successful_setup(self, mock_ssh):
- s = plugintest.PluginTest({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- s.setup()
- self.assertIsNotNone(s.client)
- self.assertTrue(s.setup_done)
-
- def test_sample_successful(self, mock_ssh):
- s = plugintest.PluginTest({}, self.ctx)
-
- sample_output = '{"Test Output": "Hello world!"}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- s.run(self.result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(self.result, expected_result)
-
- def test_sample_unsuccessful_script_error(self, mock_ssh):
- s = plugintest.PluginTest({}, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, s.run, self.result)
diff --git a/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py b/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py
deleted file mode 100644
index fb55b809f..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.qemu_migrate.QemuMigrate
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.compute import qemu_migrate
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.qemu_migrate.ssh')
-class QemuMigrateTestCase(unittest.TestCase):
-
- def setUp(self):
- self.scenario_cfg = {
- "host": "kvm.LF",
- "setup_options": {
- "rpm_dir": "/opt/rpm",
- "script_dir": "/opt/scripts",
- "image_dir": "/opt/image",
- "host_setup_seqs": [
- "host-setup0.sh",
- "host-setup1.sh",
- "setup-ovsdpdk.sh",
- "host-install-qemu.sh",
- "host-run-qemu4lm.sh"
- ]
- },
- "sla": {
- "action": "monitor",
- "max_totaltime": 10,
- "max_downtime": 0.10,
- "max_setuptime": 0.50
- },
- "options": {
- "smp": 99,
- "migrate_to_port": 4444,
- "incoming_ip": 0,
- "qmp_src_path": "/tmp/qmp-sock-src",
- "qmp_dst_path": "/tmp/qmp-sock-dst",
- "max_down_time": "0.10"
- }
- }
- self.context_cfg = {
- "host": {
- "ip": "10.229.43.154",
- "key_filename": "/yardstick/resources/files/yardstick_key",
- "role": "BareMetal",
- "name": "kvm.LF",
- "user": "root"
- }
- }
-
- def test_qemu_migrate_successful_setup(self, mock_ssh):
-
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- q.setup()
- self.assertIsNotNone(q.host)
- self.assertTrue(q.setup_done)
-
- def test_qemu_migrate_successful_no_sla(self, mock_ssh):
- result = {}
- self.scenario_cfg.pop("sla", None)
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- q.setup()
-
- sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- q.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_qemu_migrate_successful_sla(self, mock_ssh):
- result = {}
- self.scenario_cfg.update({"sla": {
- "action": "monitor",
- "max_totaltime": 15,
- "max_downtime": 2,
- "max_setuptime": 1
- }
- })
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- q.setup()
-
- sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- q.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_qemu_migrate_unsuccessful_sla_totaltime(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_totaltime": 10}})
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- q.setup()
-
- sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, q.run, result)
-
- def test_qemu_migrate_unsuccessful_sla_downtime(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_downtime": 0.10}})
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- q.setup()
-
- sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, q.run, result)
-
- def test_qemu_migrate_unsuccessful_sla_setuptime(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_setuptime": 0.50}})
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- q.setup()
-
- sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, q.run, result)
-
- def test_qemu_migrate_unsuccessful_script_error(self, mock_ssh):
-
- result = {}
- self.scenario_cfg.update({"sla": {"max_totaltime": 10}})
- q = qemu_migrate.QemuMigrate(self.scenario_cfg, self.context_cfg)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- q.setup()
-
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, q.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_ramspeed.py b/tests/unit/benchmark/scenarios/compute/test_ramspeed.py
deleted file mode 100644
index 4f71fbb36..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_ramspeed.py
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.ramspeed.Ramspeed
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.common import utils
-from yardstick.benchmark.scenarios.compute import ramspeed
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.ramspeed.ssh')
-class RamspeedTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_ramspeed_successful_setup(self, mock_ssh):
-
- r = ramspeed.Ramspeed({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- r.setup()
- self.assertIsNotNone(r.client)
- self.assertTrue(r.setup_done, True)
-
- def test_ramspeed_successful__run_no_sla(self, mock_ssh):
-
- options = {
- "test_id": 1,
- "load": 16,
- "block_size": 32
- }
- args = {"options": options}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- sample_output = '{"Result": [{"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 1, "Bandwidth(MBps)": 19909.18}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 2, "Bandwidth(MBps)": 19873.89},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 4, "Bandwidth(MBps)":\
- 19907.56}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 8,\
- "Bandwidth(MBps)": 19906.94}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 16, "Bandwidth(MBps)": 19881.74}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 32, "Bandwidth(MBps)": 19395.65},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 64, "Bandwidth(MBps)":\
- 17623.14}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 128,\
- "Bandwidth(MBps)": 17677.36}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 256, "Bandwidth(MBps)": 16113.49}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 512, "Bandwidth(MBps)": 14659.19},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 1024, "Bandwidth(MBps)":\
- 14680.75}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 2048,\
- "Bandwidth(MBps)": 14756.45}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 4096, "Bandwidth(MBps)": 14604.44}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 8192, "Bandwidth(MBps)": 14159.86},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 16384,\
- "Bandwidth(MBps)": 14128.94}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 32768, "Bandwidth(MBps)": 8340.85}]}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- r.run(self.result)
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- self.assertEqual(self.result, expected_result)
-
- def test_ramspeed_successful_run_sla(self, mock_ssh):
-
- options = {
- "test_id": 1,
- "load": 16,
- "block_size": 32
- }
- args = {"options": options, "sla": {"min_bandwidth": 6000}}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- sample_output = '{"Result": [{"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 1, "Bandwidth(MBps)": 19909.18}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 2, "Bandwidth(MBps)": 19873.89},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 4, "Bandwidth(MBps)":\
- 19907.56}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 8,\
- "Bandwidth(MBps)": 19906.94}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 16, "Bandwidth(MBps)": 19881.74}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 32, "Bandwidth(MBps)": 19395.65},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 64, "Bandwidth(MBps)":\
- 17623.14}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 128,\
- "Bandwidth(MBps)": 17677.36}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 256, "Bandwidth(MBps)": 16113.49}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 512, "Bandwidth(MBps)": 14659.19},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 1024, "Bandwidth(MBps)":\
- 14680.75}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 2048,\
- "Bandwidth(MBps)": 14756.45}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 4096, "Bandwidth(MBps)": 14604.44}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 8192, "Bandwidth(MBps)": 14159.86},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 16384,\
- "Bandwidth(MBps)": 14128.94}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 32768, "Bandwidth(MBps)": 8340.85}]}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- r.run(self.result)
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- self.assertEqual(self.result, expected_result)
-
- def test_ramspeed_unsuccessful_run_sla(self, mock_ssh):
- options = {
- "test_id": 1,
- "load": 8,
- "block_size": 64
- }
- args = {"options": options, "sla": {"min_bandwidth": 100000}}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- sample_output = '{"Result": [{"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 1, "Bandwidth(MBps)": 5000.18}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 2, "Bandwidth(MBps)": 5000.89},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 4,\
- "Bandwidth(MBps)": 5000.56}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 8, "Bandwidth(MBps)": 19906.94}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 16, "Bandwidth(MBps)": 19881.74},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 32,\
- "Bandwidth(MBps)": 19395.65}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 64, "Bandwidth(MBps)": 17623.14}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 128, "Bandwidth(MBps)": 17677.36},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 256, "Bandwidth(MBps)":\
- 16113.49}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 512,\
- "Bandwidth(MBps)": 14659.19}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 1024, "Bandwidth(MBps)": 14680.75}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 2048, "Bandwidth(MBps)": 14756.45},\
- {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 4096, "Bandwidth(MBps)":\
- 14604.44}, {"Test_type": "INTEGER & WRITING", "Block_size(kb)": 8192,\
- "Bandwidth(MBps)": 14159.86}, {"Test_type": "INTEGER & WRITING",\
- "Block_size(kb)": 16384, "Bandwidth(MBps)": 14128.94}, {"Test_type":\
- "INTEGER & WRITING", "Block_size(kb)": 32768, "Bandwidth(MBps)": 8340.85}]}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, r.run, self.result)
-
- def test_ramspeed_unsuccessful_script_error(self, mock_ssh):
- options = {
- "test_id": 1,
- "load": 16,
- "block_size": 32
- }
- args = {"options": options}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, r.run, self.result)
-
- def test_ramspeed_mem_successful_run_no_sla(self, mock_ssh):
- options = {
- "test_id": 3,
- "load": 16,
- "block_size": 32,
- "iteration": 1
- }
- args = {"options": options}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- sample_output = '{"Result": [{"Test_type": "INTEGER Copy:",\
- "Bandwidth(MBps)": 8353.97}, {"Test_type": "INTEGER Scale:",\
- "Bandwidth(MBps)": 9078.59}, {"Test_type": "INTEGER Add:",\
- "Bandwidth(MBps)": 10057.48}, {"Test_type": "INTEGER Triad:",\
- "Bandwidth(MBps)": 10116.27}, {"Test_type": "INTEGER AVERAGE:",\
- "Bandwidth(MBps)": 9401.58}]}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- r.run(self.result)
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- self.assertEqual(self.result, expected_result)
-
- def test_ramspeed_mem_successful_run_sla(self, mock_ssh):
- options = {
- "test_id": 3,
- "load": 16,
- "block_size": 32,
- "iteration": 1
- }
- args = {"options": options, "sla": {"min_bandwidth": 6000}}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- sample_output = '{"Result": [{"Test_type": "INTEGER Copy:",\
- "Bandwidth(MBps)": 8353.97}, {"Test_type": "INTEGER Scale:",\
- "Bandwidth(MBps)": 9078.59}, {"Test_type": "INTEGER Add:",\
- "Bandwidth(MBps)": 10057.48}, {"Test_type": "INTEGER Triad:",\
- "Bandwidth(MBps)": 10116.27}, {"Test_type": "INTEGER AVERAGE:",\
- "Bandwidth(MBps)": 9401.58}]}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- r.run(self.result)
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- self.assertEqual(self.result, expected_result)
-
- def test_ramspeed_mem_unsuccessful_run_sla(self, mock_ssh):
- options = {
- "test_id": 3,
- "load": 16,
- "block_size": 32,
- "iteration": 1
- }
- args = {"options": options, "sla": {"min_bandwidth": 86000}}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- sample_output = '{"Result": [{"Test_type": "INTEGER Copy:",\
- "Bandwidth(MBps)": 4000.97}, {"Test_type": "INTEGER Scale:",\
- "Bandwidth(MBps)": 4400.59}, {"Test_type": "INTEGER Add:",\
- "Bandwidth(MBps)": 4300.48}, {"Test_type": "INTEGER Triad:",\
- "Bandwidth(MBps)": 1300.27}, {"Test_type": "INTEGER AVERAGE:",\
- "Bandwidth(MBps)": 2401.58}]}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, r.run, self.result)
-
- def test_ramspeed_unsuccessful_unknown_type_run(self, mock_ssh):
- options = {
- "test_id": 30,
- "load": 16,
- "block_size": 32
- }
- args = {'options': options}
- r = ramspeed.Ramspeed(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'No such type_id: 30 for \
- Ramspeed scenario')
- self.assertRaises(RuntimeError, r.run, self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py b/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py
deleted file mode 100644
index 40423b9da..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.spec_cpu.SpecCPU
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-
-from yardstick.common import utils
-from yardstick.benchmark.scenarios.compute import spec_cpu
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.spec_cpu.ssh')
-class SpecCPUTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_spec_cpu_successful_setup(self, mock_ssh):
-
- options = {
- "SPECint_benchmark": "perlbench",
- "runspec_tune": "all",
- "output_format": "all",
- "runspec_iterations": "1",
- "runspec_tune": "base",
- "runspec_size": "test"
- }
- args = {"options": options}
- s = spec_cpu.SpecCPU(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- s.setup()
- self.assertIsNotNone(s.client)
- self.assertTrue(s.setup_done, True)
-
- def test_spec_cpu_successful__run_no_sla(self, mock_ssh):
-
- options = {
- "SPECint_benchmark": "perlbench",
- "runspec_tune": "all",
- "output_format": "all"
- }
- args = {"options": options}
- s = spec_cpu.SpecCPU(args, self.ctx)
-
- sample_output = ''
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- s.run(self.result)
- expected_result = {}
- self.assertEqual(self.result, expected_result)
-
- def test_ramspeed_unsuccessful_script_error(self, mock_ssh):
- options = {
- "benchmark_subset": "int"
- }
- args = {"options": options}
- s = spec_cpu.SpecCPU(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, s.run, self.result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py b/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py
deleted file mode 100644
index c428e1fb8..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.spec_cpu_for_vm.SpecCPUforVM
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-
-from yardstick.benchmark.scenarios.compute import spec_cpu_for_vm
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.spec_cpu_for_vm.ssh')
-class SpecCPUforVMTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_spec_cpu_successful_setup(self, mock_ssh):
-
- options = {
- "SPECint_benchmark": "perlbench",
- "runspec_tune": "all",
- "output_format": "all",
- "runspec_iterations": "1",
- "runspec_size": "test"
- }
- args = {"options": options}
- s = spec_cpu_for_vm.SpecCPUforVM(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- s.setup()
- self.assertIsNotNone(s.client)
- self.assertTrue(s.setup_done, True)
-
- def test_spec_cpu_successful__run_no_sla(self, mock_ssh):
-
- options = {
- "SPECint_benchmark": "perlbench",
- "runspec_tune": "all",
- "output_format": "all"
- }
- args = {"options": options}
- s = spec_cpu_for_vm.SpecCPUforVM(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_ssh.SSH.from_node().get.return_value = (0, '', '')
- s.run(self.result)
- expected_result = {'SPEC_CPU_result': ''}
- self.assertEqual(self.result, expected_result)
-
- def test_spec_cpu_unsuccessful_script_error(self, mock_ssh):
- options = {
- "benchmark_subset": "int"
- }
- args = {"options": options}
- s = spec_cpu_for_vm.SpecCPUforVM(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, s.run, self.result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_unixbench.py b/tests/unit/benchmark/scenarios/compute/test_unixbench.py
deleted file mode 100644
index fec355b45..000000000
--- a/tests/unit/benchmark/scenarios/compute/test_unixbench.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.unixbench.Unixbench
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.compute import unixbench
-
-
-@mock.patch('yardstick.benchmark.scenarios.compute.unixbench.ssh')
-class UnixbenchTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- "host": {
- "ip": "192.168.50.28",
- "user": "root",
- "key_filename": "mykey.key"
- }
- }
-
- def test_unixbench_successful_setup(self, mock_ssh):
-
- u = unixbench.Unixbench({}, self.ctx)
- u.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(u.client)
- self.assertTrue(u.setup_done)
-
- def test_unixbench_successful_no_sla(self, mock_ssh):
-
- options = {
- "test_type": 'dhry2reg',
- "run_mode": 'verbose'
- }
- args = {
- "options": options,
- }
- u = unixbench.Unixbench(args, self.ctx)
- result = {}
-
- u.server = mock_ssh.SSH.from_node()
-
- sample_output = '{"Score":"4425.4"}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- u.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_unixbench_successful_in_quiet_mode(self, mock_ssh):
-
- options = {
- "test_type": 'dhry2reg',
- "run_mode": 'quiet',
- "copies": 1
- }
- args = {
- "options": options,
- }
- u = unixbench.Unixbench(args, self.ctx)
- result = {}
-
- u.server = mock_ssh.SSH.from_node()
-
- sample_output = '{"Score":"4425.4"}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- u.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_unixbench_successful_sla(self, mock_ssh):
-
- options = {
- "test_type": 'dhry2reg',
- "run_mode": 'verbose'
- }
- sla = {
- "single_score": '100',
- "parallel_score": '500'
- }
- args = {
- "options": options,
- "sla": sla
- }
- u = unixbench.Unixbench(args, self.ctx)
- result = {}
-
- u.server = mock_ssh.SSH.from_node()
-
- sample_output = '{"signle_score":"2251.7","parallel_score":"4395.9"}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- u.run(result)
- expected_result = jsonutils.loads(sample_output)
- self.assertEqual(result, expected_result)
-
- def test_unixbench_unsuccessful_sla_single_score(self, mock_ssh):
-
- args = {
- "options": {},
- "sla": {"single_score": "500"}
- }
- u = unixbench.Unixbench(args, self.ctx)
- result = {}
-
- u.server = mock_ssh.SSH.from_node()
- sample_output = '{"single_score":"200.7","parallel_score":"4395.9"}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, u.run, result)
-
- def test_unixbench_unsuccessful_sla_parallel_score(self, mock_ssh):
-
- args = {
- "options": {},
- "sla": {"parallel_score": "4000"}
- }
- u = unixbench.Unixbench(args, self.ctx)
- result = {}
-
- u.server = mock_ssh.SSH.from_node()
- sample_output = '{"signle_score":"2251.7","parallel_score":"3395.9"}'
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, u.run, result)
-
- def test_unixbench_unsuccessful_script_error(self, mock_ssh):
-
- options = {
- "test_type": 'dhry2reg',
- "run_mode": 'verbose'
- }
- sla = {
- "single_score": '100',
- "parallel_score": '500'
- }
- args = {
- "options": options,
- "sla": sla
- }
- u = unixbench.Unixbench(args, self.ctx)
- result = {}
-
- u.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, u.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/dummy/__init__.py b/tests/unit/benchmark/scenarios/dummy/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/dummy/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/dummy/test_dummy.py b/tests/unit/benchmark/scenarios/dummy/test_dummy.py
deleted file mode 100644
index bc5131806..000000000
--- a/tests/unit/benchmark/scenarios/dummy/test_dummy.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.dummy.dummy
-
-from __future__ import absolute_import
-import unittest
-
-from yardstick.benchmark.scenarios.dummy import dummy
-
-
-class DummyTestCase(unittest.TestCase):
-
- def setUp(self):
- self.test_context = dummy.Dummy(None, None)
-
- self.assertIsNone(self.test_context.scenario_cfg)
- self.assertIsNone(self.test_context.context_cfg)
- self.assertFalse(self.test_context.setup_done)
-
- def test_run(self):
- result = {}
- self.test_context.run(result)
-
- self.assertEqual(result["hello"], "yardstick")
- self.assertTrue(self.test_context.setup_done)
diff --git a/tests/unit/benchmark/scenarios/lib/__init__.py b/tests/unit/benchmark/scenarios/lib/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/lib/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py b/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py
deleted file mode 100644
index bda07f723..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py
+++ /dev/null
@@ -1,65 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.add_memory_load import AddMemoryLoad
-
-
-class AddMemoryLoadTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.ssh.SSH.from_node')
- def test_add_memory_load_with_load(self, mock_from_node):
- scenario_cfg = {
- 'options': {
- 'memory_load': 0.5
- }
- }
- context_cfg = {
- 'host': {}
- }
- mock_from_node().execute.return_value = (0, '0 2048 512', '')
- obj = AddMemoryLoad(scenario_cfg, context_cfg)
- obj.run({})
- self.assertTrue(mock_from_node.called)
-
- @mock.patch('yardstick.ssh.SSH.from_node')
- def test_add_memory_load_without_load(self, mock_from_node):
- scenario_cfg = {
- 'options': {
- 'memory_load': 0
- }
- }
- context_cfg = {
- 'host': {}
- }
- obj = AddMemoryLoad(scenario_cfg, context_cfg)
- obj.run({})
- self.assertTrue(mock_from_node.called)
-
- @mock.patch('yardstick.ssh.SSH.from_node')
- def test_add_memory_load_without_args(self, mock_from_node):
- scenario_cfg = {
- 'options': {
- }
- }
- context_cfg = {
- 'host': {}
- }
- obj = AddMemoryLoad(scenario_cfg, context_cfg)
- obj.run({})
- self.assertTrue(mock_from_node.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_attach_volume.py b/tests/unit/benchmark/scenarios/lib/test_attach_volume.py
deleted file mode 100644
index e69924072..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_attach_volume.py
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.attach_volume import AttachVolume
-
-
-class AttachVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.attach_server_volume')
- def test_attach_volume(self, mock_attach_server_volume):
- options = {
- 'volume_id': '123-456-000',
- 'server_id': '000-123-456'
- }
- args = {"options": options}
- obj = AttachVolume(args, {})
- obj.run({})
- self.assertTrue(mock_attach_server_volume.called)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py b/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
deleted file mode 100644
index 1fb2f89ca..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
+++ /dev/null
@@ -1,84 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.lib.check_connectivity.CheckConnectivity
-
-from __future__ import absolute_import
-
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.lib import check_connectivity
-
-
-class CheckConnectivityTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- 'ssh_port': '22'
- },
- 'target': {
- 'ipaddr': '172.16.0.138'
- }
- }
-
- @mock.patch('yardstick.benchmark.scenarios.lib.check_connectivity.ssh')
- def test_check_connectivity(self, mock_ssh):
-
- args = {
- 'options': {'src_ip_addr': '192.168.23.2',
- 'dest_ip_addr': '192.168.23.10',
- 'ssh_user': 'root',
- 'ssh_passwd': 'root',
- 'ssh_port': '22',
- 'ssh_timeout': 600,
- 'ping_parameter': "-s 2048"
- },
- 'sla': {'status': 'True',
- 'action': 'assert'}
- }
-
- result = {}
-
- obj = check_connectivity.CheckConnectivity(args, {})
- obj.setup()
- mock_ssh.SSH.execute.return_value = (0, '100', '')
-
-
- @mock.patch('yardstick.benchmark.scenarios.lib.check_connectivity.ssh')
- def test_check_connectivity_key(self, mock_ssh):
-
- args = {
- 'options': {'ssh_user': 'root',
- 'ssh_key': '/root/.ssh/id_rsa',
- 'ssh_port': '22',
- 'ssh_timeout': 600,
- 'ping_parameter': "-s 2048"
- },
- 'sla': {'status': 'True',
- 'action': 'assert'}
- }
-
- result = {}
-
- obj = check_connectivity.CheckConnectivity(args, self.ctx)
- obj.setup()
-
- mock_ssh.SSH.execute.return_value = (0, '100', '')
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py b/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py
deleted file mode 100644
index 1dd461d41..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py
+++ /dev/null
@@ -1,85 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.check_numa_info import CheckNumaInfo
-
-
-class CheckNumaInfoTestCase(unittest.TestCase):
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.lib.check_numa_info.CheckNumaInfo._check_vm2_status')
- def test_check_numa_info(self, mock_check_vm2):
- scenario_cfg = {'info1': {}, 'info2': {}}
- obj = CheckNumaInfo(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_check_vm2.called)
-
- def test_check_vm2_status_length_eq_1(self):
- info1 = {
- 'pinning': [0],
- 'vcpupin': [{
- 'cpuset': '1,2'
- }]
- }
- info2 = {
- 'pinning': [0],
- 'vcpupin': [{
- 'cpuset': '1,2'
- }]
- }
- scenario_cfg = {'info1': info1, 'info2': info2}
- obj = CheckNumaInfo(scenario_cfg, {})
- status = obj._check_vm2_status(info1, info2)
- self.assertTrue(status)
-
- def test_check_vm2_status_length_gt_1(self):
- info1 = {
- 'pinning': [0, 1],
- 'vcpupin': [{
- 'cpuset': '1,2'
- }]
- }
- info2 = {
- 'pinning': [0, 1],
- 'vcpupin': [{
- 'cpuset': '1,2'
- }]
- }
- scenario_cfg = {'info1': info1, 'info2': info2}
- obj = CheckNumaInfo(scenario_cfg, {})
- status = obj._check_vm2_status(info1, info2)
- self.assertFalse(status)
-
- def test_check_vm2_status_length_not_in_set(self):
- info1 = {
- 'pinning': [0],
- 'vcpupin': [{
- 'cpuset': '1,7'
- }]
- }
- info2 = {
- 'pinning': [0],
- 'vcpupin': [{
- 'cpuset': '1,7'
- }]
- }
- scenario_cfg = {'info1': info1, 'info2': info2}
- obj = CheckNumaInfo(scenario_cfg, {})
- status = obj._check_vm2_status(info1, info2)
- self.assertFalse(status)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_value.py b/tests/unit/benchmark/scenarios/lib/test_check_value.py
deleted file mode 100644
index 21e83f830..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_check_value.py
+++ /dev/null
@@ -1,46 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-
-from yardstick.benchmark.scenarios.lib.check_value import CheckValue
-
-
-class CheckValueTestCase(unittest.TestCase):
-
- def test_check_value_eq(self):
- scenario_cfg = {'options': {'operator': 'eq', 'value1': 1, 'value2': 2}}
- obj = CheckValue(scenario_cfg, {})
- try:
- obj.run({})
- except Exception as e:
- self.assertIsInstance(e, AssertionError)
-
- def test_check_value_eq_pass(self):
- scenario_cfg = {'options': {'operator': 'eq', 'value1': 1, 'value2': 1}}
- obj = CheckValue(scenario_cfg, {})
- try:
- obj.run({})
- except Exception as e:
- self.assertIsInstance(e, AssertionError)
-
- def test_check_value_ne(self):
- scenario_cfg = {'options': {'operator': 'ne', 'value1': 1, 'value2': 1}}
- obj = CheckValue(scenario_cfg, {})
- try:
- obj.run({})
- except Exception as e:
- self.assertIsInstance(e, AssertionError)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_flavor.py b/tests/unit/benchmark/scenarios/lib/test_create_flavor.py
deleted file mode 100644
index 036ae952d..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_flavor.py
+++ /dev/null
@@ -1,37 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_flavor import CreateFlavor
-
-
-class CreateFlavorTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_flavor')
- def test_create_flavor(self, mock_create_flavor):
- options = {
- 'flavor_name': 'yardstick_test_flavor',
- 'vcpus': '2',
- 'ram': '1024',
- 'disk': '100',
- 'is_public': 'True'
- }
- args = {"options": options}
- obj = CreateFlavor(args, {})
- obj.run({})
- self.assertTrue(mock_create_flavor.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py b/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py
deleted file mode 100644
index a7286f5da..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py
+++ /dev/null
@@ -1,58 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib import create_floating_ip
-import yardstick.common.openstack_utils as op_utils
-
-
-class CreateFloatingIpTestCase(unittest.TestCase):
-
- def setUp(self):
- self._mock_get_network_id = mock.patch.object(
- op_utils, 'get_network_id')
- self.mock_get_network_id = self._mock_get_network_id.start()
- self._mock_create_floating_ip = mock.patch.object(
- op_utils, 'create_floating_ip')
- self.mock_create_floating_ip = self._mock_create_floating_ip.start()
- self._mock_get_neutron_client = mock.patch.object(
- op_utils, 'get_neutron_client')
- self.mock_get_neutron_client = self._mock_get_neutron_client.start()
- self._mock_get_shade_client = mock.patch.object(
- op_utils, 'get_shade_client')
- self.mock_get_shade_client = self._mock_get_shade_client.start()
- self._mock_log = mock.patch.object(create_floating_ip, 'LOG')
- self.mock_log = self._mock_log.start()
-
- self._fip_obj = create_floating_ip.CreateFloatingIp(mock.ANY, mock.ANY)
- self._fip_obj.scenario_cfg = {'output': 'key1\nkey2'}
-
- self.addCleanup(self._stop_mock)
-
- def _stop_mock(self):
- self._mock_get_network_id.stop()
- self._mock_create_floating_ip.stop()
- self._mock_get_neutron_client.stop()
- self._mock_get_shade_client.stop()
- self._mock_log.stop()
-
- def test_run(self):
- self.mock_create_floating_ip.return_value = {'fip_id': 'value1',
- 'fip_addr': 'value2'}
- output = self._fip_obj.run(mock.ANY)
- self.assertDictEqual({'key1': 'value1', 'key2': 'value2'}, output)
-
- def test_run_no_fip(self):
- self.mock_create_floating_ip.return_value = None
- output = self._fip_obj.run(mock.ANY)
- self.assertIsNone(output)
- self.mock_log.error.assert_called_once_with(
- 'Creating floating ip failed!')
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_image.py b/tests/unit/benchmark/scenarios/lib/test_create_image.py
deleted file mode 100644
index c213ceba0..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_image.py
+++ /dev/null
@@ -1,41 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_image import CreateImage
-
-
-class CreateImageTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_image')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- def test_create_image(self, mock_get_glance_client, mock_create_image):
- options = {
- 'image_name': 'yardstick_test_image_01',
- 'disk_format': 'qcow2',
- 'container_format': 'bare',
- 'min_disk': '1',
- 'min_ram': '512',
- 'protected': 'False',
- 'tags': '["yardstick automatic test image"]',
- 'file_path': '/home/opnfv/images/cirros-0.3.5-x86_64-disk.img'
- }
- args = {"options": options}
- obj = CreateImage(args, {})
- obj.run({})
- self.assertTrue(mock_create_image.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_keypair.py b/tests/unit/benchmark/scenarios/lib/test_create_keypair.py
deleted file mode 100644
index 4b9b72013..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_keypair.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_keypair import CreateKeypair
-
-PREFIX = "yardstick.benchmark.scenarios.lib.create_keypair"
-
-
-class CreateKeypairTestCase(unittest.TestCase):
- @mock.patch('{}.paramiko'.format(PREFIX))
- @mock.patch('{}.op_utils'.format(PREFIX))
- def test_create_keypair(self, mock_op_utils, mock_paramiko):
- options = {
- 'key_name': 'yardstick_key',
- 'key_path': '/tmp/yardstick_key'
- }
- args = {"options": options}
- obj = CreateKeypair(args, {})
- obj.run({})
- self.assertTrue(mock_op_utils.create_keypair.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_network.py b/tests/unit/benchmark/scenarios/lib/test_create_network.py
deleted file mode 100644
index 8e7d8b5a1..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_network.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_network import CreateNetwork
-
-
-class CreateNetworkTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_neutron_net')
- def test_create_network(self, mock_get_neutron_client, mock_create_neutron_net):
- options = {
- 'openstack_paras': {
- 'name': 'yardstick_net',
- 'admin_state_up': 'True'
- }
- }
- args = {"options": options}
- obj = CreateNetwork(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_neutron_net.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_port.py b/tests/unit/benchmark/scenarios/lib/test_create_port.py
deleted file mode 100644
index 3b2aa2247..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_port.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_port import CreatePort
-
-
-class CreatePortTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- def test_create_port(self, mock_get_neutron_client):
- options = {
- 'openstack_paras': {
- 'name': 'yardstick_port'
- }
- }
- args = {"options": options}
- obj = CreatePort(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_router.py b/tests/unit/benchmark/scenarios/lib/test_create_router.py
deleted file mode 100644
index b956a3634..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_router.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_router import CreateRouter
-
-
-class CreateRouterTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_neutron_router')
- def test_create_router(self, mock_get_neutron_client, mock_create_neutron_router):
- options = {
- 'openstack_paras': {
- 'admin_state_up': 'True',
- 'name': 'yardstick_router'
- }
- }
- args = {"options": options}
- obj = CreateRouter(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_neutron_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py b/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
deleted file mode 100644
index b962f7f0e..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_sec_group import CreateSecgroup
-
-
-class CreateSecGroupTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_security_group_full')
- def test_create_sec_group(self, mock_get_neutron_client, mock_create_security_group_full):
- options = {
- 'openstack_paras': {
- 'sg_name': 'yardstick_sec_group',
- 'description': 'security group for yardstick manual VM'
- }
- }
- args = {"options": options}
- obj = CreateSecgroup(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_security_group_full.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_server.py b/tests/unit/benchmark/scenarios/lib/test_create_server.py
deleted file mode 100644
index 7c4193132..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_server.py
+++ /dev/null
@@ -1,42 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_server import CreateServer
-
-
-class CreateServerTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_instance_and_wait_for_active')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- def test_create_server(self, mock_get_nova_client, mock_get_neutron_client,
- mock_get_glance_client, mock_create_instance_and_wait_for_active):
- scenario_cfg = {
- 'options' : {
- 'openstack_paras': 'example'
- },
- 'output': 'server'
- }
- obj = CreateServer(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_get_glance_client.called)
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_instance_and_wait_for_active.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_subnet.py b/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
deleted file mode 100644
index 0154755c4..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
+++ /dev/null
@@ -1,41 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_subnet import CreateSubnet
-
-
-class CreateSubnetTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_neutron_subnet')
- def test_create_subnet(self, mock_get_neutron_client, mock_create_neutron_subnet):
- options = {
- 'openstack_paras': {
- 'network_id': '123-123-123',
- 'name': 'yardstick_subnet',
- 'cidr': '10.10.10.0/24',
- 'ip_version': '4'
- }
- }
- args = {"options": options}
- obj = CreateSubnet(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_neutron_subnet.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_volume.py b/tests/unit/benchmark/scenarios/lib/test_create_volume.py
deleted file mode 100644
index ef2c0ccaf..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_volume.py
+++ /dev/null
@@ -1,91 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-import yardstick.benchmark.scenarios.lib.create_volume
-
-
-class CreateVolumeTestCase(unittest.TestCase):
-
- def setUp(self):
- self._mock_cinder_client = mock.patch(
- 'yardstick.common.openstack_utils.get_cinder_client')
- self.mock_cinder_client = self._mock_cinder_client.start()
- self._mock_glance_client = mock.patch(
- 'yardstick.common.openstack_utils.get_glance_client')
- self.mock_glance_client = self._mock_glance_client.start()
- self.addCleanup(self._stop_mock)
-
- self.scenario_cfg = {
- "options" :
- {
- 'volume_name': 'yardstick_test_volume_01',
- 'size': '256',
- 'image': 'cirros-0.3.5'
- }
- }
-
- self.scenario = (
- yardstick.benchmark.scenarios.lib.create_volume.CreateVolume(
- scenario_cfg=self.scenario_cfg,
- context_cfg={}))
-
- def _stop_mock(self):
- self._mock_cinder_client.stop()
- self._mock_glance_client.stop()
-
- def test_init(self):
- self.mock_cinder_client.return_value = "All volumes are equal"
- self.mock_glance_client.return_value = "Images are more equal"
-
- expected_vol_name = self.scenario_cfg["options"]["volume_name"]
- expected_vol_size = self.scenario_cfg["options"]["size"]
- expected_im_name = self.scenario_cfg["options"]["image"]
- expected_im_id = None
-
- scenario = (
- yardstick.benchmark.scenarios.lib.create_volume.CreateVolume(
- scenario_cfg=self.scenario_cfg,
- context_cfg={}))
-
- self.assertEqual(expected_vol_name, scenario.volume_name)
- self.assertEqual(expected_vol_size, scenario.volume_size)
- self.assertEqual(expected_im_name, scenario.image_name)
- self.assertEqual(expected_im_id, scenario.image_id)
- self.assertEqual("All volumes are equal", scenario.cinder_client)
- self.assertEqual("Images are more equal", scenario.glance_client)
-
- def test_setup(self):
- self.assertFalse(self.scenario.setup_done)
- self.scenario.setup()
- self.assertTrue(self.scenario.setup_done)
-
- @mock.patch('yardstick.common.openstack_utils.create_volume')
- @mock.patch('yardstick.common.openstack_utils.get_image_id')
- def test_run(self, mock_image_id, mock_create_volume):
- self.scenario.run()
-
- mock_image_id.assert_called_once()
- mock_create_volume.assert_called_once()
-
- @mock.patch.object(
- yardstick.benchmark.scenarios.lib.create_volume.CreateVolume, 'setup')
- def test_run_no_setup(self, scenario_setup):
- self.scenario.setup_done = False
- self.scenario.run()
- scenario_setup.assert_called_once()
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py b/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py
deleted file mode 100644
index 4a91b8939..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py
+++ /dev/null
@@ -1,35 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.delete_flavor import DeleteFlavor
-
-
-class DeleteFlavorTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.delete_flavor')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_delete_flavor(self, mock_get_nova_client, mock_delete_flavor):
- options = {
- 'flavor_name': 'yardstick_test_flavor'
- }
- args = {"options": options}
- obj = DeleteFlavor(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_flavor.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py b/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py
deleted file mode 100644
index 7592c8070..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_floating_ip import DeleteFloatingIp
-
-
-class DeleteFloatingIpTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- @mock.patch('yardstick.common.openstack_utils.delete_floating_ip')
- def test_delete_floating_ip(self, mock_get_nova_client, mock_delete_floating_ip):
- options = {
- 'floating_ip_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteFloatingIp(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_floating_ip.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_image.py b/tests/unit/benchmark/scenarios/lib/test_delete_image.py
deleted file mode 100644
index 2bbf14d16..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_image.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.delete_image import DeleteImage
-
-
-class DeleteImageTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.delete_image')
- @mock.patch('yardstick.common.openstack_utils.get_image_id')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- def test_delete_image(self, mock_get_glance_client, mock_image_id, mock_delete_image):
- options = {
- 'image_name': 'yardstick_test_image_01'
- }
- args = {"options": options}
- obj = DeleteImage(args, {})
- obj.run({})
- self.assertTrue(mock_delete_image.called)
- self.assertTrue(mock_image_id.called)
- self.assertTrue(mock_get_glance_client.called)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py b/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py
deleted file mode 100644
index 9663fe9fb..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_keypair import DeleteKeypair
-
-
-class DeleteKeypairTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- @mock.patch('yardstick.common.openstack_utils.delete_keypair')
- def test_detach_volume(self, mock_get_nova_client, mock_delete_keypair):
- options = {
- 'key_name': 'yardstick_key'
- }
- args = {"options": options}
- obj = DeleteKeypair(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_keypair.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_network.py b/tests/unit/benchmark/scenarios/lib/test_delete_network.py
deleted file mode 100644
index 9ccaa8232..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_network.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_network import DeleteNetwork
-
-
-class DeleteNetworkTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.delete_neutron_net')
- def test_delete_network(self, mock_get_neutron_client, mock_delete_neutron_net):
- options = {
- 'network_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteNetwork(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_delete_neutron_net.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_port.py b/tests/unit/benchmark/scenarios/lib/test_delete_port.py
deleted file mode 100644
index 77b9c7009..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_port.py
+++ /dev/null
@@ -1,34 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_port import DeletePort
-
-
-class DeletePortTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- def test_delete_port(self, mock_get_neutron_client):
- options = {
- 'port_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeletePort(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_router.py b/tests/unit/benchmark/scenarios/lib/test_delete_router.py
deleted file mode 100644
index ab1ad5d35..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_router.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_router import DeleteRouter
-
-
-class DeleteRouterTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.delete_neutron_router')
- def test_delete_router(self, mock_get_neutron_client, mock_delete_neutron_router):
- options = {
- 'router_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteRouter(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_delete_neutron_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py b/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py
deleted file mode 100644
index 1150dccda..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_router_gateway import DeleteRouterGateway
-
-
-class DeleteRouterGatewayTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.remove_gateway_router')
- def test_delete_router_gateway(self, mock_get_neutron_client, mock_remove_gateway_router):
- options = {
- 'router_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteRouterGateway(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_remove_gateway_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py b/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py
deleted file mode 100644
index 2cc9c9f37..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py
+++ /dev/null
@@ -1,37 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_router_interface import DeleteRouterInterface
-
-
-class DeleteRouterInterfaceTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.remove_interface_router')
- def test_delete_router_interface(self, mock_get_neutron_client, mock_remove_interface_router):
- options = {
- 'router_id': '123-123-123',
- 'subnet_id': '321-321-321'
- }
- args = {"options": options}
- obj = DeleteRouterInterface(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_remove_interface_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_server.py b/tests/unit/benchmark/scenarios/lib/test_delete_server.py
deleted file mode 100644
index 622ead5ac..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_server.py
+++ /dev/null
@@ -1,35 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.delete_server import DeleteServer
-
-
-class DeleteServerTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.delete_instance')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_delete_server(self, mock_get_nova_client, mock_delete_instance):
- options = {
- 'server_id': '1234-4567-0000'
- }
- args = {"options": options}
- obj = DeleteServer(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_instance.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_volume.py b/tests/unit/benchmark/scenarios/lib/test_delete_volume.py
deleted file mode 100644
index a11d0121b..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_volume.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_volume import DeleteVolume
-
-
-class DeleteVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_cinder_client')
- @mock.patch('yardstick.common.openstack_utils.delete_volume')
- def test_delete_volume(self, mock_get_cinder_client, mock_delete_volume):
- options = {
- 'volume_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteVolume(args, {})
- obj.run({})
- self.assertTrue(mock_get_cinder_client.called)
- self.assertTrue(mock_delete_volume.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_detach_volume.py b/tests/unit/benchmark/scenarios/lib/test_detach_volume.py
deleted file mode 100644
index 0cffcba15..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_detach_volume.py
+++ /dev/null
@@ -1,35 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.detach_volume import DetachVolume
-
-
-class DetachVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.detach_volume')
- def test_detach_volume(self, mock_detach_volume):
- options = {
- 'server_id': '321-321-321',
- 'volume_id': '123-123-123'
- }
- args = {"options": options}
- obj = DetachVolume(args, {})
- obj.run({})
- self.assertTrue(mock_detach_volume.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_flavor.py b/tests/unit/benchmark/scenarios/lib/test_get_flavor.py
deleted file mode 100644
index bf12e0a32..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_flavor.py
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.get_flavor import GetFlavor
-
-
-class GetFlavorTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_flavor_by_name')
- def test_get_flavor(self, mock_get_flavor_by_name):
- options = {
- 'flavor_name': 'yardstick_test_flavor'
- }
- args = {"options": options}
- obj = GetFlavor(args, {})
- obj.run({})
- self.assertTrue(mock_get_flavor_by_name.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py b/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py
deleted file mode 100644
index f046c92ea..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py
+++ /dev/null
@@ -1,51 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.get_migrate_target_host import GetMigrateTargetHost
-
-BASE = 'yardstick.benchmark.scenarios.lib.get_migrate_target_host'
-
-
-class GetMigrateTargetHostTestCase(unittest.TestCase):
-
- @mock.patch('{}.openstack_utils.get_nova_client'.format(BASE))
- @mock.patch('{}.GetMigrateTargetHost._get_migrate_host'.format(BASE))
- @mock.patch('{}.GetMigrateTargetHost._get_current_host_name'.format(BASE))
- def test_get_migrate_target_host(self,
- mock_get_current_host_name,
- mock_get_migrate_host,
- mock_get_nova_client):
- obj = GetMigrateTargetHost({}, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_get_current_host_name.called)
- self.assertTrue(mock_get_migrate_host.called)
-
- @mock.patch('{}.openstack_utils.get_nova_client'.format(BASE))
- def test_get_migrate_host(self, mock_get_nova_client):
- class A(object):
- def __init__(self, service):
- self.service = service
- self.host = 'host4'
-
- mock_get_nova_client().hosts.list_all.return_value = [A('compute')]
- obj = GetMigrateTargetHost({}, {})
- host = obj._get_migrate_host('host5')
- self.assertTrue(mock_get_nova_client.called)
- self.assertEqual(host, 'host4')
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py b/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py
deleted file mode 100644
index 680692fdc..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py
+++ /dev/null
@@ -1,106 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.get_numa_info import GetNumaInfo
-
-BASE = 'yardstick.benchmark.scenarios.lib.get_numa_info'
-
-
-class GetNumaInfoTestCase(unittest.TestCase):
-
- @mock.patch('{}.GetNumaInfo._check_numa_node'.format(BASE))
- @mock.patch('{}.GetNumaInfo._get_current_host_name'.format(BASE))
- @mock.patch('yardstick.benchmark.scenarios.lib.get_numa_info.yaml_load')
- @mock.patch('yardstick.common.task_template.TaskTemplate.render')
- def test_get_numa_info(self,
- mock_render,
- mock_safe_load,
- mock_get_current_host_name,
- mock_check_numa_node):
- scenario_cfg = {
- 'options': {
- 'server': {
- 'id': '1'
- },
- 'file': 'yardstick/ssh.py'
- },
- 'output': 'numa_info'
- }
- mock_safe_load.return_value = {
- 'nodes': []
- }
- obj = GetNumaInfo(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_current_host_name.called)
- self.assertTrue(mock_check_numa_node.called)
-
- @mock.patch('yardstick.ssh.SSH.from_node')
- @mock.patch('{}.GetNumaInfo._get_current_host_name'.format(BASE))
- @mock.patch('yardstick.benchmark.scenarios.lib.get_numa_info.yaml_load')
- @mock.patch('yardstick.common.task_template.TaskTemplate.render')
- def test_check_numa_node(self,
- mock_render,
- mock_safe_load,
- mock_get_current_host_name,
- mock_from_node):
- scenario_cfg = {
- 'options': {
- 'server': {
- 'id': '1'
- },
- 'file': 'yardstick/ssh.py'
- },
- 'output': 'numa_info'
- }
- mock_safe_load.return_value = {
- 'nodes': []
- }
- data = """
- <data>
- </data>
- """
- mock_from_node().execute.return_value = (0, data, '')
- obj = GetNumaInfo(scenario_cfg, {})
- result = obj._check_numa_node('1', 'host4')
- self.assertEqual(result, {'pinning': [], 'vcpupin': []})
-
- @mock.patch('{}.change_obj_to_dict'.format(BASE))
- @mock.patch('{}.get_nova_client'.format(BASE))
- @mock.patch('yardstick.benchmark.scenarios.lib.get_numa_info.yaml_load')
- @mock.patch('yardstick.common.task_template.TaskTemplate.render')
- def test_get_current_host_name(self,
- mock_render,
- mock_safe_load,
- mock_get_nova_client,
- mock_change_obj_to_dict):
- scenario_cfg = {
- 'options': {
- 'server': {
- 'id': '1'
- },
- 'file': 'yardstick/ssh.py'
- },
- 'output': 'numa_info'
- }
- mock_get_nova_client().servers.get.return_value = ''
- mock_change_obj_to_dict.return_value = {'OS-EXT-SRV-ATTR:host': 'host5'}
-
- obj = GetNumaInfo(scenario_cfg, {})
- result = obj._get_current_host_name('1')
- self.assertEqual(result, 'host5')
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_server.py b/tests/unit/benchmark/scenarios/lib/test_get_server.py
deleted file mode 100644
index aebbf5416..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_server.py
+++ /dev/null
@@ -1,50 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.get_server import GetServer
-
-
-class GetServerTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_server_by_name')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_get_server_with_name(self, mock_get_nova_client, mock_get_server_by_name):
- scenario_cfg = {
- 'options': {
- 'server_name': 'yardstick_server'
- },
- 'output': 'status server'
- }
- obj = GetServer(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_get_server_by_name.called)
-
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_get_server_with_id(self, mock_get_nova_client):
- scenario_cfg = {
- 'options': {
- 'server_id': '1'
- },
- 'output': 'status server'
- }
- mock_get_nova_client().servers.get.return_value = None
- obj = GetServer(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py b/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py
deleted file mode 100644
index 3d20d5439..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py
+++ /dev/null
@@ -1,41 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-
-from yardstick.benchmark.scenarios.lib.get_server_ip import GetServerIp
-
-
-class GetServerIpTestCase(unittest.TestCase):
- def test_get_server_ip(self):
- scenario_cfg = {
- 'options': {
- 'server': {
- 'addresses': {
- 'net1': [
- {
- 'OS-EXT-IPS:type': 'floating',
- 'addr': '127.0.0.1'
- }
- ]
- }
- }
- },
- 'output': 'ip'
- }
- obj = GetServerIp(scenario_cfg, {})
- result = obj.run({})
- self.assertEqual(result, {'ip': '127.0.0.1'})
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/__init__.py b/tests/unit/benchmark/scenarios/networking/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/networking/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/networking/imix_voice.yaml b/tests/unit/benchmark/scenarios/networking/imix_voice.yaml
deleted file mode 100644
index b8f8e5358..000000000
--- a/tests/unit/benchmark/scenarios/networking/imix_voice.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2016-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.
-
-#imix definition for voice traffic
-#
-# it is a typical case for testing the synthetic VNF performance.
-#
-#percentage of the packets can be less than 100%
-#the traffic in downstream and upstream direction could be different
-
-schema: "nsb:imix:0.1"
-
-imix:
- private:
- imix_small: 100 #ipv4 case - 72B should be 0 ipv6 case - 84B
- imix_128B: 0
- imix_256B: 0
- imix_373B: 0
- imix_570B: 0
- imix_1400B: 0
- imix_1500B: 0
-
- public:
- imix_small: 100 #ipv4 case - 72B ipv6 - 84B
- imix_128B: 0
- imix_256B: 0
- imix_373B: 0
- imix_570B: 0
- imix_1400B: 0
- imix_1500B: 0
diff --git a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json b/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json
deleted file mode 100644
index b56009ba1..000000000
--- a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json
+++ /dev/null
@@ -1 +0,0 @@
-{"start": {"connecting_to": {"host": "172.16.0.252", "port": 5201}, "timestamp": {"timesecs": 1436254758, "time": "Tue, 07 Jul 2015 07:39:18 GMT"}, "test_start": {"protocol": "TCP", "num_streams": 1, "omit": 0, "bytes": 0, "blksize": 131072, "duration": 10, "blocks": 0, "reverse": 0}, "system_info": "Linux client 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux\n", "version": "iperf 3.0.7", "connected": [{"local_host": "10.0.1.2", "local_port": 37633, "remote_host": "172.16.0.252", "socket": 4, "remote_port": 5201}], "cookie": "client.1436254758.606879.1fb328dc230", "tcp_mss_default": 1448}, "intervals": [{"sum": {"end": 1.00068, "seconds": 1.00068, "bytes": 16996624, "bits_per_second": 135881000.0, "start": 0, "retransmits": 0, "omitted": false}, "streams": [{"end": 1.00068, "socket": 4, "seconds": 1.00068, "bytes": 16996624, "bits_per_second": 135881000.0, "start": 0, "retransmits": 0, "omitted": false, "snd_cwnd": 451776}]}, {"sum": {"end": 2.00048, "seconds": 0.999804, "bytes": 20010192, "bits_per_second": 160113000.0, "start": 1.00068, "retransmits": 0, "omitted": false}, "streams": [{"end": 2.00048, "socket": 4, "seconds": 0.999804, "bytes": 20010192, "bits_per_second": 160113000.0, "start": 1.00068, "retransmits": 0, "omitted": false, "snd_cwnd": 713864}]}, {"sum": {"end": 3.00083, "seconds": 1.00035, "bytes": 18330464, "bits_per_second": 146592000.0, "start": 2.00048, "retransmits": 0, "omitted": false}, "streams": [{"end": 3.00083, "socket": 4, "seconds": 1.00035, "bytes": 18330464, "bits_per_second": 146592000.0, "start": 2.00048, "retransmits": 0, "omitted": false, "snd_cwnd": 768888}]}, {"sum": {"end": 4.00707, "seconds": 1.00624, "bytes": 19658376, "bits_per_second": 156292000.0, "start": 3.00083, "retransmits": 0, "omitted": false}, "streams": [{"end": 4.00707, "socket": 4, "seconds": 1.00624, "bytes": 19658376, "bits_per_second": 156292000.0, "start": 3.00083, "retransmits": 0, "omitted": false, "snd_cwnd": 812328}]}, {"sum": {"end": 5.00104, "seconds": 0.993972, "bytes": 15709072, "bits_per_second": 126435000.0, "start": 4.00707, "retransmits": 0, "omitted": false}, "streams": [{"end": 5.00104, "socket": 4, "seconds": 0.993972, "bytes": 15709072, "bits_per_second": 126435000.0, "start": 4.00707, "retransmits": 0, "omitted": false, "snd_cwnd": 849976}]}, {"sum": {"end": 6.00049, "seconds": 0.999443, "bytes": 19616288, "bits_per_second": 157018000.0, "start": 5.00104, "retransmits": 53, "omitted": false}, "streams": [{"end": 6.00049, "socket": 4, "seconds": 0.999443, "bytes": 19616288, "bits_per_second": 157018000.0, "start": 5.00104, "retransmits": 53, "omitted": false, "snd_cwnd": 641464}]}, {"sum": {"end": 7.00085, "seconds": 1.00036, "bytes": 22250480, "bits_per_second": 177939000.0, "start": 6.00049, "retransmits": 0, "omitted": false}, "streams": [{"end": 7.00085, "socket": 4, "seconds": 1.00036, "bytes": 22250480, "bits_per_second": 177939000.0, "start": 6.00049, "retransmits": 0, "omitted": false, "snd_cwnd": 706624}]}, {"sum": {"end": 8.00476, "seconds": 1.00391, "bytes": 22282240, "bits_per_second": 177564000.0, "start": 7.00085, "retransmits": 0, "omitted": false}, "streams": [{"end": 8.00476, "socket": 4, "seconds": 1.00391, "bytes": 22282240, "bits_per_second": 177564000.0, "start": 7.00085, "retransmits": 0, "omitted": false, "snd_cwnd": 761648}]}, {"sum": {"end": 9.0016, "seconds": 0.996847, "bytes": 19657680, "bits_per_second": 157759000.0, "start": 8.00476, "retransmits": 28, "omitted": false}, "streams": [{"end": 9.0016, "socket": 4, "seconds": 0.996847, "bytes": 19657680, "bits_per_second": 157759000.0, "start": 8.00476, "retransmits": 28, "omitted": false, "snd_cwnd": 570512}]}, {"sum": {"end": 10.0112, "seconds": 1.00955, "bytes": 20932520, "bits_per_second": 165876000.0, "start": 9.0016, "retransmits": 0, "omitted": false}, "streams": [{"end": 10.0112, "socket": 4, "seconds": 1.00955, "bytes": 20932520, "bits_per_second": 165876000.0, "start": 9.0016, "retransmits": 0, "omitted": false, "snd_cwnd": 615400}]}], "end": {"sum_received": {"seconds": 10.0112, "start": 0, "end": 10.0112, "bytes": 193366712, "bits_per_second": 154521000.0}, "streams": [{"sender": {"end": 10.0112, "socket": 4, "seconds": 10.0112, "bytes": 195443936, "bits_per_second": 156181000.0, "start": 0, "retransmits": 81}, "receiver": {"end": 10.0112, "socket": 4, "seconds": 10.0112, "bytes": 193366712, "bits_per_second": 154521000.0, "start": 0}}], "sum_sent": {"end": 10.0112, "seconds": 10.0112, "bytes": 195443936, "bits_per_second": 156181000.0, "start": 0, "retransmits": 81}, "cpu_utilization_percent": {"remote_user": 1.10295, "remote_system": 40.0403, "host_user": 2.41785, "remote_total": 41.1438, "host_system": 5.09548, "host_total": 7.51411}}} \ No newline at end of file
diff --git a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json b/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json
deleted file mode 100644
index 8173c8f64..000000000
--- a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"start":{"connected":[{"socket":4, "local_host":"10.0.1.2", "local_port":46384, "remote_host":"172.16.9.195", "remote_port":5201}], "version":"iperf 3.0.7", "system_info":"Linux zeus 3.13.0-61-generic #100-Ubuntu SMP Wed Jul 29 11:21:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux\n", "timestamp":{"time":"Tue, 29 Sep 2015 01:48:23 GMT", "timesecs":1443491303}, "connecting_to":{"host":"172.16.9.195", "port":5201}, "cookie":"zeus.1443491303.539703.3479129b58a5b", "test_start":{"protocol":"UDP", "num_streams":1, "blksize":8192, "omit":0, "duration":10, "bytes":0, "blocks":0, "reverse":0}}, "intervals":[{"streams":[{"socket":4, "start":0, "end":1.00022, "seconds":1.00022, "bytes":2252800, "bits_per_second":1.80184e+07, "packets":275, "omitted":false}], "sum":{"start":0, "end":1.00022, "seconds":1.00022, "bytes":2252800, "bits_per_second":1.80184e+07, "packets":275, "omitted":false}}, {"streams":[{"socket":4, "start":1.00022, "end":2.00022, "seconds":0.999993, "bytes":2498560, "bits_per_second":1.99886e+07, "packets":305, "omitted":false}], "sum":{"start":1.00022, "end":2.00022, "seconds":0.999993, "bytes":2498560, "bits_per_second":1.99886e+07, "packets":305, "omitted":false}}, {"streams":[{"socket":4, "start":2.00022, "end":3.00022, "seconds":1, "bytes":2506752, "bits_per_second":2.0054e+07, "packets":306, "omitted":false}], "sum":{"start":2.00022, "end":3.00022, "seconds":1, "bytes":2506752, "bits_per_second":2.0054e+07, "packets":306, "omitted":false}}, {"streams":[{"socket":4, "start":3.00022, "end":4.00022, "seconds":1, "bytes":2498560, "bits_per_second":19988480, "packets":305, "omitted":false}], "sum":{"start":3.00022, "end":4.00022, "seconds":1, "bytes":2498560, "bits_per_second":19988480, "packets":305, "omitted":false}}, {"streams":[{"socket":4, "start":4.00022, "end":5.0002, "seconds":0.999977, "bytes":2498560, "bits_per_second":1.99889e+07, "packets":305, "omitted":false}], "sum":{"start":4.00022, "end":5.0002, "seconds":0.999977, "bytes":2498560, "bits_per_second":1.99889e+07, "packets":305, "omitted":false}}, {"streams":[{"socket":4, "start":5.0002, "end":6.00024, "seconds":1.00004, "bytes":2498560, "bits_per_second":1.99877e+07, "packets":305, "omitted":false}], "sum":{"start":5.0002, "end":6.00024, "seconds":1.00004, "bytes":2498560, "bits_per_second":1.99877e+07, "packets":305, "omitted":false}}, {"streams":[{"socket":4, "start":6.00024, "end":7.00023, "seconds":0.999998, "bytes":2498560, "bits_per_second":1.99885e+07, "packets":305, "omitted":false}], "sum":{"start":6.00024, "end":7.00023, "seconds":0.999998, "bytes":2498560, "bits_per_second":1.99885e+07, "packets":305, "omitted":false}}, {"streams":[{"socket":4, "start":7.00023, "end":8.00023, "seconds":0.999999, "bytes":2506752, "bits_per_second":2.0054e+07, "packets":306, "omitted":false}], "sum":{"start":7.00023, "end":8.00023, "seconds":0.999999, "bytes":2506752, "bits_per_second":2.0054e+07, "packets":306, "omitted":false}}, {"streams":[{"socket":4, "start":8.00023, "end":9.00018, "seconds":0.999945, "bytes":2498560, "bits_per_second":1.99896e+07, "packets":305, "omitted":false}], "sum":{"start":8.00023, "end":9.00018, "seconds":0.999945, "bytes":2498560, "bits_per_second":1.99896e+07, "packets":305, "omitted":false}}, {"streams":[{"socket":4, "start":9.00018, "end":10.0002, "seconds":1.00004, "bytes":2498560, "bits_per_second":1.99876e+07, "packets":305, "omitted":false}], "sum":{"start":9.00018, "end":10.0002, "seconds":1.00004, "bytes":2498560, "bits_per_second":1.99876e+07, "packets":305, "omitted":false}}], "end":{"streams":[{"udp":{"socket":4, "start":0, "end":10.0002, "seconds":10.0002, "bytes":24756224, "bits_per_second":1.98045e+07, "jitter_ms":0.0113579, "lost_packets":0, "packets":3022, "lost_percent":0}}], "sum":{"start":0, "end":10.0002, "seconds":10.0002, "bytes":24756224, "bits_per_second":1.98045e+07, "jitter_ms":0.0113579, "lost_packets":0, "packets":3022, "lost_percent":0}, "cpu_utilization_percent":{"host_total":0.647561, "host_user":0.146468, "host_system":0.501083, "remote_total":0.31751, "remote_user":0, "remote_system":0.31751}}}
diff --git a/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml b/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml
deleted file mode 100644
index f3046f463..000000000
--- a/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (c) 2016-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.
-
-flow:
- srcip4_range: '152.16.0.20'
- dstip4_range: '152.40.0.20'
- count: 1
diff --git a/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml b/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml
deleted file mode 100644
index 2123e4705..000000000
--- a/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright (c) 2016-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.
-
-# flow definition for ACL tests - 1K flows - ipv4 only
-#
-# the number of flows defines the widest range of parameters
-# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255
-# and it should define only 16 flows
-#
-#there is assumption that packets generated will have a random sequences of following addresses pairs
-# in the packets
-# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
-# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
-# ...
-# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
-#
-# not all combination should be filled
-# Any other field with random range will be added to flow definition
-#
-# the example.yaml provides all possibilities for traffic generation
-#
-# the profile defines a public and private side to make limited traffic correlation
-# between private and public side same way as it is made by IXIA solution.
-#
-schema: "isb:traffic_profile:0.1"
-
-# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
-
-name: rfc2544
-description: Traffic profile to run RFC2544 latency
-traffic_profile:
- traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
- frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
-
-private:
- ipv4:
- outer_l2:
- framesize:
- 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}"
- 128B: "{{ get(imix, 'imix.uplink.imix_128B', '0') }}"
- 256B: "{{ get(imix, 'imix.uplink.imix_256B', '0') }}"
- 373b: "{{ get(imix, 'imix.uplink.imix_373B', '0') }}"
- 570B: "{{get(imix, 'imix.uplink.imix_570B', '0') }}"
- 1400B: "{{get(imix, 'imix.uplink.imix_1400B', '0') }}"
- 1518B: "{{get(imix, 'imix.uplink.imix_1500B', '0') }}"
-
- QinQ:
- S-VLAN:
- id: 128
- priority: 0
- cfi: 0
- C-VLAN:
- id: 512
- priority: 0
- cfi: 0
-
- outer_l3v4:
- proto: "tcp"
- srcip4: "{{get(flow, 'flow.srcip4_range', '192.168.0.0-192.168.255.255') }}"
- dstip4: "{{get(flow, 'flow.dstip4_range', '192.16.0.0-192.16.0.31') }}"
- ttl: 32
- dscp: 32
-
- outer_l4:
- srcport: "{{get(flow, 'flow.srcport_range', '0') }}"
- dstport: "{{get(flow, 'flow.dstport_range', '0') }}"
-public:
- ipv4:
- outer_l2:
- framesize:
- 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}"
- 128B: "{{ get(imix, 'imix.uplink.imix_128B', '0') }}"
- 256B: "{{ get(imix, 'imix.uplink.imix_256B', '0') }}"
- 373b: "{{ get(imix, 'imix.uplink.imix_373B', '0') }}"
- 570B: "{{get(imix, 'imix.uplink.imix_570B', '0') }}"
- 1400B: "{{get(imix, 'imix.uplink.imix_1400B', '0') }}"
- 1518B: "{{get(imix, 'imix.uplink.imix_1500B', '0') }}"
-
- outer_l3v4:
- proto: "tcp"
- srcip4: "{{get(flow, 'flow.dstip4_range', '192.16.0.0-192.16.0.31') }}"
- dstip4: "{{get(flow, 'flow.srcip4_range', '192.168.0.0-192.168.255.255') }}"
- ttl: 32
- dscp: 32
-
- outer_l4:
- srcport: "{{get(flow, 'flow.dstport_range', '0') }}"
- dstport: "{{get(flow, 'flow.srcport_range', '0') }}"
diff --git a/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json b/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json
deleted file mode 100755
index bba76cfa5..000000000
--- a/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json
+++ /dev/null
@@ -1 +0,0 @@
-{"mean_latency":"9.49","troughput":"823.77","troughput_unit":"10^6bits/s"} \ No newline at end of file
diff --git a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt b/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt
deleted file mode 100644
index f90457cb3..000000000
--- a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Linux 3.19.0-25-generic (huawei-pod4) 07/19/2016 _x86_64_ (1 CPU)
-
-02:01:50 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
-02:01:51 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-02:01:51 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-
-Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
-Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
diff --git a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt b/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt
deleted file mode 100644
index 417613ec1..000000000
--- a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Linux 3.19.0-25-generic (huawei-pod4) 07/19/2016 _x86_64_ (1 CPU)
-
-02:01:50 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
-02:01:51 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-02:01:51 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-
-02:01:52 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
-02:01:53 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-02:01:53 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-
-Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
-Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
diff --git a/tests/unit/benchmark/scenarios/networking/test_iperf3.py b/tests/unit/benchmark/scenarios/networking/test_iperf3.py
deleted file mode 100644
index 4d3745230..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_iperf3.py
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.iperf3.Iperf
-
-from __future__ import absolute_import
-
-import os
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.common import utils
-from yardstick.benchmark.scenarios.networking import iperf3
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.iperf3.ssh')
-class IperfTestCase(unittest.TestCase):
- output_name_tcp = 'iperf3_sample_output.json'
- output_name_udp = 'iperf3_sample_output_udp.json'
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- 'ipaddr': '172.16.0.138',
- }
- }
-
- def test_iperf_successful_setup(self, mock_ssh):
-
- p = iperf3.Iperf({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p.setup()
- self.assertIsNotNone(p.target)
- self.assertIsNotNone(p.host)
- mock_ssh.SSH.from_node().execute.assert_called_with("iperf3 -s -D")
-
- def test_iperf_unsuccessful_setup(self, mock_ssh):
-
- p = iperf3.Iperf({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.setup)
-
- def test_iperf_successful_teardown(self, mock_ssh):
-
- p = iperf3.Iperf({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
- p.target = mock_ssh.SSH.from_node()
-
- p.teardown()
- self.assertTrue(mock_ssh.SSH.from_node().close.called)
- mock_ssh.SSH.from_node().execute.assert_called_with("pkill iperf3")
-
- def test_iperf_successful_no_sla(self, mock_ssh):
-
- options = {}
- args = {'options': options}
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.output_name_tcp)
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_iperf_successful_sla(self, mock_ssh):
-
- options = {}
- args = {
- 'options': options,
- 'sla': {'bytes_per_second': 15000000}
- }
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.output_name_tcp)
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_iperf_unsuccessful_sla(self, mock_ssh):
-
- options = {}
- args = {
- 'options': options,
- 'sla': {'bytes_per_second': 25000000}
- }
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.output_name_tcp)
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_iperf_successful_sla_jitter(self, mock_ssh):
- options = {"protocol": "udp", "bandwidth": "20m"}
- args = {
- 'options': options,
- 'sla': {'jitter': 10}
- }
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.output_name_udp)
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_iperf_unsuccessful_sla_jitter(self, mock_ssh):
- options = {"protocol": "udp", "bandwidth": "20m"}
- args = {
- 'options': options,
- 'sla': {'jitter': 0.0001}
- }
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.output_name_udp)
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_iperf_successful_tcp_protocal(self, mock_ssh):
- options = {"protocol": "tcp", "nodelay": "yes"}
- args = {
- 'options': options,
- 'sla': {'bytes_per_second': 15000000}
- }
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.output_name_tcp)
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = utils.flatten_dict_key(jsonutils.loads(sample_output))
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_iperf_unsuccessful_script_error(self, mock_ssh):
-
- options = {}
- args = {'options': options}
- result = {}
-
- p = iperf3.Iperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def _read_sample_output(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, filename)
- with open(output) as f:
- sample_output = f.read()
- return sample_output
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_netperf.py b/tests/unit/benchmark/scenarios/networking/test_netperf.py
deleted file mode 100755
index d82a00931..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_netperf.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.netperf.Netperf
-
-from __future__ import absolute_import
-
-import os
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.networking import netperf
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.netperf.ssh')
-class NetperfTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'cirros',
- 'key_filename': 'mykey.key',
- 'ipaddr': '172.16.0.138'
- }
- }
-
- def test_netperf_successful_setup(self, mock_ssh):
-
- p = netperf.Netperf({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p.setup()
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_netperf_successful_no_sla(self, mock_ssh):
-
- options = {}
- args = {'options': options}
- result = {}
-
- p = netperf.Netperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output()
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = jsonutils.loads(sample_output)
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_netperf_successful_sla(self, mock_ssh):
-
- options = {}
- args = {
- 'options': options,
- 'sla': {'mean_latency': 100}
- }
- result = {}
-
- p = netperf.Netperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output()
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = jsonutils.loads(sample_output)
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_netperf_unsuccessful_sla(self, mock_ssh):
-
- options = {}
- args = {
- 'options': options,
- 'sla': {'mean_latency': 5}
- }
- result = {}
-
- p = netperf.Netperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output()
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_netperf_unsuccessful_script_error(self, mock_ssh):
-
- options = {}
- args = {'options': options}
- result = {}
-
- p = netperf.Netperf(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def _read_sample_output(self):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, 'netperf_sample_output.json')
- with open(output) as f:
- sample_output = f.read()
- return sample_output
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_netperf_node.py b/tests/unit/benchmark/scenarios/networking/test_netperf_node.py
deleted file mode 100755
index 8be9bb94d..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_netperf_node.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.networking.netperf_node.NetperfNode
-
-from __future__ import absolute_import
-
-import os
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.networking import netperf_node
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.netperf_node.ssh')
-class NetperfNodeTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '192.168.10.10',
- 'user': 'root',
- 'password': 'root'
- },
- 'target': {
- 'ip': '192.168.10.11',
- 'user': 'root',
- 'password': 'root'
- }
- }
-
- def test_netperf_node_successful_setup(self, mock_ssh):
-
- p = netperf_node.NetperfNode({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p.setup()
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_netperf_node_successful_no_sla(self, mock_ssh):
-
- options = {}
- args = {'options': options}
- result = {}
-
- p = netperf_node.NetperfNode(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output()
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = jsonutils.loads(sample_output)
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_netperf_node_successful_sla(self, mock_ssh):
-
- options = {}
- args = {
- 'options': options,
- 'sla': {'mean_latency': 100}
- }
- result = {}
-
- p = netperf_node.NetperfNode(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output()
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- expected_result = jsonutils.loads(sample_output)
- p.run(result)
- self.assertEqual(result, expected_result)
-
- def test_netperf_node_unsuccessful_sla(self, mock_ssh):
-
- options = {}
- args = {
- 'options': options,
- 'sla': {'mean_latency': 5}
- }
- result = {}
-
- p = netperf_node.NetperfNode(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output()
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_netperf_node_unsuccessful_script_error(self, mock_ssh):
-
- options = {}
- args = {'options': options}
- result = {}
-
- p = netperf_node.NetperfNode(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- p.host = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def _read_sample_output(self):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, 'netperf_sample_output.json')
- with open(output) as f:
- sample_output = f.read()
- return sample_output
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_netutilization.py b/tests/unit/benchmark/scenarios/networking/test_netutilization.py
deleted file mode 100644
index 1227e056e..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_netutilization.py
+++ /dev/null
@@ -1,227 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and other.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.networking.netutilization.NetUtilization
-
-from __future__ import absolute_import
-import mock
-import unittest
-import os
-
-from yardstick.benchmark.scenarios.networking import netutilization
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.netutilization.ssh')
-class NetUtilizationTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- def test_setup_success(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
- args = {'options': options}
-
- n = netutilization.NetUtilization(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- n.setup()
- self.assertIsNotNone(n.client)
- self.assertTrue(n.setup_done)
-
- def test_execute_command_success(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
- args = {'options': options}
-
- n = netutilization.NetUtilization(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- n.setup()
-
- expected_result = 'abcdefg'
- mock_ssh.SSH.from_node().execute.return_value = (0, expected_result, '')
- result = n._execute_command("foo")
- self.assertEqual(result, expected_result)
-
- def test_execute_command_failed(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
- args = {'options': options}
-
- n = netutilization.NetUtilization(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- n.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (127, '', 'abcdefg')
- self.assertRaises(RuntimeError, n._execute_command,
- "failed")
-
- def test_get_network_utilization_success(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 1
- }
- args = {'options': options}
-
- n = netutilization.NetUtilization(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- n.setup()
-
- mpstat_output = self._read_file("netutilization_sample_output1.txt")
- mock_ssh.SSH.from_node().execute.return_value = (0, mpstat_output, '')
- result = n._get_network_utilization()
-
- expected_result = \
- {"network_utilization_maximun": {
- "lo": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"},
- "eth0": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"}},
- "network_utilization_average": {
- "lo": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"},
- "eth0": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"}},
- "network_utilization_minimum": {
- "lo": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"},
- "eth0": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"}}}
-
- self.assertDictEqual(result, expected_result)
-
- def test_get_network_utilization_2_success(self, mock_ssh):
- options = {
- "interval": 1,
- "count": 2
- }
- args = {'options': options}
-
- n = netutilization.NetUtilization(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- n.setup()
-
- mpstat_output = self._read_file("netutilization_sample_output2.txt")
- mock_ssh.SSH.from_node().execute.return_value = (0, mpstat_output, '')
- result = n._get_network_utilization()
-
- expected_result = \
- {"network_utilization_maximun": {
- "lo": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"},
- "eth0": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"}},
- "network_utilization_average": {
- "lo": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"},
- "eth0": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"}},
- "network_utilization_minimum": {
- "lo": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"},
- "eth0": {"rxcmp/s": "0.00",
- "%ifutil": "0.00",
- "txcmp/s": "0.00",
- "txkB/s": "0.00",
- "rxkB/s": "0.00",
- "rxpck/s": "0.00",
- "txpck/s": "0.00",
- "rxmcst/s": "0.00"}}}
-
- self.assertDictEqual(result, expected_result)
-
- def _read_file(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, filename)
- with open(output) as f:
- sample_output = f.read()
- return sample_output
diff --git a/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py b/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py
deleted file mode 100644
index 3e7a3c5ee..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.networking.networkcapacity.NetworkCapacity
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.networking import networkcapacity
-
-SAMPLE_OUTPUT = \
- '{"Number of connections":"308","Number of frames received": "166503"}'
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.networkcapacity.ssh')
-class NetworkCapacityTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'password': "root"
- },
- }
-
- self.result = {}
-
- def test_capacity_successful_setup(self, mock_ssh):
- c = networkcapacity.NetworkCapacity({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
- self.assertIsNotNone(c.client)
- self.assertTrue(c.setup_done)
-
- def test_capacity_successful(self, mock_ssh):
- c = networkcapacity.NetworkCapacity({}, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, SAMPLE_OUTPUT, '')
- c.run(self.result)
- expected_result = jsonutils.loads(SAMPLE_OUTPUT)
- self.assertEqual(self.result, expected_result)
-
- def test_capacity_unsuccessful_script_error(self, mock_ssh):
- c = networkcapacity.NetworkCapacity({}, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, c.run, self.result)
diff --git a/tests/unit/benchmark/scenarios/networking/test_nstat.py b/tests/unit/benchmark/scenarios/networking/test_nstat.py
deleted file mode 100644
index 4b58e06c1..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_nstat.py
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.nstat.Nstat
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-
-from yardstick.benchmark.scenarios.networking import nstat
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.nstat.ssh')
-class NstatTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- "host": {
- "ip": "192.168.50.28",
- "user": "root",
- "key_filename": "mykey.key"
- }
- }
-
- def test_nstat_successful_setup(self, mock_ssh):
-
- n = nstat.Nstat({}, self.ctx)
- n.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(n.client)
- self.assertTrue(n.setup_done)
-
- def test_nstat_successful_no_sla(self, mock_ssh):
-
- options = {
- "duration": 0
- }
- args = {
- "options": options,
- }
- n = nstat.Nstat(args, self.ctx)
- result = {}
-
- sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n' # pylint: disable=line-too-long
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- n.run(result)
- expected_result = {"TcpInErrs": 0, "UdpInDatagrams": 1318,
- "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2,
- "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2,
- "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319,
- "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0,
- "Icmp_message_error_rate": 0.0, "UdpInErrors": 0}
- self.assertEqual(result, expected_result)
-
- def test_nstat_successful_sla(self, mock_ssh):
-
- options = {
- "duration": 0
- }
- sla = {
- "IP_datagram_error_rate": 0.1
- }
- args = {
- "options": options,
- "sla": sla
- }
- n = nstat.Nstat(args, self.ctx)
- result = {}
-
- sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n' # pylint: disable=line-too-long
-
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- n.run(result)
- expected_result = {"TcpInErrs": 0, "UdpInDatagrams": 1318,
- "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2,
- "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2,
- "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319,
- "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0,
- "Icmp_message_error_rate": 0.0, "UdpInErrors": 0}
- self.assertEqual(result, expected_result)
-
- def test_nstat_unsuccessful_cmd_error(self, mock_ssh):
-
- options = {
- "duration": 0
- }
- sla = {
- "IP_datagram_error_rate": 0.1
- }
- args = {
- "options": options,
- "sla": sla
- }
- n = nstat.Nstat(args, self.ctx)
- result = {}
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, n.run, result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_ping.py b/tests/unit/benchmark/scenarios/networking/test_ping.py
deleted file mode 100644
index 06353249a..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_ping.py
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.ping.Ping
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import ping
-
-
-class PingTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key"
- },
- "target": {
- "ipaddr": "10.229.17.105",
- }
- }
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping.ssh')
- def test_ping_successful_no_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 200},
- 'target': 'ares.demo'
- }
- result = {}
-
- p = ping.Ping(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '100', '')
- p.run(result)
- self.assertEqual(result, {'rtt.ares': 100.0})
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping.ssh')
- def test_ping_successful_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 200},
- 'sla': {'max_rtt': 150},
- 'target': 'ares.demo'
- }
- result = {}
-
- p = ping.Ping(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '100', '')
- p.run(result)
- self.assertEqual(result, {'rtt.ares': 100.0})
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping.ssh')
- def test_ping_unsuccessful_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 200},
- 'sla': {'max_rtt': 50},
- 'target': 'ares.demo'
- }
- result = {}
-
- p = ping.Ping(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '100', '')
- self.assertRaises(AssertionError, p.run, result)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping.ssh')
- def test_ping_unsuccessful_script_error(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 200},
- 'sla': {'max_rtt': 50},
- 'target': 'ares.demo'
- }
- result = {}
-
- p = ping.Ping(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_ping6.py b/tests/unit/benchmark/scenarios/networking/test_ping6.py
deleted file mode 100644
index d2be6f576..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_ping6.py
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.ping.Ping
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import ping6
-
-
-class PingTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'nodes': {
- 'host1': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'role': "Controller",
- 'key_filename': "mykey.key",
- 'password': "root"
- },
- 'host2': {
- "ip": "172.16.0.138",
- "key_filename": "/root/.ssh/id_rsa",
- "role": "Compute",
- "name": "node3.IPV6",
- "user": "root"
- },
- }
- }
-
- def test_get_controller_node(self):
- args = {
- 'options': {'host': 'host1', 'packetsize': 200, 'ping_count': 5},
- 'sla': {'max_rtt': 50}
- }
- p = ping6.Ping6(args, self.ctx)
- controller_node = p._get_controller_node(['host1', 'host2'])
- self.assertEqual(controller_node, 'host1')
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
- def test_ping_successful_setup(self, mock_ssh):
- args = {
- 'options': {'host': 'host1', 'packetsize': 200, 'ping_count': 5},
- 'sla': {'max_rtt': 50}
- }
- p = ping6.Ping6(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '0', '')
- p.setup()
-
- self.assertTrue(p.setup_done)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
- def test_ping_successful_no_sla(self, mock_ssh):
- args = {
- 'options': {'host': 'host1', 'packetsize': 200, 'ping_count': 5},
-
- }
- result = {}
-
- p = ping6.Ping6(args, self.ctx)
- p.client = mock_ssh.SSH.from_node()
- mock_ssh.SSH.from_node().execute.side_effect = [(0, 'host1', ''), (0, 100, '')]
- p.run(result)
- self.assertEqual(result, {'rtt': 100.0})
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
- def test_ping_successful_sla(self, mock_ssh):
- args = {
- 'options': {'host': 'host1', 'packetsize': 200, 'ping_count': 5},
- 'sla': {'max_rtt': 150}
- }
- result = {}
-
- p = ping6.Ping6(args, self.ctx)
- p.client = mock_ssh.SSH.from_node()
- mock_ssh.SSH.from_node().execute.side_effect = [(0, 'host1', ''), (0, 100, '')]
- p.run(result)
- self.assertEqual(result, {'rtt': 100.0})
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
- def test_ping_unsuccessful_sla(self, mock_ssh):
- args = {
- 'options': {'host': 'host1', 'packetsize': 200, 'ping_count': 5},
- 'sla': {'max_rtt': 50}
- }
- result = {}
-
- p = ping6.Ping6(args, self.ctx)
- p.client = mock_ssh.SSH.from_node()
- mock_ssh.SSH.from_node().execute.side_effect = [(0, 'host1', ''), (0, 100, '')]
- self.assertRaises(AssertionError, p.run, result)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
- def test_ping_unsuccessful_script_error(self, mock_ssh):
-
- args = {
- 'options': {'host': 'host1', 'packetsize': 200, 'ping_count': 5},
- 'sla': {'max_rtt': 150}
- }
- result = {}
-
- p = ping6.Ping6(args, self.ctx)
- p.client = mock_ssh.SSH.from_node()
- mock_ssh.SSH.from_node().execute.side_effect = [
- (0, 'host1', ''), (1, '', 'FOOBAR')]
- self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_pktgen.py b/tests/unit/benchmark/scenarios/networking/test_pktgen.py
deleted file mode 100644
index 005b53177..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_pktgen.py
+++ /dev/null
@@ -1,760 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.pktgen.Pktgen
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.networking import pktgen
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.pktgen.ssh')
-class PktgenTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- 'ipaddr': '172.16.0.138'
- }
- }
-
- def test_pktgen_successful_setup(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_pktgen_successful_iptables_setup(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p._iptables_setup()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo iptables -F; "
- "sudo iptables -A INPUT -p udp --dport 1000:%s -j DROP"
- % 1010, timeout=60)
-
- def test_pktgen_unsuccessful_iptables_setup(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p._iptables_setup)
-
- def test_pktgen_successful_iptables_get_result(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '150000', '')
- p._iptables_get_result()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo iptables -L INPUT -vnx |"
- "awk '/dpts:1000:%s/ {{printf \"%%s\", $1}}'"
- % 1010)
-
- def test_pktgen_unsuccessful_iptables_get_result(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p._iptables_get_result)
-
- def test_pktgen_successful_no_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "packetsize": 60, "flows": 110, "ppm": 3179}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_successful_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 10000}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "packetsize": 60, "flows": 110, "ppm": 3179}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_unsuccessful_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 1000}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "packetsize": 60, "flows": 110}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_pktgen_unsuccessful_script_error(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 1000}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_pktgen_get_vnic_driver_name(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, 'ixgbevf', '')
-
- vnic_driver_name = p._get_vnic_driver_name()
- self.assertEqual(vnic_driver_name, 'ixgbevf')
-
- def test_pktgen_unsuccessful_get_vnic_driver_name(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_vnic_driver_name)
-
- def test_pktgen_get_sriov_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '2', '')
-
- p.queue_number = p._get_sriov_queue_number()
- self.assertEqual(p.queue_number, 2)
-
- def test_pktgen_unsuccessful_get_sriov_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_sriov_queue_number)
-
- def test_pktgen_get_available_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '4', '')
-
- p._get_available_queue_number()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo ethtool -l eth0 | grep Combined | head -1 |"
- "awk '{printf $2}'")
-
- def test_pktgen_unsuccessful_get_available_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_available_queue_number)
-
- def test_pktgen_get_usable_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- p._get_usable_queue_number()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo ethtool -l eth0 | grep Combined | tail -1 |"
- "awk '{printf $2}'")
-
- def test_pktgen_unsuccessful_get_usable_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_usable_queue_number)
-
- def test_pktgen_enable_ovs_multiqueue(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '4', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 4
- p._get_available_queue_number = mock_result2
-
- p.queue_number = p._enable_ovs_multiqueue()
- self.assertEqual(p.queue_number, 4)
-
- def test_pktgen_enable_ovs_multiqueue_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 1
- p._get_available_queue_number = mock_result2
-
- p.queue_number = p._enable_ovs_multiqueue()
- self.assertEqual(p.queue_number, 1)
-
- def test_pktgen_unsuccessful_enable_ovs_multiqueue(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 4
- p._get_available_queue_number = mock_result2
-
- self.assertRaises(RuntimeError, p._enable_ovs_multiqueue)
-
- def test_pktgen_setup_irqmapping_ovs(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_ovs(4)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 8 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_setup_irqmapping_ovs_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_ovs(1)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 1 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_unsuccessful_setup_irqmapping_ovs(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_ovs, 4)
-
- def test_pktgen_unsuccessful_setup_irqmapping_ovs_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_ovs, 1)
-
- def test_pktgen_setup_irqmapping_sriov(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_sriov(2)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 2 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_setup_irqmapping_sriov_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_sriov(1)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 1 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_unsuccessful_setup_irqmapping_sriov(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_sriov, 2)
-
- def test_pktgen_unsuccessful_setup_irqmapping_sriov_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_sriov, 1)
-
- def test_pktgen_is_irqbalance_disabled(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p._is_irqbalance_disabled()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "grep ENABLED /etc/default/irqbalance")
-
- def test_pktgen_unsuccessful_is_irqbalance_disabled(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._is_irqbalance_disabled)
-
- def test_pktgen_disable_irqbalance(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p._disable_irqbalance()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo service irqbalance disable")
-
- def test_pktgen_unsuccessful_disable_irqbalance(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._disable_irqbalance)
-
- def test_pktgen_multiqueue_setup_ovs(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '4', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "virtio_net"
- p._get_vnic_driver_name = mock_result2
-
- mock_result3 = mock.Mock()
- mock_result3.return_value = 1
- p._get_usable_queue_number = mock_result3
-
- mock_result4 = mock.Mock()
- mock_result4.return_value = 4
- p._get_available_queue_number = mock_result4
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 4)
-
- def test_pktgen_multiqueue_setup_ovs_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "virtio_net"
- p._get_vnic_driver_name = mock_result2
-
- mock_result3 = mock.Mock()
- mock_result3.return_value = 1
- p._get_usable_queue_number = mock_result3
-
- mock_result4 = mock.Mock()
- mock_result4.return_value = 1
- p._get_available_queue_number = mock_result4
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 1)
-
- def test_pktgen_multiqueue_setup_sriov(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '2', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "ixgbevf"
- p._get_vnic_driver_name = mock_result2
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 2)
-
- def test_pktgen_multiqueue_setup_sriov_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "ixgbevf"
- p._get_vnic_driver_name = mock_result2
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 1)
-
- def test_pktgen_run_with_setup_done(self, mock_ssh):
- args = {
- 'options': {
- 'packetsize': 60,
- 'number_of_ports': 10,
- 'duration': 20,
- 'multiqueue': True},
- 'sla': {
- 'max_ppm': 1}}
- result = {}
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- p.setup_done = True
- p.multiqueue_setup_done = True
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149300, "flows": 110, "ppm": 0}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_run_with_ovs_multiqueque(self, mock_ssh):
- args = {
- 'options': {
- 'packetsize': 60,
- 'number_of_ports': 10,
- 'duration': 20,
- 'multiqueue': True},
- 'sla': {
- 'max_ppm': 1}}
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_result = mock.Mock()
- mock_result.return_value = "virtio_net"
- p._get_vnic_driver_name = mock_result
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 4
- p._get_available_queue_number = mock_result2
-
- mock_result3 = mock.Mock()
- mock_result3.return_value = 4
- p._enable_ovs_multiqueue = mock_result3
-
- mock_result4 = mock.Mock()
- p._setup_irqmapping_ovs = mock_result4
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149300, "flows": 110, "ppm": 0}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_run_with_sriov_multiqueque(self, mock_ssh):
- args = {
- 'options': {
- 'packetsize': 60,
- 'number_of_ports': 10,
- 'duration': 20,
- 'multiqueue': True},
- 'sla': {
- 'max_ppm': 1}}
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = "ixgbevf"
- p._get_vnic_driver_name = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 2
- p._get_sriov_queue_number = mock_result2
-
- mock_result3 = mock.Mock()
- p._setup_irqmapping_sriov = mock_result3
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149300, "flows": 110, "ppm": 0}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py b/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py
deleted file mode 100644
index c9eec4b94..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py
+++ /dev/null
@@ -1,192 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 ZTE and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.pktgen.Pktgen
-
-from __future__ import absolute_import
-import unittest
-
-import mock
-
-import yardstick.common.utils as utils
-from yardstick.benchmark.scenarios.networking import pktgen_dpdk
-
-
-class PktgenDPDKLatencyTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- 'ipaddr': '172.16.0.138'
- }
- }
-
- self._mock_ssh = mock.patch(
- 'yardstick.benchmark.scenarios.networking.pktgen_dpdk.ssh')
- self.mock_ssh = self._mock_ssh.start()
- self._mock_time = mock.patch(
- 'yardstick.benchmark.scenarios.networking.pktgen_dpdk.time')
- self.mock_time = self._mock_time.start()
-
- self.addCleanup(self._stop_mock)
-
- def _stop_mock(self):
- self._mock_ssh.stop()
- self._mock_time.stop()
-
- def test_pktgen_dpdk_successful_setup(self):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.setup()
-
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_pktgen_dpdk_successful_get_port_ip(self):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = self.mock_ssh.SSH.from_node()
-
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- utils.get_port_ip(p.server, "eth1")
-
- self.mock_ssh.SSH.from_node().execute.assert_called_with(
- "ifconfig eth1 |grep 'inet addr' |awk '{print $2}' |cut -d ':' -f2 ")
-
- def test_pktgen_dpdk_unsuccessful_get_port_ip(self):
-
- args = {
- 'options': {'packetsize': 60},
- }
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = self.mock_ssh.SSH.from_node()
-
- self.mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, utils.get_port_ip, p.server, "eth1")
-
- def test_pktgen_dpdk_successful_get_port_mac(self):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = self.mock_ssh.SSH.from_node()
-
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- utils.get_port_mac(p.server, "eth1")
-
- self.mock_ssh.SSH.from_node().execute.assert_called_with(
- "ifconfig |grep HWaddr |grep eth1 |awk '{print $5}' ")
-
- def test_pktgen_dpdk_unsuccessful_get_port_mac(self):
-
- args = {
- 'options': {'packetsize': 60},
- }
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = self.mock_ssh.SSH.from_node()
-
- self.mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, utils.get_port_mac, p.server, "eth1")
-
- def test_pktgen_dpdk_successful_no_sla(self):
-
- args = {
- 'options': {'packetsize': 60},
- }
-
- result = {}
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- sample_output = '100\n110\n112\n130\n149\n150\n90\n150\n200\n162\n'
- self.mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- # with python 3 we get float, might be due python division changes
- # AssertionError: {'avg_latency': 132.33333333333334} != {
- # 'avg_latency': 132}
- delta = result['avg_latency'] - 132
- self.assertLessEqual(delta, 1)
-
- def test_pktgen_dpdk_successful_sla(self):
-
- args = {
- 'options': {'packetsize': 60},
- 'sla': {'max_latency': 100}
- }
- result = {}
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- sample_output = '100\n100\n100\n100\n100\n100\n100\n100\n100\n100\n'
- self.mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- self.assertEqual(result, {"avg_latency": 100})
-
- def test_pktgen_dpdk_unsuccessful_sla(self):
-
- args = {
- 'options': {'packetsize': 60},
- 'sla': {'max_latency': 100}
- }
- result = {}
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- p.server = self.mock_ssh.SSH.from_node()
- p.client = self.mock_ssh.SSH.from_node()
-
- sample_output = '100\n110\n112\n130\n149\n150\n90\n150\n200\n162\n'
- self.mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_pktgen_dpdk_unsuccessful_script_error(self):
-
- args = {
- 'options': {'packetsize': 60},
- 'sla': {'max_latency': 100}
- }
- result = {}
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- self.mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py b/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py
deleted file mode 100644
index c2e35af75..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py
+++ /dev/null
@@ -1,198 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Nokia and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-#!/usr/bin/env python
-
-# Unittest for yardstick.benchmark.scenarios.networking.pktgen.PktgenDPDK
-
-from __future__ import absolute_import
-import unittest
-
-from oslo_serialization import jsonutils
-import mock
-
-from yardstick.benchmark.scenarios.networking import pktgen_dpdk_throughput
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.pktgen_dpdk_throughput.ssh')
-class PktgenDPDKTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- }
- }
-
- self._mock_time = mock.patch(
- 'yardstick.benchmark.scenarios.networking.pktgen_dpdk_throughput.time')
- self.mock_time = self._mock_time.start()
-
- self.addCleanup(self._cleanup)
-
- def _cleanup(self):
- self._mock_time.stop()
-
- def test_pktgen_dpdk_throughput_successful_setup(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
- p.setup()
-
- mock_ssh.SSH().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_pktgen_dpdk_throughput_successful_no_sla(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- result = {}
-
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
-
- p.server = mock_ssh.SSH()
- p.client = mock_ssh.SSH()
-
- mock_dpdk_result = mock.Mock()
- mock_dpdk_result.return_value = 149300
- p._dpdk_get_result = mock_dpdk_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "flows": 110}'
- mock_ssh.SSH().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_dpdk_throughput_successful_sla(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 10000}
- }
- result = {}
-
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
-
- p.server = mock_ssh.SSH()
- p.client = mock_ssh.SSH()
-
- mock_dpdk_result = mock.Mock()
- mock_dpdk_result.return_value = 149300
- p._dpdk_get_result = mock_dpdk_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "flows": 110}'
- mock_ssh.SSH().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_dpdk_throughput_unsuccessful_sla(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 1000}
- }
- result = {}
-
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
-
- p.server = mock_ssh.SSH()
- p.client = mock_ssh.SSH()
-
- mock_dpdk_result = mock.Mock()
- mock_dpdk_result.return_value = 149300
- p._dpdk_get_result = mock_dpdk_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "flows": 110}'
- mock_ssh.SSH().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_pktgen_dpdk_throughput_unsuccessful_script_error(
- self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 1000}
- }
- result = {}
-
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
-
- p.server = mock_ssh.SSH()
- p.client = mock_ssh.SSH()
-
- mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_pktgen_dpdk_throughput_is_dpdk_setup(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
- p.server = mock_ssh.SSH()
-
- mock_ssh.SSH().execute.return_value = (0, '', '')
-
- p._is_dpdk_setup("server")
-
- mock_ssh.SSH().execute.assert_called_with(
- "ip a | grep eth1 2>/dev/null")
-
- def test_pktgen_dpdk_throughput_dpdk_setup(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
- p.server = mock_ssh.SSH()
- p.client = mock_ssh.SSH()
-
- mock_ssh.SSH().execute.return_value = (0, '', '')
-
- p.dpdk_setup()
-
- self.assertTrue(p.dpdk_setup_done)
-
- def test_pktgen_dpdk_throughput_dpdk_get_result(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk_throughput.PktgenDPDK(args, self.ctx)
- p.server = mock_ssh.SSH()
- p.client = mock_ssh.SSH()
-
- mock_ssh.SSH().execute.return_value = (0, '10000', '')
-
- p._dpdk_get_result()
-
- mock_ssh.SSH().execute.assert_called_with(
- "sudo /dpdk/destdir/bin/dpdk-procinfo -- --stats-reset > /dev/null 2>&1")
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_sfc.py b/tests/unit/benchmark/scenarios/networking/test_sfc.py
deleted file mode 100644
index 78c0352dd..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_sfc.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.sfc
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import sfc
-
-
-class SfcTestCase(unittest.TestCase):
-
- def setUp(self):
- scenario_cfg = {}
- context_cfg = {
- # Used in Sfc.setup()
- 'target': {
- 'user': 'root',
- 'password': 'opnfv',
- 'ip': '127.0.0.1',
- },
-
- # Used in Sfc.run()
- 'host': {
- 'user': 'root',
- 'password': 'opnfv',
- 'ip': None,
- }
- }
-
- self.sfc = sfc.Sfc(scenario_cfg=scenario_cfg, context_cfg=context_cfg)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.sfc.ssh')
- @mock.patch('yardstick.benchmark.scenarios.networking.sfc.sfc_openstack')
- @mock.patch('yardstick.benchmark.scenarios.networking.sfc.subprocess')
- def test_run_for_success(self, mock_subprocess, mock_openstack, mock_ssh):
- # Mock a successfull SSH in Sfc.setup() and Sfc.run()
- mock_ssh.SSH.from_node().execute.return_value = (0, '100', '')
- mock_openstack.get_an_IP.return_value = "127.0.0.1"
- mock_subprocess.call.return_value = 'mocked!'
-
- result = {}
- self.sfc.setup()
- self.sfc.run(result)
- self.sfc.teardown()
-
- @mock.patch('yardstick.benchmark.scenarios.networking.sfc.ssh')
- @mock.patch('yardstick.benchmark.scenarios.networking.sfc.sfc_openstack')
- @mock.patch('yardstick.benchmark.scenarios.networking.sfc.subprocess')
- def test2_run_for_success(self, mock_subprocess, mock_openstack, mock_ssh):
- # Mock a successfull SSH in Sfc.setup() and Sfc.run()
- mock_ssh.SSH.from_node().execute.return_value = (
- 0, 'vxlan_tool.py', 'succeeded timed out')
- mock_openstack.get_an_IP.return_value = "127.0.0.1"
- mock_subprocess.call.return_value = 'mocked!'
-
- result = {}
- self.sfc.setup()
- self.sfc.run(result)
- self.sfc.teardown()
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py b/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py
deleted file mode 100644
index 016608a21..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py
+++ /dev/null
@@ -1,787 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-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.
-#
-
-# Unittest for yardstick.benchmark.scenarios.networking.test_vnf_generic
-
-from __future__ import absolute_import
-
-import os
-import errno
-import unittest
-import mock
-
-from copy import deepcopy
-
-from tests.unit import STL_MOCKS
-from yardstick.benchmark.scenarios.networking.vnf_generic import \
- SshManager, NetworkServiceTestCase, IncorrectConfig, \
- open_relative_file
-from yardstick.network_services.collector.subscriber import Collector
-from yardstick.network_services.vnf_generic.vnf.base import \
- GenericTrafficGen, GenericVNF
-
-
-COMPLETE_TREX_VNFD = {
- 'vnfd:vnfd-catalog': {
- 'vnfd': [
- {
- 'benchmark': {
- 'kpi': [
- 'rx_throughput_fps',
- 'tx_throughput_fps',
- 'tx_throughput_mbps',
- 'rx_throughput_mbps',
- 'tx_throughput_pc_linerate',
- 'rx_throughput_pc_linerate',
- 'min_latency',
- 'max_latency',
- 'avg_latency',
- ],
- },
- 'connection-point': [
- {
- 'name': 'xe0',
- 'type': 'VPORT',
- },
- {
- 'name': 'xe1',
- 'type': 'VPORT',
- },
- ],
- 'description': 'TRex stateless traffic generator for RFC2544',
- 'id': 'TrexTrafficGen',
- 'mgmt-interface': {
- 'ip': '1.1.1.1',
- 'password': 'berta',
- 'user': 'berta',
- 'vdu-id': 'trexgen-baremetal',
- },
- 'name': 'trexgen',
- 'short-name': 'trexgen',
- 'class-name': 'TrexTrafficGen',
- 'vdu': [
- {
- 'description': 'TRex stateless traffic generator for RFC2544',
- 'external-interface': [
- {
- 'name': 'xe0',
- 'virtual-interface': {
- 'bandwidth': '10 Gbps',
- 'dst_ip': '1.1.1.1',
- 'dst_mac': '00:01:02:03:04:05',
- 'local_ip': '1.1.1.2',
- 'local_mac': '00:01:02:03:05:05',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': "255.255.255.0",
- 'driver': 'i40',
- 'vpci': '0000:00:10.2',
- },
- 'vnfd-connection-point-ref': 'xe0',
- },
- {
- 'name': 'xe1',
- 'virtual-interface': {
- 'bandwidth': '10 Gbps',
- 'dst_ip': '2.1.1.1',
- 'dst_mac': '00:01:02:03:04:06',
- 'local_ip': '2.1.1.2',
- 'local_mac': '00:01:02:03:05:06',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': "255.255.255.0",
- 'driver': 'i40',
- 'vpci': '0000:00:10.1',
- },
- 'vnfd-connection-point-ref': 'xe1',
- },
- ],
- 'id': 'trexgen-baremetal',
- 'name': 'trexgen-baremetal',
- },
- ],
- },
- ],
- },
-}
-
-IP_ADDR_SHOW = """
-28: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP \
-group default qlen 1000
- link/ether 90:e2:ba:a7:6a:c8 brd ff:ff:ff:ff:ff:ff
- inet 1.1.1.1/8 brd 1.255.255.255 scope global eth1
- inet6 fe80::92e2:baff:fea7:6ac8/64 scope link
- valid_lft forever preferred_lft forever
-29: eth5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP \
-group default qlen 1000
- link/ether 90:e2:ba:a7:6a:c9 brd ff:ff:ff:ff:ff:ff
- inet 2.1.1.1/8 brd 2.255.255.255 scope global eth5
- inet6 fe80::92e2:baff:fea7:6ac9/64 scope link tentative
- valid_lft forever preferred_lft forever
-"""
-
-SYS_CLASS_NET = """
-lrwxrwxrwx 1 root root 0 sie 10 14:16 eth1 -> \
-../../devices/pci0000:80/0000:80:02.2/0000:84:00.1/net/eth1
-lrwxrwxrwx 1 root root 0 sie 3 10:37 eth2 -> \
-../../devices/pci0000:00/0000:00:01.1/0000:84:00.2/net/eth5
-"""
-
-TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64,
- },
-}
-
-
-class TestNetworkServiceTestCase(unittest.TestCase):
-
- def setUp(self):
- self.tg__1 = {
- 'name': 'trafficgen_1.yardstick',
- 'ip': '10.10.10.11',
- 'role': 'TrafficGen',
- 'user': 'root',
- 'password': 'r00t',
- 'interfaces': {
- 'xe0': {
- 'netmask': '255.255.255.0',
- 'local_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01',
- 'driver': 'i40e',
- 'vpci': '0000:07:00.0',
- 'dpdk_port_num': 0,
- },
- 'xe1': {
- 'netmask': '255.255.255.0',
- 'local_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02',
- 'driver': 'i40e',
- 'vpci': '0000:07:00.1',
- 'dpdk_port_num': 1,
- },
- },
- }
-
- self.vnf__1 = {
- 'name': 'vnf.yardstick',
- 'ip': '10.10.10.12',
- 'host': '10.223.197.164',
- 'role': 'vnf',
- 'user': 'root',
- 'password': 'r00t',
- 'interfaces': {
- 'xe0': {
- 'netmask': '255.255.255.0',
- 'local_ip': '152.16.100.19',
- 'local_mac': '00:00:00:00:00:03',
- 'driver': 'i40e',
- 'vpci': '0000:07:00.0',
- 'dpdk_port_num': 0,
- },
- 'xe1': {
- 'netmask': '255.255.255.0',
- 'local_ip': '152.16.40.19',
- 'local_mac': '00:00:00:00:00:04',
- 'driver': 'i40e',
- 'vpci': '0000:07:00.1',
- 'dpdk_port_num': 1,
- },
- },
- 'routing_table': [
- {
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'network': '152.16.100.20',
- 'if': 'xe0',
- },
- {
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'network': '152.16.40.20',
- 'if': 'xe1',
- },
- ],
- 'nd_route_tbl': [
- {
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0',
- },
- {
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1',
- },
- ],
- }
-
- self.context_cfg = {
- 'nodes': {
- 'tg__1': self.tg__1,
- 'vnf__1': self.vnf__1,
- },
- 'networks': {
- GenericVNF.UPLINK: {
- 'vld_id': GenericVNF.UPLINK,
- },
- GenericVNF.DOWNLINK: {
- 'vld_id': GenericVNF.DOWNLINK,
- },
- },
- }
-
- self.vld0 = {
- 'vnfd-connection-point-ref': [
- {
- 'vnfd-connection-point-ref': 'xe0',
- 'member-vnf-index-ref': '1',
- 'vnfd-id-ref': 'trexgen'
- },
- {
- 'vnfd-connection-point-ref': 'xe0',
- 'member-vnf-index-ref': '2',
- 'vnfd-id-ref': 'trexgen'
- }
- ],
- 'type': 'ELAN',
- 'id': GenericVNF.UPLINK,
- 'name': 'tg__1 to vnf__1 link 1'
- }
-
- self.vld1 = {
- 'vnfd-connection-point-ref': [
- {
- 'vnfd-connection-point-ref': 'xe1',
- 'member-vnf-index-ref': '1',
- 'vnfd-id-ref': 'trexgen'
- },
- {
- 'vnfd-connection-point-ref': 'xe1',
- 'member-vnf-index-ref': '2',
- 'vnfd-id-ref': 'trexgen'
- }
- ],
- 'type': 'ELAN',
- 'id': GenericVNF.DOWNLINK,
- 'name': 'vnf__1 to tg__1 link 2'
- }
-
- self.topology = {
- 'id': 'trex-tg-topology',
- 'short-name': 'trex-tg-topology',
- 'name': 'trex-tg-topology',
- 'description': 'trex-tg-topology',
- 'constituent-vnfd': [
- {
- 'member-vnf-index': '1',
- 'VNF model': 'tg_trex_tpl.yaml',
- 'vnfd-id-ref': 'tg__1',
- },
- {
- 'member-vnf-index': '2',
- 'VNF model': 'tg_trex_tpl.yaml',
- 'vnfd-id-ref': 'vnf__1',
- },
- ],
- 'vld': [self.vld0, self.vld1],
- }
-
- self.scenario_cfg = {
- 'task_path': "",
- "topology": self._get_file_abspath("vpe_vnf_topology.yaml"),
- 'task_id': 'a70bdf4a-8e67-47a3-9dc1-273c14506eb7',
- 'tc': 'tc_ipv4_1Mflow_64B_packetsize',
- 'traffic_profile': 'ipv4_throughput_vpe.yaml',
- 'type': 'ISB',
- 'tc_options': {
- 'rfc2544': {
- 'allowed_drop_rate': '0.8 - 1',
- },
- },
- 'options': {
- 'framesize': {'64B': 100}
- },
- 'runner': {
- 'object': 'NetworkServiceTestCase',
- 'interval': 35,
- 'output_filename': 'yardstick.out',
- 'runner_id': 74476,
- 'duration': 400,
- 'type': 'Duration',
- },
- 'traffic_options': {
- 'flow': 'ipv4_1flow_Packets_vpe.yaml',
- 'imix': 'imix_voice.yaml'
- },
- 'nodes': {
- 'tg__2': 'trafficgen_2.yardstick',
- 'tg__1': 'trafficgen_1.yardstick',
- 'vnf__1': 'vnf.yardstick',
- },
- }
-
- self.s = NetworkServiceTestCase(self.scenario_cfg, self.context_cfg)
-
- def _get_file_abspath(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- file_path = os.path.join(curr_path, filename)
- return file_path
-
- def test_ssh_manager(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
- for node, node_dict in self.context_cfg["nodes"].items():
- with SshManager(node_dict) as conn:
- self.assertIsNotNone(conn)
-
- def test___init__(self):
- assert self.topology
-
- def test__get_ip_flow_range_string(self):
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- result = '152.16.100.2-152.16.100.254'
- self.assertEqual(result, self.s._get_ip_flow_range('152.16.100.2-152.16.100.254'))
-
- def test__get_ip_flow_range(self):
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- result = '152.16.100.2-152.16.100.254'
- self.assertEqual(result, self.s._get_ip_flow_range({"tg__1": 'xe0'}))
-
- @mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.ipaddress')
- def test__get_ip_flow_range_no_node_data(self, mock_ipaddress):
- scenario_cfg = deepcopy(self.scenario_cfg)
- scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
-
- mock_ipaddress.ip_network.return_value = ipaddr = mock.Mock()
- ipaddr.hosts.return_value = []
-
- expected = '0.0.0.0'
- result = self.s._get_ip_flow_range({"tg__2": 'xe0'})
- self.assertEqual(result, expected)
-
- def test__get_ip_flow_range_no_nodes(self):
- expected = '0.0.0.0'
- result = self.s._get_ip_flow_range({})
- self.assertEqual(result, expected)
-
- def test___get_traffic_flow(self):
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- self.scenario_cfg["options"] = {}
- self.scenario_cfg['options'] = {
- 'flow': {
- 'src_ip': [
- {
- 'tg__1': 'xe0',
- },
- ],
- 'dst_ip': [
- {
- 'tg__1': 'xe1',
- },
- ],
- 'public_ip': ['1.1.1.1'],
- },
- }
- result = {'flow': {'dst_ip0': '152.16.40.2-152.16.40.254',
- 'src_ip0': '152.16.100.2-152.16.100.254'}}
-
- self.assertEqual({'flow': {}}, self.s._get_traffic_flow())
-
- def test___get_traffic_flow_error(self):
- self.scenario_cfg["traffic_options"]["flow"] = \
- "ipv4_1flow_Packets_vpe.yaml1"
- self.assertEqual({'flow': {}}, self.s._get_traffic_flow())
-
- def test_get_vnf_imp(self):
- vnfd = COMPLETE_TREX_VNFD['vnfd:vnfd-catalog']['vnfd'][0]['class-name']
- with mock.patch.dict("sys.modules", STL_MOCKS):
- self.assertIsNotNone(self.s.get_vnf_impl(vnfd))
-
- with self.assertRaises(IncorrectConfig) as raised:
- self.s.get_vnf_impl('NonExistentClass')
-
- exc_str = str(raised.exception)
- print(exc_str)
- self.assertIn('No implementation', exc_str)
- self.assertIn('found in', exc_str)
-
- def test_load_vnf_models_invalid(self):
- self.context_cfg["nodes"]['tg__1']['VNF model'] = \
- self._get_file_abspath("tg_trex_tpl.yaml")
- self.context_cfg["nodes"]['vnf__1']['VNF model'] = \
- self._get_file_abspath("tg_trex_tpl.yaml")
-
- vnf = mock.Mock(autospec=GenericVNF)
- self.s.get_vnf_impl = mock.Mock(return_value=vnf)
-
- self.assertIsNotNone(
- self.s.load_vnf_models(self.scenario_cfg, self.context_cfg))
-
- def test_load_vnf_models_no_model(self):
- vnf = mock.Mock(autospec=GenericVNF)
- self.s.get_vnf_impl = mock.Mock(return_value=vnf)
-
- self.assertIsNotNone(
- self.s.load_vnf_models(self.scenario_cfg, self.context_cfg))
-
- def test_map_topology_to_infrastructure(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
- self.s.map_topology_to_infrastructure()
-
- nodes = self.context_cfg["nodes"]
- self.assertEqual("../../vnf_descriptors/tg_rfc2544_tpl.yaml", nodes['tg__1']['VNF model'])
- self.assertEqual("../../vnf_descriptors/vpe_vnf.yaml", nodes['vnf__1']['VNF model'])
-
- def test_map_topology_to_infrastructure_insufficient_nodes(self):
- del self.context_cfg['nodes']['vnf__1']
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
-
- with self.assertRaises(IncorrectConfig):
- self.s.map_topology_to_infrastructure()
-
- def test_map_topology_to_infrastructure_config_invalid(self):
- cfg = dict(self.context_cfg)
- del cfg['nodes']['vnf__1']['interfaces']['xe0']['local_mac']
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
-
- with self.assertRaises(IncorrectConfig):
- self.s.map_topology_to_infrastructure()
-
- def test__resolve_topology_invalid_config(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
-
- # purge an important key from the data structure
- for interface in self.tg__1['interfaces'].values():
- del interface['local_mac']
-
- with mock.patch(
- "yardstick.benchmark.scenarios.networking.vnf_generic.LOG") as mock_log:
- with self.assertRaises(IncorrectConfig) as raised:
- self.s._resolve_topology()
-
- self.assertIn('not found', str(raised.exception))
-
- # restore local_mac
- for index, interface in enumerate(self.tg__1['interfaces'].values()):
- interface['local_mac'] = '00:00:00:00:00:{:2x}'.format(index)
-
- # make a connection point ref with 3 points
- self.s.topology["vld"][0]['vnfd-connection-point-ref'].append(
- self.s.topology["vld"][0]['vnfd-connection-point-ref'][0])
-
- with mock.patch(
- "yardstick.benchmark.scenarios.networking.vnf_generic.LOG") as mock_log:
- with self.assertRaises(IncorrectConfig) as raised:
- self.s._resolve_topology()
-
- self.assertIn('wrong endpoint count', str(raised.exception))
-
- # make a connection point ref with 1 point
- self.s.topology["vld"][0]['vnfd-connection-point-ref'] = \
- self.s.topology["vld"][0]['vnfd-connection-point-ref'][:1]
-
- with mock.patch(
- "yardstick.benchmark.scenarios.networking.vnf_generic.LOG") as mock_log:
- with self.assertRaises(IncorrectConfig) as raised:
- self.s._resolve_topology()
-
- self.assertIn('wrong endpoint count', str(raised.exception))
-
- def test_run(self):
- tgen = mock.Mock(autospec=GenericTrafficGen)
- tgen.traffic_finished = True
- verified_dict = {"verified": True}
- tgen.verify_traffic = lambda x: verified_dict
- tgen.name = "tgen__1"
- vnf = mock.Mock(autospec=GenericVNF)
- vnf.runs_traffic = False
- self.s.vnfs = [tgen, vnf]
- self.s.traffic_profile = mock.Mock()
- self.s.collector = mock.Mock(autospec=Collector)
- self.s.collector.get_kpi = \
- mock.Mock(return_value={tgen.name: verified_dict})
- result = {}
- self.s.run(result)
- self.assertDictEqual(result, {tgen.name: verified_dict})
-
- def test_setup(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
-
- tgen = mock.Mock(autospec=GenericTrafficGen)
- tgen.traffic_finished = True
- verified_dict = {"verified": True}
- tgen.verify_traffic = lambda x: verified_dict
- tgen.terminate = mock.Mock(return_value=True)
- tgen.name = "tgen__1"
- vnf = mock.Mock(autospec=GenericVNF)
- vnf.runs_traffic = False
- vnf.terminate = mock.Mock(return_value=True)
- self.s.vnfs = [tgen, vnf]
- self.s.traffic_profile = mock.Mock()
- self.s.collector = mock.Mock(autospec=Collector)
- self.s.collector.get_kpi = \
- mock.Mock(return_value={tgen.name: verified_dict})
- self.s.map_topology_to_infrastructure = mock.Mock(return_value=0)
- self.s.load_vnf_models = mock.Mock(return_value=self.s.vnfs)
- self.s._fill_traffic_profile = \
- mock.Mock(return_value=TRAFFIC_PROFILE)
- self.assertEqual(None, self.s.setup())
-
- def test_setup_exception(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
-
- tgen = mock.Mock(autospec=GenericTrafficGen)
- tgen.traffic_finished = True
- verified_dict = {"verified": True}
- tgen.verify_traffic = lambda x: verified_dict
- tgen.terminate = mock.Mock(return_value=True)
- tgen.name = "tgen__1"
- vnf = mock.Mock(autospec=GenericVNF)
- vnf.runs_traffic = False
- vnf.instantiate.side_effect = RuntimeError("error during instantiate")
- vnf.terminate = mock.Mock(return_value=True)
- self.s.vnfs = [tgen, vnf]
- self.s.traffic_profile = mock.Mock()
- self.s.collector = mock.Mock(autospec=Collector)
- self.s.collector.get_kpi = \
- mock.Mock(return_value={tgen.name: verified_dict})
- self.s.map_topology_to_infrastructure = mock.Mock(return_value=0)
- self.s.load_vnf_models = mock.Mock(return_value=self.s.vnfs)
- self.s._fill_traffic_profile = \
- mock.Mock(return_value=TRAFFIC_PROFILE)
- with self.assertRaises(RuntimeError):
- self.s.setup()
-
- def test__get_traffic_profile(self):
- self.scenario_cfg["traffic_profile"] = \
- self._get_file_abspath("ipv4_throughput_vpe.yaml")
- self.assertIsNotNone(self.s._get_traffic_profile())
-
- def test__get_traffic_profile_exception(self):
- with mock.patch.dict(self.scenario_cfg, {'traffic_profile': ''}):
- with self.assertRaises(IOError):
- self.s._get_traffic_profile()
-
- def test___get_traffic_imix_exception(self):
- with mock.patch.dict(self.scenario_cfg["traffic_options"], {'imix': ''}):
- self.assertEqual({'imix': {'64B': 100}}, self.s._get_traffic_imix())
-
- def test__fill_traffic_profile(self):
- with mock.patch.dict("sys.modules", STL_MOCKS):
- self.scenario_cfg["traffic_profile"] = \
- self._get_file_abspath("ipv4_throughput_vpe.yaml")
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- self.scenario_cfg["traffic_options"]["imix"] = \
- self._get_file_abspath("imix_voice.yaml")
- self.assertIsNotNone(self.s._fill_traffic_profile())
-
- def test_teardown(self):
- vnf = mock.Mock(autospec=GenericVNF)
- vnf.terminate = mock.Mock(return_value=True)
- vnf.name = str(vnf)
- self.s.vnfs = [vnf]
- self.s.traffic_profile = mock.Mock()
- self.s.collector = mock.Mock(autospec=Collector)
- self.s.collector.stop = \
- mock.Mock(return_value=True)
- self.assertIsNone(self.s.teardown())
-
- def test_teardown_exception(self):
- vnf = mock.Mock(autospec=GenericVNF)
- vnf.terminate = mock.Mock(side_effect=RuntimeError("error duing terminate"))
- vnf.name = str(vnf)
- self.s.vnfs = [vnf]
- self.s.traffic_profile = mock.Mock()
- self.s.collector = mock.Mock(autospec=Collector)
- self.s.collector.stop = \
- mock.Mock(return_value=True)
- with self.assertRaises(RuntimeError):
- self.s.teardown()
-
- SAMPLE_NETDEVS = {
- 'enp11s0': {
- 'address': '0a:de:ad:be:ef:f5',
- 'device': '0x1533',
- 'driver': 'igb',
- 'ifindex': '2',
- 'interface_name': 'enp11s0',
- 'operstate': 'down',
- 'pci_bus_id': '0000:0b:00.0',
- 'subsystem_device': '0x1533',
- 'subsystem_vendor': '0x15d9',
- 'vendor': '0x8086'
- },
- 'lan': {
- 'address': '0a:de:ad:be:ef:f4',
- 'device': '0x153a',
- 'driver': 'e1000e',
- 'ifindex': '3',
- 'interface_name': 'lan',
- 'operstate': 'up',
- 'pci_bus_id': '0000:00:19.0',
- 'subsystem_device': '0x153a',
- 'subsystem_vendor': '0x15d9',
- 'vendor': '0x8086'
- }
- }
-
- SAMPLE_VM_NETDEVS = {
- 'eth1': {
- 'address': 'fa:de:ad:be:ef:5b',
- 'device': '0x0001',
- 'driver': 'virtio_net',
- 'ifindex': '3',
- 'interface_name': 'eth1',
- 'operstate': 'down',
- 'pci_bus_id': '0000:00:04.0',
- 'vendor': '0x1af4'
- }
- }
-
- def test_parse_netdev_info(self):
- output = """\
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/ifindex:2
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/address:0a:de:ad:be:ef:f5
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/operstate:down
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/vendor:0x8086
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/device:0x1533
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/subsystem_vendor:0x15d9
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/subsystem_device:0x1533
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/driver:igb
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/pci_bus_id:0000:0b:00.0
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/ifindex:3
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/address:0a:de:ad:be:ef:f4
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/operstate:up
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/vendor:0x8086
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/device:0x153a
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/subsystem_vendor:0x15d9
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/subsystem_device:0x153a
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/driver:e1000e
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/pci_bus_id:0000:00:19.0
-"""
- res = NetworkServiceTestCase.parse_netdev_info(output)
- assert res == self.SAMPLE_NETDEVS
-
- def test_parse_netdev_info_virtio(self):
- output = """\
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/ifindex:3
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/address:fa:de:ad:be:ef:5b
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/operstate:down
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/device/vendor:0x1af4
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/device/device:0x0001
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/driver:virtio_net
-"""
- res = NetworkServiceTestCase.parse_netdev_info(output)
- assert res == self.SAMPLE_VM_NETDEVS
-
- def test_probe_missing_values(self):
- netdevs = self.SAMPLE_NETDEVS.copy()
- network = {'local_mac': '0a:de:ad:be:ef:f5'}
- NetworkServiceTestCase._probe_missing_values(netdevs, network)
- assert network['vpci'] == '0000:0b:00.0'
-
- network = {'local_mac': '0a:de:ad:be:ef:f4'}
- NetworkServiceTestCase._probe_missing_values(netdevs, network)
- assert network['vpci'] == '0000:00:19.0'
-
- def test_open_relative_path(self):
- mock_open = mock.mock_open()
- mock_open_result = mock_open()
- mock_open_call_count = 1 # initial call to get result
-
- module_name = \
- 'yardstick.benchmark.scenarios.networking.vnf_generic.open'
-
- # test
- with mock.patch(module_name, mock_open, create=True):
- self.assertEqual(open_relative_file('foo', 'bar'), mock_open_result)
-
- mock_open_call_count += 1 # one more call expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
- self.assertIn('foo', mock_open.call_args_list[-1][0][0])
- self.assertNotIn('bar', mock_open.call_args_list[-1][0][0])
-
- def open_effect(*args, **kwargs):
- if kwargs.get('name', args[0]) == os.path.join('bar', 'foo'):
- return mock_open_result
- raise IOError(errno.ENOENT, 'not found')
-
- mock_open.side_effect = open_effect
- self.assertEqual(open_relative_file('foo', 'bar'), mock_open_result)
-
- mock_open_call_count += 2 # two more calls expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
- self.assertIn('foo', mock_open.call_args_list[-1][0][0])
- self.assertIn('bar', mock_open.call_args_list[-1][0][0])
-
- # test an IOError of type ENOENT
- mock_open.side_effect = IOError(errno.ENOENT, 'not found')
- with self.assertRaises(IOError):
- # the second call still raises
- open_relative_file('foo', 'bar')
-
- mock_open_call_count += 2 # two more calls expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
- self.assertIn('foo', mock_open.call_args_list[-1][0][0])
- self.assertIn('bar', mock_open.call_args_list[-1][0][0])
-
- # test an IOError other than ENOENT
- mock_open.side_effect = IOError(errno.EBUSY, 'busy')
- with self.assertRaises(IOError):
- open_relative_file('foo', 'bar')
-
- mock_open_call_count += 1 # one more call expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
diff --git a/tests/unit/benchmark/scenarios/networking/test_vsperf.py b/tests/unit/benchmark/scenarios/networking/test_vsperf.py
deleted file mode 100644
index be8ac55d0..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_vsperf.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2016 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.
-
-# Unittest for yardstick.benchmark.scenarios.networking.vsperf.Vsperf
-
-from __future__ import absolute_import
-try:
- from unittest import mock
-except ImportError:
- import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import vsperf
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf.subprocess')
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf.ssh')
-class VsperfTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- "host": {
- "ip": "10.229.47.137",
- "user": "ubuntu",
- "password": "ubuntu",
- },
- }
- self.args = {
- 'options': {
- 'testname': 'p2p_rfc2544_continuous',
- 'traffic_type': 'continuous',
- 'frame_size': '64',
- 'bidirectional': 'True',
- 'iload': 100,
- 'trafficgen_port1': 'eth1',
- 'trafficgen_port2': 'eth3',
- 'external_bridge': 'br-ex',
- 'conf_file': 'vsperf-yardstick.conf',
- 'setup_script': 'setup_yardstick.sh',
- 'test_params': 'TRAFFICGEN_DURATION=30;',
- },
- 'sla': {
- 'metrics': 'throughput_rx_fps',
- 'throughput_rx_fps': 500000,
- 'action': 'monitor',
- }
- }
-
- def test_vsperf_setup(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_vsperf_teardown(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- p.teardown()
- self.assertFalse(p.setup_done)
-
- def test_vsperf_run_ok(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- # run() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_ssh.SSH.from_node().execute.return_value = (
- 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
-
- result = {}
- p.run(result)
-
- self.assertEqual(result['throughput_rx_fps'], '14797660.000')
-
- def test_vsperf_run_falied_vsperf_execution(self, mock_ssh,
- mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- # run() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_vsperf_run_falied_csv_report(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- # run() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py b/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py
deleted file mode 100644
index fbe3ed804..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2017 Nokia
-#
-# 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.
-
-# Unittest for yardstick.benchmark.scenarios.networking.vsperf.VsperfDPDK
-
-from __future__ import absolute_import
-try:
- from unittest import mock
-except ImportError:
- import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import vsperf_dpdk
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.subprocess')
-class VsperfDPDKTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- "host": {
- "ip": "10.229.47.137",
- "user": "ubuntu",
- "password": "ubuntu",
- },
- }
- self.args = {
- 'task_id': "1234-5678",
- 'options': {
- 'testname': 'pvp_tput',
- 'traffic_type': 'rfc2544_throughput',
- 'frame_size': '64',
- 'test_params': 'TRAFFICGEN_DURATION=30;',
- 'trafficgen_port1': 'ens4',
- 'trafficgen_port2': 'ens5',
- 'conf_file': 'vsperf-yardstick.conf',
- 'setup_script': 'setup_yardstick.sh',
- 'moongen_helper_file': '~/moongen.py',
- 'moongen_host_ip': '10.5.201.151',
- 'moongen_port1_mac': '8c:dc:d4:ae:7c:5c',
- 'moongen_port2_mac': '8c:dc:d4:ae:7c:5d',
- 'trafficgen_port1_nw': 'test2',
- 'trafficgen_port2_nw': 'test3',
- },
- 'sla': {
- 'metrics': 'throughput_rx_fps',
- 'throughput_rx_fps': 500000,
- 'action': 'monitor',
- }
- }
-
- self._mock_ssh = mock.patch(
- 'yardstick.benchmark.scenarios.networking.vsperf_dpdk.ssh')
- self.mock_ssh = self._mock_ssh.start()
-
- self.addCleanup(self._cleanup)
-
- def _cleanup(self):
- self._mock_ssh.stop()
-
- def test_vsperf_dpdk_setup(self, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_vsperf_dpdk_teardown(self, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- p.teardown()
- self.assertFalse(p.setup_done)
-
- def test_vsperf_dpdk_is_dpdk_setup_no(self, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- # is_dpdk_setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
-
- result = p._is_dpdk_setup()
- self.assertFalse(result)
-
- def test_vsperf_dpdk_is_dpdk_setup_yes(self, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- # is_dpdk_setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- result = p._is_dpdk_setup()
- self.assertTrue(result)
-
- @mock.patch('time.sleep')
- def test_vsperf_dpdk_dpdk_setup_first(self, _, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- # is_dpdk_setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
-
- p.dpdk_setup()
- self.assertFalse(p._is_dpdk_setup())
- self.assertTrue(p.dpdk_setup_done)
-
- @mock.patch('time.sleep')
- def test_vsperf_dpdk_dpdk_setup_next(self, _, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- p.dpdk_setup()
- self.assertTrue(p._is_dpdk_setup())
- self.assertTrue(p.dpdk_setup_done)
-
- @mock.patch('time.sleep')
- def test_vsperf_dpdk_dpdk_setup_fail(self, _, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
- self.assertTrue(p.setup_done)
-
- self.assertRaises(RuntimeError, p.dpdk_setup)
-
- @mock.patch('time.sleep')
- def test_vsperf_dpdk_run_ok(self, _, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- # run() specific mocks
- mock_subprocess.call().execute.return_value = None
- self.mock_ssh.SSH.from_node().execute.return_value = (
- 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
-
- result = {}
- p.run(result)
-
- self.assertEqual(result['throughput_rx_fps'], '14797660.000')
-
- def test_vsperf_dpdk_run_falied_vsperf_execution(self, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- # run() specific mocks
- mock_subprocess.call().execute.return_value = None
- mock_subprocess.call().execute.return_value = None
- self.mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_vsperf_dpdk_run_falied_csv_report(self, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- # run() specific mocks
- mock_subprocess.call().execute.return_value = None
- mock_subprocess.call().execute.return_value = None
- self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml b/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml
deleted file mode 100644
index b1641836b..000000000
--- a/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright (c) 2016-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.
-
-vnfd:vnfd-catalog:
- vnfd:
- - id: TrexTrafficGen # NSPerf class mapping
- name: trexgen
- short-name: trexgen
- description: TRex stateless traffic generator for tests
- vm-flavor:
- vcpu-count: '4'
- memory-mb: '4096'
- mgmt-interface:
- vdu-id: trexgen-baremetal
- user: '{{user}}' # Value filled by vnfdgen
- password: '{{password}}' # Value filled by vnfdgen
- ip: '{{ip}}' # Value filled by vnfdgen
- connection-point:
- - name: xe0
- type: VPORT
- - name: xe1
- type: VPORT
- vdu:
- - id: trexgen-baremetal
- name: trexgen-baremetal
- description: TRex stateless traffic generator for tests
- external-interface:
- - name: xe0
- virtual-interface:
- type: PCI-PASSTHROUGH
- # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
- vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
- local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
- driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
- dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
- local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
- dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
- vld_id: '{{ interfaces.xe0.vld_id }}' # Value filled by vnfdgen
- bandwidth: 10 Gbps
- vnfd-connection-point-ref: xe0
- - name: xe1
- virtual-interface:
- type: PCI-PASSTHROUGH
- vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
- local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
- driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
- dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
- local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
- dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
- vld_id: '{{ interfaces.xe1.vld_id }}' # Value filled by vnfdgen
- bandwidth: 10 Gbps
- vnfd-connection-point-ref: xe1
-
- benchmark:
- kpi:
- - rx_throughput_fps
- - tx_throughput_fps
- - tx_throughput_mbps
- - rx_throughput_mbps
- - tx_throughput_pc_linerate
- - rx_throughput_pc_linerate
- - min_latency
- - max_latency
- - avg_latency
diff --git a/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml b/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml
deleted file mode 100644
index 1ac6c1f89..000000000
--- a/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2016-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.
-
-nsd:nsd-catalog:
- nsd:
- - id: VPE
- name: VPE
- short-name: VPE
- description: scenario with VPE,L3fwd and VNF
- constituent-vnfd:
- - member-vnf-index: '1'
- vnfd-id-ref: tg__1
- VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #tg_vpe_upstream.yaml #VPE VNF
- - member-vnf-index: '2'
- vnfd-id-ref: vnf__1
- VNF model: ../../vnf_descriptors/vpe_vnf.yaml #tg_l3fwd.yaml #tg_trex_tpl.yaml #TREX
-
- vld:
- - id: uplink
- name: tg__1 to vnf__1 link 1
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__1 #TREX
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__1 #VNF
-
- - id: downlink
- name: vnf__1 to tg__1 link 2
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__1 #L3fwd
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__1 #VPE VNF
diff --git a/tests/unit/benchmark/scenarios/parser/__init__.py b/tests/unit/benchmark/scenarios/parser/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/parser/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/parser/test_parser.py b/tests/unit/benchmark/scenarios/parser/test_parser.py
deleted file mode 100644
index ee2bbc07d..000000000
--- a/tests/unit/benchmark/scenarios/parser/test_parser.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-import subprocess
-
-import unittest
-import mock
-
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.parser import parser
-
-
-class ParserTestCase(unittest.TestCase):
-
- def setUp(self):
- args = {
- 'options': {'yangfile': '/root/yardstick/samples/yang.yaml',
- 'toscafile': '/root/yardstick/samples/tosca.yaml'},
- }
- self.scenario = parser.Parser(scenario_cfg=args, context_cfg={})
-
- self._mock_popen = mock.patch.object(subprocess, 'Popen')
- self.mock_popen = self._mock_popen.start()
- self._mock_call = mock.patch.object(subprocess, 'call')
- self.mock_call = self._mock_call.start()
-
- self.addCleanup(self._stop_mock)
-
- def _stop_mock(self):
- self._mock_popen.stop()
- self._mock_call.stop()
-
- def test_setup_successful(self):
-
- self.mock_call.return_value = 0
- self.scenario.setup()
- self.assertTrue(self.scenario.setup_done)
-
- def test_run_successful(self):
-
- result = {}
-
- self.mock_popen().returncode = 0
-
- expected_result = jsonutils.loads('{"yangtotosca": "success"}')
-
- self.scenario.run(result)
- self.assertEqual(result, expected_result)
-
- def test_run_fail(self):
- result = {}
-
- self.mock_popen().returncode = 1
- expected_result = jsonutils.loads('{"yangtotosca": "fail"}')
-
- self.scenario.run(result)
- self.assertEqual(result, expected_result)
-
- def test_teardown_successful(self):
-
- self.mock_call.return_value = 0
- self.scenario.teardown()
- self.assertTrue(self.scenario.teardown_done)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/__init__.py b/tests/unit/benchmark/scenarios/storage/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/unit/benchmark/scenarios/storage/__init__.py
+++ /dev/null
diff --git a/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json b/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json
deleted file mode 100644
index e9f642aba..000000000
--- a/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json
+++ /dev/null
@@ -1 +0,0 @@
-{"fioversion": "fio-2.1.3","jobs": [{"jobname": "yardstick-fio","groupid": 0,"error": 0,"read": {"io_bytes": 2166860,"bw": 36113,"iops": 9028,"runtime": 60001,"slat": {"min": 7,"max": 1807,"mean": 10.49,"stddev": 3.00},"clat": {"min": 1,"max": 16902,"mean": 97.84,"stddev": 78.16,"percentile": {"1.000000": 84,"5.000000": 86,"10.000000": 87,"20.000000": 88,"30.000000": 89,"40.000000": 90,"50.000000": 91,"60.000000": 93,"70.000000": 98,"80.000000": 103,"90.000000": 111,"95.000000": 127,"99.000000": 161,"99.500000": 177,"99.900000": 215,"99.950000": 266,"99.990000": 4128,"0.00": 0,"0.00": 0,"0.00": 0}},"lat": {"min": 86,"max": 16912,"mean": 108.70,"stddev": 78.29},"bw_min": 0,"bw_max": 38128,"bw_agg": 35816.54,"bw_mean": 35816.54,"bw_dev": 3579.16},"write": {"io_bytes": 0,"bw": 0,"iops": 0,"runtime": 0,"slat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"clat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00,"percentile": {"1.000000": 0,"5.000000": 0,"10.000000": 0,"20.000000": 0,"30.000000": 0,"40.000000": 0,"50.000000": 0,"60.000000": 0,"70.000000": 0,"80.000000": 0,"90.000000": 0,"95.000000": 0,"99.000000": 0,"99.500000": 0,"99.900000": 0,"99.950000": 0,"99.990000": 0,"0.00": 0,"0.00": 0,"0.00": 0}},"lat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"bw_min": 0,"bw_max": 0,"bw_agg": 0.00,"bw_mean": 0.00,"bw_dev": 0.00},"trim": {"io_bytes": 0,"bw": 0,"iops": 0,"runtime": 0,"slat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"clat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00,"percentile": {"1.000000": 0,"5.000000": 0,"10.000000": 0,"20.000000": 0,"30.000000": 0,"40.000000": 0,"50.000000": 0,"60.000000": 0,"70.000000": 0,"80.000000": 0,"90.000000": 0,"95.000000": 0,"99.000000": 0,"99.500000": 0,"99.900000": 0,"99.950000": 0,"99.990000": 0,"0.00": 0,"0.00": 0,"0.00": 0}},"lat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"bw_min": 0,"bw_max": 0,"bw_agg": 0.00,"bw_mean": 0.00,"bw_dev": 0.00},"usr_cpu": 4.86,"sys_cpu": 19.38,"ctx": 632024,"majf": 0,"minf": 30,"iodepth_level": {"1": 116.58,"2": 0.00,"4": 0.00,"8": 0.00,"16": 0.00,"32": 0.00,">=64": 0.00},"latency_us": {"2": 0.01,"4": 0.01,"10": 0.00,"20": 0.00,"50": 0.01,"100": 72.60,"250": 27.34,"500": 0.04,"750": 0.01,"1000": 0.01},"latency_ms": {"2": 0.01,"4": 0.01,"10": 0.01,"20": 0.01,"50": 0.00,"100": 0.00,"250": 0.00,"500": 0.00,"750": 0.00,"1000": 0.00,"2000": 0.00,">=2000": 0.00}}],"disk_util": [{"name": "vda","read_ios": 631084,"write_ios": 212,"read_merges": 0,"write_merges": 232,"read_ticks": 57300,"write_ticks": 324,"in_queue": 57400,"util": 81.55}]}
diff --git a/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json b/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json
deleted file mode 100644
index 4c7501818..000000000
--- a/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json
+++ /dev/null
@@ -1 +0,0 @@
-{"jobs": [{"trim": {"io_bytes": 0, "slat": {"max": 0, "mean": 0.0, "stddev": 0.0, "min": 0}, "bw_max": 0, "bw_mean": 0.0, "iops": 0, "bw": 0, "lat": {"max": 0, "mean": 0.0, "stddev": 0.0, "min": 0}, "bw_agg": 0.0, "clat": {"max": 0, "mean": 0.0, "percentile": {"70.000000": 0, "5.000000": 0, "50.000000": 0, "99.990000": 0, "30.000000": 0, "10.000000": 0, "99.000000": 0, "0.00": 0, "90.000000": 0, "95.000000": 0, "60.000000": 0, "40.000000": 0, "20.000000": 0, "99.900000": 0, "99.950000": 0, "1.000000": 0, "99.500000": 0, "80.000000": 0}, "stddev": 0.0, "min": 0}, "runtime": 0, "bw_min": 0, "bw_dev": 0.0}, "latency_us": {"10": 0.01, "750": 0.03, "20": 0.0, "50": 0.02, "2": 0.01, "4": 0.01, "100": 0.75, "250": 88.37, "500": 10.72, "1000": 0.01}, "latency_ms": {"10": 0.01, "750": 0.0, "20": 0.01, ">=2000": 0.0, "50": 0.01, "2000": 0.0, "2": 0.07, "4": 0.01, "100": 0.0, "250": 0.01, "500": 0.0, "1000": 0.01}, "read": {"io_bytes": 839056, "slat": {"max": 1990, "mean": 18.14, "stddev": 15.4, "min": 0}, "bw_max": 10328, "bw_mean": 8721.27, "iops": 20972, "bw": 83888, "lat": {"max": 776676, "mean": 236.8, "stddev": 4668.12, "min": 45}, "bw_agg": 8721.27, "clat": {"max": 776663, "mean": 217.79, "percentile": {"70.000000": 199, "5.000000": 119, "50.000000": 175, "99.990000": 15168, "30.000000": 155, "10.000000": 131, "99.000000": 342, "0.00": 0, "90.000000": 247, "95.000000": 278, "60.000000": 185, "40.000000": 165, "20.000000": 145, "99.900000": 820, "99.950000": 1272, "1.000000": 96, "99.500000": 370, "80.000000": 217}, "stddev": 4667.79, "min": 0}, "runtime": 10002, "bw_min": 4, "bw_dev": 2178.08}, "majf": 0, "ctx": 490590, "minf": 87, "jobname": "yardstick-fio", "write": {"io_bytes": 841992, "slat": {"max": 2594, "mean": 19.78, "stddev": 16.25, "min": 0}, "bw_max": 10472, "bw_mean": 8464.0, "iops": 21045, "bw": 84182, "lat": {"max": 776709, "mean": 233.55, "stddev": 3115.46, "min": 64}, "bw_agg": 8464.0, "clat": {"max": 776685, "mean": 212.87, "percentile": {"70.000000": 211, "5.000000": 135, "50.000000": 187, "99.990000": 3536, "30.000000": 169, "10.000000": 145, "99.000000": 358, "0.00": 0, "90.000000": 258, "95.000000": 290, "60.000000": 197, "40.000000": 177, "20.000000": 159, "99.900000": 756, "99.950000": 1288, "1.000000": 114, "99.500000": 382, "80.000000": 229}, "stddev": 3115.23, "min": 0}, "runtime": 10002, "bw_min": 4, "bw_dev": 2584.23}, "iodepth_level": {"16": 0.0, "32": 0.0, "1": 111.92, "2": 0.0, "4": 0.0, ">=64": 0.0, "8": 0.0}, "usr_cp": 2.87, "error": 0, "sys_cp": 12.37, "groupid": 0}], "fio version": "fio-2.1.3", "disk_util": [{"aggr_write_ticks": 42020, "read_merges": 0, "name": "dm-0", "write_ios": 233547, "aggr_write_ios": 235129, "aggr_read_ticks": 42576, "read_ios": 233492, "util": 97.22, "read_ticks": 42096, "aggr_write_merge": 0, "write_merges": 0, "aggr_in_queue": 84524, "aggr_read_ios": 235224, "aggr_util": 96.96, "aggr_read_merges": 0, "in_queue": 83732, "write_ticks": 41468}, {"read_merges": 0, "name": "vda", "write_ios": 235129, "read_ios": 235224, "util": 96.96, "read_ticks": 42576, "write_merges": 0, "in_queue": 84524, "write_ticks": 42020}]}
diff --git a/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json b/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json
deleted file mode 100644
index 7c760e8bc..000000000
--- a/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json
+++ /dev/null
@@ -1 +0,0 @@
-{"fioversion": "fio-2.1.3","jobs": [{"jobname": "yardstick-fio","groupid": 0,"error": 0,"read": {"io_bytes": 0,"bw": 0,"iops": 0,"runtime": 0,"slat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"clat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00,"percentile": {"1.000000": 0,"5.000000": 0,"10.000000": 0,"20.000000": 0,"30.000000": 0,"40.000000": 0,"50.000000": 0,"60.000000": 0,"70.000000": 0,"80.000000": 0,"90.000000": 0,"95.000000": 0,"99.000000": 0,"99.500000": 0,"99.900000": 0,"99.950000": 0,"99.990000": 0,"0.00": 0,"0.00": 0,"0.00": 0}},"lat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"bw_min": 0,"bw_max": 0,"bw_agg": 0.00,"bw_mean": 0.00,"bw_dev": 0.00},"write": {"io_bytes": 2106508,"bw": 35107,"iops": 8776,"runtime": 60001,"slat": {"min": 8,"max": 5166,"mean": 11.83,"stddev": 7.05},"clat": {"min": 1,"max": 23472,"mean": 99.54,"stddev": 44.23,"percentile": {"1.000000": 85,"5.000000": 87,"10.000000": 88,"20.000000": 89,"30.000000": 90,"40.000000": 91,"50.000000": 93,"60.000000": 99,"70.000000": 104,"80.000000": 107,"90.000000": 113,"95.000000": 127,"99.000000": 161,"99.500000": 179,"99.900000": 231,"99.950000": 286,"99.990000": 628,"0.00": 0,"0.00": 0,"0.00": 0}},"lat": {"min": 87,"max": 23486,"mean": 111.74,"stddev": 45.61},"bw_min": 0,"bw_max": 37288,"bw_agg": 34839.53,"bw_mean": 34839.53,"bw_dev": 3387.37},"trim": {"io_bytes": 0,"bw": 0,"iops": 0,"runtime": 0,"slat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"clat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00,"percentile": {"1.000000": 0,"5.000000": 0,"10.000000": 0,"20.000000": 0,"30.000000": 0,"40.000000": 0,"50.000000": 0,"60.000000": 0,"70.000000": 0,"80.000000": 0,"90.000000": 0,"95.000000": 0,"99.000000": 0,"99.500000": 0,"99.900000": 0,"99.950000": 0,"99.990000": 0,"0.00": 0,"0.00": 0,"0.00": 0}},"lat": {"min": 0,"max": 0,"mean": 0.00,"stddev": 0.00},"bw_min": 0,"bw_max": 0,"bw_agg": 0.00,"bw_mean": 0.00,"bw_dev": 0.00},"usr_cpu": 5.25,"sys_cpu": 19.72,"ctx": 616160,"majf": 0,"minf": 27,"iodepth_level": {"1": 116.90,"2": 0.00,"4": 0.00,"8": 0.00,"16": 0.00,"32": 0.00,">=64": 0.00},"latency_us": {"2": 0.01,"4": 0.01,"10": 0.00,"20": 0.00,"50": 0.01,"100": 60.74,"250": 39.18,"500": 0.06,"750": 0.01,"1000": 0.01},"latency_ms": {"2": 0.01,"4": 0.01,"10": 0.01,"20": 0.00,"50": 0.01,"100": 0.00,"250": 0.00,"500": 0.00,"750": 0.00,"1000": 0.00,"2000": 0.00,">=2000": 0.00}}],"disk_util": [{"name": "vda","read_ios": 0,"write_ios": 615418,"read_merges": 0,"write_merges": 231,"read_ticks": 0,"write_ticks": 58284,"in_queue": 58024,"util": 82.45}]}
diff --git a/tests/unit/benchmark/scenarios/storage/test_bonnie.py b/tests/unit/benchmark/scenarios/storage/test_bonnie.py
deleted file mode 100644
index b3524e9a7..000000000
--- a/tests/unit/benchmark/scenarios/storage/test_bonnie.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.storage.bonnie.Bonnie
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-
-from yardstick.common import utils
-from yardstick.benchmark.scenarios.storage import bonnie
-
-
-class BonnieTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- @mock.patch('yardstick.benchmark.scenarios.storage.bonnie.ssh')
- def test_bonnie_successful_setup(self, mock_ssh):
-
- options = {
- "file_size": "1024",
- "ram_size": "512",
- "test_dir": "/tmp",
- "concurrency": "1",
- "test_user": "root"
- }
- args = {"options": options}
- b = bonnie.Bonnie(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- b.setup()
- self.assertIsNotNone(b.client)
- self.assertTrue(b.setup_done, True)
-
- @mock.patch('yardstick.benchmark.scenarios.storage.bonnie.ssh')
- def test_bonnie_unsuccessful_script_error(self, mock_ssh):
- options = {
- "file_size": "1024",
- "ram_size": "512",
- "test_dir": "/tmp",
- "concurrency": "1",
- "test_user": "root"
- }
- args = {"options": options}
- b = bonnie.Bonnie(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, b.run, self.result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/test_fio.py b/tests/unit/benchmark/scenarios/storage/test_fio.py
deleted file mode 100644
index 0cffea224..000000000
--- a/tests/unit/benchmark/scenarios/storage/test_fio.py
+++ /dev/null
@@ -1,273 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.storage.fio.Fio
-
-from __future__ import absolute_import
-
-import os
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.storage import fio
-
-
-@mock.patch('yardstick.benchmark.scenarios.storage.fio.ssh')
-class FioTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': 'mykey.key'
- }
- }
- self.sample_output = {
- 'read': 'fio_read_sample_output.json',
- 'write': 'fio_write_sample_output.json',
- 'rw': 'fio_rw_sample_output.json'
- }
-
- def test_fio_successful_setup(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {'options': options}
- p = fio.Fio(args, self.ctx)
- p.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_fio_job_file_successful_setup(self, mock_ssh):
-
- options = {
- 'job_file': 'job_file.ini',
- 'directory': '/FIO_Test'
- }
- args = {'options': options}
- p = fio.Fio(args, self.ctx)
- p.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.client)
- self.assertTrue(p.setup_done)
-
- def test_fio_successful_no_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {'options': options}
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['rw'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- expected_result = '{"read_bw": 83888, "read_iops": 20972,' \
- '"read_lat": 236.8, "write_bw": 84182, "write_iops": 21045,'\
- '"write_lat": 233.55}'
- expected_result = jsonutils.loads(expected_result)
- self.assertEqual(result, expected_result)
-
- def test_fio_successful_read_no_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': "read",
- 'ramp_time': 10
- }
- args = {'options': options}
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['read'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- expected_result = '{"read_bw": 36113, "read_iops": 9028,' \
- '"read_lat": 108.7}'
- expected_result = jsonutils.loads(expected_result)
- self.assertEqual(result, expected_result)
-
- def test_fio_successful_write_no_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'write',
- 'ramp_time': 10
- }
- args = {'options': options}
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['write'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- expected_result = '{"write_bw": 35107, "write_iops": 8776,'\
- '"write_lat": 111.74}'
- expected_result = jsonutils.loads(expected_result)
- self.assertEqual(result, expected_result)
-
- def test_fio_successful_lat_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {
- 'options': options,
- 'sla': {'write_lat': 300.1}
- }
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['rw'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- expected_result = '{"read_bw": 83888, "read_iops": 20972,' \
- '"read_lat": 236.8, "write_bw": 84182, "write_iops": 21045,'\
- '"write_lat": 233.55}'
- expected_result = jsonutils.loads(expected_result)
- self.assertEqual(result, expected_result)
-
- def test_fio_unsuccessful_lat_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {
- 'options': options,
- 'sla': {'write_lat': 200.1}
- }
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['rw'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_fio_successful_bw_iops_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {
- 'options': options,
- 'sla': {'read_iops': 20000}
- }
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['rw'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- expected_result = '{"read_bw": 83888, "read_iops": 20972,' \
- '"read_lat": 236.8, "write_bw": 84182, "write_iops": 21045,'\
- '"write_lat": 233.55}'
- expected_result = jsonutils.loads(expected_result)
- self.assertEqual(result, expected_result)
-
- def test_fio_unsuccessful_bw_iops_sla(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {
- 'options': options,
- 'sla': {'read_iops': 30000}
- }
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = self._read_sample_output(self.sample_output['rw'])
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_fio_unsuccessful_script_error(self, mock_ssh):
-
- options = {
- 'filename': '/home/ubuntu/data.raw',
- 'bs': '4k',
- 'rw': 'rw',
- 'ramp_time': 10
- }
- args = {'options': options}
- p = fio.Fio(args, self.ctx)
- result = {}
-
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def _read_sample_output(self, file_name):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- output = os.path.join(curr_path, file_name)
- with open(output) as f:
- sample_output = f.read()
- return sample_output
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py b/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py
deleted file mode 100644
index 095674f72..000000000
--- a/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.storage.storagecapacity.StorageCapacity
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.storage import storagecapacity
-
-DISK_SIZE_SAMPLE_OUTPUT = \
- '{"Numberf of devides": "2", "Total disk size in bytes": "1024000000"}'
-BLOCK_SIZE_SAMPLE_OUTPUT = '{"/dev/sda": 1024, "/dev/sdb": 4096}'
-DISK_UTIL_RAW_OUTPUT = "vda 10.00\nvda 0.00"
-DISK_UTIL_SAMPLE_OUTPUT = \
- '{"vda": {"avg_util": 5.0, "max_util": 10.0, "min_util": 0.0}}'
-
-
-@mock.patch('yardstick.benchmark.scenarios.storage.storagecapacity.ssh')
-class StorageCapacityTestCase(unittest.TestCase):
-
- def setUp(self):
- self.scn = {
- "options": {
- 'test_type': 'disk_size'
- }
- }
- self.ctx = {
- "host": {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'password': "root"
- }
- }
- self.result = {}
-
- def test_capacity_successful_setup(self, mock_ssh):
- c = storagecapacity.StorageCapacity(self.scn, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- c.setup()
- self.assertIsNotNone(c.client)
- self.assertTrue(c.setup_done)
-
- def test_capacity_disk_size_successful(self, mock_ssh):
- c = storagecapacity.StorageCapacity(self.scn, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, DISK_SIZE_SAMPLE_OUTPUT, '')
- c.run(self.result)
- expected_result = jsonutils.loads(
- DISK_SIZE_SAMPLE_OUTPUT)
- self.assertEqual(self.result, expected_result)
-
- def test_capacity_block_size_successful(self, mock_ssh):
- args = {
- "options": {
- 'test_type': 'block_size'
- }
- }
- c = storagecapacity.StorageCapacity(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, BLOCK_SIZE_SAMPLE_OUTPUT, '')
- c.run(self.result)
- expected_result = jsonutils.loads(
- BLOCK_SIZE_SAMPLE_OUTPUT)
- self.assertEqual(self.result, expected_result)
-
- def test_capacity_disk_utilization_successful(self, mock_ssh):
- args = {
- "options": {
- 'test_type': 'disk_utilization',
- 'interval': 1,
- 'count': 2
- }
- }
- c = storagecapacity.StorageCapacity(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (0, DISK_UTIL_RAW_OUTPUT, '')
- c.run(self.result)
- expected_result = jsonutils.loads(
- DISK_UTIL_SAMPLE_OUTPUT)
- self.assertEqual(self.result, expected_result)
-
- def test_capacity_unsuccessful_script_error(self, mock_ssh):
- c = storagecapacity.StorageCapacity(self.scn, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, c.run, self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/test_storperf.py b/tests/unit/benchmark/scenarios/storage/test_storperf.py
deleted file mode 100644
index 7b16bb37d..000000000
--- a/tests/unit/benchmark/scenarios/storage/test_storperf.py
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.storage.storperf.StorPerf
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.storage import storperf
-
-
-def mocked_requests_config_post(*args, **kwargs):
- class MockResponseConfigPost:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseConfigPost(
- '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",'
- '"stack_created": "false"}',
- 200)
-
-
-def mocked_requests_config_get(*args, **kwargs):
- class MockResponseConfigGet:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseConfigGet(
- '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",'
- '"stack_created": "true"}',
- 200)
-
-
-def mocked_requests_job_get(*args, **kwargs):
- class MockResponseJobGet:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseJobGet(
- '{"Status": "Completed",\
- "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}',
- 200)
-
-
-def mocked_requests_job_post(*args, **kwargs):
- class MockResponseJobPost:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseJobPost('{"job_id": \
- "d46bfb8c-36f4-4a40-813b-c4b4a437f728"}', 200)
-
-
-def mocked_requests_job_delete(*args, **kwargs):
- class MockResponseJobDelete:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseJobDelete('{}', 200)
-
-
-def mocked_requests_delete(*args, **kwargs):
- class MockResponseDelete:
-
- def __init__(self, json_data, status_code):
- self.json_data = json_data
- self.status_code = status_code
-
- return MockResponseDelete('{}', 200)
-
-
-def mocked_requests_delete_failed(*args, **kwargs):
- class MockResponseDeleteFailed:
-
- def __init__(self, json_data, status_code):
- self.json_data = json_data
- self.status_code = status_code
-
- if args[0] == "http://172.16.0.137:5000/api/v1.0/configurations":
- return MockResponseDeleteFailed('{"message": "Teardown failed"}', 400)
-
- return MockResponseDeleteFailed('{}', 404)
-
-
-class StorPerfTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.post',
- side_effect=mocked_requests_config_post)
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.get',
- side_effect=mocked_requests_config_get)
- def test_successful_setup(self, mock_post, mock_get):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 0,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
-
- s.setup()
-
- self.assertTrue(s.setup_done)
-
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.post',
- side_effect=mocked_requests_job_post)
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.get',
- side_effect=mocked_requests_job_get)
- @mock.patch(
- 'yardstick.benchmark.scenarios.storage.storperf.requests.delete',
- side_effect=mocked_requests_job_delete)
- def test_successful_run(self, mock_post, mock_get, mock_delete):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 0,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
- s.setup_done = True
-
- sample_output = '{"Status": "Completed",\
- "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'
-
- expected_result = jsonutils.loads(sample_output)
-
- s.run(self.result)
-
- self.assertEqual(self.result, expected_result)
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.storage.storperf.requests.delete',
- side_effect=mocked_requests_delete)
- def test_successful_teardown(self, mock_delete):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 10,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
-
- s.teardown()
-
- self.assertFalse(s.setup_done)
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.storage.storperf.requests.delete',
- side_effect=mocked_requests_delete_failed)
- def test_failed_teardown(self, mock_delete):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 10,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
-
- self.assertRaises(AssertionError, s.teardown(), self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/test_base.py b/tests/unit/benchmark/scenarios/test_base.py
deleted file mode 100644
index a95e6bc86..000000000
--- a/tests/unit/benchmark/scenarios/test_base.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# 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())
-
- def test_get_types(self):
- scenario_names = set(
- scenario.__scenario_type__ for scenario in
- base.Scenario.get_types() if hasattr(scenario,
- '__scenario_type__'))
- existing_scenario_class_names = {
- 'Iperf3', 'CACHEstat', 'SpecCPU2006', 'Dummy', 'NSPerf', 'Parser'}
- self.assertTrue(existing_scenario_class_names.issubset(scenario_names))
-
- def test_get_cls_existing_scenario(self):
- scenario_name = 'NSPerf'
- scenario = base.Scenario.get_cls(scenario_name)
- self.assertEqual(scenario_name, scenario.__scenario_type__)
-
- def test_get_cls_non_existing_scenario(self):
- wrong_scenario_name = 'Non-existing-scenario'
- with self.assertRaises(RuntimeError) as exc:
- base.Scenario.get_cls(wrong_scenario_name)
- self.assertEqual('No such scenario type %s' % wrong_scenario_name,
- str(exc.exception))
-
- def test_get_existing_scenario(self):
- scenario_name = 'NSPerf'
- scenario_module = ('yardstick.benchmark.scenarios.networking.'
- 'vnf_generic.NetworkServiceTestCase')
- self.assertEqual(scenario_module, base.Scenario.get(scenario_name))
-
- def test_get_non_existing_scenario(self):
- wrong_scenario_name = 'Non-existing-scenario'
- with self.assertRaises(RuntimeError) as exc:
- base.Scenario.get(wrong_scenario_name)
- self.assertEqual('No such scenario type %s' % wrong_scenario_name,
- str(exc.exception))
-
-
-class IterScenarioClassesTestCase(unittest.TestCase):
-
- def test_no_scenario_type_defined(self):
- some_existing_scenario_class_names = [
- 'Iperf3', 'CACHEstat', 'SpecCPU2006', 'Dummy', 'NSPerf', 'Parser']
- scenario_types = [scenario.__scenario_type__ for scenario
- in base._iter_scenario_classes()]
- for class_name in some_existing_scenario_class_names:
- self.assertIn(class_name, scenario_types)
-
- def test_scenario_type_defined(self):
- some_existing_scenario_class_names = [
- 'Iperf3', 'CACHEstat', 'SpecCPU2006', 'Dummy', 'NSPerf', 'Parser']
- for class_name in some_existing_scenario_class_names:
- scenario_class = next(base._iter_scenario_classes(
- scenario_type=class_name))
- self.assertEqual(class_name, scenario_class.__scenario_type__)