From 8544e287887728f331b86ea941ab4bfb2e104fa6 Mon Sep 17 00:00:00 2001 From: Kamil Gierszewski Date: Fri, 28 Feb 2025 02:10:51 +0100 Subject: [PATCH 1/2] tests: update test script path Signed-off-by: Kamil Gierszewski --- test/functional/tests/security/test_compilation_flags.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/functional/tests/security/test_compilation_flags.py b/test/functional/tests/security/test_compilation_flags.py index b9a7357..87db959 100644 --- a/test/functional/tests/security/test_compilation_flags.py +++ b/test/functional/tests/security/test_compilation_flags.py @@ -1,10 +1,10 @@ # # Copyright(c) 2019-2022 Intel Corporation -# Copyright(c) 2024 Huawei Technologies Co., Ltd. +# Copyright(c) 2024-2025 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import os +import posixpath import re import pytest @@ -25,9 +25,9 @@ def test_checksec(): Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH /sbin/casadm. """ with TestRun.step("Prepare checksec script"): - checksec_path = os.path.join( + checksec_path = posixpath.join( TestRun.usr.working_dir, - "test/functional/test-framework/test_tools/checksec.sh" + "test/functional/test-framework/scripts/checksec.sh" ) checksec = FsItem(checksec_path) checksec.chmod(Permissions.x, PermissionsUsers.u, PermissionSign.add) From cef43f77787e39b9074e0118afda3f735f80a3cd Mon Sep 17 00:00:00 2001 From: Kamil Gierszewski Date: Fri, 28 Feb 2025 02:15:19 +0100 Subject: [PATCH 2/2] tests: fix checksec test formating Signed-off-by: Kamil Gierszewski --- .../tests/security/test_compilation_flags.py | 64 ++++++++++++------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/test/functional/tests/security/test_compilation_flags.py b/test/functional/tests/security/test_compilation_flags.py index 87db959..aadf5b6 100644 --- a/test/functional/tests/security/test_compilation_flags.py +++ b/test/functional/tests/security/test_compilation_flags.py @@ -16,30 +16,47 @@ from test_utils.filesystem.fs_item import FsItem @pytest.mark.os_dependent def test_checksec(): """ - title: Checking defenses enabled compilation flags. - description: | - Check if Open CAS executable file was compiled with defenses enabled compilation flags. - pass_criteria: - - For casadm script returns: - RELRO STACK CANARY NX PIE RPATH RUNPATH FILE - Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH /sbin/casadm. + title: Checking defenses enabled compilation flags. + description: | + Check if Open CAS executable file was compiled with defenses enabled compilation flags. + pass_criteria: + - For casadm script returns: + RELRO STACK CANARY NX PIE RPATH RUNPATH FILE + Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH /sbin/casadm. """ + with TestRun.step("Prepare checksec script"): checksec_path = posixpath.join( - TestRun.usr.working_dir, - "test/functional/test-framework/scripts/checksec.sh" + TestRun.usr.working_dir, "test/functional/test-framework/scripts/checksec.sh" ) checksec = FsItem(checksec_path) checksec.chmod(Permissions.x, PermissionsUsers.u, PermissionSign.add) with TestRun.step("Check casadm compilation flags"): casadm_binary = "/sbin/casadm" - header_expected = ["RELRO", "STACK CANARY", "NX", "PIE", "RPATH", "RUNPATH", "FILE"] - binary_expected = ["Full RELRO", "Canary found", "NX enabled", "PIE enabled", "No RPATH", - "No RUNPATH", casadm_binary] + header_expected = [ + "RELRO", + "STACK CANARY", + "NX", + "PIE", + "RPATH", + "RUNPATH", + "FILE", + ] + binary_expected = [ + "Full RELRO", + "Canary found", + "NX enabled", + "PIE enabled", + "No RPATH", + "No RUNPATH", + casadm_binary, + ] result_lines = TestRun.executor.run_expect_success( - f'{checksec_path} --file {casadm_binary}').stdout.splitlines() + f"{checksec_path} --file {casadm_binary}" + ).stdout.splitlines() header_found = False + for line in result_lines: if not header_found: if line.startswith("RELRO"): @@ -47,17 +64,20 @@ def test_checksec(): header = line continue # remove formatting from output - result = re.sub(r'\x1B\[[0-9;]*m', '', line) + result = re.sub(r"\x1B\[[0-9;]*m", "", line) break - header = [i.strip() for i in header.split(" ") if i != ''] + header = [i.strip() for i in header.split(" ") if i != ""] + if header != header_expected: TestRun.LOGGER.error( - 'Incorrect header detected!\n' - f'Expected: {" ".join(header_expected)},\n' - f'Actual: {" ".join(header)}') - result = [i.strip() for i in result.split(" ") if i != ''] + "Incorrect header detected!\n" + f"Expected: {' '.join(header_expected)},\n" + f"Actual: {' '.join(header)}" + ) + result = [i.strip() for i in result.split(" ") if i != ""] if result != binary_expected: TestRun.LOGGER.error( - 'Incorrect compilation flags!\n' - f'Expected: {" ".join(binary_expected)},\n' - f'Actual: {" ".join(result)}') + "Incorrect compilation flags!\n" + f"Expected: {' '.join(binary_expected)},\n" + f"Actual: {' '.join(result)}" + )