diff options
Diffstat (limited to 'tests/unit/benchmark/contexts')
3 files changed, 64 insertions, 50 deletions
diff --git a/tests/unit/benchmark/contexts/standalone/test_model.py b/tests/unit/benchmark/contexts/standalone/test_model.py index 31ec2b7d1..6090356b6 100644 --- a/tests/unit/benchmark/contexts/standalone/test_model.py +++ b/tests/unit/benchmark/contexts/standalone/test_model.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python - # Copyright (c) 2016-2017 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,9 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Unittest for yardstick.benchmark.contexts.standalone.model - -from __future__ import absolute_import import copy import os import unittest @@ -24,9 +19,9 @@ import mock from xml.etree import ElementTree +from yardstick.benchmark.contexts.standalone.model import Libvirt from yardstick.benchmark.contexts.standalone import model from yardstick.network_services import utils -from yardstick.network_services.helpers import cpu XML_SAMPLE = """<?xml version="1.0"?> @@ -134,9 +129,9 @@ class ModelLibvirtTestCase(unittest.TestCase): as mock_parse: xml = copy.deepcopy(self.xml) mock_parse.return_value = xml - vf_pci = '0001:05:04.2' + vm_pci = '0001:05:04.2' model.Libvirt.add_sriov_interfaces( - self.pci_address_str, vf_pci, self.mac, xml_input) + vm_pci, self.pci_address_str, self.mac, xml_input) mock_parse.assert_called_once_with(xml_input) self.mock_write_xml.assert_called_once_with(xml_input) interface = xml.find('devices').find('interface') @@ -145,8 +140,29 @@ class ModelLibvirtTestCase(unittest.TestCase): mac = interface.find('mac') self.assertEqual(self.mac, mac.get('address')) source = interface.find('source') + source_address = source.find('address') self.assertIsNotNone(source.find('address')) - self.assertIsNotNone(interface.find('address')) + + self.assertEqual('pci', source_address.get('type')) + self.assertEqual('0x' + self.pci_address_str.split(':')[0], + source_address.get('domain')) + self.assertEqual('0x' + self.pci_address_str.split(':')[1], + source_address.get('bus')) + self.assertEqual('0x' + self.pci_address_str.split(':')[2].split('.')[0], + source_address.get('slot')) + self.assertEqual('0x' + self.pci_address_str.split(':')[2].split('.')[1], + source_address.get('function')) + + interface_address = interface.find('address') + self.assertEqual('pci', interface_address.get('type')) + self.assertEqual('0x' + vm_pci.split(':')[0], + interface_address.get('domain')) + self.assertEqual('0x' + vm_pci.split(':')[1], + interface_address.get('bus')) + self.assertEqual('0x' + vm_pci.split(':')[2].split('.')[0], + interface_address.get('slot')) + self.assertEqual('0x' + vm_pci.split(':')[2].split('.')[1], + interface_address.get('function')) def test_create_snapshot_qemu(self): result = "/var/lib/libvirt/images/0.qcow2" @@ -164,6 +180,8 @@ class ModelLibvirtTestCase(unittest.TestCase): *args): # NOTE(ralonsoh): this test doesn't cover function execution. This test # should also check mocked function calls. + cfg_file = 'test_config_file.cfg' + self.addCleanup(os.remove, cfg_file) result = [4] with mock.patch("yardstick.ssh.SSH") as ssh: ssh_mock = mock.Mock(autospec=ssh.SSH) @@ -172,7 +190,7 @@ class ModelLibvirtTestCase(unittest.TestCase): ssh.return_value = ssh_mock mock_create_snapshot_qemu.return_value = "0.img" - status = model.Libvirt.build_vm_xml(ssh_mock, {}, "test", "vm_0", 0) + status = model.Libvirt.build_vm_xml(ssh_mock, {}, cfg_file, 'vm_0', 0) self.assertEqual(status[0], result[0]) def test_update_interrupts_hugepages_perf(self): @@ -181,21 +199,23 @@ class ModelLibvirtTestCase(unittest.TestCase): ssh_mock.execute = \ mock.Mock(return_value=(0, "a", "")) ssh.return_value = ssh_mock - # NOTE(ralonsoh): this test doesn't cover function execution. This test - # should also check mocked function calls. - model.Libvirt.update_interrupts_hugepages_perf(ssh_mock) - - @mock.patch.object(cpu.CpuSysCores, 'get_core_socket') - def test_pin_vcpu_for_perf(self, mock_get_core_socket): - mock_get_core_socket.return_value = { - 'cores_per_socket': 1, - 'thread_per_core': 1, - '0': [1, 2] - } - # NOTE(ralonsoh): this test doesn't cover function execution. This - # function needs more tests. - model.Libvirt.pin_vcpu_for_perf(mock.Mock()) - + # NOTE(ralonsoh): 'update_interrupts_hugepages_perf' always return + # None, this check is trivial. + #status = Libvirt.update_interrupts_hugepages_perf(ssh_mock) + #self.assertIsNone(status) + Libvirt.update_interrupts_hugepages_perf(ssh_mock) + + @mock.patch("yardstick.benchmark.contexts.standalone.model.CpuSysCores") + @mock.patch.object(model.Libvirt, 'update_interrupts_hugepages_perf') + def test_pin_vcpu_for_perf(self, *args): + # NOTE(ralonsoh): test mocked methods/variables. + with mock.patch("yardstick.ssh.SSH") as ssh: + ssh_mock = mock.Mock(autospec=ssh.SSH) + ssh_mock.execute = \ + mock.Mock(return_value=(0, "a", "")) + ssh.return_value = ssh_mock + status = Libvirt.pin_vcpu_for_perf(ssh_mock, 4) + self.assertIsNotNone(status) class StandaloneContextHelperTestCase(unittest.TestCase): @@ -247,8 +267,7 @@ class StandaloneContextHelperTestCase(unittest.TestCase): def test_get_nic_details(self, mock_get_kernel_module): with mock.patch("yardstick.ssh.SSH") as ssh: ssh_mock = mock.Mock(autospec=ssh.SSH) - ssh_mock.execute = \ - mock.Mock(return_value=(1, "i40e ixgbe", "")) + ssh_mock.execute = mock.Mock(return_value=(1, "i40e ixgbe", "")) ssh.return_value = ssh_mock mock_get_kernel_module.return_value = "i40e" # NOTE(ralonsoh): this test doesn't cover function execution. This test @@ -296,6 +315,7 @@ class StandaloneContextHelperTestCase(unittest.TestCase): @mock.patch('yardstick.ssh.SSH') def test_get_mgmt_ip(self, *args): + # NOTE(ralonsoh): test mocked methods/variables. with mock.patch("yardstick.ssh.SSH") as ssh: ssh_mock = mock.Mock(autospec=ssh.SSH) ssh_mock.execute = mock.Mock( @@ -309,6 +329,7 @@ class StandaloneContextHelperTestCase(unittest.TestCase): @mock.patch('yardstick.ssh.SSH') def test_get_mgmt_ip_no(self, *args): + # NOTE(ralonsoh): test mocked methods/variables. with mock.patch("yardstick.ssh.SSH") as ssh: ssh_mock = mock.Mock(autospec=ssh.SSH) ssh_mock.execute = \ diff --git a/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py b/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py index 5d1b0421c..e39ecf4f2 100644 --- a/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py +++ b/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py @@ -17,12 +17,9 @@ from __future__ import absolute_import import os import unittest -import errno import mock -from yardstick.common import constants as consts from yardstick.benchmark.contexts.standalone import ovs_dpdk -from yardstick.network_services.utils import PciAddress class OvsDpdkContextTestCase(unittest.TestCase): @@ -68,7 +65,7 @@ class OvsDpdkContextTestCase(unittest.TestCase): self.ovs_dpdk.helper = mock_helper self.ovs_dpdk.vnf_node = mock_server self.assertIsNone(self.ovs_dpdk.file_path) - self.assertEqual(self.ovs_dpdk.first_run, True) + self.assertTrue(self.ovs_dpdk.first_run) def test_init(self): self.ovs_dpdk.helper.parse_pod_file = mock.Mock(return_value=[{}, {}, {}]) @@ -149,12 +146,9 @@ class OvsDpdkContextTestCase(unittest.TestCase): self.assertRaises(Exception, self.ovs_dpdk.check_ovs_dpdk_env) @mock.patch('yardstick.ssh.SSH') - def test_deploy(self, mock_ssh): - with mock.patch("yardstick.ssh.SSH") as ssh: - ssh_mock = mock.Mock(autospec=ssh.SSH) - ssh_mock.execute = \ - mock.Mock(return_value=(0, "a", "")) - ssh.return_value = ssh_mock + def test_deploy(self, ssh_mock): + ssh_mock.execute.return_value = (0, "a", "") + self.ovs_dpdk.vm_deploy = False self.assertIsNone(self.ovs_dpdk.deploy()) @@ -168,22 +162,21 @@ class OvsDpdkContextTestCase(unittest.TestCase): self.ovs_dpdk.setup_ovs_bridge_add_flows = mock.Mock(return_value={}) self.ovs_dpdk.setup_ovs_dpdk_context = mock.Mock(return_value={}) self.ovs_dpdk.wait_for_vnfs_to_start = mock.Mock(return_value={}) + # TODO(elfoley): This test should check states/sideeffects instead of + # output. self.assertIsNone(self.ovs_dpdk.deploy()) - @mock.patch('yardstick.benchmark.contexts.standalone.ovs_dpdk.Libvirt') + @mock.patch('yardstick.benchmark.contexts.standalone.model.Libvirt') @mock.patch('yardstick.ssh.SSH') - def test_undeploy(self, mock_ssh, mock_libvirt): - with mock.patch("yardstick.ssh.SSH") as ssh: - ssh_mock = mock.Mock(autospec=ssh.SSH) - ssh_mock.execute = \ - mock.Mock(return_value=(0, "a", "")) - ssh.return_value = ssh_mock + def test_undeploy(self, ssh_mock, _): + ssh_mock.execute.return_value = (0, "a", "") + self.ovs_dpdk.vm_deploy = False self.assertIsNone(self.ovs_dpdk.undeploy()) self.ovs_dpdk.vm_deploy = True - self.ovs_dpdk.connection = ssh_mock self.ovs_dpdk.vm_names = ['vm_0', 'vm_1'] + self.ovs_dpdk.connection = ssh_mock self.ovs_dpdk.drivers = ['vm_0', 'vm_1'] self.ovs_dpdk.cleanup_ovs_dpdk_env = mock.Mock() self.ovs_dpdk.networks = self.NETWORKS @@ -326,8 +319,8 @@ class OvsDpdkContextTestCase(unittest.TestCase): self.ovs_dpdk.get_vf_datas = mock.Mock(return_value="") self.assertIsNone(self.ovs_dpdk.configure_nics_for_ovs_dpdk()) - @mock.patch('yardstick.benchmark.contexts.standalone.ovs_dpdk.Libvirt') - def test__enable_interfaces(self, mock_add_ovs_interface): + @mock.patch('yardstick.benchmark.contexts.standalone.model.Libvirt.add_ovs_interface') + def test__enable_interfaces(self, _): with mock.patch("yardstick.ssh.SSH") as ssh: ssh_mock = mock.Mock(autospec=ssh.SSH) ssh_mock.execute = \ @@ -343,7 +336,7 @@ class OvsDpdkContextTestCase(unittest.TestCase): @mock.patch('yardstick.benchmark.contexts.standalone.ovs_dpdk.Libvirt') @mock.patch('yardstick.benchmark.contexts.standalone.model.Server') - def test_setup_ovs_dpdk_context(self, mock_server, mock_libvirt): + def test_setup_ovs_dpdk_context(self, _, mock_libvirt): with mock.patch("yardstick.ssh.SSH") as ssh: ssh_mock = mock.Mock(autospec=ssh.SSH) ssh_mock.execute = \ @@ -372,6 +365,6 @@ class OvsDpdkContextTestCase(unittest.TestCase): mock_libvirt.build_vm_xml = mock.Mock(return_value=[6, "00:00:00:00:00:01"]) self.ovs_dpdk._enable_interfaces = mock.Mock(return_value="") mock_libvirt.virsh_create_vm = mock.Mock(return_value="") - mock_libvirt.pin_vcpu_for_perf= mock.Mock(return_value="") + mock_libvirt.pin_vcpu_for_perf = mock.Mock(return_value="") self.ovs_dpdk.vnf_node.generate_vnf_instance = mock.Mock(return_value={}) self.assertIsNotNone(self.ovs_dpdk.setup_ovs_dpdk_context()) diff --git a/tests/unit/benchmark/contexts/standalone/test_sriov.py b/tests/unit/benchmark/contexts/standalone/test_sriov.py index 3ea673abc..7f11a7d59 100644 --- a/tests/unit/benchmark/contexts/standalone/test_sriov.py +++ b/tests/unit/benchmark/contexts/standalone/test_sriov.py @@ -70,7 +70,7 @@ class SriovContextTestCase(unittest.TestCase): self.sriov.helper = mock_helper self.sriov.vnf_node = mock_server self.assertIsNone(self.sriov.file_path) - self.assertEqual(self.sriov.first_run, True) + self.assertTrue(self.sriov.first_run) def test_init(self): self.sriov.helper.parse_pod_file = mock.Mock(return_value=[{}, {}, {}]) |