From 724e49770c517782e269ccdb2320f4a7eb5d87d5 Mon Sep 17 00:00:00 2001 From: Miikka Koistinen Date: Wed, 9 May 2018 17:25:51 +0300 Subject: Refactor remote command execution in pktgen Some remote commands in Pktgen are executed without checking the exit status. This patch makes all remote commands check exit value, and removes unused variables that are captured from remote command executions. JIRA: YARDSTICK-1166 Change-Id: I42a667ebd22d086887d61e1671bc569b03c59d33 Signed-off-by: Miikka Koistinen --- .../benchmark/scenarios/networking/test_pktgen.py | 91 +++++++++++----------- 1 file changed, 46 insertions(+), 45 deletions(-) (limited to 'yardstick/tests/unit/benchmark/scenarios/networking') diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py index ea0deab3e..4016f5055 100644 --- a/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py +++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py @@ -56,11 +56,9 @@ class PktgenTestCase(unittest.TestCase): 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( + mock_ssh.SSH.from_node().run.assert_called_with( "sudo iptables -F; " "sudo iptables -A INPUT -p udp --dport 1000:%s -j DROP" % 1010, timeout=60) @@ -75,8 +73,8 @@ class PktgenTestCase(unittest.TestCase): 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) + mock_ssh.SSH.from_node().run.side_effect = y_exc.SSHError + self.assertRaises(y_exc.SSHError, p._iptables_setup) def test_pktgen_successful_iptables_get_result(self, mock_ssh): @@ -89,12 +87,14 @@ class PktgenTestCase(unittest.TestCase): p.number_of_ports = args['options']['number_of_ports'] mock_ssh.SSH.from_node().execute.return_value = (0, '150000', '') - p._iptables_get_result() + result = p._iptables_get_result() + expected_result = 150000 + self.assertEqual(result, expected_result) mock_ssh.SSH.from_node().execute.assert_called_with( "sudo iptables -L INPUT -vnx |" "awk '/dpts:1000:%s/ {{printf \"%%s\", $1}}'" - % 1010) + % 1010, raise_on_error=True) def test_pktgen_unsuccessful_iptables_get_result(self, mock_ssh): @@ -107,8 +107,8 @@ class PktgenTestCase(unittest.TestCase): 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) + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError + self.assertRaises(y_exc.SSHError, p._iptables_get_result) def test_pktgen_successful_no_sla(self, mock_ssh): @@ -192,8 +192,8 @@ class PktgenTestCase(unittest.TestCase): 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) + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError + self.assertRaises(y_exc.SSHError, p.run, result) def test_pktgen_get_vnic_driver_name(self, mock_ssh): args = { @@ -214,9 +214,9 @@ class PktgenTestCase(unittest.TestCase): p = pktgen.Pktgen(args, self.ctx) p.server = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._get_vnic_driver_name) + self.assertRaises(y_exc.SSHError, p._get_vnic_driver_name) def test_pktgen_get_sriov_queue_number(self, mock_ssh): args = { @@ -237,9 +237,9 @@ class PktgenTestCase(unittest.TestCase): p = pktgen.Pktgen(args, self.ctx) p.server = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._get_sriov_queue_number) + self.assertRaises(y_exc.SSHError, p._get_sriov_queue_number) def test_pktgen_get_available_queue_number(self, mock_ssh): args = { @@ -250,11 +250,11 @@ class PktgenTestCase(unittest.TestCase): mock_ssh.SSH.from_node().execute.return_value = (0, '4', '') - p._get_available_queue_number() + self.assertEqual(p._get_available_queue_number(), 4) mock_ssh.SSH.from_node().execute.assert_called_with( "sudo ethtool -l eth0 | grep Combined | head -1 |" - "awk '{printf $2}'") + "awk '{printf $2}'", raise_on_error=True) def test_pktgen_unsuccessful_get_available_queue_number(self, mock_ssh): args = { @@ -263,9 +263,9 @@ class PktgenTestCase(unittest.TestCase): p = pktgen.Pktgen(args, self.ctx) p.server = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._get_available_queue_number) + self.assertRaises(y_exc.SSHError, p._get_available_queue_number) def test_pktgen_get_usable_queue_number(self, mock_ssh): args = { @@ -276,11 +276,11 @@ class PktgenTestCase(unittest.TestCase): mock_ssh.SSH.from_node().execute.return_value = (0, '1', '') - p._get_usable_queue_number() + self.assertEqual(p._get_usable_queue_number(), 1) mock_ssh.SSH.from_node().execute.assert_called_with( "sudo ethtool -l eth0 | grep Combined | tail -1 |" - "awk '{printf $2}'") + "awk '{printf $2}'", raise_on_error=True) def test_pktgen_unsuccessful_get_usable_queue_number(self, mock_ssh): args = { @@ -289,9 +289,9 @@ class PktgenTestCase(unittest.TestCase): p = pktgen.Pktgen(args, self.ctx) p.server = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._get_usable_queue_number) + self.assertRaises(y_exc.SSHError, p._get_usable_queue_number) def test_pktgen_enable_ovs_multiqueue(self, mock_ssh): args = { @@ -333,12 +333,12 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().run.side_effect = y_exc.SSHError p._get_usable_queue_number = mock.Mock(return_value=1) p._get_available_queue_number = mock.Mock(return_value=4) - self.assertRaises(RuntimeError, p._enable_ovs_multiqueue) + self.assertRaises(y_exc.SSHError, p._enable_ovs_multiqueue) def test_pktgen_setup_irqmapping_ovs(self, mock_ssh): args = { @@ -352,7 +352,7 @@ class PktgenTestCase(unittest.TestCase): p._setup_irqmapping_ovs(4) - mock_ssh.SSH.from_node().execute.assert_called_with( + mock_ssh.SSH.from_node().run.assert_called_with( "echo 8 | sudo tee /proc/irq/10/smp_affinity") def test_pktgen_setup_irqmapping_ovs_1q(self, mock_ssh): @@ -367,7 +367,7 @@ class PktgenTestCase(unittest.TestCase): p._setup_irqmapping_ovs(1) - mock_ssh.SSH.from_node().execute.assert_called_with( + mock_ssh.SSH.from_node().run.assert_called_with( "echo 1 | sudo tee /proc/irq/10/smp_affinity") def test_pktgen_unsuccessful_setup_irqmapping_ovs(self, mock_ssh): @@ -378,9 +378,9 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._setup_irqmapping_ovs, 4) + self.assertRaises(y_exc.SSHError, p._setup_irqmapping_ovs, 4) def test_pktgen_unsuccessful_setup_irqmapping_ovs_1q(self, mock_ssh): args = { @@ -390,9 +390,9 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._setup_irqmapping_ovs, 1) + self.assertRaises(y_exc.SSHError, p._setup_irqmapping_ovs, 1) def test_pktgen_setup_irqmapping_sriov(self, mock_ssh): args = { @@ -406,7 +406,7 @@ class PktgenTestCase(unittest.TestCase): p._setup_irqmapping_sriov(2) - mock_ssh.SSH.from_node().execute.assert_called_with( + mock_ssh.SSH.from_node().run.assert_called_with( "echo 2 | sudo tee /proc/irq/10/smp_affinity") def test_pktgen_setup_irqmapping_sriov_1q(self, mock_ssh): @@ -421,7 +421,7 @@ class PktgenTestCase(unittest.TestCase): p._setup_irqmapping_sriov(1) - mock_ssh.SSH.from_node().execute.assert_called_with( + mock_ssh.SSH.from_node().run.assert_called_with( "echo 1 | sudo tee /proc/irq/10/smp_affinity") def test_pktgen_unsuccessful_setup_irqmapping_sriov(self, mock_ssh): @@ -432,9 +432,9 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._setup_irqmapping_sriov, 2) + self.assertRaises(y_exc.SSHError, p._setup_irqmapping_sriov, 2) def test_pktgen_unsuccessful_setup_irqmapping_sriov_1q(self, mock_ssh): args = { @@ -444,9 +444,9 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._setup_irqmapping_sriov, 1) + self.assertRaises(y_exc.SSHError, p._setup_irqmapping_sriov, 1) def test_pktgen_is_irqbalance_disabled(self, mock_ssh): args = { @@ -457,10 +457,11 @@ class PktgenTestCase(unittest.TestCase): mock_ssh.SSH.from_node().execute.return_value = (0, '', '') - p._is_irqbalance_disabled() + result = p._is_irqbalance_disabled() + self.assertFalse(result) mock_ssh.SSH.from_node().execute.assert_called_with( - "grep ENABLED /etc/default/irqbalance") + "grep ENABLED /etc/default/irqbalance", raise_on_error=True) def test_pktgen_unsuccessful_is_irqbalance_disabled(self, mock_ssh): args = { @@ -469,9 +470,9 @@ class PktgenTestCase(unittest.TestCase): p = pktgen.Pktgen(args, self.ctx) p.server = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().execute.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._is_irqbalance_disabled) + self.assertRaises(y_exc.SSHError, p._is_irqbalance_disabled) def test_pktgen_disable_irqbalance(self, mock_ssh): args = { @@ -481,11 +482,11 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (0, '', '') + mock_ssh.SSH.from_node().run.return_value = (0, '', '') p._disable_irqbalance() - mock_ssh.SSH.from_node().execute.assert_called_with( + mock_ssh.SSH.from_node().run.assert_called_with( "sudo service irqbalance disable") def test_pktgen_unsuccessful_disable_irqbalance(self, mock_ssh): @@ -496,9 +497,9 @@ class PktgenTestCase(unittest.TestCase): p.server = mock_ssh.SSH.from_node() p.client = mock_ssh.SSH.from_node() - mock_ssh.SSH.from_node().execute.return_value = (1, '', '') + mock_ssh.SSH.from_node().run.side_effect = y_exc.SSHError - self.assertRaises(RuntimeError, p._disable_irqbalance) + self.assertRaises(y_exc.SSHError, p._disable_irqbalance) def test_pktgen_multiqueue_setup_ovs(self, mock_ssh): args = { -- cgit 1.2.3-korg