From 0cd936ee7292428fd6c3d9cac41ae3b7473a6bc4 Mon Sep 17 00:00:00 2001 From: Kamil Gierszewski Date: Thu, 11 Apr 2024 03:38:43 +0200 Subject: [PATCH] test-framework: fix blktrace,file copy,trim support detection Signed-off-by: Kamil Gierszewski --- storage_devices/device.py | 1 + test_tools/blktrace.py | 7 +++++++ test_tools/disk_utils.py | 10 +++++++--- test_tools/fs_utils.py | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/storage_devices/device.py b/storage_devices/device.py index 566f403..b0009b5 100644 --- a/storage_devices/device.py +++ b/storage_devices/device.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2023-2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import posixpath diff --git a/test_tools/blktrace.py b/test_tools/blktrace.py index c9c5653..494cd0b 100644 --- a/test_tools/blktrace.py +++ b/test_tools/blktrace.py @@ -1,8 +1,11 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2023-2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # + import math +import time from aenum import IntFlag, Enum @@ -133,6 +136,10 @@ class BlkTrace: drop_caches(DropCachesMode.ALL) TestRun.executor.run_expect_success(f"kill -s SIGINT {self.blktrace_pid}") + + time.sleep(3) + if TestRun.executor.check_if_process_exists(self.blktrace_pid): + TestRun.fail("blktrace monitoring for device is still active") self.blktrace_pid = -1 # dummy command for swallowing output of killed command diff --git a/test_tools/disk_utils.py b/test_tools/disk_utils.py index 9092900..56edd2a 100644 --- a/test_tools/disk_utils.py +++ b/test_tools/disk_utils.py @@ -1,6 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation -# Copyright(c) 2023 Huawei Technologies Co., Ltd. +# Copyright(c) 2023-2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -341,9 +341,13 @@ def wipe_filesystem(device, force=True): def check_if_device_supports_trim(device): if device.get_device_id().startswith("nvme"): return True + command_output = TestRun.executor.run(f'hdparm -I {device.path} | grep "TRIM supported"') + if command_output.exit_code == 0: + return True command_output = TestRun.executor.run( - f'hdparm -I {device.path} | grep "TRIM supported"') - return command_output.exit_code == 0 + f"lsblk -dn {device.path} -o DISC-MAX | grep -o \'[0-9]\\+\'" + ) + return int(command_output.stdout) > 0 def get_device_filesystem_type(device_id): diff --git a/test_tools/fs_utils.py b/test_tools/fs_utils.py index e620bfd..8c2a5fb 100644 --- a/test_tools/fs_utils.py +++ b/test_tools/fs_utils.py @@ -1,6 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation -# Copyright(c) 2023 Huawei Technologies Co., Ltd. +# Copyright(c) 2023-2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -116,7 +116,7 @@ def copy(source: str, cmd = f"cp{' --force' if force else ''}" \ f"{' --recursive' if recursive else ''}" \ f"{' --dereference' if dereference else ''} " \ - f"\"{source}\" \"{destination}\"" + f"{source} {destination}" return TestRun.executor.run_expect_success(cmd)