add yardstick iruya 9.0.0 release notes
[yardstick.git] / yardstick / tests / unit / common / test_utils.py
index ef41421..8fed5ec 100644 (file)
@@ -1135,6 +1135,15 @@ class TestUtilsIpAddrMethods(ut_base.BaseUnitTestCase):
         for addr in addr_list:
             self.assertRaises(Exception, utils.make_ipv4_address, addr)
 
+    def test_get_ip_range_count(self):
+        iprange = "192.168.0.1-192.168.0.25"
+        count = utils.get_ip_range_count(iprange)
+        self.assertEqual(count, 24)
+
+    def test_get_ip_range_start(self):
+        iprange = "192.168.0.1-192.168.0.25"
+        start = utils.get_ip_range_start(iprange)
+        self.assertEqual(start, "192.168.0.1")
 
     def test_safe_ip_address(self):
         addr_list = self.GOOD_IP_V4_ADDRESS_STR_LIST
@@ -1391,3 +1400,64 @@ class GetPortIPTestCase(unittest.TestCase):
 
     def test_return_value(self):
         self.assertEqual('foo', utils.get_port_ip(self.ssh_client, 99))
+
+
+class SafeCaseTestCase(unittest.TestCase):
+
+    def test_correct_type_int(self):
+        self.assertEqual(35, utils.safe_cast('35', int, 0))
+
+    def test_correct_int_as_string(self):
+        self.assertEqual(25, utils.safe_cast('25', 'int', 0))
+
+    def test_incorrect_type_as_string(self):
+        with self.assertRaises(exceptions.InvalidType):
+            utils.safe_cast('100', 'intt', 0)
+
+    def test_default_value(self):
+        self.assertEqual(0, utils.safe_cast('', 'int', 0))
+
+
+class SetupHugepagesTestCase(unittest.TestCase):
+
+    @mock.patch.object(six, 'BytesIO', return_value=six.BytesIO(b'5\n'))
+    @mock.patch.object(utils, 'read_meminfo',
+                       return_value={'Hugepagesize': '1024'})
+    def test_setup_hugepages(self, mock_meminfo, *args):
+        ssh = mock.Mock()
+        ssh.execute = mock.Mock()
+        hp_size_kb, hp_number, hp_number_set = utils.setup_hugepages(ssh, 10 * 1024)
+        mock_meminfo.assert_called_once_with(ssh)
+        ssh.execute.assert_called_once_with(
+            'echo 10 | sudo tee /proc/sys/vm/nr_hugepages')
+        self.assertEqual(hp_size_kb, 1024)
+        self.assertEqual(hp_number, 10)
+        self.assertEqual(hp_number_set, 5)
+
+
+class GetOSSampleInfoTestCase(unittest.TestCase):
+
+    def test_get_os_version(self, *args):
+        ssh = mock.Mock()
+        ssh.execute.return_value = (0, "18.04", "")
+        utils.get_os_version(ssh)
+        ssh.execute.assert_called_once_with("cat /etc/lsb-release")
+
+    def test_get_kernel_version(self, *args):
+        ssh = mock.Mock()
+        ssh.execute.return_value = (0, "Linux", "")
+        utils.get_kernel_version(ssh)
+        ssh.execute.assert_called_once_with("uname -a")
+
+    def test_get_sample_vnf_info(self, *args):
+        json_out = """
+        {"UDP_Replay": {
+            "branch_commit": "47123bfc1b3c0d0b01884aebbce1a3e09ad7ddb0",
+            "md5": "4577702f6d6848380bd912232a1b9ca5",
+            "path_vnf": "/opt/nsb_bin/UDP_Replay"
+            }
+        }"""
+        json_file = '/opt/nsb_bin/yardstick_sample_vnf.json'
+        ssh = mock.Mock()
+        ssh.execute.return_value = (0, json_out, "")
+        utils.get_sample_vnf_info(ssh, json_file)