X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Funit%2Fnetwork_services%2Fvnf_generic%2Fvnf%2Ftest_prox_vnf.py;h=76927906607c9875e7320d13d600075042753feb;hb=7f8f31cf68dbecaf521348fccf540cbe0e7c72bd;hp=c727cb7fb606a5b0157bb7cde4f70937983e900b;hpb=ffecd5b84eecdb74d7534b801c1359251c34b34e;p=yardstick.git diff --git a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py b/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py index c727cb7fb..769279066 100644 --- a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py +++ b/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py @@ -15,8 +15,7 @@ # limitations under the License. # -from __future__ import absolute_import - +import errno import os import unittest import mock @@ -84,9 +83,10 @@ class TestProxApproxVnf(unittest.TestCase): 'vpci': '0000:05:00.0', 'local_ip': '152.16.100.19', 'type': 'PCI-PASSTHROUGH', - 'vld_id': '', + 'vld_id': 'downlink_0', + 'ifname': 'xe1', 'netmask': '255.255.255.0', - 'dpdk_port_num': '0', + 'dpdk_port_num': 0, 'bandwidth': '10 Gbps', 'driver': "i40e", 'dst_ip': '152.16.100.20', @@ -102,10 +102,11 @@ class TestProxApproxVnf(unittest.TestCase): 'vpci': '0000:05:00.1', 'local_ip': '152.16.40.19', 'type': 'PCI-PASSTHROUGH', - 'vld_id': '', + 'vld_id': 'uplink_0', + 'ifname': 'xe1', 'driver': "i40e", 'netmask': '255.255.255.0', - 'dpdk_port_num': '1', + 'dpdk_port_num': 1, 'bandwidth': '10 Gbps', 'dst_ip': '152.16.40.20', 'local_iface_name': 'xe1', @@ -186,7 +187,7 @@ class TestProxApproxVnf(unittest.TestCase): 'interfaces': { 'xe0': { 'local_iface_name': 'ens513f0', - 'vld_id': 'public', + 'vld_id': ProxApproxVnf.DOWNLINK, 'netmask': '255.255.255.0', 'local_ip': '152.16.40.20', 'dst_mac': '00:00:00:00:00:01', @@ -220,7 +221,7 @@ class TestProxApproxVnf(unittest.TestCase): 'interfaces': { 'xe0': { 'local_iface_name': 'ens785f0', - 'vld_id': 'private', + 'vld_id': ProxApproxVnf.UPLINK, 'netmask': '255.255.255.0', 'local_ip': '152.16.100.20', 'dst_mac': '00:00:00:00:00:02', @@ -251,7 +252,7 @@ class TestProxApproxVnf(unittest.TestCase): 'interfaces': { 'xe0': { 'local_iface_name': 'ens786f0', - 'vld_id': 'private', + 'vld_id': ProxApproxVnf.UPLINK, 'netmask': '255.255.255.0', 'local_ip': '152.16.100.19', 'dst_mac': '00:00:00:00:00:04', @@ -263,7 +264,7 @@ class TestProxApproxVnf(unittest.TestCase): }, 'xe1': { 'local_iface_name': 'ens786f1', - 'vld_id': 'public', + 'vld_id': ProxApproxVnf.DOWNLINK, 'netmask': '255.255.255.0', 'local_ip': '152.16.40.19', 'dst_mac': '00:00:00:00:00:03', @@ -313,13 +314,13 @@ class TestProxApproxVnf(unittest.TestCase): } @mock.patch(SSH_HELPER) - def test___init__(self, ssh, mock_time): + def test___init__(self, ssh, *args): mock_ssh(ssh) prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) self.assertIsNone(prox_approx_vnf._vnf_process) @mock.patch(SSH_HELPER) - def test_collect_kpi_no_client(self, ssh, mock_time): + def test_collect_kpi_no_client(self, ssh, *args): mock_ssh(ssh) prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) @@ -334,27 +335,27 @@ class TestProxApproxVnf(unittest.TestCase): self.assertEqual(result, expected) @mock.patch(SSH_HELPER) - def test_collect_kpi(self, ssh, mock_time): + def test_collect_kpi(self, ssh, *args): mock_ssh(ssh) resource_helper = mock.MagicMock() resource_helper.execute.return_value = list(range(12)) - resource_helper.collect_kpi.return_value = {'core': {'result': 234}} + resource_helper.collect_collectd_kpi.return_value = {'core': {'result': 234}} prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) prox_approx_vnf.resource_helper = resource_helper expected = { - 'packets_in': 7, + 'packets_in': 6, 'packets_dropped': 1, - 'packets_fwd': 6, + 'packets_fwd': 7, 'collect_stats': {'core': {'result': 234}}, } result = prox_approx_vnf.collect_kpi() self.assertEqual(result, expected) @mock.patch(SSH_HELPER) - def test_collect_kpi_error(self, ssh, mock_time): + def test_collect_kpi_error(self, ssh, *args): mock_ssh(ssh) resource_helper = mock.MagicMock() @@ -362,67 +363,27 @@ class TestProxApproxVnf(unittest.TestCase): prox_approx_vnf = ProxApproxVnf(NAME, deepcopy(self.VNFD0)) prox_approx_vnf.resource_helper = resource_helper prox_approx_vnf.vnfd_helper['vdu'][0]['external-interface'] = [] + prox_approx_vnf.vnfd_helper.port_pairs.interfaces = [] with self.assertRaises(RuntimeError): prox_approx_vnf.collect_kpi() - def _get_file_abspath(self, filename, mock_time): + def _get_file_abspath(self, filename, *args): curr_path = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(curr_path, filename) return file_path @mock.patch(SSH_HELPER) - def test_run_prox(self, ssh, mock_time): - mock_ssh(ssh) - + def bad_test_instantiate(self, *args): prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) + prox_approx_vnf.scenario_helper = mock.MagicMock() + prox_approx_vnf.setup_helper = mock.MagicMock() + # we can't mock super + prox_approx_vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG) + prox_approx_vnf.setup_helper.build_config.assert_called_once() - filewrapper = mock.MagicMock() - config_path = self.SCENARIO_CFG['options']["vnf__1"]["prox_config"] - prox_path = self.SCENARIO_CFG['options']["vnf__1"]["prox_path"] - prox_args = self.SCENARIO_CFG['options']["vnf__1"]["prox_args"] - prox_approx_vnf.WAIT_TIME = 0 - prox_approx_vnf._run_prox(filewrapper, config_path, prox_path, prox_args) - - self.assertEqual(prox_approx_vnf.ssh_helper.run.call_args[0][0], - "sudo bash -c 'cd /root/dppd-PROX-v035/build; " - "/root/dppd-PROX-v035/build/prox -o cli -t -f configs/l3-swap-2.cfg '") - - @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.CpuSysCores') - @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.find_relative_file') @mock.patch(SSH_HELPER) - def test_instantiate(self, ssh, mock_find, mock_cpu_sys_cores, mock_time): - mock_ssh(ssh) - - mock_cpu_sys_cores.get_core_socket.return_value = {'0': '01234'} - - prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) - prox_approx_vnf.ssh_helper = mock.MagicMock( - **{"execute.return_value": (0, "", ""), "bin_path": ""}) - prox_approx_vnf.setup_helper._setup_resources = mock.MagicMock() - prox_approx_vnf.setup_helper._find_used_drivers = mock.MagicMock() - prox_approx_vnf.setup_helper.used_drivers = {} - prox_approx_vnf.setup_helper.bound_pci = [] - prox_approx_vnf._run_prox = mock.MagicMock(return_value=0) - prox_approx_vnf.resource_helper = mock.MagicMock() - prox_approx_vnf.resource_helper.get_process_args.return_value = { - '-e': '', - '-t': '', - }, 'configs/l3-gen-2.cfg', '/root/dppd-PROX-v035/build/prox' - - prox_approx_vnf.copy_to_target = mock.MagicMock() - prox_approx_vnf.upload_prox_config = mock.MagicMock() - prox_approx_vnf.generate_prox_config_file = mock.MagicMock() - prox_approx_vnf.q_out.put("PROX started") - prox_approx_vnf.WAIT_TIME = 0 - - # if process it still running exitcode will be None - expected = 0, None - result = prox_approx_vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG) - self.assertIn(result, expected) - - @mock.patch(SSH_HELPER) - def test_wait_for_instantiate_panic(self, ssh, mock_time): + def test_wait_for_instantiate_panic(self, ssh, *args): mock_ssh(ssh, exec_result=(1, "", "")) prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) prox_approx_vnf._vnf_process = mock.MagicMock(**{"is_alive.return_value": True}) @@ -432,16 +393,9 @@ class TestProxApproxVnf(unittest.TestCase): with self.assertRaises(RuntimeError): prox_approx_vnf.wait_for_instantiate() - @mock.patch(SSH_HELPER) - def test_scale(self, ssh, mock_time): - mock_ssh(ssh) - prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) - with self.assertRaises(NotImplementedError): - prox_approx_vnf.scale('') - @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.socket') @mock.patch(SSH_HELPER) - def test_terminate(self, ssh, mock_socket, mock_time): + def test_terminate(self, ssh, *args): mock_ssh(ssh) prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) prox_approx_vnf._vnf_process = mock.MagicMock() @@ -453,7 +407,7 @@ class TestProxApproxVnf(unittest.TestCase): self.assertIsNone(prox_approx_vnf.terminate()) @mock.patch(SSH_HELPER) - def test__vnf_up_post(self, ssh, mock_time): + def test__vnf_up_post(self, ssh, *args): mock_ssh(ssh) prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) prox_approx_vnf.resource_helper = resource_helper = mock.Mock() @@ -461,6 +415,18 @@ class TestProxApproxVnf(unittest.TestCase): prox_approx_vnf._vnf_up_post() self.assertEqual(resource_helper.up_post.call_count, 1) + @mock.patch(SSH_HELPER) + def test_vnf_execute_oserror(self, ssh, *args): + mock_ssh(ssh) + prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0) + prox_approx_vnf.resource_helper = resource_helper = mock.Mock() + + resource_helper.execute.side_effect = OSError(errno.EPIPE, "") + prox_approx_vnf.vnf_execute("", _ignore_errors=True) + + resource_helper.execute.side_effect = OSError(errno.ESHUTDOWN, "") + prox_approx_vnf.vnf_execute("", _ignore_errors=True) -if __name__ == '__main__': - unittest.main() + resource_helper.execute.side_effect = OSError(errno.EADDRINUSE, "") + with self.assertRaises(OSError): + prox_approx_vnf.vnf_execute("", _ignore_errors=True)