def test_set_numvfs_for_pf_write_failed(self): sriov_open = MockSRIOVOpen() sriov_open.read_queue = ['8\n'] sriov_open.write_queue = [IOError(16, 'Error'), IOError(16, 'Error')] with patch('builtins.open', sriov_open.open): with self.assertRaises(RuntimeError) as e: sriov.set_numvfs_for_pf('enp1', 2) self.assertIn('failed setting sriov_numvfs to 2 for enp1', str(e.exception))
def test_set_numvfs_for_pf_over_theoretical_max(self): sriov_open = MockSRIOVOpen() sriov_open.read_queue = ['1337\n'] with patch('builtins.open', sriov_open.open): with self.assertRaises(ConfigurationError) as e: sriov.set_numvfs_for_pf('enp1', 345) self.assertIn( 'cannot allocate more VFs for PF enp1 than the SR-IOV maximum', str(e.exception))
def test_set_numvfs_for_pf_over_max(self): sriov_open = MockSRIOVOpen() sriov_open.read_queue = ['8\n'] with patch('builtins.open', sriov_open.open): with self.assertRaises(ConfigurationError) as e: sriov.set_numvfs_for_pf('enp1', 9) self.assertIn( 'cannot allocate more VFs for PF enp1 than supported', str(e.exception))
def test_set_numvfs_for_pf_read_failed(self): sriov_open = MockSRIOVOpen() cases = ( [IOError], ['not a number\n'], ) with patch('builtins.open', sriov_open.open): for case in cases: sriov_open.read_queue = case with self.assertRaises(RuntimeError): sriov.set_numvfs_for_pf('enp1', 3)
def test_set_numvfs_for_pf_failsafe(self): sriov_open = MockSRIOVOpen() sriov_open.read_queue = ['8\n'] sriov_open.write_queue = [IOError(16, 'Error'), None, None] with patch('builtins.open', sriov_open.open): ret = sriov.set_numvfs_for_pf('enp1', 2) self.assertTrue(ret) handle = sriov_open.open() self.assertEqual(handle.write.call_count, 3)
def test_set_numvfs_for_pf(self): sriov_open = MockSRIOVOpen() sriov_open.read_queue = ['8\n'] with patch('builtins.open', sriov_open.open): ret = sriov.set_numvfs_for_pf('enp1', 2) self.assertTrue(ret) self.assertListEqual(sriov_open.open.call_args_list, [ call('/sys/class/net/enp1/device/sriov_totalvfs'), call('/sys/class/net/enp1/device/sriov_numvfs', 'w') ]) handle = sriov_open.open() handle.write.assert_called_once_with('2')