diff options
Diffstat (limited to 'os_net_config/tests/test_utils.py')
-rw-r--r-- | os_net_config/tests/test_utils.py | 72 |
1 files changed, 70 insertions, 2 deletions
diff --git a/os_net_config/tests/test_utils.py b/os_net_config/tests/test_utils.py index dcd6045..e09b6f7 100644 --- a/os_net_config/tests/test_utils.py +++ b/os_net_config/tests/test_utils.py @@ -130,6 +130,24 @@ class TestUtils(base.TestCase): pci = utils.get_pci_address('nic2', False) self.assertEqual(None, pci) + def test_get_stored_pci_address_success(self): + def test_get_dpdk_map(): + return [{'name': 'eth1', 'pci_address': '0000:00:09.0', + 'mac_address': '01:02:03:04:05:06', + 'driver': 'vfio-pci'}] + + self.stubs.Set(utils, '_get_dpdk_map', test_get_dpdk_map) + pci = utils.get_stored_pci_address('eth1', False) + self.assertEqual('0000:00:09.0', pci) + + def test_get_stored_pci_address_empty(self): + def test_get_dpdk_map(): + return [] + + self.stubs.Set(utils, '_get_dpdk_map', test_get_dpdk_map) + pci = utils.get_stored_pci_address('eth1', False) + self.assertEqual(None, pci) + def test_bind_dpdk_interfaces(self): def test_execute(name, dummy1, dummy2=None, dummy3=None): if 'ethtool' in name: @@ -143,8 +161,10 @@ class TestUtils(base.TestCase): self.stubs.Set(processutils, 'execute', test_execute) self.stubs.Set(utils, '_get_dpdk_mac_address', test_get_dpdk_mac_address) - - utils.bind_dpdk_interfaces('nic2', 'vfio-pci', False) + try: + utils.bind_dpdk_interfaces('nic2', 'vfio-pci', False) + except utils.OvsDpdkBindException: + self.fail("Received OvsDpdkBindException unexpectedly") def test_bind_dpdk_interfaces_fail(self): def test_execute(name, dummy1, dummy2=None, dummy3=None): @@ -164,6 +184,54 @@ class TestUtils(base.TestCase): utils.bind_dpdk_interfaces, 'eth1', 'vfio-pci', False) + def test_bind_dpdk_interfaces_skip_valid_device(self): + def test_execute(name, dummy1, dummy2=None, dummy3=None): + if 'ethtool' in name: + return None, 'Error' + if 'driverctl' in name: + return None, None + + def test_get_dpdk_mac_address(name): + return '01:02:03:04:05:06' + + def test_get_dpdk_map(): + return [{'name': 'eth1', 'pci_address': '0000:00:09.0', + 'mac_address': '01:02:03:04:05:06', + 'driver': 'vfio-pci'}] + + self.stubs.Set(utils, '_get_dpdk_map', test_get_dpdk_map) + self.stubs.Set(processutils, 'execute', test_execute) + self.stubs.Set(utils, '_get_dpdk_mac_address', + test_get_dpdk_mac_address) + try: + utils.bind_dpdk_interfaces('eth1', 'vfio-pci', False) + except utils.OvsDpdkBindException: + self.fail("Received OvsDpdkBindException unexpectedly") + + def test_bind_dpdk_interfaces_fail_invalid_device(self): + def test_execute(name, dummy1, dummy2=None, dummy3=None): + if 'ethtool' in name: + return None, 'Error' + if 'driverctl' in name: + return None, None + + def test_get_dpdk_mac_address(name): + return '01:02:03:04:05:06' + + def test_get_dpdk_map(): + return [{'name': 'eth1', 'pci_address': '0000:00:09.0', + 'mac_address': '01:02:03:04:05:06', + 'driver': 'vfio-pci'}] + + self.stubs.Set(utils, '_get_dpdk_map', test_get_dpdk_map) + self.stubs.Set(processutils, 'execute', test_execute) + self.stubs.Set(utils, '_get_dpdk_mac_address', + test_get_dpdk_mac_address) + + self.assertRaises(utils.OvsDpdkBindException, + utils.bind_dpdk_interfaces, 'eth2', 'vfio-pci', + False) + def test__update_dpdk_map_new(self): utils._update_dpdk_map('eth1', '0000:03:00.0', '01:02:03:04:05:06', 'vfio-pci') |