diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/ci/load_images.sh | 42 | ||||
-rw-r--r-- | tests/unit/benchmark/core/test_task.py | 23 | ||||
-rw-r--r-- | tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py | 169 |
3 files changed, 140 insertions, 94 deletions
diff --git a/tests/ci/load_images.sh b/tests/ci/load_images.sh index 689d919e2..e73d7e800 100755 --- a/tests/ci/load_images.sh +++ b/tests/ci/load_images.sh @@ -82,35 +82,8 @@ load_yardstick_image() echo echo "========== Loading yardstick cloud image ==========" EXTRA_PARAMS="" - if [[ "${YARD_IMG_ARCH}" == "arm64" && "${YARD_IMG_AKI}" == "true" ]]; then - CLOUD_IMAGE="/tmp/${release}-server-cloudimg-${YARD_IMG_ARCH}.tar.gz" - CLOUD_KERNEL="/tmp/${release}-server-cloudimg-${YARD_IMG_ARCH}-vmlinuz-generic" - cd /tmp - if [ ! -f "${CLOUD_IMAGE}" ]; then - wget "${CLOUD_IMG_URL}" - fi - if [ ! -f "${CLOUD_KERNEL}" ]; then - tar xf "${CLOUD_IMAGE}" "${CLOUD_KERNEL##**/}" - fi - create_kernel=$(openstack ${SECURE} image create \ - --public \ - --disk-format qcow2 \ - --container-format bare \ - --file ${CLOUD_KERNEL} \ - yardstick-${release}-kernel) - - GLANCE_KERNEL_ID=$(echo "$create_kernel" | awk '/ id / {print $(NF-1)}') - if [ -z "$GLANCE_KERNEL_ID" ]; then - echo 'Failed uploading kernel to cloud'. - exit 1 - fi - - command_line="root=/dev/vdb1 console=tty0 console=ttyS0 console=ttyAMA0 rw" - - EXTRA_PARAMS="--property kernel_id=$GLANCE_KERNEL_ID --property os_command_line=\"$command_line\"" - - rm -f -- "${CLOUD_KERNEL}" "${CLOUD_IMAGE}" - cd "${YARDSTICK_REPO_DIR}" + if [[ "${YARD_IMG_ARCH}" == "arm64" ]]; then + EXTRA_PARAMS="--property hw_video_model=vga" fi # VPP requires guest memory to be backed by large pages @@ -154,9 +127,11 @@ load_yardstick_image() load_cirros_image() { + EXTRA_PARAMS="" if [[ "${YARD_IMG_ARCH}" == "arm64" ]]; then CIRROS_IMAGE_VERSION="cirros-d161201" CIRROS_IMAGE_PATH="/home/opnfv/images/cirros-d161201-aarch64-disk.img" + EXTRA_PARAMS="--property hw_video_model=vga --property short_id=ubuntu16.04" else CIRROS_IMAGE_VERSION="Cirros-0.3.5" CIRROS_IMAGE_PATH="/home/opnfv/images/cirros-0.3.5-x86_64-disk.img" @@ -170,12 +145,15 @@ load_cirros_image() local image_file="${CIRROS_IMAGE_PATH}" - EXTRA_PARAMS="" # VPP requires guest memory to be backed by large pages if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large" fi + if [[ -n "${HW_FW_TYPE}" ]]; then + EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_firmware_type=${HW_FW_TYPE}" + fi + output=$(openstack ${SECURE} image create \ --disk-format qcow2 \ --container-format bare \ @@ -271,16 +249,14 @@ main() build_yardstick_image load_yardstick_image if [ "${YARD_IMG_ARCH}" == "arm64" ]; then - sed -i 's/image: {{image}}/image: TestVM/g' tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml - sed -i 's/image: cirros-0.3.5/image: TestVM/g' samples/ping.yaml #We have overlapping IP with the real network for filename in tests/opnfv/test_cases/*; do sed -i "s/cidr: '10.0.1.0\/24'/cidr: '10.3.1.0\/24'/g" "${filename}" done else - load_cirros_image load_ubuntu_image fi + load_cirros_image create_nova_flavor } diff --git a/tests/unit/benchmark/core/test_task.py b/tests/unit/benchmark/core/test_task.py index 737e7058b..bed0bb6d8 100644 --- a/tests/unit/benchmark/core/test_task.py +++ b/tests/unit/benchmark/core/test_task.py @@ -165,12 +165,12 @@ class TaskTestCase(unittest.TestCase): result = t._check_precondition(cfg) self.assertTrue(result) - @mock.patch('yardstick.benchmark.core.task.os.environ') - def test_parse_suite_no_constraint_no_args(self, mock_environ): + def test_parse_suite_no_constraint_no_args(self): SAMPLE_SCENARIO_PATH = "no_constraint_no_args_scenario_sample.yaml" t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH)) - mock_environ.get.side_effect = ['huawei-pod1', 'compass'] - task_files, task_args, task_args_fnames = t.parse_suite() + with mock.patch('yardstick.benchmark.core.task.os.environ', + new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}): + task_files, task_args, task_args_fnames = t.parse_suite() print("files=%s, args=%s, fnames=%s" % (task_files, task_args, task_args_fnames)) self.assertEqual(task_files[0], self.change_to_abspath( @@ -186,8 +186,9 @@ class TaskTestCase(unittest.TestCase): def test_parse_suite_no_constraint_with_args(self, mock_environ): SAMPLE_SCENARIO_PATH = "no_constraint_with_args_scenario_sample.yaml" t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH)) - mock_environ.get.side_effect = ['huawei-pod1', 'compass'] - task_files, task_args, task_args_fnames = t.parse_suite() + with mock.patch('yardstick.benchmark.core.task.os.environ', + new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}): + task_files, task_args, task_args_fnames = t.parse_suite() print("files=%s, args=%s, fnames=%s" % (task_files, task_args, task_args_fnames)) self.assertEqual(task_files[0], self.change_to_abspath( @@ -204,8 +205,9 @@ class TaskTestCase(unittest.TestCase): def test_parse_suite_with_constraint_no_args(self, mock_environ): SAMPLE_SCENARIO_PATH = "with_constraint_no_args_scenario_sample.yaml" t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH)) - mock_environ.get.side_effect = ['huawei-pod1', 'compass'] - task_files, task_args, task_args_fnames = t.parse_suite() + with mock.patch('yardstick.benchmark.core.task.os.environ', + new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}): + task_files, task_args, task_args_fnames = t.parse_suite() print("files=%s, args=%s, fnames=%s" % (task_files, task_args, task_args_fnames)) self.assertEqual(task_files[0], self.change_to_abspath( @@ -221,8 +223,9 @@ class TaskTestCase(unittest.TestCase): def test_parse_suite_with_constraint_with_args(self, mock_environ): SAMPLE_SCENARIO_PATH = "with_constraint_with_args_scenario_sample.yaml" t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH)) - mock_environ.get.side_effect = ['huawei-pod1', 'compass'] - task_files, task_args, task_args_fnames = t.parse_suite() + with mock.patch('yardstick.benchmark.core.task.os.environ', + new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}): + task_files, task_args, task_args_fnames = t.parse_suite() print("files=%s, args=%s, fnames=%s" % (task_files, task_args, task_args_fnames)) self.assertEqual(task_files[0], self.change_to_abspath( diff --git a/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py b/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py index 54540ada1..3c073812c 100644 --- a/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py +++ b/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py @@ -43,6 +43,7 @@ if stl_patch: from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxProfileHelper from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxMplsProfileHelper from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxBngProfileHelper + from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxVpeProfileHelper class TestCoreTuple(unittest.TestCase): @@ -976,6 +977,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase): 'prox_args': {'-c': ""}, 'prox_path': 'd', 'prox_config': 'e/f', + 'prox_generate_parameter': False, } mock_find_path.side_effect = ['1', '2'] @@ -1010,6 +1012,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase): 'prox_path': 'd', 'prox_config': 'e/f', 'prox_files': 'g/h.i', + 'prox_generate_parameter': True, } mock_find_path.side_effect = ['1', '2'] @@ -1023,6 +1026,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase): }, } + vnfd_helper.port_pairs.all_ports = ['xe0', 'xe1', 'xe2', 'xe3'] helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper) helper.copy_to_target = mock.MagicMock(side_effect=['33', '34', '35']) helper.generate_prox_config_file = mock.MagicMock(return_value='44') @@ -1253,57 +1257,6 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase): with self.assertRaises(Exception): helper.generate_prox_config_file('a/b') - def test_generate_prox_lua_file(self): - vnfd_helper = VnfdHelper(self.VNFD0) - ssh_helper = mock.MagicMock() - scenario_helper = mock.MagicMock() - - helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper) - helper.LUA_PARAMETER_NAME = 'sut' - - expected = [ - 'sut_hex_ip_port_0:"98 10 64 13"', - 'sut_ip_port_0:"152.16.100.19"', - 'gen_hex_ip_port_0:"98 10 64 13"', - 'gen_ip_port_0:"152.16.100.19"', - - 'sut_hex_ip_port_1:"98 10 28 13"', - 'sut_ip_port_1:"152.16.40.19"', - 'gen_hex_ip_port_1:"98 10 28 14"', - 'gen_ip_port_1:"152.16.40.20"', - ] - result = helper.generate_prox_lua_file() - self.assertListEqual(result.splitlines(), expected) - - def test_upload_prox_lua(self): - def identity(*args): - return args - - vnfd_helper = mock.MagicMock() - vnfd_helper.interfaces = [] - ssh_helper = mock.MagicMock() - scenario_helper = mock.MagicMock() - - helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper) - helper.generate_prox_lua_file = mock.MagicMock(return_value=234) - helper.put_string_to_file = identity - - expected = '' - result = helper.upload_prox_lua('my_dir', {}) - self.assertEqual(result, expected) - - input_data = { - 'lua': { - 'key1': 'value1 ("inside") tail', - 'key2': 'value2', - 'key3 ("key_side") head': 'value3', - }, - } - - expected = 234, 'my_dir/key_side' - result = helper.upload_prox_lua('my_dir', input_data) - self.assertEqual(result, expected) - def test_put_string_to_file(self): vnfd_helper = mock.MagicMock() vnfd_helper.interfaces = [] @@ -2148,3 +2101,117 @@ class TestProxBngProfileHelper(unittest.TestCase): helper.run_test(120, 5, 6.5) helper.run_test(-1000, 5, 6.5) # negative pkt_size is the only way to make ratio > 1 + + +class TestProxVpeProfileHelper(unittest.TestCase): + + def test_vpe_cores(self): + resource_helper = mock.MagicMock() + resource_helper.setup_helper.prox_config_data = [ + ('section1', []), + ('section2', [ + ('a', 'b'), + ('c', 'd'), + ]), + ('core 1', []), + ('core 2', [ + ('index', 8), + ('mode', ''), + ]), + ('core 3', [ + ('index', 5), + ('mode', 'gen'), + ('name', 'cpe'), + ]), + ('core 4', [ + ('index', 7), + ('mode', 'gen'), + ('name', 'inet'), + ]), + ] + + helper = ProxVpeProfileHelper(resource_helper) + helper._cpu_topology = { + 0: { + 1: { + 5: (5, 1, 0) + }, + 2: { + 6: (6, 2, 0) + }, + 3: { + 7: (7, 3, 0) + }, + 4: { + 8: (8, 3, 0) + }, + } + } + + expected_cpe = [7] + expected_inet = [8] + expected_combined = (expected_cpe, expected_inet) + + self.assertIsNone(helper._cores_tuple) + self.assertEqual(helper.cpe_cores, expected_cpe) + self.assertEqual(helper.inet_cores, expected_inet) + self.assertEqual(helper._cores_tuple, expected_combined) + + def test_vpe_ports(self): + resource_helper = mock.MagicMock() + resource_helper.setup_helper.prox_config_data = [ + ('section1', []), + ('section2', [ + ('a', 'b'), + ('c', 'd'), + ]), + ('port 3', [ + ('index', '5'), + ('name', 'cpe'), + ('mac', 'hardware'), + ]), + ('port 4', [ + ('index', '7'), + ('name', 'inet'), + ('mac', 'hardware'), + ]), + ] + + helper = ProxVpeProfileHelper(resource_helper) + helper._port_list = { + 0: { + 1: { + 5: 'cpe' + }, + 2: { + 6: 'inet' + }, + 3: { + 7: 'cpe' + }, + 4: { + 8: 'inet' + }, + } + } + + expected_cpe = [3] + expected_inet = [4] + expected_combined = (expected_cpe, expected_inet) + + self.assertIsNone(helper._ports_tuple) + self.assertEqual(helper.cpe_ports, expected_cpe) + self.assertEqual(helper.inet_ports, expected_inet) + self.assertEqual(helper._ports_tuple, expected_combined) + + @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time') + def test_run_test(self, _): + resource_helper = mock.MagicMock() + resource_helper.step_delta = 0.4 + resource_helper.vnfd_helper.port_pairs.all_ports = list(range(2)) + resource_helper.sut.port_stats.return_value = list(range(10)) + + helper = ProxVpeProfileHelper(resource_helper) + + helper.run_test(120, 5, 6.5) + helper.run_test(-1000, 5, 6.5) # negative pkt_size is the only way to make ratio > 1 |