diff --git a/test/functional/api/cas/cache.py b/test/functional/api/cas/cache.py index e752a0f..b114da7 100644 --- a/test/functional/api/cas/cache.py +++ b/test/functional/api/cas/cache.py @@ -8,8 +8,8 @@ from api.cas.casadm_parser import * from api.cas.core import Core from api.cas.dmesg import get_metadata_size_on_device from api.cas.statistics import CacheStats, CacheIoClassStats -from test_utils.os_utils import * -from test_utils.output import Output +from connection.utils.output import Output +from test_tools.os_tools import sync class Cache: diff --git a/test/functional/api/cas/cache_config.py b/test/functional/api/cas/cache_config.py index 0665bd4..8f46766 100644 --- a/test/functional/api/cas/cache_config.py +++ b/test/functional/api/cas/cache_config.py @@ -6,9 +6,9 @@ from enum import Enum, IntFlag -from test_utils.os_utils import get_kernel_module_parameter -from test_utils.size import Size, Unit -from test_utils.time import Time +from test_tools.os_tools import get_kernel_module_parameter +from type_def.size import Size, Unit +from type_def.time import Time class CacheLineSize(Enum): diff --git a/test/functional/api/cas/cas_module.py b/test/functional/api/cas/cas_module.py index e843a48..5aab47d 100644 --- a/test/functional/api/cas/cas_module.py +++ b/test/functional/api/cas/cas_module.py @@ -6,8 +6,7 @@ from enum import Enum from core.test_run import TestRun -from test_utils import os_utils -from test_utils.os_utils import ModuleRemoveMethod +from test_tools.os_tools import unload_kernel_module, load_kernel_module class CasModule(Enum): @@ -15,12 +14,12 @@ class CasModule(Enum): def reload_all_cas_modules(): - os_utils.unload_kernel_module(CasModule.cache.value, ModuleRemoveMethod.modprobe) - os_utils.load_kernel_module(CasModule.cache.value) + unload_kernel_module(CasModule.cache.value) + load_kernel_module(CasModule.cache.value) def unload_all_cas_modules(): - os_utils.unload_kernel_module(CasModule.cache.value, os_utils.ModuleRemoveMethod.rmmod) + unload_kernel_module(CasModule.cache.value) def is_cas_management_dev_present(): diff --git a/test/functional/api/cas/cas_packaging.py b/test/functional/api/cas/cas_packaging.py index 11d5b6b..ae90c5c 100644 --- a/test/functional/api/cas/cas_packaging.py +++ b/test/functional/api/cas/cas_packaging.py @@ -9,7 +9,7 @@ import os import re from core.test_run import TestRun -from test_tools.fs_utils import check_if_directory_exists, find_all_files +from test_tools.fs_tools import check_if_directory_exists, find_all_files from test_tools.linux_packaging import DebSet, RpmSet diff --git a/test/functional/api/cas/cas_service.py b/test/functional/api/cas/cas_service.py index 6984c80..32b8609 100644 --- a/test/functional/api/cas/cas_service.py +++ b/test/functional/api/cas/cas_service.py @@ -9,13 +9,13 @@ from datetime import timedelta from string import Template from textwrap import dedent -from test_tools.fs_utils import ( +from test_tools.fs_tools import ( check_if_directory_exists, create_directory, write_file, remove, ) -from test_utils.systemd import reload_daemon +from test_tools.systemctl import reload_daemon opencas_drop_in_directory = Path("/etc/systemd/system/open-cas.service.d/") test_drop_in_file = Path("10-modified-timeout.conf") diff --git a/test/functional/api/cas/casadm.py b/test/functional/api/cas/casadm.py index 292cdba..ef033a1 100644 --- a/test/functional/api/cas/casadm.py +++ b/test/functional/api/cas/casadm.py @@ -20,9 +20,9 @@ from api.cas.cli import * from api.cas.core import Core from core.test_run import TestRun from storage_devices.device import Device -from test_utils.os_utils import reload_kernel_module -from test_utils.output import CmdException, Output -from test_utils.size import Size, Unit +from test_tools.os_tools import reload_kernel_module +from connection.utils.output import CmdException, Output +from type_def.size import Size, Unit # casadm commands diff --git a/test/functional/api/cas/casadm_parser.py b/test/functional/api/cas/casadm_parser.py index 1285d99..da3090a 100644 --- a/test/functional/api/cas/casadm_parser.py +++ b/test/functional/api/cas/casadm_parser.py @@ -18,7 +18,7 @@ from api.cas.ioclass_config import IoClass from api.cas.version import CasVersion from core.test_run_utils import TestRun from storage_devices.device import Device -from test_utils.output import CmdException +from connection.utils.output import CmdException class Stats(dict): diff --git a/test/functional/api/cas/cli_messages.py b/test/functional/api/cas/cli_messages.py index fc3104b..78da17b 100644 --- a/test/functional/api/cas/cli_messages.py +++ b/test/functional/api/cas/cli_messages.py @@ -7,7 +7,7 @@ import re from core.test_run import TestRun -from test_utils.output import Output +from connection.utils.output import Output load_inactive_core_missing = [ r"WARNING: Can not resolve path to core \d+ from cache \d+\. By-id path will be shown for that " diff --git a/test/functional/api/cas/core.py b/test/functional/api/cas/core.py index e85eef9..15ae71b 100644 --- a/test/functional/api/cas/core.py +++ b/test/functional/api/cas/core.py @@ -15,9 +15,10 @@ from api.cas.casadm_parser import get_seq_cut_off_parameters, get_core_info_for_ from api.cas.statistics import CoreStats, CoreIoClassStats from core.test_run_utils import TestRun from storage_devices.device import Device -from test_tools import fs_utils, disk_utils -from test_utils.os_utils import wait, sync -from test_utils.size import Unit, Size +from test_tools.fs_tools import Filesystem, ls_item +from test_tools.os_tools import sync +from test_tools.common.wait import wait +from type_def.size import Unit, Size class CoreStatus(Enum): @@ -49,7 +50,7 @@ class Core(Device): return get_core_info_for_cache_by_path(core_disk_path=self.core_device.path, target_cache_id=self.cache_id) - def create_filesystem(self, fs_type: disk_utils.Filesystem, force=True, blocksize=None): + def create_filesystem(self, fs_type: Filesystem, force=True, blocksize=None): super().create_filesystem(fs_type, force, blocksize) self.core_device.filesystem = self.filesystem @@ -138,7 +139,7 @@ class Core(Device): def check_if_is_present_in_os(self, should_be_visible=True): device_in_system_message = "CAS device exists in OS." device_not_in_system_message = "CAS device does not exist in OS." - item = fs_utils.ls_item(f"{self.path}") + item = ls_item(self.path) if item is not None: if should_be_visible: TestRun.LOGGER.info(device_in_system_message) diff --git a/test/functional/api/cas/dmesg.py b/test/functional/api/cas/dmesg.py index d9c787b..89e8ffa 100644 --- a/test/functional/api/cas/dmesg.py +++ b/test/functional/api/cas/dmesg.py @@ -6,8 +6,8 @@ import re -from test_utils.dmesg import get_dmesg -from test_utils.size import Size, Unit +from test_tools.dmesg import get_dmesg +from type_def.size import Size, Unit def get_metadata_size_on_device(cache_id: int) -> Size: diff --git a/test/functional/api/cas/init_config.py b/test/functional/api/cas/init_config.py index 3418a6f..6f86e2c 100644 --- a/test/functional/api/cas/init_config.py +++ b/test/functional/api/cas/init_config.py @@ -7,8 +7,7 @@ from api.cas import casadm_parser from api.cas.cache_config import CacheMode from storage_devices.device import Device -from test_tools import fs_utils - +from test_tools.fs_tools import remove, write_file opencas_conf_path = "/etc/opencas/opencas.conf" @@ -34,7 +33,7 @@ class InitConfig: @staticmethod def remove_config_file(): - fs_utils.remove(opencas_conf_path, force=False) + remove(opencas_conf_path, force=False) def save_config_file(self): config_lines = [] @@ -47,7 +46,7 @@ class InitConfig: config_lines.append(CoreConfigLine.header) for c in self.core_config_lines: config_lines.append(str(c)) - fs_utils.write_file(opencas_conf_path, "\n".join(config_lines), False) + write_file(opencas_conf_path, "\n".join(config_lines), False) @classmethod def create_init_config_from_running_configuration( @@ -69,7 +68,7 @@ class InitConfig: @classmethod def create_default_init_config(cls): cas_version = casadm_parser.get_casadm_version() - fs_utils.write_file(opencas_conf_path, f"version={cas_version.base}") + write_file(opencas_conf_path, f"version={cas_version.base}") class CacheConfigLine: diff --git a/test/functional/api/cas/installer.py b/test/functional/api/cas/installer.py index abf06d0..1d56d9a 100644 --- a/test/functional/api/cas/installer.py +++ b/test/functional/api/cas/installer.py @@ -9,8 +9,9 @@ import os from core.test_run import TestRun from api.cas import cas_module from api.cas.version import get_installed_cas_version -from test_utils import os_utils, git -from test_utils.output import CmdException +from test_tools import git +from connection.utils.output import CmdException +from test_tools.os_tools import is_kernel_module_loaded def rsync_opencas_sources(): @@ -98,7 +99,7 @@ def reinstall_opencas(version: str = ""): def check_if_installed(version: str = ""): TestRun.LOGGER.info("Check if Open CAS Linux is installed") output = TestRun.executor.run("which casadm") - modules_loaded = os_utils.is_kernel_module_loaded(cas_module.CasModule.cache.value) + modules_loaded = is_kernel_module_loaded(cas_module.CasModule.cache.value) if output.exit_code != 0 or not modules_loaded: TestRun.LOGGER.info("CAS is not installed") diff --git a/test/functional/api/cas/ioclass_config.py b/test/functional/api/cas/ioclass_config.py index 32974db..93a231e 100644 --- a/test/functional/api/cas/ioclass_config.py +++ b/test/functional/api/cas/ioclass_config.py @@ -14,9 +14,8 @@ from datetime import timedelta from packaging import version from core.test_run import TestRun -from test_tools import fs_utils -from test_utils import os_utils -from test_utils.generator import random_string +from test_tools.fs_tools import write_file +from test_tools.os_tools import get_kernel_version default_config_file_path = "/tmp/opencas_ioclass.conf" @@ -109,7 +108,7 @@ class IoClass: ioclass_config_path: str = default_config_file_path, ): TestRun.LOGGER.info(f"Creating config file {ioclass_config_path}") - fs_utils.write_file( + write_file( ioclass_config_path, IoClass.list_to_csv(ioclass_list, add_default_rule) ) @@ -167,7 +166,7 @@ class IoClass: "file_offset", "request_size", ] - if os_utils.get_kernel_version() >= version.Version("4.13"): + if get_kernel_version() >= version.Version("4.13"): rules.append("wlth") rule = random.choice(rules) @@ -178,13 +177,14 @@ class IoClass: def add_random_params(rule: str): if rule == "directory": allowed_chars = string.ascii_letters + string.digits + "/" - rule += f":/{random_string(random.randint(1, 40), allowed_chars)}" + rule += f":/{''.join(random.choices(allowed_chars, k=random.randint(1, 40)))}" elif rule in ["file_size", "lba", "pid", "file_offset", "request_size", "wlth"]: rule += f":{Operator(random.randrange(len(Operator))).name}:{random.randrange(1000000)}" elif rule == "io_class": rule += f":{random.randrange(MAX_IO_CLASS_PRIORITY + 1)}" elif rule in ["extension", "process_name", "file_name_prefix"]: - rule += f":{random_string(random.randint(1, 10))}" + allowed_chars = string.ascii_letters + string.digits + rule += f":{''.join(random.choices(allowed_chars, k=random.randint(1, 10)))}" if random.randrange(2): rule += "&done" return rule diff --git a/test/functional/api/cas/progress_bar.py b/test/functional/api/cas/progress_bar.py index b2b9679..3b98b45 100644 --- a/test/functional/api/cas/progress_bar.py +++ b/test/functional/api/cas/progress_bar.py @@ -10,7 +10,7 @@ from datetime import timedelta import paramiko from core.test_run import TestRun -from test_utils.os_utils import wait +from test_tools.common.wait import wait def check_progress_bar(command: str, progress_bar_expected: bool = True): diff --git a/test/functional/api/cas/statistics.py b/test/functional/api/cas/statistics.py index 1f2a9f4..e103bc5 100644 --- a/test/functional/api/cas/statistics.py +++ b/test/functional/api/cas/statistics.py @@ -11,7 +11,7 @@ from typing import List from api.cas import casadm from api.cas.casadm_params import StatsFilter -from test_utils.size import Size, Unit +from type_def.size import Size, Unit class UnitType(Enum): diff --git a/test/functional/api/cas/version.py b/test/functional/api/cas/version.py index 72129d6..116494c 100644 --- a/test/functional/api/cas/version.py +++ b/test/functional/api/cas/version.py @@ -6,9 +6,9 @@ import re -from test_utils import git +from test_tools import git from core.test_run import TestRun -from test_utils.output import CmdException +from connection.utils.output import CmdException class CasVersion: @@ -43,7 +43,7 @@ class CasVersion: def get_available_cas_versions(): - release_tags = git.get_release_tags() + release_tags = git.get_tags() versions = [CasVersion.from_git_tag(tag) for tag in release_tags] diff --git a/test/functional/test-framework b/test/functional/test-framework index 072c72b..f7f2914 160000 --- a/test/functional/test-framework +++ b/test/functional/test-framework @@ -1 +1 @@ -Subproject commit 072c72b08c9d5657c131b5cd325175a19a5417df +Subproject commit f7f2914e41ce73d13dafe6cd749aa6e2d33b4315 diff --git a/test/functional/tests/512b/test_different_io_sizes_support.py b/test/functional/tests/512b/test_different_io_sizes_support.py index 3d104c2..159554f 100644 --- a/test/functional/tests/512b/test_different_io_sizes_support.py +++ b/test/functional/tests/512b/test_different_io_sizes_support.py @@ -12,9 +12,8 @@ from core.test_run import TestRun from api.cas import casadm from storage_devices.disk import DiskType, DiskTypeSet from api.cas.cache_config import CacheMode -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem, remove, create_directory +from type_def.size import Size, Unit from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine @@ -52,8 +51,8 @@ def test_support_different_io_size(cache_mode): cache.load_io_class(opencas_ioclass_conf_path) with TestRun.step("Create a filesystem on the core device and mount it"): - fs_utils.remove(path=mountpoint, force=True, recursive=True, ignore_errors=True) - fs_utils.create_directory(path=mountpoint) + remove(path=mountpoint, force=True, recursive=True, ignore_errors=True) + create_directory(path=mountpoint) core.create_filesystem(Filesystem.xfs) core.mount(mountpoint) diff --git a/test/functional/tests/basic/test_basic.py b/test/functional/tests/basic/test_basic.py index 2b77c05..133b094 100644 --- a/test/functional/tests/basic/test_basic.py +++ b/test/functional/tests/basic/test_basic.py @@ -17,12 +17,11 @@ from api.cas.cli_messages import ( ) from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, read_file from test_utils.filesystem.file import File -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from type_def.size import Size, Unit version_file_path = r"/var/lib/opencas/cas_version" mountpoint = "/mnt" @@ -45,7 +44,7 @@ def test_cas_version(): cmd_cas_versions = [version.split(",")[1] for version in cmd_version.split("\n")[1:]] with TestRun.step(f"Read cas version from {version_file_path} location"): - file_read = fs_utils.read_file(version_file_path).split("\n") + file_read = read_file(version_file_path).split("\n") file_cas_version = next( (line.split("=")[1] for line in file_read if "CAS_VERSION=" in line) ) diff --git a/test/functional/tests/basic/test_start_cas.py b/test/functional/tests/basic/test_start_cas.py index 1d882cb..affa40b 100644 --- a/test/functional/tests/basic/test_start_cas.py +++ b/test/functional/tests/basic/test_start_cas.py @@ -9,7 +9,7 @@ import pytest from api.cas import casadm from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.CI diff --git a/test/functional/tests/cache_ops/test_cleaning_policy_operation.py b/test/functional/tests/cache_ops/test_cleaning_policy_operation.py index be6cf25..79d5d5e 100644 --- a/test/functional/tests/cache_ops/test_cleaning_policy_operation.py +++ b/test/functional/tests/cache_ops/test_cleaning_policy_operation.py @@ -17,8 +17,8 @@ from api.cas.cache_config import ( ) from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun -from test_utils.size import Size, Unit -from test_utils.os_utils import Udev +from type_def.size import Size, Unit +from test_tools.udev import Udev from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine diff --git a/test/functional/tests/cache_ops/test_concurrent_flushes.py b/test/functional/tests/cache_ops/test_concurrent_flushes.py index df9458c..b6f6b57 100644 --- a/test/functional/tests/cache_ops/test_concurrent_flushes.py +++ b/test/functional/tests/cache_ops/test_concurrent_flushes.py @@ -15,8 +15,8 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from type_def.size import Size, Unit @pytest.mark.parametrize("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) diff --git a/test/functional/tests/cache_ops/test_core_remove.py b/test/functional/tests/cache_ops/test_core_remove.py index 2129e72..831c749 100644 --- a/test/functional/tests/cache_ops/test_core_remove.py +++ b/test/functional/tests/cache_ops/test_core_remove.py @@ -5,15 +5,14 @@ # import random - import pytest from api.cas import casadm from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeLowerThan, DiskTypeSet -from test_tools.disk_utils import Filesystem -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem +from connection.utils.output import CmdException +from type_def.size import Size, Unit mount_point = "/mnt/cas" cores_amount = 3 diff --git a/test/functional/tests/cache_ops/test_dynamic_cache_mode_switching.py b/test/functional/tests/cache_ops/test_dynamic_cache_mode_switching.py index bb40b07..e253a20 100644 --- a/test/functional/tests/cache_ops/test_dynamic_cache_mode_switching.py +++ b/test/functional/tests/cache_ops/test_dynamic_cache_mode_switching.py @@ -15,8 +15,9 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod -from test_utils.os_utils import Udev, sync -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit io_size = Size(10000, Unit.Blocks4096) diff --git a/test/functional/tests/cache_ops/test_multilevel_cache.py b/test/functional/tests/cache_ops/test_multilevel_cache.py index a132273..d67ecb9 100644 --- a/test/functional/tests/cache_ops/test_multilevel_cache.py +++ b/test/functional/tests/cache_ops/test_multilevel_cache.py @@ -9,7 +9,7 @@ import pytest from api.cas import casadm, cli, cli_messages from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py b/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py index 141948b..6e0ab47 100644 --- a/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py +++ b/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py @@ -21,12 +21,12 @@ from api.cas.casadm_params import StatsFilter from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskTypeLowerThan, DiskType from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.os_utils import Udev -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from connection.utils.output import CmdException +from type_def.size import Size, Unit random_thresholds = random.sample(range(1028, 1024**2, 4), 3) random_stream_numbers = random.sample(range(2, 128), 3) diff --git a/test/functional/tests/cache_ops/test_seq_cutoff.py b/test/functional/tests/cache_ops/test_seq_cutoff.py index a0770ad..77b1995 100644 --- a/test/functional/tests/cache_ops/test_seq_cutoff.py +++ b/test/functional/tests/cache_ops/test_seq_cutoff.py @@ -15,8 +15,9 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, CpusAllowedPolicy -from test_utils.os_utils import Udev, sync, get_dut_cpu_physical_cores -from test_utils.size import Size, Unit +from test_tools.os_tools import sync, get_dut_cpu_physical_cores +from test_tools.udev import Udev +from type_def.size import Size, Unit class VerifyType(Enum): diff --git a/test/functional/tests/ci/test_ci_read_write.py b/test/functional/tests/ci/test_ci_read_write.py index d2358f0..c690af5 100644 --- a/test/functional/tests/ci/test_ci_read_write.py +++ b/test/functional/tests/ci/test_ci_read_write.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -9,8 +10,8 @@ from api.cas import casadm from api.cas.cache_config import CacheMode from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.os_utils import Udev -from test_utils.size import Unit, Size +from test_tools.udev import Udev +from type_def.size import Unit, Size from test_tools.dd import Dd from test_tools.iostat import IOstatBasic @@ -62,7 +63,7 @@ def test_ci_read(cache_mode): dd.run() with TestRun.step("Collect iostat"): - iostat = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) read_cache_1 = iostat[0].total_reads with TestRun.step("Generate cache hits using reads"): @@ -77,7 +78,7 @@ def test_ci_read(cache_mode): dd.run() with TestRun.step("Collect iostat"): - iostat = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) read_cache_2 = iostat[0].total_reads with TestRun.step("Stop cache"): @@ -117,10 +118,10 @@ def test_ci_write_around_write(): casadm.add_core(cache, core_device) with TestRun.step("Collect iostat before I/O"): - iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device]) + iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device.get_device_id()]) write_core_0 = iostat_core[0].total_writes - iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) write_cache_0 = iostat_cache[0].total_writes with TestRun.step("Submit writes to exported object"): @@ -136,11 +137,11 @@ def test_ci_write_around_write(): dd.run() with TestRun.step("Collect iostat"): - iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device]) + iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device.get_device_id()]) write_core_1 = iostat_core[0].total_writes read_core_1 = iostat_core[0].total_reads - iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) write_cache_1 = iostat_cache[0].total_writes read_cache_1 = iostat_cache[0].total_reads @@ -156,10 +157,10 @@ def test_ci_write_around_write(): dd.run() with TestRun.step("Collect iostat"): - iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device]) + iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device.get_device_id()]) read_core_2 = iostat_core[0].total_reads - iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) read_cache_2 = iostat_cache[0].total_reads with TestRun.step("Stop cache"): @@ -221,10 +222,10 @@ def test_ci_write_through_write(): casadm.add_core(cache, core_device) with TestRun.step("Collect iostat before I/O"): - iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device]) + iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device.get_device_id()]) write_core_0 = iostat_core[0].total_writes - iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) write_cache_0 = iostat_cache[0].total_writes with TestRun.step("Insert data into the cache using writes"): @@ -241,11 +242,11 @@ def test_ci_write_through_write(): dd.run() with TestRun.step("Collect iostat"): - iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device]) + iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device.get_device_id()]) write_core_1 = iostat_core[0].total_writes read_core_1 = iostat_core[0].total_reads - iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) write_cache_1 = iostat_cache[0].total_writes read_cache_1 = iostat_cache[0].total_reads @@ -262,10 +263,10 @@ def test_ci_write_through_write(): dd.run() with TestRun.step("Collect iostat"): - iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device]) + iostat_core = IOstatBasic.get_iostat_list([core_device.parent_device.get_device_id()]) read_core_2 = iostat_core[0].total_reads - iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device]) + iostat_cache = IOstatBasic.get_iostat_list([cache_device.parent_device.get_device_id()]) read_cache_2 = iostat_cache[0].total_reads with TestRun.step("Stop cache"): diff --git a/test/functional/tests/cli/test_cas_memory_usage.py b/test/functional/tests/cli/test_cas_memory_usage.py index f39c434..32a4ba1 100644 --- a/test/functional/tests/cli/test_cas_memory_usage.py +++ b/test/functional/tests/cli/test_cas_memory_usage.py @@ -8,15 +8,13 @@ import pytest from api.cas.cas_module import CasModule from core.test_run import TestRun -from test_utils.size import Unit -from test_utils.os_utils import (allocate_memory, - disable_memory_affecting_functions, - drop_caches, - get_mem_free, +from type_def.size import Unit +from test_tools.os_tools import (drop_caches, is_kernel_module_loaded, load_kernel_module, unload_kernel_module, ) +from test_tools.memory import disable_memory_affecting_functions, get_mem_free, allocate_memory @pytest.mark.os_dependent diff --git a/test/functional/tests/cli/test_cleaning_policy.py b/test/functional/tests/cli/test_cleaning_policy.py index 7052abe..432ec26 100644 --- a/test/functional/tests/cli/test_cleaning_policy.py +++ b/test/functional/tests/cli/test_cleaning_policy.py @@ -8,14 +8,14 @@ import pytest import time from core.test_run_utils import TestRun -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine from api.cas import casadm from api.cas.cache_config import CacheMode, CleaningPolicy -from test_utils.os_utils import Udev +from test_tools.udev import Udev @pytest.mark.CI diff --git a/test/functional/tests/cli/test_cli_script.py b/test/functional/tests/cli/test_cli_script.py index 8121701..f7141a1 100644 --- a/test/functional/tests/cli/test_cli_script.py +++ b/test/functional/tests/cli/test_cli_script.py @@ -1,16 +1,17 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest -from api.cas import casadm, casadm_parser +from api.cas import casadm from core.test_run import TestRun -from test_utils.os_utils import sync +from test_tools.os_tools import sync from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Unit, Size +from type_def.size import Unit, Size from test_tools.dd import Dd diff --git a/test/functional/tests/cli/test_cli_standby.py b/test/functional/tests/cli/test_cli_standby.py index 5d0bd38..5bd69b2 100644 --- a/test/functional/tests/cli/test_cli_standby.py +++ b/test/functional/tests/cli/test_cli_standby.py @@ -13,11 +13,11 @@ from core.test_run import TestRun from storage_devices.device import Device from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_utils.filesystem.file import File -from test_utils.os_utils import sync -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from connection.utils.output import CmdException +from type_def.size import Size, Unit from api.cas.cli_messages import ( check_stderr_msg, missing_param, diff --git a/test/functional/tests/cli/test_cli_start_stop.py b/test/functional/tests/cli/test_cli_start_stop.py index 7f1b503..8933e9e 100644 --- a/test/functional/tests/cli/test_cli_start_stop.py +++ b/test/functional/tests/cli/test_cli_start_stop.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -10,7 +11,7 @@ from api.cas import casadm, casadm_parser, cli_messages from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Unit, Size +from type_def.size import Unit, Size CACHE_ID_RANGE = (1, 16384) CORE_ID_RANGE = (0, 4095) diff --git a/test/functional/tests/cli/test_manual_casadm_flush.py b/test/functional/tests/cli/test_manual_casadm_flush.py index 6898825..b65b3ad 100644 --- a/test/functional/tests/cli/test_manual_casadm_flush.py +++ b/test/functional/tests/cli/test_manual_casadm_flush.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -8,14 +9,14 @@ import time from core.test_run_utils import TestRun from storage_devices.device import Device -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine from api.cas import casadm from api.cas.cache_config import CacheMode, CleaningPolicy -from test_utils.os_utils import Udev +from test_tools.udev import Udev @pytest.mark.CI diff --git a/test/functional/tests/cli/test_seq_cutoff_settings.py b/test/functional/tests/cli/test_seq_cutoff_settings.py index f751673..a7d578c 100644 --- a/test/functional/tests/cli/test_seq_cutoff_settings.py +++ b/test/functional/tests/cli/test_seq_cutoff_settings.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -14,7 +15,7 @@ from api.cas.casadm import set_param_cutoff_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/cli/test_set_get_params.py b/test/functional/tests/cli/test_set_get_params.py index 7f3ce08..adc6998 100644 --- a/test/functional/tests/cli/test_set_get_params.py +++ b/test/functional/tests/cli/test_set_get_params.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -19,7 +20,7 @@ from api.cas.cache_config import ( ) from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit # There should be at least 2 cache instances and 2 cores per cache diff --git a/test/functional/tests/cli/test_zero_metadata_command.py b/test/functional/tests/cli/test_zero_metadata_command.py index 0fed8af..312f223 100644 --- a/test/functional/tests/cli/test_zero_metadata_command.py +++ b/test/functional/tests/cli/test_zero_metadata_command.py @@ -12,12 +12,12 @@ from api.cas import casadm, cli_messages, cli from api.cas.cache_config import CacheMode, CleaningPolicy from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.disk_utils import get_device_filesystem_type, Filesystem +from test_tools.fs_tools import Filesystem, get_device_filesystem_type from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.disk_finder import get_system_disks -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.disk_finder import get_system_disks +from connection.utils.output import CmdException +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/common/lvm_common_utils.py b/test/functional/tests/common/lvm_common_utils.py deleted file mode 100644 index aec41af..0000000 --- a/test/functional/tests/common/lvm_common_utils.py +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright(c) 2021 Intel Corporation -# SPDX-License-Identifier: BSD-3-Clause -# - -import datetime - -from storage_devices.lvm import get_block_devices_list - -from api.cas.init_config import InitConfig -from test_tools.fio.fio import Fio -from test_tools.fio.fio_param import IoEngine, ReadWrite, VerifyMethod -from test_utils.size import Size, Unit - - -def run_fio_on_lvm(volumes: []): - fio_run = (Fio().create_command() - .read_write(ReadWrite.randrw) - .io_engine(IoEngine.sync) - .io_depth(1) - .time_based() - .run_time(datetime.timedelta(seconds=180)) - .do_verify() - .verify(VerifyMethod.md5) - .block_size(Size(1, Unit.Blocks4096))) - for lvm in volumes: - fio_run.add_job().target(lvm).size(lvm.size) - fio_run.run() - - -def get_test_configuration(): - config = InitConfig.create_init_config_from_running_configuration() - devices = get_block_devices_list() - - return config, devices diff --git a/test/functional/tests/conftest.py b/test/functional/tests/conftest.py index ab00408..2e42d24 100644 --- a/test/functional/tests/conftest.py +++ b/test/functional/tests/conftest.py @@ -20,20 +20,20 @@ from core.test_run import Blocked from core.test_run_utils import TestRun from api.cas import installer from api.cas import casadm -from test_utils import git from api.cas.cas_service import opencas_drop_in_directory from storage_devices.raid import Raid from storage_devices.ramdisk import RamDisk -from test_utils.os_utils import Udev, kill_all_io -from test_utils.disk_finder import get_disk_serial_number -from test_tools.disk_utils import PartitionTable, create_partition_table +from test_tools.os_tools import kill_all_io +from test_tools.udev import Udev +from test_tools.disk_tools import PartitionTable, create_partition_table from test_tools.device_mapper import DeviceMapper from test_tools.mdadm import Mdadm -from test_tools.fs_utils import remove -from test_tools import initramfs +from test_tools.fs_tools import remove +from test_tools import initramfs, git from log.logger import create_log, Log -from test_utils.singleton import Singleton +from test_utils.common.singleton import Singleton from storage_devices.lvm import Lvm, LvmConfiguration +from storage_devices.disk import Disk def pytest_addoption(parser): @@ -185,7 +185,7 @@ def base_prepare(item): RamDisk.remove_all() for disk in TestRun.disks.values(): - disk_serial = get_disk_serial_number(disk.path) + disk_serial = Disk.get_disk_serial_number(disk.path) if disk.serial_number and disk.serial_number != disk_serial: raise Exception( f"Serial for {disk.path} doesn't match the one from the config." diff --git a/test/functional/tests/data_integrity/test_data_integrity_12h.py b/test/functional/tests/data_integrity/test_data_integrity_12h.py index 4e2f2e7..179c0f4 100644 --- a/test/functional/tests/data_integrity/test_data_integrity_12h.py +++ b/test/functional/tests/data_integrity/test_data_integrity_12h.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -14,7 +15,7 @@ from core.test_run import TestRun from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Unit, Size +from type_def.size import Unit, Size start_size = int(Size(512, Unit.Byte)) diff --git a/test/functional/tests/data_integrity/test_data_integrity_5d.py b/test/functional/tests/data_integrity/test_data_integrity_5d.py index 718d169..9f75ef6 100644 --- a/test/functional/tests/data_integrity/test_data_integrity_5d.py +++ b/test/functional/tests/data_integrity/test_data_integrity_5d.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -12,14 +13,12 @@ import pytest from api.cas import casadm from api.cas.cache_config import CacheMode from core.test_run import TestRun -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, create_directory, check_if_directory_exists, md5sum from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.filesystem.file import File -from test_utils.os_utils import sync -from test_utils.size import Unit, Size +from test_tools.os_tools import sync +from type_def.size import Unit, Size start_size = Size(512, Unit.Byte).get_value() @@ -72,8 +71,8 @@ def test_data_integrity_5d_dss(filesystems): with TestRun.step("Create filesystems and mount cores"): for i, core in enumerate(cores): mount_point = core.path.replace('/dev/', '/mnt/') - if not fs_utils.check_if_directory_exists(mount_point): - fs_utils.create_directory(mount_point) + if not check_if_directory_exists(mount_point): + create_directory(mount_point) TestRun.LOGGER.info(f"Create filesystem {filesystems[i].name} on {core.path}") core.create_filesystem(filesystems[i]) TestRun.LOGGER.info(f"Mount filesystem {filesystems[i].name} on {core.path} to " @@ -106,14 +105,14 @@ def test_data_integrity_5d_dss(filesystems): core.unmount() with TestRun.step("Calculate md5 for each core"): - core_md5s = [File(core.full_path).md5sum() for core in cores] + core_md5s = [md5sum(core.path) for core in cores] with TestRun.step("Stop caches"): for cache in caches: cache.stop() with TestRun.step("Calculate md5 for each core"): - dev_md5s = [File(dev.full_path).md5sum() for dev in core_devices] + dev_md5s = [md5sum(dev.full_path) for dev in core_devices] with TestRun.step("Compare md5 sums for cores and core devices"): for core_md5, dev_md5, mode, fs in zip(core_md5s, dev_md5s, cache_modes, filesystems): @@ -171,14 +170,14 @@ def test_data_integrity_5d(): fio_run.run() with TestRun.step("Calculate md5 for each core"): - core_md5s = [File(core.full_path).md5sum() for core in cores] + core_md5s = [md5sum(core.path) for core in cores] with TestRun.step("Stop caches"): for cache in caches: cache.stop() with TestRun.step("Calculate md5 for each core"): - dev_md5s = [File(dev.full_path).md5sum() for dev in core_devices] + dev_md5s = [md5sum(dev.full_path) for dev in core_devices] with TestRun.step("Compare md5 sums for cores and core devices"): for core_md5, dev_md5, mode in zip(core_md5s, dev_md5s, cache_modes): diff --git a/test/functional/tests/data_integrity/test_data_integrity_unplug.py b/test/functional/tests/data_integrity/test_data_integrity_unplug.py index 3e6ba6c..898f1b3 100644 --- a/test/functional/tests/data_integrity/test_data_integrity_unplug.py +++ b/test/functional/tests/data_integrity/test_data_integrity_unplug.py @@ -19,10 +19,10 @@ from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from storage_devices.ramdisk import RamDisk from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite -from test_utils.asynchronous import start_async_func +from connection.utils.asynchronous import start_async_func from test_utils.filesystem.directory import Directory -from test_utils.output import CmdException -from test_utils.size import Unit, Size +from connection.utils.output import CmdException +from type_def.size import Unit, Size ram_disk, tmp_dir, fio_seed = None, None, None num_jobs = 8 diff --git a/test/functional/tests/example/example_test.py b/test/functional/tests/example/example_test.py index b3ae6a1..fac56cc 100644 --- a/test/functional/tests/example/example_test.py +++ b/test/functional/tests/example/example_test.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -13,14 +14,13 @@ from storage_devices.ramdisk import RamDisk from test_utils.drbd import Resource, Node from storage_devices.drbd import Drbd from test_tools.drbdadm import Drbdadm -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import copy, check_if_file_exists +from test_tools.fs_tools import copy, Filesystem, replace_in_lines, remove, Permissions, \ + PermissionsUsers from test_utils.filesystem.directory import Directory from test_utils.filesystem.file import File -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from test_utils.emergency_escape import EmergencyEscape -from test_utils.fstab import add_mountpoint +from test_tools.fstab import add_mountpoint from storage_devices.lvm import Lvm @@ -102,7 +102,7 @@ def test_create_example_files(): content_before_change = file1.read() TestRun.LOGGER.info(f"File content: {content_before_change}") with TestRun.step("Replace single line in file"): - fs_utils.replace_in_lines(file1, 'content line', 'replaced line') + replace_in_lines(file1, 'content line', 'replaced line') with TestRun.step("Read file content and check if it changed"): content_after_change = file1.read() if content_before_change == content_after_change: @@ -115,19 +115,19 @@ def test_create_example_files(): with TestRun.step("Change permissions of second file"): file2.chmod_numerical(123) with TestRun.step("Remove second file"): - fs_utils.remove(file2.full_path, True) + remove(file2.full_path, True) with TestRun.step("List contents of home directory"): dir1 = Directory("~") dir_content = dir1.ls() with TestRun.step("Change permissions of file"): - file1.chmod(fs_utils.Permissions['r'] | fs_utils.Permissions['w'], - fs_utils.PermissionsUsers(7)) + file1.chmod(Permissions['r'] | Permissions['w'], + PermissionsUsers(7)) with TestRun.step("Log home directory content"): for item in dir_content: TestRun.LOGGER.info(f"Item {str(item)} - {type(item).__name__}") with TestRun.step("Remove file"): - fs_utils.remove(file1.full_path, True) + remove(file1.full_path, True) @pytest.mark.require_disk("cache1", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/failover_standby/test_cache_activation_perf.py b/test/functional/tests/failover_standby/test_cache_activation_perf.py index c22442d..59ad230 100644 --- a/test/functional/tests/failover_standby/test_cache_activation_perf.py +++ b/test/functional/tests/failover_standby/test_cache_activation_perf.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # from datetime import timedelta, datetime @@ -10,8 +11,8 @@ from core.test_run import TestRun from test_tools.dd import Dd from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit from storage_devices.disk import DiskType, DiskTypeSet from storage_devices.device import Device from api.cas import casadm, dmesg diff --git a/test/functional/tests/failover_standby/test_failover_advanced.py b/test/functional/tests/failover_standby/test_failover_advanced.py index 47f823f..486dc9b 100644 --- a/test/functional/tests/failover_standby/test_failover_advanced.py +++ b/test/functional/tests/failover_standby/test_failover_advanced.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -22,14 +23,12 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from storage_devices.drbd import Drbd from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit from test_utils.filesystem.file import File from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite -from test_tools.fs_utils import readlink, create_directory +from test_tools.fs_tools import create_directory, Filesystem from test_utils.drbd import Resource, Node -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from test_failover_multihost import check_drbd_installed @@ -1096,13 +1095,6 @@ def test_failover_io_long(cls, cleaning_policy, num_iterations): TestRun.executor.wait_for_connection() -def check_drbd_installed(duts): - for dut in duts: - with TestRun.use_dut(dut): - if not Drbd.is_installed(): - TestRun.fail(f"DRBD is not installed on DUT {dut.ip}") - - def prepare_devices(duts): for dut in duts: with TestRun.use_dut(dut): diff --git a/test/functional/tests/failover_standby/test_failover_multihost.py b/test/functional/tests/failover_standby/test_failover_multihost.py index 9973425..383c0fe 100644 --- a/test/functional/tests/failover_standby/test_failover_multihost.py +++ b/test/functional/tests/failover_standby/test_failover_multihost.py @@ -4,7 +4,6 @@ # SPDX-License-Identifier: BSD-3-Clause # -from time import sleep import pytest from api.cas import casadm @@ -22,15 +21,13 @@ from storage_devices.disk import DiskType, DiskTypeSet from storage_devices.drbd import Drbd from storage_devices.raid import Raid, RaidConfiguration, MetadataVariant, Level from test_tools.dd import Dd -from test_tools.drbdadm import Drbdadm -from test_tools.disk_utils import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite -from test_tools.fs_utils import readlink +from test_tools.fs_tools import readlink, Filesystem, create_directory from test_utils.drbd import Resource, Node -from test_utils.os_utils import sync, Udev -from test_utils.size import Size, Unit -from test_tools import fs_utils +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit cache_id = 5 @@ -147,7 +144,7 @@ def test_functional_activate_twice_round_trip(filesystem): primary_node.cache.set_seq_cutoff_policy(SeqCutOffPolicy.never) if filesystem: TestRun.executor.run(f"rm -rf {mountpoint}") - fs_utils.create_directory(path=mountpoint) + create_directory(path=mountpoint) core.create_filesystem(filesystem) core.mount(mountpoint) @@ -318,7 +315,7 @@ def test_functional_activate_twice_new_host(filesystem): primary_node.cache.set_seq_cutoff_policy(SeqCutOffPolicy.never) if filesystem: TestRun.executor.run(f"rm -rf {mountpoint}") - fs_utils.create_directory(path=mountpoint) + create_directory(path=mountpoint) core.create_filesystem(filesystem) core.mount(mountpoint) @@ -494,7 +491,7 @@ def failover_sequence(standby_node, drbd_resource, filesystem, core): if filesystem: with TestRun.use_dut(standby_node), TestRun.step(f"Mount core"): TestRun.executor.run(f"rm -rf {mountpoint}") - fs_utils.create_directory(path=mountpoint) + create_directory(path=mountpoint) core.mount(mountpoint) diff --git a/test/functional/tests/fault_injection/test_another_device_with_same_id.py b/test/functional/tests/fault_injection/test_another_device_with_same_id.py index 2868285..38b89e7 100644 --- a/test/functional/tests/fault_injection/test_another_device_with_same_id.py +++ b/test/functional/tests/fault_injection/test_another_device_with_same_id.py @@ -1,16 +1,15 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import time - import pytest from api.cas import cli, casadm from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache_1", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/fault_injection/test_cache_insert_error.py b/test/functional/tests/fault_injection/test_cache_insert_error.py index 87c0c4d..3188a77 100644 --- a/test/functional/tests/fault_injection/test_cache_insert_error.py +++ b/test/functional/tests/fault_injection/test_cache_insert_error.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -16,11 +17,12 @@ from api.cas.cache_config import ( from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.device_mapper import ErrorDevice, DmTable +from test_tools.device_mapper import DmTable +from storage_devices.error_device import ErrorDevice from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, ErrorFilter, VerifyMethod -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit start_size = Size(512, Unit.Byte) stop_size = Size(128, Unit.KibiByte) diff --git a/test/functional/tests/fault_injection/test_error_device_as_cache.py b/test/functional/tests/fault_injection/test_error_device_as_cache.py index 35f2c94..af924d7 100644 --- a/test/functional/tests/fault_injection/test_error_device_as_cache.py +++ b/test/functional/tests/fault_injection/test_error_device_as_cache.py @@ -9,7 +9,8 @@ from time import sleep from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, ErrorFilter -from test_tools.device_mapper import ErrorDevice, DmTable +from test_tools.device_mapper import DmTable +from storage_devices.error_device import ErrorDevice from core.test_run import TestRun from api.cas import casadm from api.cas.cache_config import ( @@ -21,7 +22,7 @@ from api.cas.cache_config import ( ) from storage_devices.disk import DiskTypeSet, DiskType from test_utils.io_stats import IoStats -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.parametrizex("cache_line_size", CacheLineSize) diff --git a/test/functional/tests/fault_injection/test_fault_injection_interrupts.py b/test/functional/tests/fault_injection/test_fault_injection_interrupts.py index 81650bd..9a7d6cb 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_interrupts.py +++ b/test/functional/tests/fault_injection/test_fault_injection_interrupts.py @@ -11,12 +11,11 @@ from api.cas.cache_config import CacheMode, CleaningPolicy, CacheModeTrait from api.cas.casadm_parser import wait_for_flushing from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem -from test_utils import os_utils -from test_utils.os_utils import Udev, DropCachesMode -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem, create_random_test_file +from test_tools.os_tools import DropCachesMode, sync, drop_caches +from test_tools.udev import Udev +from type_def.size import Size, Unit from tests.lazy_writes.recovery.recovery_tests_methods import compare_files mount_point = "/mnt/cas" @@ -65,8 +64,8 @@ def test_interrupt_core_flush(cache_mode, filesystem): test_file_md5sum_before = test_file.md5sum() with TestRun.step("Get number of dirty data on exported object before interruption."): - os_utils.sync() - os_utils.drop_caches(DropCachesMode.ALL) + sync() + drop_caches(DropCachesMode.ALL) core_dirty_blocks_before = core.get_dirty_blocks() with TestRun.step("Start flushing core device."): @@ -149,8 +148,8 @@ def test_interrupt_cache_flush(cache_mode, filesystem): test_file_md5sum_before = test_file.md5sum() with TestRun.step("Get number of dirty data on exported object before interruption."): - os_utils.sync() - os_utils.drop_caches(DropCachesMode.ALL) + sync() + drop_caches(DropCachesMode.ALL) cache_dirty_blocks_before = cache.get_dirty_blocks() with TestRun.step("Start flushing cache."): @@ -238,8 +237,8 @@ def test_interrupt_core_remove(cache_mode, filesystem): with TestRun.step( "Get number of dirty data on exported object before core removal interruption" ): - os_utils.sync() - os_utils.drop_caches(DropCachesMode.ALL) + sync() + drop_caches(DropCachesMode.ALL) cache_dirty_blocks_before = cache.get_dirty_blocks() with TestRun.step("Unmount core"): @@ -342,7 +341,7 @@ def test_interrupt_cache_mode_switch_parametrized(cache_mode, stop_percentage): core = cache.add_core(core_part) with TestRun.step(f"Create test file in mount point of exported object"): - test_file = fs_utils.create_random_test_file(test_file_path, test_file_size) + test_file = create_random_test_file(test_file_path, test_file_size) with TestRun.step("Calculate md5sum of test file"): test_file_md5_before = test_file.md5sum() @@ -358,8 +357,8 @@ def test_interrupt_cache_mode_switch_parametrized(cache_mode, stop_percentage): dd.run() with TestRun.step("Get number of dirty data on exported object before interruption"): - os_utils.sync() - os_utils.drop_caches(DropCachesMode.ALL) + sync() + drop_caches(DropCachesMode.ALL) cache_dirty_blocks_before = cache.get_dirty_blocks() with TestRun.step("Start switching cache mode"): @@ -450,8 +449,8 @@ def test_interrupt_cache_stop(cache_mode, filesystem): test_file = create_test_file() with TestRun.step("Get number of dirty data on exported object before interruption."): - os_utils.sync() - os_utils.drop_caches(DropCachesMode.ALL) + sync() + drop_caches(DropCachesMode.ALL) cache_dirty_blocks_before = cache.get_dirty_blocks() with TestRun.step("Unmount core."): diff --git a/test/functional/tests/fault_injection/test_fault_injection_many_to_one.py b/test/functional/tests/fault_injection/test_fault_injection_many_to_one.py index 0518355..21684ef 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_many_to_one.py +++ b/test/functional/tests/fault_injection/test_fault_injection_many_to_one.py @@ -12,8 +12,8 @@ from api.cas.core import Core from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun from test_tools.dd import Dd -from test_utils.os_utils import Udev, sync -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit block_size = Size(1, Unit.Blocks4096) @@ -289,7 +289,7 @@ def test_one_core_fail_dirty(): with TestRun.step("Check if core device is really out of cache."): output = str(casadm.list_caches().stdout.splitlines()) if core_part1.path in output: - TestRun.exception("The first core device should be unplugged!") + TestRun.LOGGER.exception("The first core device should be unplugged!") with TestRun.step("Verify that I/O to the remaining cores does not insert to cache"): dd_builder(cache_mode, core2, Size(100, Unit.MebiByte)).run() diff --git a/test/functional/tests/fault_injection/test_fault_injection_opencas_load.py b/test/functional/tests/fault_injection/test_fault_injection_opencas_load.py index 273c5a4..8aaf035 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_opencas_load.py +++ b/test/functional/tests/fault_injection/test_fault_injection_opencas_load.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # @@ -7,14 +8,12 @@ import pytest from api.cas import casadm, casadm_parser, cli, cli_messages from api.cas.cache_config import CacheMode, CleaningPolicy, CacheModeTrait +from test_tools.fs_tools import create_random_test_file +from test_tools.udev import Udev from tests.lazy_writes.recovery.recovery_tests_methods import copy_file, compare_files from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem -from test_utils import os_utils -from test_utils.size import Size, Unit +from type_def.size import Size, Unit mount_point = "/mnt/cas" test_file_path = f"{mount_point}/test_file" @@ -48,7 +47,7 @@ def test_stop_no_flush_load_cache(cache_mode): with TestRun.step(f"Create test file in mount point of exported object and check its md5 sum."): test_file_size = Size(48, Unit.MebiByte) - test_file = fs_utils.create_random_test_file(test_file_path, test_file_size) + test_file = create_random_test_file(test_file_path, test_file_size) test_file_md5_before = test_file.md5sum() copy_file(source=test_file.full_path, target=core.path, size=test_file_size, direct="oflag") @@ -101,5 +100,5 @@ def prepare(): core_dev = TestRun.disks['core'] core_dev.create_partitions([Size(2, Unit.GibiByte)]) core_part = core_dev.partitions[0] - os_utils.Udev.disable() + Udev.disable() return cache_part, core_part diff --git a/test/functional/tests/fault_injection/test_fault_injection_standby.py b/test/functional/tests/fault_injection/test_fault_injection_standby.py index 80d0753..01053a3 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_standby.py +++ b/test/functional/tests/fault_injection/test_fault_injection_standby.py @@ -5,22 +5,17 @@ # import pytest -from collections import namedtuple -import random from api.cas import casadm from api.cas import dmesg -from api.cas.cli import casadm_bin from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Size, Unit -from api.cas.cli_messages import check_stderr_msg, missing_param, disallowed_param +from type_def.size import Size, Unit from api.cas.cache_config import CacheLineSize, CacheMode from api.cas.cli import standby_activate_cmd, standby_load_cmd from api.cas.dmesg import get_md_section_size -from api.cas.ioclass_config import IoClass from test_tools.dd import Dd -from test_utils.os_utils import sync +from test_tools.os_tools import sync from test_utils.filesystem.file import File diff --git a/test/functional/tests/fault_injection/test_fault_injection_standby_core.py b/test/functional/tests/fault_injection/test_fault_injection_standby_core.py index 726918f..b0bc4b9 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_standby_core.py +++ b/test/functional/tests/fault_injection/test_fault_injection_standby_core.py @@ -6,11 +6,11 @@ import pytest -from api.cas import cli, casadm +from api.cas import casadm from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun -from test_utils.size import Size, Unit -from api.cas.cache_config import CacheLineSize, CacheMode, CacheStatus +from type_def.size import Size, Unit +from api.cas.cache_config import CacheLineSize, CacheStatus from api.cas.casadm_params import StatsFilter from api.cas.casadm_parser import get_core_info_for_cache_by_path from api.cas.core import CoreStatus, Core diff --git a/test/functional/tests/fault_injection/test_fault_injection_with_mounted_core.py b/test/functional/tests/fault_injection/test_fault_injection_with_mounted_core.py index d8ac834..8e61455 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_with_mounted_core.py +++ b/test/functional/tests/fault_injection/test_fault_injection_with_mounted_core.py @@ -9,11 +9,11 @@ import pytest from api.cas import casadm, casadm_parser, cli, cli_messages from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils, disk_utils -from test_tools.disk_utils import Filesystem +from test_tools.disk_tools import get_block_size, create_partitions +from test_tools.fs_tools import Filesystem, create_random_test_file, check_if_file_exists from test_utils.filesystem.file import File from test_utils.filesystem.symlink import Symlink -from test_utils.size import Size, Unit +from type_def.size import Size, Unit mount_point, mount_point2 = "/mnt/cas", "/mnt/cas2" test_file_path = f"{mount_point}/test_file" @@ -46,7 +46,7 @@ def test_load_cache_with_mounted_core(): core.mount(mount_point) with TestRun.step(f"Create test file in mount point of exported object and check its md5 sum."): - test_file = fs_utils.create_random_test_file(test_file_path) + test_file = create_random_test_file(test_file_path) test_file_md5_before = test_file.md5sum() with TestRun.step("Unmount core device."): @@ -110,8 +110,8 @@ def test_stop_cache_with_mounted_partition(): core2 = cache.add_core(core_dev2) with TestRun.step("Create partitions on one exported object."): - core.block_size = Size(disk_utils.get_block_size(core.get_device_id())) - disk_utils.create_partitions(core, 2 * [Size(4, Unit.GibiByte)]) + core.block_size = Size(get_block_size(core.get_device_id())) + create_partitions(core, 2 * [Size(4, Unit.GibiByte)]) fs_part = core.partitions[0] with TestRun.step("Create xfs filesystems on one exported object partition " @@ -124,7 +124,7 @@ def test_stop_cache_with_mounted_partition(): core2.mount(mount_point2) with TestRun.step("Ensure /etc/mtab exists."): - if not fs_utils.check_if_file_exists("/etc/mtab"): + if not check_if_file_exists("/etc/mtab"): Symlink.create_symlink("/proc/self/mounts", "/etc/mtab") with TestRun.step("Try to remove the core with partitions from cache."): @@ -185,7 +185,7 @@ def test_stop_cache_with_mounted_partition_no_mtab(): core.mount(mount_point) with TestRun.step("Move /etc/mtab"): - if fs_utils.check_if_file_exists("/etc/mtab"): + if check_if_file_exists("/etc/mtab"): mtab = File("/etc/mtab") else: mtab = Symlink.create_symlink("/proc/self/mounts", "/etc/mtab") diff --git a/test/functional/tests/fault_injection/test_fault_power_reboot.py b/test/functional/tests/fault_injection/test_fault_power_reboot.py index 22237e7..0fcd887 100644 --- a/test/functional/tests/fault_injection/test_fault_power_reboot.py +++ b/test/functional/tests/fault_injection/test_fault_power_reboot.py @@ -1,17 +1,17 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # import time - import pytest from api.cas import casadm, cli, cli_messages from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from type_def.size import Size, Unit log_path = "/var/log/opencas.log" wait_long_time = 180 diff --git a/test/functional/tests/fault_injection/test_max_io_greater_in_core.py b/test/functional/tests/fault_injection/test_max_io_greater_in_core.py index 1caaf1d..b0df135 100644 --- a/test/functional/tests/fault_injection/test_max_io_greater_in_core.py +++ b/test/functional/tests/fault_injection/test_max_io_greater_in_core.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest @@ -9,8 +10,8 @@ from api.cas.cache_config import CacheMode, CacheLineSize from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.dd import Dd -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/fault_injection/test_primary_device_error.py b/test/functional/tests/fault_injection/test_primary_device_error.py index 069e15d..d7d2be4 100644 --- a/test/functional/tests/fault_injection/test_primary_device_error.py +++ b/test/functional/tests/fault_injection/test_primary_device_error.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -7,7 +8,8 @@ import pytest from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, ErrorFilter, VerifyMethod -from test_tools.device_mapper import ErrorDevice, DmTable +from test_tools.device_mapper import DmTable +from storage_devices.error_device import ErrorDevice from core.test_run import TestRun from api.cas import casadm from api.cas.cache_config import ( @@ -18,8 +20,8 @@ from api.cas.cache_config import ( CleaningPolicy, ) from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit @pytest.mark.parametrizex("cache_mode", CacheMode.without_traits(CacheModeTrait.LazyWrites)) diff --git a/test/functional/tests/fault_injection/test_soft_hot_plug_device.py b/test/functional/tests/fault_injection/test_soft_hot_plug_device.py index 31b0c01..c93ec60 100644 --- a/test/functional/tests/fault_injection/test_soft_hot_plug_device.py +++ b/test/functional/tests/fault_injection/test_soft_hot_plug_device.py @@ -16,8 +16,8 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, ErrorFilter -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from type_def.size import Size, Unit @pytest.mark.parametrizex("cache_mode", CacheMode) diff --git a/test/functional/tests/fault_injection/test_standby_activate_different_cache_path.py b/test/functional/tests/fault_injection/test_standby_activate_different_cache_path.py index 5608c83..8288e41 100644 --- a/test/functional/tests/fault_injection/test_standby_activate_different_cache_path.py +++ b/test/functional/tests/fault_injection/test_standby_activate_different_cache_path.py @@ -11,12 +11,12 @@ from api.cas.cli import standby_activate_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_utils.filesystem.symlink import Symlink -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from api.cas.cache_config import CacheLineSize from api.cas.cache import CacheStatus from test_tools.dd import Dd -from test_tools.fs_utils import check_if_symlink_exists -from test_utils.os_utils import sync +from test_tools.fs_tools import check_if_symlink_exists +from test_tools.os_tools import sync @pytest.mark.CI diff --git a/test/functional/tests/fault_injection/test_standby_activate_the_same_cache_path.py b/test/functional/tests/fault_injection/test_standby_activate_the_same_cache_path.py index adb71a0..f1605ba 100644 --- a/test/functional/tests/fault_injection/test_standby_activate_the_same_cache_path.py +++ b/test/functional/tests/fault_injection/test_standby_activate_the_same_cache_path.py @@ -10,7 +10,7 @@ from api.cas import casadm from api.cas.casadm_parser import get_caches from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from api.cas.cache_config import CacheStatus diff --git a/test/functional/tests/incremental_load/test_core_pool.py b/test/functional/tests/incremental_load/test_core_pool.py index a05171c..d94d895 100644 --- a/test/functional/tests/incremental_load/test_core_pool.py +++ b/test/functional/tests/incremental_load/test_core_pool.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -9,9 +10,9 @@ from api.cas import casadm from api.cas.core import CoreStatus from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem +from connection.utils.output import CmdException +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/incremental_load/test_inactive_cores.py b/test/functional/tests/incremental_load/test_inactive_cores.py index 57ef360..d5a80c3 100644 --- a/test/functional/tests/incremental_load/test_inactive_cores.py +++ b/test/functional/tests/incremental_load/test_inactive_cores.py @@ -13,7 +13,7 @@ from api.cas.core import Core, CoreStatus from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/incremental_load/test_incremental_load.py b/test/functional/tests/incremental_load/test_incremental_load.py index ae6e6b5..8a83c88 100644 --- a/test/functional/tests/incremental_load/test_incremental_load.py +++ b/test/functional/tests/incremental_load/test_incremental_load.py @@ -25,14 +25,15 @@ from api.cas.statistics import CacheStats from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite from test_utils.filesystem.file import File -from test_utils.os_utils import Udev, sync -from test_utils.output import CmdException -from test_utils.size import Size, Unit -from test_utils.time import Time +from test_tools.os_tools import sync +from test_tools.udev import Udev +from connection.utils.output import CmdException +from type_def.size import Size, Unit +from type_def.time import Time @pytest.mark.CI diff --git a/test/functional/tests/incremental_load/test_udev.py b/test/functional/tests/incremental_load/test_udev.py index 48b46ee..857d1cc 100644 --- a/test/functional/tests/incremental_load/test_udev.py +++ b/test/functional/tests/incremental_load/test_udev.py @@ -16,7 +16,7 @@ from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType from storage_devices.raid import RaidConfiguration, Raid, Level, MetadataVariant -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.os_dependent diff --git a/test/functional/tests/initialize/test_clean_reboot.py b/test/functional/tests/initialize/test_clean_reboot.py index 182145e..ad09d06 100644 --- a/test/functional/tests/initialize/test_clean_reboot.py +++ b/test/functional/tests/initialize/test_clean_reboot.py @@ -12,10 +12,10 @@ from api.cas.cache_config import CacheMode from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_utils.filesystem.file import File -from test_utils.os_utils import drop_caches, DropCachesMode, sync -from test_utils.size import Size, Unit +from test_tools.os_tools import drop_caches, DropCachesMode, sync +from type_def.size import Size, Unit @pytest.mark.os_dependent diff --git a/test/functional/tests/initialize/test_initialize_load.py b/test/functional/tests/initialize/test_initialize_load.py index 2f2b7de..a01de01 100644 --- a/test/functional/tests/initialize/test_initialize_load.py +++ b/test/functional/tests/initialize/test_initialize_load.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -12,10 +13,11 @@ from api.cas.cache_config import (CleaningPolicy, FlushParametersAlru, Time, FlushParametersAcp) +from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio -from test_tools.fio.fio_param import * -from test_utils.size import Size, Unit +from test_tools.fio.fio_param import IoEngine, ReadWrite, CpusAllowedPolicy +from type_def.size import Size, Unit @pytest.mark.parametrizex("cores_amount", [1, 4]) diff --git a/test/functional/tests/initialize/test_initialize_runlevel.py b/test/functional/tests/initialize/test_initialize_runlevel.py index ad5305d..1fc9eb9 100644 --- a/test/functional/tests/initialize/test_initialize_runlevel.py +++ b/test/functional/tests/initialize/test_initialize_runlevel.py @@ -1,22 +1,24 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import os import pytest import time + from api.cas import casadm, casadm_parser from api.cas.cache_config import CacheMode from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskTypeLowerThan, DiskTypeSet, DiskType -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils import os_utils -from test_utils.os_utils import Runlevel -from test_utils.size import Size, Unit +from test_tools.os_tools import sync, drop_caches +from test_tools.runlevel import Runlevel, change_runlevel +from type_def.size import Size, Unit mount_point = "/mnt/test" @@ -36,7 +38,7 @@ def test_init_reboot_runlevels(runlevel, cache_mode): - Cache should be loaded successfully after reboot. """ with TestRun.step(f"Set runlevel to {runlevel.value}."): - os_utils.change_runlevel(runlevel) + change_runlevel(runlevel) with TestRun.step("Prepare CAS device."): cache_disk = TestRun.disks['cache'] @@ -65,8 +67,8 @@ def test_init_reboot_runlevels(runlevel, cache_mode): .file_size(Size(30, Unit.GibiByte)) fio.run_in_background() - os_utils.sync() - os_utils.drop_caches() + sync() + drop_caches() time.sleep(10) TestRun.executor.run_expect_success("pgrep fio") @@ -86,5 +88,5 @@ def test_init_reboot_runlevels(runlevel, cache_mode): with TestRun.step("Stop cache and set default runlevel."): if len(caches) != 0: casadm.stop_all_caches() - os_utils.change_runlevel(Runlevel.runlevel3) + change_runlevel(Runlevel.runlevel3) TestRun.executor.reboot() diff --git a/test/functional/tests/initialize/test_initialize_status.py b/test/functional/tests/initialize/test_initialize_status.py index 7f24192..4233484 100644 --- a/test/functional/tests/initialize/test_initialize_status.py +++ b/test/functional/tests/initialize/test_initialize_status.py @@ -10,7 +10,7 @@ import pytest from api.cas import cas_module, casctl from api.cas.cas_module import CasModule from core.test_run import TestRun -from test_utils import os_utils +from test_tools.os_tools import load_kernel_module @pytest.mark.os_dependent @@ -46,5 +46,5 @@ def test_init_status(): TestRun.fail("CAS management device is present in OS when CAS module is not loaded.") with TestRun.step("Load CAS modules and start CAS service"): - os_utils.load_kernel_module(CasModule.cache.value) + load_kernel_module(CasModule.cache.value) casctl.start() diff --git a/test/functional/tests/initialize/test_negative_load.py b/test/functional/tests/initialize/test_negative_load.py index 973e3e6..1d07eb5 100644 --- a/test/functional/tests/initialize/test_negative_load.py +++ b/test/functional/tests/initialize/test_negative_load.py @@ -1,14 +1,15 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # - import pytest + from api.cas import casadm, casadm_parser, cli, cli_messages from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/initialize/test_recovery.py b/test/functional/tests/initialize/test_recovery.py index 71e5881..c77309a 100644 --- a/test/functional/tests/initialize/test_recovery.py +++ b/test/functional/tests/initialize/test_recovery.py @@ -14,11 +14,10 @@ from api.cas.cli_messages import check_stderr_msg, stop_cache_errors from core.test_run import TestRun from storage_devices.disk import DiskTypeLowerThan, DiskTypeSet, DiskType from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem, mount -from test_tools.fs_utils import check_if_file_exists +from test_tools.fs_tools import check_if_file_exists, Filesystem from test_utils.filesystem.file import File -from test_utils.os_utils import sync -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from type_def.size import Size, Unit mount_point = "/mnt/cas" diff --git a/test/functional/tests/initialize/test_simulation_startup.py b/test/functional/tests/initialize/test_simulation_startup.py index 5dc647e..d82943a 100644 --- a/test/functional/tests/initialize/test_simulation_startup.py +++ b/test/functional/tests/initialize/test_simulation_startup.py @@ -13,7 +13,7 @@ from api.cas.core import CoreStatus from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskTypeLowerThan, DiskTypeSet, DiskType -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.CI diff --git a/test/functional/tests/initialize/test_startup_init_config.py b/test/functional/tests/initialize/test_startup_init_config.py index 34c1801..285213f 100644 --- a/test/functional/tests/initialize/test_startup_init_config.py +++ b/test/functional/tests/initialize/test_startup_init_config.py @@ -14,11 +14,12 @@ from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_utils.filesystem.file import File -from test_tools.disk_utils import Filesystem -from test_utils import fstab +from test_tools.fs_tools import Filesystem +from test_tools import fstab from test_tools.dd import Dd -from test_utils.size import Unit, Size -from test_utils.os_utils import sync, Udev +from type_def.size import Unit, Size +from test_tools.os_tools import sync +from test_tools.udev import Udev from test_utils.emergency_escape import EmergencyEscape from api.cas.cas_service import set_cas_service_timeout, clear_cas_service_timeout @@ -221,7 +222,7 @@ def test_cas_startup_lazy(): core_pool_paths = {c["device_path"] for c in core_pool_list} if core_pool_paths != expected_core_pool_paths: - TestRun.error( + TestRun.LOGGER.error( f"Expected the following devices in core pool " f"{expected_core_pool_paths}. Got {core_pool_paths}" ) @@ -230,7 +231,7 @@ def test_cas_startup_lazy(): caches_paths = {c["device_path"] for c in caches_list} if caches_paths != expected_caches_paths: - TestRun.error( + TestRun.LOGGER.error( f"Expected the following devices as caches " f"{expected_caches_paths}. Got {caches_paths}" ) @@ -239,7 +240,7 @@ def test_cas_startup_lazy(): cores_paths = {c["device_path"] for c in cores_list} if cores_paths != expected_cores_paths: - TestRun.error( + TestRun.LOGGER.error( f"Expected the following devices as cores " f"{expected_caches_paths}. Got {cores_paths}" ) @@ -446,14 +447,14 @@ def test_failover_config_startup(): cores_list = get_cas_devices_dict()["cores"].values() if len(core_pool_list) != 0: - TestRun.error(f"No cores expected in core pool. Got {core_pool_list}") + TestRun.LOGGER.error(f"No cores expected in core pool. Got {core_pool_list}") else: TestRun.LOGGER.info("Core pool is ok") expected_caches_paths = set([active_cache_path, standby_cache_path]) caches_paths = {c["device"] for c in caches_list} if caches_paths != expected_caches_paths: - TestRun.error( + TestRun.LOGGER.error( f"Expected the following devices as caches " f"{expected_caches_paths}. Got {caches_paths}" ) @@ -463,7 +464,7 @@ def test_failover_config_startup(): expected_core_paths = set([active_core_path]) cores_paths = {c["device"] for c in cores_list} if cores_paths != expected_core_paths: - TestRun.error( + TestRun.LOGGER.error( f"Expected the following devices as cores " f"{expected_core_paths}. Got {cores_paths}" ) diff --git a/test/functional/tests/io/test_io_engines.py b/test/functional/tests/io/test_io_engines.py index f6ea967..4315994 100644 --- a/test/functional/tests/io/test_io_engines.py +++ b/test/functional/tests/io/test_io_engines.py @@ -1,21 +1,22 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -from datetime import timedelta - import pytest +from datetime import timedelta + from api.cas import casadm from api.cas.cache_config import CacheMode from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, CpusAllowedPolicy, ReadWrite -from test_utils.os_utils import get_dut_cpu_physical_cores -from test_utils.size import Size, Unit +from test_tools.os_tools import get_dut_cpu_physical_cores +from type_def.size import Size, Unit mount_point = "/mnt/test" runtime = timedelta(minutes=15) diff --git a/test/functional/tests/io/test_remove_device_during_io.py b/test/functional/tests/io/test_remove_device_during_io.py index b7170af..1211cbd 100644 --- a/test/functional/tests/io/test_remove_device_during_io.py +++ b/test/functional/tests/io/test_remove_device_during_io.py @@ -1,10 +1,10 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import time - import pytest from datetime import timedelta @@ -13,7 +13,7 @@ from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/io/test_write_fetch.py b/test/functional/tests/io/test_write_fetch.py index ab2b0b9..8eb0815 100644 --- a/test/functional/tests/io/test_write_fetch.py +++ b/test/functional/tests/io/test_write_fetch.py @@ -1,11 +1,13 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import os +import os import pytest import uuid + from api.cas import casadm from api.cas.cache_config import CacheMode, CacheLineSize, CacheModeTrait from core.test_run import TestRun @@ -13,8 +15,8 @@ from storage_devices.disk import DiskTypeSet, DiskTypeLowerThan, DiskType from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite from test_utils.filesystem.symlink import Symlink -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/io/trim/test_trim.py b/test/functional/tests/io/trim/test_trim.py index 27052e6..7ee8b98 100644 --- a/test/functional/tests/io/trim/test_trim.py +++ b/test/functional/tests/io/trim/test_trim.py @@ -3,23 +3,23 @@ # Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import os + import posixpath import time - import pytest +from test_tools.os_tools import sync, drop_caches +from test_tools.udev import Udev from api.cas import casadm from api.cas.cache_config import CacheMode, CacheModeTrait, CleaningPolicy, SeqCutOffPolicy from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet -from test_tools import fs_utils from test_tools.blktrace import BlkTrace, BlkTraceMask, RwbsKind -from test_tools.disk_utils import Filesystem, check_if_device_supports_trim +from test_tools.disk_tools import check_if_device_supports_trim +from test_tools.fs_tools import Filesystem, create_random_test_file from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils import os_utils -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from api.cas.dmesg import get_metadata_size_on_device @@ -129,7 +129,7 @@ def test_trim_propagation(): raise Exception("Core device doesn't support discards") with TestRun.step(f"Disable udev"): - os_utils.Udev.disable() + Udev.disable() with TestRun.step(f"Prepare cache instance in WB with one core"): cache = casadm.start_cache(cache_dev, CacheMode.WB, force=True) @@ -161,7 +161,7 @@ def test_trim_propagation(): with TestRun.step("Power cycle"): power_control = TestRun.plugin_manager.get_plugin("power_control") power_control.power_cycle() - os_utils.Udev.disable() + Udev.disable() with TestRun.step("Load cache"): cache = casadm.start_cache(cache_dev, load=True) @@ -235,7 +235,7 @@ def test_trim_device_discard_support( core.mount(mount_point, ["discard"]) with TestRun.step("Create random file."): - test_file = fs_utils.create_random_test_file( + test_file = create_random_test_file( posixpath.join(mount_point, "test_file"), core_dev.size * 0.2 ) occupancy_before = core.get_occupancy() @@ -246,8 +246,8 @@ def test_trim_device_discard_support( with TestRun.step("Remove file."): test_file.remove() - os_utils.sync() - os_utils.drop_caches() + sync() + drop_caches() time.sleep(5) with TestRun.step("Ensure that discards were detected by blktrace on proper devices."): @@ -315,8 +315,8 @@ def compare_properties(value, expected_value, property_name): def stop_monitoring_and_check_discards(blktraces, discard_support): time.sleep(60) - os_utils.sync() - os_utils.drop_caches() + sync() + drop_caches() time.sleep(5) discard_flag = RwbsKind.D # Discard diff --git a/test/functional/tests/io/trim/test_trim_stress.py b/test/functional/tests/io/trim/test_trim_stress.py index a92ac9b..4bed31a 100644 --- a/test/functional/tests/io/trim/test_trim_stress.py +++ b/test/functional/tests/io/trim/test_trim_stress.py @@ -1,17 +1,20 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import os -from datetime import timedelta import pytest + +from datetime import timedelta + from api.cas import casadm from api.cas.cache_config import CacheMode, CacheLineSize from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit +from test_tools.fio.fio import Fio +from test_tools.fio.fio_param import ReadWrite, IoEngine +from type_def.size import Size, Unit @pytest.mark.os_dependent @@ -19,28 +22,23 @@ from test_utils.size import Size, Unit @pytest.mark.require_disk("core", DiskTypeSet([DiskType.optane, DiskType.nand, DiskType.sata])) @pytest.mark.parametrizex("cache_mode", CacheMode) @pytest.mark.parametrizex("cache_line_size", CacheLineSize) -@pytest.mark.require_plugin("vdbench") def test_trim_stress(cache_mode, cache_line_size): """ title: Trim support on cache devices in different cache modes stress test. description: | - Stress test validating the ability of CAS to handle trim requests in different modes, - on different filesystem types. + Stress test validating the ability of CAS to handle trim requests in different modes. pass_criteria: - No kernel bug. - Cache should still work correctly. """ - cores_number = 4 - mount_point = "/mnt" - with TestRun.step("Prepare devices."): cache_disk = TestRun.disks['cache'] cache_disk.create_partitions([Size(1, Unit.GibiByte)]) cache_dev = cache_disk.partitions[0] core_disk = TestRun.disks['core'] - core_disk.create_partitions([Size(1, Unit.GibiByte)] * cores_number) + core_disk.create_partitions([Size(1, Unit.GibiByte)] * 3) core_devices = core_disk.partitions with TestRun.step("Start cache and add cores."): @@ -49,41 +47,35 @@ def test_trim_stress(cache_mode, cache_line_size): for d in core_devices: cores.append(cache.add_core(d)) - with TestRun.step("Create filesystem and mount CAS devices."): - directories = [] - for counter, core in enumerate(cores): - core.create_filesystem(Filesystem(counter % len(Filesystem))) - mount_dir = os.path.join(mount_point, str(counter + 1)) - directories.append(mount_dir) - core.mount(mount_dir, ["discard"]) - with TestRun.step("Run I/O workload."): - for _ in TestRun.iteration(range(1, 7)): - run_vdbench(directories) + for _ in TestRun.iteration(range(1, 6)): + run_fio([core.path for core in cores]) with TestRun.step("Stop CAS."): for c in cores: - c.unmount() c.remove_core() cache.stop() -def run_vdbench(directories): - vdbench = TestRun.plugin_manager.get_plugin('vdbench') - config = f"data_errors=1,validate=yes,messagescan=no,create_anchors=yes\n" \ - f"fsd=default,depth=4,width=5,files=10,sizes=" \ - f"(1k,10,2k,10,4k,10,8k,10,16k,10,32k,10,64k,10,128k,10,256k,10,512k,10)\n" +def run_fio(paths): + block_sizes = [f"{2 ** n}k" for n in range(0, 10)] - for i, dir in enumerate(directories): - config += f"fsd=fsd{i},anchor={dir}\n" + fio = ( + Fio().create_command() + .io_engine(IoEngine.libaio) + .io_depth(16) + .bs_split(":".join([f"{bs}/{100 // len(block_sizes)}" for bs in block_sizes])) + .time_based() + .run_time(timedelta(minutes=10)) + .trim_verify_zero() + .verify_fatal() + ) - config += f"\nfwd=fwd1,fsd=fsd*," \ - f"fileio=(random),fileselect=random,threads=32," \ - f"xfersizes=(512,10,1k,10,2k,10,4k,10,8k,10,16k,10,32k,10,64k,10," \ - f"128k,10,256k,10)\nrd=rd1,fwd=fwd*,fwdrate=max,format=yes," \ - f"interval=5,operations=(read,write,open,close,getattr,setattr)" - vdbench.create_config(config, run_time=timedelta(minutes=5)) - if vdbench.run(): - TestRun.LOGGER.info("VDBench finished with status zero.") - else: - TestRun.LOGGER.error("VDBench finished with non-zero status.") + for path, rw in zip(paths, [ReadWrite.trim, ReadWrite.randtrim, ReadWrite.trimwrite]): + ( + fio.add_job(path + rw.name) + .file_name(path) + .read_write(rw) + ) + + fio.run(fio_timeout=timedelta(minutes=20)) diff --git a/test/functional/tests/io_class/io_class_common.py b/test/functional/tests/io_class/io_class_common.py index 405e1e8..dc14da5 100644 --- a/test/functional/tests/io_class/io_class_common.py +++ b/test/functional/tests/io_class/io_class_common.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -16,9 +17,10 @@ from core.test_run import TestRun from test_tools.dd import Dd from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import Udev, sync -from test_utils.os_utils import drop_caches, DropCachesMode -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from test_tools.os_tools import drop_caches, DropCachesMode +from type_def.size import Size, Unit ioclass_config_path = "/etc/opencas/ioclass.conf" template_config_path = "/etc/opencas/ioclass-config.csv" diff --git a/test/functional/tests/io_class/test_io_class_cli.py b/test/functional/tests/io_class/test_io_class_cli.py index 82b39ab..05e3a04 100644 --- a/test/functional/tests/io_class/test_io_class_cli.py +++ b/test/functional/tests/io_class/test_io_class_cli.py @@ -1,9 +1,9 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # - import pytest from api.cas import casadm, ioclass_config @@ -12,8 +12,8 @@ from api.cas.casadm_params import OutputFormat from api.cas.ioclass_config import IoClass from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_utils.size import Size, Unit +from test_tools.fs_tools import read_file, remove +from type_def.size import Size, Unit ioclass_config_path = "/tmp/opencas_ioclass.conf" @@ -61,7 +61,7 @@ def test_io_class_export_configuration(): f"{casadm.list_io_classes_cmd(str(cache.cache_id), OutputFormat.csv.name)}" f" > {saved_config_path}" ) - csv = fs_utils.read_file(saved_config_path) + csv = read_file(saved_config_path) if not IoClass.compare_ioclass_lists(IoClass.csv_to_list(csv), random_list): TestRun.LOGGER.error( "Exported configuration does not match expected\n" @@ -98,7 +98,7 @@ def test_io_class_export_configuration(): ) with TestRun.LOGGER.step(f"Test cleanup"): - fs_utils.remove(saved_config_path) + remove(saved_config_path) def prepare(cache_mode: CacheMode = None): diff --git a/test/functional/tests/io_class/test_io_class_core_id.py b/test/functional/tests/io_class/test_io_class_core_id.py index eb19d3c..c4e59c5 100644 --- a/test/functional/tests/io_class/test_io_class_core_id.py +++ b/test/functional/tests/io_class/test_io_class_core_id.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -10,8 +11,9 @@ from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_utils.os_utils import sync, Udev, drop_caches -from test_utils.size import Unit, Size +from test_tools.os_tools import sync, drop_caches +from test_tools.udev import Udev +from type_def.size import Unit, Size dd_bs = Size(1, Unit.Blocks4096) dd_count = 1230 diff --git a/test/functional/tests/io_class/test_io_class_directory.py b/test/functional/tests/io_class/test_io_class_directory.py index 827334d..4d346f1 100644 --- a/test/functional/tests/io_class/test_io_class_directory.py +++ b/test/functional/tests/io_class/test_io_class_directory.py @@ -1,24 +1,25 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import random import time -from datetime import datetime - import pytest +from datetime import datetime + from api.cas import ioclass_config, casadm from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, create_directory, remove from test_utils.filesystem.directory import Directory from test_utils.filesystem.file import File -from test_utils.os_utils import drop_caches, DropCachesMode, sync, Udev -from test_utils.size import Size, Unit +from test_tools.os_tools import drop_caches, DropCachesMode, sync +from test_tools.udev import Udev +from type_def.size import Size, Unit from tests.io_class.io_class_common import mountpoint, prepare, ioclass_config_path @@ -50,14 +51,14 @@ def test_ioclass_directory_depth(filesystem): sync() with TestRun.step(f"Create the base directory: {base_dir_path}."): - fs_utils.create_directory(base_dir_path) + create_directory(base_dir_path) with TestRun.step(f"Create a nested directory."): nested_dir_path = base_dir_path random_depth = random.randint(40, 80) for i in range(random_depth): nested_dir_path += f"/dir_{i}" - fs_utils.create_directory(path=nested_dir_path, parents=True) + create_directory(path=nested_dir_path, parents=True) # Test classification in nested dir by reading a previously unclassified file with TestRun.step("Create the first file in the nested directory."): @@ -175,7 +176,7 @@ def test_ioclass_directory_file_operations(filesystem): casadm.load_io_classes(cache_id=cache.cache_id, file=ioclass_config_path) with TestRun.step( - f"Prepare {filesystem.name} filesystem " f"and mounting {core.path} at {mountpoint}." + f"Prepare {filesystem.name} filesystem and mounting {core.path} at {mountpoint}." ): core.create_filesystem(fs_type=filesystem) core.mount(mount_point=mountpoint) @@ -397,7 +398,7 @@ def test_ioclass_directory_dir_operations(filesystem): ) with TestRun.step(f"Remove {classified_dir_path_2}."): - fs_utils.remove(path=classified_dir_path_2, force=True, recursive=True) + remove(path=classified_dir_path_2, force=True, recursive=True) sync() drop_caches(DropCachesMode.ALL) diff --git a/test/functional/tests/io_class/test_io_class_eviction_pinned_after_unpin.py b/test/functional/tests/io_class/test_io_class_eviction_pinned_after_unpin.py index 95f0a28..5726bdc 100644 --- a/test/functional/tests/io_class/test_io_class_eviction_pinned_after_unpin.py +++ b/test/functional/tests/io_class/test_io_class_eviction_pinned_after_unpin.py @@ -1,19 +1,22 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -from collections import namedtuple import pytest +from collections import namedtuple + from api.cas.ioclass_config import default_config_file_path from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from .io_class_common import ioclass_config, get_io_class_occupancy, run_io_dir from api.cas import casadm -from test_utils.os_utils import sync, Udev, drop_caches -from test_utils.size import Unit, Size +from test_tools.os_tools import sync, drop_caches +from test_tools.udev import Udev +from type_def.size import Unit, Size cache_size = Size(100, Unit.MiB) diff --git a/test/functional/tests/io_class/test_io_class_eviction_priority.py b/test/functional/tests/io_class/test_io_class_eviction_priority.py index feeec0a..8ea1bc4 100644 --- a/test/functional/tests/io_class/test_io_class_eviction_priority.py +++ b/test/functional/tests/io_class/test_io_class_eviction_priority.py @@ -1,16 +1,16 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from collections import namedtuple from math import isclose -import pytest - from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, create_directory from .io_class_common import * @@ -50,7 +50,7 @@ def test_io_class_eviction_priority(): IoclassConfig(4, 1, 1.00, f"{mountpoint}/D"), ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Adding io classes for all dirs"): for io_class in io_classes: diff --git a/test/functional/tests/io_class/test_io_class_file.py b/test/functional/tests/io_class/test_io_class_file.py index 2d23ba4..b8424f1 100644 --- a/test/functional/tests/io_class/test_io_class_file.py +++ b/test/functional/tests/io_class/test_io_class_file.py @@ -1,20 +1,20 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import random - import pytest from api.cas import ioclass_config, casadm from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_utils.filesystem.file import File -from test_utils.os_utils import sync, DropCachesMode, drop_caches -from test_utils.size import Size, Unit +from test_tools.os_tools import sync, DropCachesMode, drop_caches +from type_def.size import Size, Unit from tests.io_class.io_class_common import mountpoint, prepare, ioclass_config_path diff --git a/test/functional/tests/io_class/test_io_class_lvm_on_cas.py b/test/functional/tests/io_class/test_io_class_lvm_on_cas.py index bae9bf1..6ac8e2b 100644 --- a/test/functional/tests/io_class/test_io_class_lvm_on_cas.py +++ b/test/functional/tests/io_class/test_io_class_lvm_on_cas.py @@ -12,11 +12,10 @@ from api.cas.ioclass_config import IoClass from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from storage_devices.lvm import Lvm, LvmConfiguration -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, read_file, remove from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from tests.volumes.common import lvm_filters mount_point = "/mnt/" @@ -62,7 +61,7 @@ def test_io_class_lvm_on_cas(): lvm.mount(mount_point) with TestRun.step("Prepare and load IO class config."): - io_classes = IoClass.csv_to_list(fs_utils.read_file("/etc/opencas/ioclass-config.csv")) + io_classes = IoClass.csv_to_list(read_file("/etc/opencas/ioclass-config.csv")) # remove two firs elements/lines: unclassified and metadata io_classes.pop(1) io_classes.pop(0) @@ -123,7 +122,7 @@ def test_io_class_lvm_on_cas(): else: file_size = Size(1100, Unit.MebiByte) - fs_utils.remove(io_target) + remove(io_target) with TestRun.step("Remove LVMs."): TestRun.executor.run(f"umount {mount_point}") diff --git a/test/functional/tests/io_class/test_io_class_occupancy.py b/test/functional/tests/io_class/test_io_class_occupancy.py index 6ed20bc..7dbaf17 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy.py +++ b/test/functional/tests/io_class/test_io_class_occupancy.py @@ -4,21 +4,20 @@ # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from collections import namedtuple from math import isclose -import pytest - from api.cas import ioclass_config, casadm from api.cas.cache_config import CacheMode, CacheLineSize from api.cas.ioclass_config import IoClass, default_config_file_path -from api.cas.statistics import IoClassUsageStats from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import sync, Udev -from test_utils.size import Unit, Size +from test_tools.fs_tools import Filesystem, create_directory +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Unit, Size from tests.io_class.io_class_common import ( prepare, mountpoint, @@ -69,7 +68,7 @@ def test_io_class_occupancy_directory_write(io_size_multiplication, cache_mode): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old ioclass config"): ioclass_config.remove_ioclass_config() @@ -199,7 +198,7 @@ def test_io_class_occupancy_directory_read(io_size_multiplication): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step( f"In each directory create file with size of {io_size_multiplication} " @@ -330,7 +329,7 @@ def test_ioclass_occupancy_sum_cache(): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old ioclass config"): ioclass_config.remove_ioclass_config() diff --git a/test/functional/tests/io_class/test_io_class_occupancy_load.py b/test/functional/tests/io_class/test_io_class_occupancy_load.py index d50a22d..d47ad99 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy_load.py +++ b/test/functional/tests/io_class/test_io_class_occupancy_load.py @@ -1,21 +1,22 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from collections import namedtuple from math import isclose -import pytest - from api.cas import ioclass_config, casadm from api.cas.cache_config import CacheMode, CacheLineSize from api.cas.ioclass_config import IoClass, default_config_file_path from storage_devices.device import Device from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import sync, Udev +from test_tools.fs_tools import Filesystem, create_directory +from test_tools.os_tools import sync +from test_tools.udev import Udev from tests.io_class.io_class_common import ( prepare, mountpoint, @@ -65,7 +66,7 @@ def test_ioclass_occupancy_load(): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old ioclass config"): ioclass_config.remove_ioclass_config() diff --git a/test/functional/tests/io_class/test_io_class_occupancy_repart.py b/test/functional/tests/io_class/test_io_class_occupancy_repart.py index 5fcc66c..50833a6 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy_repart.py +++ b/test/functional/tests/io_class/test_io_class_occupancy_repart.py @@ -1,22 +1,23 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from collections import namedtuple from math import isclose -import pytest - from api.cas import ioclass_config, casadm from api.cas.cache_config import CacheMode, CacheLineSize from api.cas.ioclass_config import IoClass, default_config_file_path from core.test_run_utils import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import sync, Udev -from test_utils.size import Unit +from test_tools.fs_tools import Filesystem, create_directory, move +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Unit from tests.io_class.io_class_common import ( prepare, mountpoint, @@ -67,7 +68,7 @@ def test_ioclass_repart(io_class_size_multiplication): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old io class config"): ioclass_config.remove_ioclass_config() @@ -123,7 +124,7 @@ def test_ioclass_repart(io_class_size_multiplication): with TestRun.step("Force repart - move files to created directories and read theirs contents"): for i, io_class in enumerate(io_classes): - fs_utils.move(source=f"{mountpoint}/{i}", destination=io_class.dir_path) + move(source=f"{mountpoint}/{i}", destination=io_class.dir_path) run_io_dir_read(f"{io_class.dir_path}/{i}") with TestRun.step("Check if each ioclass reached it's occupancy limit"): diff --git a/test/functional/tests/io_class/test_io_class_occupancy_resize.py b/test/functional/tests/io_class/test_io_class_occupancy_resize.py index eb07c29..47259a7 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy_resize.py +++ b/test/functional/tests/io_class/test_io_class_occupancy_resize.py @@ -1,9 +1,11 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from recordclass import recordclass from api.cas import ioclass_config, casadm @@ -11,10 +13,10 @@ from api.cas.cache_config import CacheMode, CacheLineSize from api.cas.ioclass_config import IoClass, default_config_file_path from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import sync, Udev -from test_utils.size import Unit +from test_tools.fs_tools import Filesystem, create_directory +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Unit from tests.io_class.io_class_common import ( mountpoint, prepare, @@ -54,7 +56,7 @@ def test_ioclass_resize(cache_line_size, new_occupancy): IoclassConfig = recordclass("IoclassConfig", "id eviction_prio max_occupancy dir_path") io_class = IoclassConfig(2, 3, 0.10, f"{mountpoint}/A") - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old ioclass config"): ioclass_config.remove_ioclass_config() diff --git a/test/functional/tests/io_class/test_io_class_pinning_eviction.py b/test/functional/tests/io_class/test_io_class_pinning_eviction.py index 2eeb6b4..05424f6 100644 --- a/test/functional/tests/io_class/test_io_class_pinning_eviction.py +++ b/test/functional/tests/io_class/test_io_class_pinning_eviction.py @@ -1,19 +1,19 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from collections import namedtuple from math import isclose - from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from api.cas.ioclass_config import IoClass, default_config_file_path -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, create_directory from core.test_run import TestRun -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from .io_class_common import ( prepare, mountpoint, @@ -58,7 +58,7 @@ def test_io_class_pinning_eviction(): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old config"): ioclass_config.remove_ioclass_config() @@ -152,7 +152,7 @@ def test_pinned_ioclasses_eviction(): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Remove old config"): ioclass_config.remove_ioclass_config() diff --git a/test/functional/tests/io_class/test_io_class_preserve_config.py b/test/functional/tests/io_class/test_io_class_preserve_config.py index 639de22..cdc4ea1 100644 --- a/test/functional/tests/io_class/test_io_class_preserve_config.py +++ b/test/functional/tests/io_class/test_io_class_preserve_config.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -9,7 +10,7 @@ from api.cas import casadm, ioclass_config from api.cas.ioclass_config import IoClass from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from tests.io_class.io_class_common import ( compare_io_classes_list, generate_and_load_random_io_class_config, diff --git a/test/functional/tests/io_class/test_io_class_prevent_wrong_configuration.py b/test/functional/tests/io_class/test_io_class_prevent_wrong_configuration.py index c895b06..01d9268 100644 --- a/test/functional/tests/io_class/test_io_class_prevent_wrong_configuration.py +++ b/test/functional/tests/io_class/test_io_class_prevent_wrong_configuration.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -9,9 +10,9 @@ from api.cas import ioclass_config, cli_messages from api.cas.ioclass_config import IoClass from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_utils.output import CmdException -from test_utils.size import Unit, Size +from connection.utils.output import CmdException +from test_tools.fs_tools import read_file, write_file +from type_def.size import Unit, Size from tests.io_class.io_class_common import prepare, ioclass_config_path headerless_configuration = "1,unclassified,22,1.00" @@ -86,7 +87,7 @@ def test_io_class_prevent_wrong_configuration(): f"{IoClass.default_header()}\n{loaded_io_classes_str}" ) - config_io_classes = IoClass.csv_to_list(fs_utils.read_file(ioclass_config_path)) + config_io_classes = IoClass.csv_to_list(read_file(ioclass_config_path)) if not IoClass.compare_ioclass_lists(config_io_classes, loaded_io_classes): TestRun.fail("Default IO class configuration not loaded correctly.") @@ -98,7 +99,7 @@ def test_io_class_prevent_wrong_configuration(): f"Preparing headerless configuration file with following content:\n" f"{headerless_configuration}" ) - fs_utils.write_file(ioclass_config_path, headerless_configuration) + write_file(ioclass_config_path, headerless_configuration) try_load_malformed_config( cache, config_io_classes, @@ -114,7 +115,7 @@ def test_io_class_prevent_wrong_configuration(): TestRun.LOGGER.info( f"Testing following header with default IO class:\n" f"{config_content}" ) - fs_utils.write_file(ioclass_config_path, config_content) + write_file(ioclass_config_path, config_content) try_load_malformed_config(cache, config_io_classes, expected_err_msg=err_message) with TestRun.step( @@ -123,7 +124,7 @@ def test_io_class_prevent_wrong_configuration(): ): config_content = f"{IoClass.default_header()}\n{double_io_class_configuration}" TestRun.LOGGER.info(f"Testing following configuration file:\n{config_content}") - fs_utils.write_file(ioclass_config_path, config_content) + write_file(ioclass_config_path, config_content) try_load_malformed_config( cache, config_io_classes, @@ -139,7 +140,7 @@ def test_io_class_prevent_wrong_configuration(): TestRun.LOGGER.info( f"Testing following header with default IO class:\n{config_content}" ) - fs_utils.write_file(ioclass_config_path, config_content) + write_file(ioclass_config_path, config_content) try_load_malformed_config(cache, config_io_classes, expected_err_msg=err_message) diff --git a/test/functional/tests/io_class/test_io_class_process.py b/test/functional/tests/io_class/test_io_class_process.py index 366e138..e8ab5f8 100644 --- a/test/functional/tests/io_class/test_io_class_process.py +++ b/test/functional/tests/io_class/test_io_class_process.py @@ -1,18 +1,19 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import time - import pytest from api.cas import ioclass_config, casadm from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_utils.os_utils import sync, Udev -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit from tests.io_class.io_class_common import prepare, ioclass_config_path diff --git a/test/functional/tests/io_class/test_io_class_purge.py b/test/functional/tests/io_class/test_io_class_purge.py index 86d3385..33a7ea8 100644 --- a/test/functional/tests/io_class/test_io_class_purge.py +++ b/test/functional/tests/io_class/test_io_class_purge.py @@ -4,19 +4,18 @@ # SPDX-License-Identifier: BSD-3-Clause # -from collections import namedtuple - import pytest +from collections import namedtuple + from api.cas import ioclass_config, casadm -from api.cas.statistics import IoClassUsageStats from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import drop_caches, DropCachesMode, sync, Udev -from test_utils.size import Unit, Size +from test_tools.fs_tools import Filesystem, create_directory +from test_tools.os_tools import drop_caches, DropCachesMode, sync +from test_tools.udev import Udev +from type_def.size import Unit, Size from tests.io_class.io_class_common import prepare, mountpoint, ioclass_config_path @@ -56,7 +55,7 @@ def test_ioclass_usage_sum(): ] for io_class in io_classes: - fs_utils.create_directory(io_class.dir_path, parents=True) + create_directory(io_class.dir_path, parents=True) with TestRun.step("Add io classes for all dirs"): ioclass_config.remove_ioclass_config() diff --git a/test/functional/tests/io_class/test_io_class_service_support.py b/test/functional/tests/io_class/test_io_class_service_support.py index ea0e412..321afe0 100644 --- a/test/functional/tests/io_class/test_io_class_service_support.py +++ b/test/functional/tests/io_class/test_io_class_service_support.py @@ -1,25 +1,28 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import os import pytest + from datetime import timedelta -from api.cas import ioclass_config, casadm_parser + from api.cas.cache_config import CacheMode from api.cas.casadm_params import StatsFilter +from api.cas.casadm_parser import get_caches, get_cores from api.cas.init_config import InitConfig -from api.cas.ioclass_config import IoClass +from api.cas.ioclass_config import IoClass, remove_ioclass_config, create_ioclass_config, \ + add_ioclass from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, copy, read_file from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils import os_utils -from test_utils.os_utils import Runlevel -from test_utils.size import Size, Unit +from test_tools.os_tools import sync, drop_caches +from test_tools.runlevel import Runlevel, change_runlevel +from type_def.size import Size, Unit from tests.io_class.io_class_common import ( prepare, mountpoint, @@ -73,21 +76,21 @@ def test_io_class_service_load(runlevel): InitConfig.create_init_config_from_running_configuration( cache_extra_flags=f"ioclass_file={ioclass_config_path}" ) - os_utils.sync() + sync() with TestRun.step(f"Reboot system to runlevel {runlevel}."): - os_utils.change_runlevel(runlevel) + change_runlevel(runlevel) TestRun.executor.reboot() with TestRun.step( "Check if CAS device loads properly - " "IO class configuration and statistics shall not change" ): - caches = casadm_parser.get_caches() + caches = get_caches() if len(caches) != 1: TestRun.fail("Cache did not start at boot time.") cache = caches[0] - cores = casadm_parser.get_cores(cache.cache_id) + cores = get_cores(cache.cache_id) if len(cores) != 1: TestRun.fail(f"Actual number of cores: {len(cores)}\nExpected number of cores: 1") core = cores[0] @@ -152,22 +155,22 @@ def run_io(): ) fio.run() - os_utils.sync() - os_utils.drop_caches() + sync() + drop_caches() def prepare_and_load_io_class_config(cache, metadata_not_cached=False): - ioclass_config.remove_ioclass_config() + remove_ioclass_config() if metadata_not_cached: - ioclass_config.create_ioclass_config( + create_ioclass_config( add_default_rule=True, ioclass_config_path=ioclass_config_path ) - ioclass_config.add_ioclass(1, "metadata&done", 1, "0.00", ioclass_config_path) + add_ioclass(1, "metadata&done", 1, "0.00", ioclass_config_path) else: - fs_utils.copy(template_config_path, ioclass_config_path) + copy(template_config_path, ioclass_config_path) - config_io_classes = IoClass.csv_to_list(fs_utils.read_file(ioclass_config_path)) + config_io_classes = IoClass.csv_to_list(read_file(ioclass_config_path)) cache.load_io_class(ioclass_config_path) output_io_classes = cache.list_io_classes() if not IoClass.compare_ioclass_lists(config_io_classes, output_io_classes): diff --git a/test/functional/tests/io_class/test_io_class_stats_file_size_core.py b/test/functional/tests/io_class/test_io_class_stats_file_size_core.py index 9670edd..4748ca8 100644 --- a/test/functional/tests/io_class/test_io_class_stats_file_size_core.py +++ b/test/functional/tests/io_class/test_io_class_stats_file_size_core.py @@ -13,12 +13,11 @@ from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.ioclass_config import IoClass from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, remove, read_file from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.os_utils import sync, drop_caches -from test_utils.size import Size, Unit +from test_tools.os_tools import sync, drop_caches +from type_def.size import Size, Unit from tests.io_class.io_class_common import template_config_path @@ -83,7 +82,7 @@ def test_io_class_stats_file_size_core_fs(cache_mode: CacheMode, filesystem: Fil issued_reqs_no = \ result[0].write_requests_number() + result[0].read_requests_number() check_statistics(cache, core, io_classes, io_class, issued_reqs_no) - fs_utils.remove(f"{core.mount_point}/*", force=True, recursive=True) + remove(f"{core.mount_point}/*", force=True, recursive=True) size_min = size + Size(512, Unit.Byte) @@ -140,7 +139,7 @@ def test_io_class_stats_file_size_core_direct(cache_mode: CacheMode): issued_reqs_no = \ result[0].write_requests_number() + result[0].read_requests_number() check_statistics(cache, core, io_classes, io_class_direct, issued_reqs_no) - fs_utils.remove(f"{core.path}/*", force=True, recursive=True) + remove(f"{core.path}/*", force=True, recursive=True) size_min = size + Size(512, Unit.Byte) @@ -191,7 +190,7 @@ def check_statistics(cache, core, io_classes, tested_io_class, issued_reqs_no): def prepare_io_classes(cache): - template_io_classes = IoClass.csv_to_list(fs_utils.read_file(template_config_path)) + template_io_classes = IoClass.csv_to_list(read_file(template_config_path)) test_io_classes = [] for io_class in template_io_classes: diff --git a/test/functional/tests/io_class/test_io_class_wlth.py b/test/functional/tests/io_class/test_io_class_wlth.py index 52c1820..fbd32e8 100644 --- a/test/functional/tests/io_class/test_io_class_wlth.py +++ b/test/functional/tests/io_class/test_io_class_wlth.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -10,8 +11,9 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import sync, Udev, drop_caches -from test_utils.size import Unit, Size +from test_tools.os_tools import sync, drop_caches +from test_tools.udev import Udev +from type_def.size import Unit, Size from tests.io_class.io_class_common import prepare diff --git a/test/functional/tests/io_class/test_io_classification.py b/test/functional/tests/io_class/test_io_classification.py index 43bbe0b..aca002c 100644 --- a/test/functional/tests/io_class/test_io_classification.py +++ b/test/functional/tests/io_class/test_io_classification.py @@ -1,26 +1,28 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import random import time -from itertools import permutations - import pytest +from itertools import permutations + from api.cas import ioclass_config, casadm from api.cas.ioclass_config import IoClass from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem, create_directory, remove, \ + replace_first_pattern_occurrence from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine from test_utils.filesystem.file import File -from test_utils.os_utils import sync, Udev -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit from tests.io_class.io_class_common import prepare, ioclass_config_path, mountpoint @@ -371,7 +373,7 @@ def test_ioclass_metadata(filesystem): with TestRun.step(f"Create directory {test_dir_path}."): requests_to_metadata_before = requests_to_metadata_after - fs_utils.create_directory(path=test_dir_path) + create_directory(path=test_dir_path) TestRun.LOGGER.info(f"Moving test files into {test_dir_path}") for file in files: @@ -386,7 +388,7 @@ def test_ioclass_metadata(filesystem): TestRun.fail("No requests to metadata while moving files!") with TestRun.step(f"Remove {test_dir_path}."): - fs_utils.remove(path=test_dir_path, force=True, recursive=True) + remove(path=test_dir_path, force=True, recursive=True) with TestRun.step("Check requests to metadata."): requests_to_metadata_after = cache.get_io_class_statistics( @@ -475,7 +477,7 @@ def test_ioclass_id_as_condition(): ): core.create_filesystem(filesystem) core.mount(mountpoint) - fs_utils.create_directory(base_dir_path) + create_directory(base_dir_path) sync() # CAS needs some time to resolve directory to inode time.sleep(ioclass_config.MAX_CLASSIFICATION_DELAY.seconds) @@ -617,7 +619,7 @@ def test_ioclass_conditions_or(): core.create_filesystem(filesystem) core.mount(mountpoint) for i in range(1, 6): - fs_utils.create_directory(f"{mountpoint}/dir{i}") + create_directory(f"{mountpoint}/dir{i}") sync() with TestRun.step("Perform IO fulfilling each condition and check if occupancy raises."): @@ -744,7 +746,7 @@ def test_ioclass_effective_ioclass(): ): core.create_filesystem(filesystem) core.mount(mountpoint) - fs_utils.create_directory(test_dir) + create_directory(test_dir) sync() for i, permutation in TestRun.iteration(enumerate(permutations(range(1, 5)), start=1)): @@ -830,7 +832,7 @@ def add_done_to_second_non_exclusive_condition(rules, permutation, cache): if non_exclusive_conditions == 2: break second_class_id += 1 - fs_utils.replace_first_pattern_occurrence(ioclass_config_path, rules[idx], f"{rules[idx]}&done") + replace_first_pattern_occurrence(ioclass_config_path, rules[idx], f"{rules[idx]}&done") sync() casadm.load_io_classes(cache_id=cache.cache_id, file=ioclass_config_path) return second_class_id diff --git a/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py b/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py index 63478c2..bd40b94 100644 --- a/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py +++ b/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py @@ -6,11 +6,11 @@ import random import time +import pytest + from collections import namedtuple from datetime import timedelta -import pytest - from api.cas import casadm from api.cas.cache_config import ( CacheMode, @@ -24,9 +24,9 @@ from storage_devices.disk import DiskTypeSet, DiskTypeLowerThan, DiskType from test_tools.blktrace import BlkTrace, BlkTraceMask, ActionKind, RwbsKind from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.os_utils import kill_all_io -from test_utils.size import Size, Unit -from test_utils.time import Time +from test_tools.os_tools import kill_all_io +from type_def.size import Size, Unit +from type_def.time import Time @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/cleaning_policy/test_alru.py b/test/functional/tests/lazy_writes/cleaning_policy/test_alru.py index f0aa529..9f659dd 100644 --- a/test/functional/tests/lazy_writes/cleaning_policy/test_alru.py +++ b/test/functional/tests/lazy_writes/cleaning_policy/test_alru.py @@ -1,22 +1,24 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import time -from datetime import timedelta - import pytest +from datetime import timedelta + from api.cas import casadm from api.cas.cache_config import CacheMode, CleaningPolicy, FlushParametersAlru, SeqCutOffPolicy from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import Udev, kill_all_io -from test_utils.size import Size, Unit -from test_utils.time import Time +from test_tools.os_tools import kill_all_io +from test_tools.udev import Udev +from type_def.size import Size, Unit +from type_def.time import Time @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/cleaning_policy/test_cleaning_params.py b/test/functional/tests/lazy_writes/cleaning_policy/test_cleaning_params.py index 9a4e91e..5c9e163 100644 --- a/test/functional/tests/lazy_writes/cleaning_policy/test_cleaning_params.py +++ b/test/functional/tests/lazy_writes/cleaning_policy/test_cleaning_params.py @@ -1,10 +1,10 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import time - import pytest from api.cas import casadm @@ -18,9 +18,9 @@ from api.cas.cache_config import ( from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit -from test_utils.time import Time +from test_tools.udev import Udev +from type_def.size import Size, Unit +from type_def.time import Time @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/cleaning_policy/test_switch_cleaning_policy.py b/test/functional/tests/lazy_writes/cleaning_policy/test_switch_cleaning_policy.py index 484cbfe..a9ca52c 100644 --- a/test/functional/tests/lazy_writes/cleaning_policy/test_switch_cleaning_policy.py +++ b/test/functional/tests/lazy_writes/cleaning_policy/test_switch_cleaning_policy.py @@ -1,20 +1,22 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from datetime import timedelta from time import sleep -import pytest from api.cas import casadm from api.cas.cache_config import CacheMode, CleaningPolicy from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.asynchronous import start_async_func -from test_utils.size import Size, Unit +from connection.utils.asynchronous import start_async_func +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/recovery/recovery_tests_methods.py b/test/functional/tests/lazy_writes/recovery/recovery_tests_methods.py index 09522fa..deed0bd 100644 --- a/test/functional/tests/lazy_writes/recovery/recovery_tests_methods.py +++ b/test/functional/tests/lazy_writes/recovery/recovery_tests_methods.py @@ -1,20 +1,21 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # from datetime import timedelta +from test_tools.common.wait import wait from core.test_run import TestRun -from test_tools import fs_utils from test_tools.dd import Dd -from test_utils import os_utils +from test_tools.fs_tools import create_random_test_file from test_utils.filesystem.file import File -from test_utils.size import Size, Unit +from type_def.size import Size, Unit def create_test_files(test_file_size): - source_file = fs_utils.create_random_test_file("/tmp/source_test_file", test_file_size) + source_file = create_random_test_file("/tmp/source_test_file", test_file_size) target_file = File.create_file("/tmp/target_test_file") return source_file, target_file @@ -47,8 +48,10 @@ def power_cycle_dut(wait_for_flush_begin=False, core_device=None): raise Exception("Core device is None.") TestRun.LOGGER.info("Waiting for flushing to begin...") core_writes_before = core_device.get_io_stats().sectors_written - os_utils.wait(lambda: core_writes_before < core_device.get_io_stats().sectors_written, - timedelta(minutes=3), - timedelta(milliseconds=100)) + wait( + lambda: core_writes_before < core_device.get_io_stats().sectors_written, + timedelta(minutes=3), + timedelta(milliseconds=100) + ) power_control = TestRun.plugin_manager.get_plugin('power_control') power_control.power_cycle() diff --git a/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py b/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py index b25a813..8f19b18 100644 --- a/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py +++ b/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py @@ -1,10 +1,10 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import os - import pytest from api.cas import casadm @@ -12,14 +12,13 @@ from api.cas.cache_config import CacheMode, CacheModeTrait, CacheLineSize, Clean FlushParametersAcp from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils import os_utils from test_utils.filesystem.file import File -from test_utils.os_utils import DropCachesMode -from test_utils.size import Size, Unit -from test_utils.time import Time +from test_tools.os_tools import DropCachesMode, drop_caches, sync +from type_def.size import Size, Unit +from type_def.time import Time from tests.lazy_writes.recovery.recovery_tests_methods import power_cycle_dut test_file_size = Size(300, Unit.MebiByte) @@ -63,7 +62,7 @@ def test_recovery_all_options(cache_mode, cache_line_size, cleaning_policy, file with TestRun.step("Mount core device."): core_device.mount(mount_point) file_operation(test_file.full_path, other_pattern, ReadWrite.write) - os_utils.drop_caches(DropCachesMode.ALL) + drop_caches(DropCachesMode.ALL) with TestRun.step("Unmount core device."): core_device.unmount() @@ -85,9 +84,9 @@ def test_recovery_all_options(cache_mode, cache_line_size, cleaning_policy, file cache.set_cache_mode(CacheMode.WT, flush=False) with TestRun.step("Reset platform."): - os_utils.sync() + sync() core.unmount() - os_utils.drop_caches(DropCachesMode.ALL) + drop_caches(DropCachesMode.ALL) TestRun.LOGGER.info(f"Number of dirty blocks in cache: {cache.get_dirty_blocks()}") power_cycle_dut() diff --git a/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py b/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py index 18b6675..489a0b9 100644 --- a/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py +++ b/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py @@ -1,22 +1,21 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import os - import pytest from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CacheModeTrait, CleaningPolicy, SeqCutOffPolicy from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import readlink -from test_utils import os_utils -from test_utils.os_utils import Udev, DropCachesMode -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.fs_tools import readlink, Filesystem +from test_tools.os_tools import DropCachesMode, sync, drop_caches +from test_tools.udev import Udev +from connection.utils.output import CmdException +from type_def.size import Size, Unit from tests.lazy_writes.recovery.recovery_tests_methods import create_test_files, copy_file, \ compare_files, power_cycle_dut @@ -62,13 +61,13 @@ def test_recovery_flush_reset_raw(cache_mode): direct="oflag") with TestRun.step("Sync and flush buffers."): - os_utils.sync() + sync() output = TestRun.executor.run(f"hdparm -f {core.path}") if output.exit_code != 0: raise CmdException("Error during hdparm", output) with TestRun.step("Trigger flush."): - os_utils.drop_caches(DropCachesMode.ALL) + drop_caches(DropCachesMode.ALL) TestRun.executor.run_in_background(cli.flush_cache_cmd(f"{cache.cache_id}")) with TestRun.step("Hard reset DUT during data flushing."): @@ -125,7 +124,7 @@ def test_recovery_flush_reset_fs(cache_mode, fs): cache_device = cache_disk.partitions[0] core_device = core_disk.partitions[0] - with TestRun.step(f"Create {fs} filesystem on core."): + with TestRun.step(f"Create {fs} filesystem on core device."): core_device.create_filesystem(fs) with TestRun.step("Create test files."): @@ -151,7 +150,7 @@ def test_recovery_flush_reset_fs(cache_mode, fs): core.unmount() with TestRun.step("Trigger flush."): - os_utils.drop_caches(DropCachesMode.ALL) + drop_caches(DropCachesMode.ALL) TestRun.executor.run_in_background(cli.flush_cache_cmd(f"{cache.cache_id}")) with TestRun.step("Hard reset DUT during data flushing."): diff --git a/test/functional/tests/lazy_writes/recovery/test_recovery_unplug.py b/test/functional/tests/lazy_writes/recovery/test_recovery_unplug.py index f776066..3b665d1 100644 --- a/test/functional/tests/lazy_writes/recovery/test_recovery_unplug.py +++ b/test/functional/tests/lazy_writes/recovery/test_recovery_unplug.py @@ -5,16 +5,15 @@ # import os - import pytest from api.cas import casadm, cli_messages from api.cas.cache_config import CacheMode, CacheModeTrait, CacheLineSize from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem +from connection.utils.output import CmdException +from type_def.size import Size, Unit from tests.lazy_writes.recovery.recovery_tests_methods import create_test_files, copy_file, \ compare_files diff --git a/test/functional/tests/lazy_writes/test_clean_load.py b/test/functional/tests/lazy_writes/test_clean_load.py index a3c6373..11c244e 100644 --- a/test/functional/tests/lazy_writes/test_clean_load.py +++ b/test/functional/tests/lazy_writes/test_clean_load.py @@ -1,17 +1,19 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from api.cas import casadm, casadm_parser from api.cas.cache_config import CacheMode, CleaningPolicy from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/test_dirty_load.py b/test/functional/tests/lazy_writes/test_dirty_load.py index fc81998..f9e7d80 100644 --- a/test/functional/tests/lazy_writes/test_dirty_load.py +++ b/test/functional/tests/lazy_writes/test_dirty_load.py @@ -1,16 +1,18 @@ # # Copyright(c) 2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from api.cas import casadm, casadm_parser from api.cas.cache_config import CacheMode, CleaningPolicy from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/test_flush_huge_dirty_data.py b/test/functional/tests/lazy_writes/test_flush_huge_dirty_data.py index 5dfd3ee..0aa6b35 100644 --- a/test/functional/tests/lazy_writes/test_flush_huge_dirty_data.py +++ b/test/functional/tests/lazy_writes/test_flush_huge_dirty_data.py @@ -5,6 +5,7 @@ # import pytest + from datetime import timedelta from api.cas import casadm @@ -13,13 +14,13 @@ from api.cas.cli import stop_cmd from core.test_run import TestRun from storage_devices.device import Device from storage_devices.disk import DiskType, DiskTypeLowerThan, DiskTypeSet -from test_tools.disk_utils import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_tools.fs_utils import remove +from test_tools.fs_tools import remove, Filesystem from test_utils.filesystem.file import File -from test_utils.os_utils import sync, Udev -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit file_size = Size(640, Unit.GiB) required_disk_size = file_size * 1.02 diff --git a/test/functional/tests/lazy_writes/test_lazy_writes_clean.py b/test/functional/tests/lazy_writes/test_lazy_writes_clean.py index b67263b..8b5ce6c 100644 --- a/test/functional/tests/lazy_writes/test_lazy_writes_clean.py +++ b/test/functional/tests/lazy_writes/test_lazy_writes_clean.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # @@ -11,12 +12,12 @@ from storage_devices.device import Device from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import create_random_test_file, remove +from test_tools.fs_tools import create_random_test_file, remove, Filesystem from test_tools.iostat import IOstatBasic from test_utils.filesystem.file import File -from test_utils.os_utils import Udev, sync -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit bs = Size(512, Unit.KibiByte) mnt_point = "/mnt/cas/" @@ -371,4 +372,4 @@ def test_clean_remove_core_without_fs(cache_mode): def check_device_write_stats(device: Device): - return IOstatBasic.get_iostat_list(devices_list=[device])[0].total_writes.value + return IOstatBasic.get_iostat_list(devices_list=[device.get_device_id()])[0].total_writes.value diff --git a/test/functional/tests/lazy_writes/test_lazy_writes_signals.py b/test/functional/tests/lazy_writes/test_lazy_writes_signals.py index 9215167..cc4eaa9 100644 --- a/test/functional/tests/lazy_writes/test_lazy_writes_signals.py +++ b/test/functional/tests/lazy_writes/test_lazy_writes_signals.py @@ -1,9 +1,11 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # import pytest + from time import sleep from api.cas import casadm @@ -14,11 +16,10 @@ from api.cas.cache_config import (CacheMode, Time) from storage_devices.disk import DiskType, DiskTypeSet from core.test_run import TestRun -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import create_random_test_file -from test_utils.scsi_debug import Logs, syslog_path -from test_utils import os_utils -from test_utils.size import Size, Unit +from test_tools.fs_tools import create_random_test_file, Filesystem +from test_tools.os_tools import sync +from test_tools.scsi_debug import Logs, syslog_path +from type_def.size import Size, Unit mount_point = "/mnt/cas" @@ -60,11 +61,11 @@ def test_flush_signal_core(cache_mode): with TestRun.step("Create temporary file on exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Flush cache."): cache.flush_cache() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush request and delete temporary file."): Logs.check_syslog_for_signals() @@ -72,11 +73,11 @@ def test_flush_signal_core(cache_mode): with TestRun.step("Create temporary file on exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Flush core."): core.flush_core() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush request and delete temporary file."): Logs.check_syslog_for_signals() @@ -90,7 +91,7 @@ def test_flush_signal_core(cache_mode): with TestRun.step("Create big temporary file on exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(5, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Wait for automatic flush from alru cleaning policy and check log."): wait_time = ( @@ -107,12 +108,12 @@ def test_flush_signal_core(cache_mode): with TestRun.step("Create temporary file on exported object."): create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Unmount exported object and remove it from cache."): core.unmount() core.remove_core() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush request."): Logs.check_syslog_for_signals() @@ -158,11 +159,11 @@ def test_flush_signal_cache(cache_mode): with TestRun.step("Create temporary file on exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Flush cache."): cache.flush_cache() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush and FUA requests and delete temporary file."): Logs.check_syslog_for_signals() @@ -170,11 +171,11 @@ def test_flush_signal_cache(cache_mode): with TestRun.step("Create temporary file on exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Flush core."): core.flush_core() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush request and delete temporary file."): Logs.check_syslog_for_signals() @@ -188,7 +189,7 @@ def test_flush_signal_cache(cache_mode): with TestRun.step("Create big temporary file on exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(5, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Wait for automatic flush from alru cleaning policy and check log."): wait_time = ( @@ -205,12 +206,12 @@ def test_flush_signal_cache(cache_mode): with TestRun.step("Create temporary file on exported object."): create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Unmount exported object and remove it from cache."): core.unmount() core.remove_core() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush and FUA requests."): Logs.check_syslog_for_signals() @@ -262,12 +263,12 @@ def test_flush_signal_multilevel_cache(cache_mode): with TestRun.step("Create temporary file on the 2nd exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(512, Unit.MebiByte)) - os_utils.sync() + sync() with TestRun.step("Flush both caches."): cache2.flush_cache() cache1.flush_cache() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush and FUA requests and delete temporary file."): Logs.check_syslog_for_signals() @@ -275,12 +276,12 @@ def test_flush_signal_multilevel_cache(cache_mode): with TestRun.step("Create temporary file on the 2nd exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(512, Unit.MebiByte)) - os_utils.sync() + sync() with TestRun.step("Flush both cores."): core2.flush_core() core1.flush_core() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush request and delete temporary file."): Logs.check_syslog_for_signals() @@ -298,7 +299,7 @@ def test_flush_signal_multilevel_cache(cache_mode): with TestRun.step("Create big temporary file on the 2nd exported object."): tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(3, Unit.GibiByte)) - os_utils.sync() + sync() with TestRun.step("Wait for automatic flush from alru cleaning policy and check log."): wait_time = ( @@ -315,13 +316,13 @@ def test_flush_signal_multilevel_cache(cache_mode): with TestRun.step("Create temporary file on the 2nd exported object."): create_random_test_file(f"{mount_point}/tmp.file", Size(512, Unit.MebiByte)) - os_utils.sync() + sync() with TestRun.step("Unmount the 2nd exported object and remove cores from caches."): core2.unmount() core2.remove_core() core1.remove_core() - os_utils.sync() + sync() with TestRun.step(f"Check {syslog_path} for flush request."): Logs.check_syslog_for_signals() diff --git a/test/functional/tests/lazy_writes/test_parallel_core_flushing.py b/test/functional/tests/lazy_writes/test_parallel_core_flushing.py index 4996465..5d02f93 100644 --- a/test/functional/tests/lazy_writes/test_parallel_core_flushing.py +++ b/test/functional/tests/lazy_writes/test_parallel_core_flushing.py @@ -4,9 +4,10 @@ # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from datetime import timedelta -import pytest from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.casadm_parser import get_flushing_progress, wait_for_flushing @@ -14,8 +15,8 @@ from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan from test_tools.dd import Dd from test_utils.filesystem.file import File -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/lazy_writes/test_wb_throttling.py b/test/functional/tests/lazy_writes/test_wb_throttling.py index 457ced0..98fd7ac 100644 --- a/test/functional/tests/lazy_writes/test_wb_throttling.py +++ b/test/functional/tests/lazy_writes/test_wb_throttling.py @@ -1,39 +1,32 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # import pytest -import time -import random + from datetime import timedelta -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine from test_tools.iostat import IOstatExtended -from test_utils.os_utils import ( +from test_tools.os_tools import ( kill_all_io, set_wbt_lat, get_wbt_lat, - get_dut_cpu_number, - wait, ) +from test_tools.common.wait import wait from api.cas import casadm from api.cas.cache_config import ( CacheMode, - CacheModeTrait, CleaningPolicy, - FlushParametersAcp, SeqCutOffPolicy, CacheLineSize, - Time, ) -from test_tools.blktrace import BlkTrace, BlkTraceMask, ActionKind, RwbsKind - runtime = timedelta(days=30) @@ -49,8 +42,8 @@ def test_wb_throttling(): description: | Fill cache with data, run intensive IO (rwmix=74) with occasional trims. pass_criteria: - - Hang task did not occurred - - System did not crashed + - Hang task did not occur + - System did not crash """ with TestRun.step("Prepare devices."): cache_device = TestRun.disks["cache"] @@ -98,10 +91,14 @@ def test_wb_throttling(): with TestRun.step("Wait for IO processes to finish and print debug informations"): sleep_interval = timedelta(seconds=5) eta = runtime - while eta.total_seconds() > 0: + while int(eta.total_seconds()) > 0: # Instead of explicit sleeping with `time.sleep()` iostat is used for waiting iostat = IOstatExtended.get_iostat_list( - [core, cache_device, core_device], + [ + core.get_device_id(), + cache_device.get_device_id(), + core_device.get_device_id() + ], since_boot=False, interval=int(sleep_interval.total_seconds()), ) diff --git a/test/functional/tests/memory/test_check_number_of_processes.py b/test/functional/tests/memory/test_check_number_of_processes.py index e3593eb..f65af8f 100644 --- a/test/functional/tests/memory/test_check_number_of_processes.py +++ b/test/functional/tests/memory/test_check_number_of_processes.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -8,9 +9,9 @@ import pytest from api.cas import casadm from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_utils.os_utils import (get_number_of_processors_from_cpuinfo, +from test_tools.os_tools import (get_number_of_processors_from_cpuinfo, get_number_of_processes) -from test_utils.size import Size, Unit +from type_def.size import Size, Unit cleaning_threads_expected = 1 management_thread_expected = 1 diff --git a/test/functional/tests/memory/test_memory_metadata_consumption.py b/test/functional/tests/memory/test_memory_metadata_consumption.py index 0686155..5c27326 100644 --- a/test/functional/tests/memory/test_memory_metadata_consumption.py +++ b/test/functional/tests/memory/test_memory_metadata_consumption.py @@ -13,9 +13,10 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import get_mem_available, get_module_mem_footprint -from test_utils.os_utils import sync, Udev -from test_utils.size import Size, Unit +from test_tools.memory import get_mem_available, get_module_mem_footprint +from test_tools.os_tools import sync +from test_tools.udev import Udev +from type_def.size import Size, Unit cores_count = 16 cache_size = Size(50, Unit.GibiByte) diff --git a/test/functional/tests/misc/test_device_capabilities.py b/test/functional/tests/misc/test_device_capabilities.py index 3e15091..665978d 100644 --- a/test/functional/tests/misc/test_device_capabilities.py +++ b/test/functional/tests/misc/test_device_capabilities.py @@ -5,7 +5,6 @@ # import math -import posixpath import pytest from api.cas import casadm, cli_messages @@ -13,10 +12,9 @@ from api.cas.cache_config import CacheLineSize from core.test_run import TestRun from storage_devices.device import Device from storage_devices.disk import DiskTypeSet, DiskType -from storage_devices.partition import Partition -from test_tools import disk_utils, fs_utils -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from test_tools.disk_tools import get_block_size, get_size +from type_def.size import Size, Unit @pytest.mark.os_dependent @@ -104,8 +102,8 @@ def create_scsi_debug_device(sector_size: int, physblk_exp: int, dev_size_mb=102 def prepare_cas_device(cache_device, core_device): cache = casadm.start_cache(cache_device, cache_line_size=CacheLineSize.LINE_64KiB, force=True) try: - cache_dev_bs = disk_utils.get_block_size(cache_device.device_id) - core_dev_bs = disk_utils.get_block_size(core_device.device_id) + cache_dev_bs = get_block_size(cache_device.device_id) + core_dev_bs = get_block_size(core_device.device_id) core = cache.add_core(core_device) if cache_dev_bs > core_dev_bs: TestRun.LOGGER.error( @@ -155,9 +153,9 @@ def compare_capabilities(cache_device, core_device, cache, core, msg): cli_messages.try_add_core_sector_size_mismatch) else: core_dev_sectors_num = \ - disk_utils.get_size(core_device.device_id) / disk_utils.get_block_size( + get_size(core_device.device_id) / get_block_size( core_device.device_id) - core_sectors_num = disk_utils.get_size(core.device_id) / disk_utils.get_block_size( + core_sectors_num = get_size(core.device_id) / get_block_size( core.device_id) if core_dev_sectors_num != core_sectors_num: TestRun.LOGGER.error( diff --git a/test/functional/tests/misc/test_files_permissions.py b/test/functional/tests/misc/test_files_permissions.py index b96cf86..bfe9ee2 100644 --- a/test/functional/tests/misc/test_files_permissions.py +++ b/test/functional/tests/misc/test_files_permissions.py @@ -4,10 +4,9 @@ # SPDX-License-Identifier: BSD-3-Clause # - import os -from test_utils.git import get_repo_files +from test_tools.git import get_repo_files from api.cas.installer import ( clean_opencas_repo, build_opencas, @@ -15,7 +14,7 @@ from api.cas.installer import ( rsync_opencas_sources, ) from core.test_run import TestRun -from test_tools.fs_utils import FilesPermissions, find_all_items +from test_tools.fs_tools import FilesPermissions, find_all_items repo_files_perms_exceptions = { diff --git a/test/functional/tests/misc/test_flush_propagation.py b/test/functional/tests/misc/test_flush_propagation.py index e22237a..14a041f 100644 --- a/test/functional/tests/misc/test_flush_propagation.py +++ b/test/functional/tests/misc/test_flush_propagation.py @@ -1,10 +1,11 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import re import pytest + from time import sleep from api.cas import casadm @@ -15,11 +16,10 @@ from api.cas.cache_config import ( ) from storage_devices.disk import DiskType, DiskTypeSet from core.test_run import TestRun -from test_tools.disk_utils import Filesystem -from test_utils.scsi_debug import Logs, syslog_path -from test_tools.fs_utils import create_random_test_file -from test_utils import os_utils -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.scsi_debug import Logs, syslog_path +from test_tools.fs_tools import create_random_test_file, Filesystem +from type_def.size import Size, Unit mount_point = "/mnt/cas" @@ -57,12 +57,12 @@ def test_flush_signal_propagation_cache(): if core.is_mounted(): core.unmount() core.mount(mount_point) - os_utils.sync() + sync() with TestRun.step("Create temporary file on the exported object."): Logs._read_syslog(Logs.last_read_line) tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() sleep(3) with TestRun.step(f"Check {syslog_path} for flush request and delete temporary file."): @@ -103,12 +103,12 @@ def test_flush_signal_propagation_core(): if core.is_mounted(): core.unmount() core.mount(mount_point) - os_utils.sync() + sync() with TestRun.step("Create temporary file on the exported object."): Logs._read_syslog(Logs.last_read_line) tmp_file = create_random_test_file(f"{mount_point}/tmp.file", Size(1, Unit.GibiByte)) - os_utils.sync() + sync() sleep(3) with TestRun.step(f"Check {syslog_path} for flush request and delete temporary file."): diff --git a/test/functional/tests/misc/test_weak_modules.py b/test/functional/tests/misc/test_weak_modules.py index 124faed..23be5ab 100644 --- a/test/functional/tests/misc/test_weak_modules.py +++ b/test/functional/tests/misc/test_weak_modules.py @@ -1,23 +1,22 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # - import os import re - import pytest +from api.cas.cas_packaging import Packages from api.cas.installer import clean_opencas_repo, rsync_opencas_sources from core.test_run import TestRun -from test_tools.fs_utils import ( +from test_tools.fs_tools import ( check_if_regular_file_exists, check_if_symlink_exists, readlink, remove, ) -from api.cas.packaging import Packages modules_links_dir = "/lib/modules/$(uname -r)/weak-updates/block/opencas" diff --git a/test/functional/tests/performance/test_100p_hits.py b/test/functional/tests/performance/test_100p_hits.py index 1c2ce26..659e265 100644 --- a/test/functional/tests/performance/test_100p_hits.py +++ b/test/functional/tests/performance/test_100p_hits.py @@ -17,9 +17,10 @@ from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskTypeLowerThan, DiskType from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.os_utils import Udev, set_wbt_lat, get_dut_cpu_physical_cores -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.os_tools import set_wbt_lat, get_dut_cpu_physical_cores +from test_tools.udev import Udev +from connection.utils.output import CmdException +from type_def.size import Size, Unit from utils.performance import WorkloadParameter diff --git a/test/functional/tests/performance/test_performance_reads.py b/test/functional/tests/performance/test_performance_reads.py index 9c29e6b..b2c2e47 100644 --- a/test/functional/tests/performance/test_performance_reads.py +++ b/test/functional/tests/performance/test_performance_reads.py @@ -13,12 +13,12 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, CpusAllowedPolicy -from test_utils.os_utils import ( +from test_tools.os_tools import ( get_number_of_processors_from_cpuinfo, set_wbt_lat, get_dut_cpu_physical_cores, ) -from test_utils.size import Unit, Size +from type_def.size import Unit, Size def fill_cas_cache(target, bs): diff --git a/test/functional/tests/performance/test_performance_write.py b/test/functional/tests/performance/test_performance_write.py index bf0925d..4c2b14c 100644 --- a/test/functional/tests/performance/test_performance_write.py +++ b/test/functional/tests/performance/test_performance_write.py @@ -13,12 +13,12 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, CpusAllowedPolicy -from test_utils.os_utils import ( +from test_tools.os_tools import ( set_wbt_lat, get_number_of_processors_from_cpuinfo, get_dut_cpu_physical_cores, ) -from test_utils.size import Unit, Size +from type_def.size import Unit, Size # TODO: for disks other than Intel Optane, fio ramp is needed before fio tests on raw disk diff --git a/test/functional/tests/progress_bar/test_progress_bar_big_files.py b/test/functional/tests/progress_bar/test_progress_bar_big_files.py index dcf0068..49cd5f1 100644 --- a/test/functional/tests/progress_bar/test_progress_bar_big_files.py +++ b/test/functional/tests/progress_bar/test_progress_bar_big_files.py @@ -1,17 +1,18 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.progress_bar import check_progress_bar from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import create_random_test_file -from test_utils.size import Size, Unit +from test_tools.fs_tools import create_random_test_file, Filesystem +from type_def.size import Size, Unit mount_point = "/mnt/test" diff --git a/test/functional/tests/progress_bar/test_progress_bar_during_io.py b/test/functional/tests/progress_bar/test_progress_bar_during_io.py index 55b017f..4b59e43 100644 --- a/test/functional/tests/progress_bar/test_progress_bar_during_io.py +++ b/test/functional/tests/progress_bar/test_progress_bar_during_io.py @@ -1,12 +1,14 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # +import pytest + from datetime import timedelta from time import sleep -import pytest from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.progress_bar import check_progress_bar @@ -14,7 +16,7 @@ from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/progress_bar/test_progress_bar_output_redirection.py b/test/functional/tests/progress_bar/test_progress_bar_output_redirection.py index 77d4c07..d2fa6cc 100644 --- a/test/functional/tests/progress_bar/test_progress_bar_output_redirection.py +++ b/test/functional/tests/progress_bar/test_progress_bar_output_redirection.py @@ -1,17 +1,18 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.progress_bar import check_progress_bar from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import create_random_test_file -from test_utils.size import Size, Unit +from test_tools.fs_tools import create_random_test_file, Filesystem +from type_def.size import Size, Unit mount_point = "/mnt/test" diff --git a/test/functional/tests/progress_bar/test_progress_bar_supported_commands.py b/test/functional/tests/progress_bar/test_progress_bar_supported_commands.py index c197d1e..0e39848 100644 --- a/test/functional/tests/progress_bar/test_progress_bar_supported_commands.py +++ b/test/functional/tests/progress_bar/test_progress_bar_supported_commands.py @@ -1,9 +1,11 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.progress_bar import check_progress_bar @@ -11,7 +13,7 @@ from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.size import Size, Unit +from type_def.size import Size, Unit progress_bar_cmd_cache = [cli.stop_cmd, cli.flush_cache_cmd, cli.script_purge_cache_cmd] diff --git a/test/functional/tests/progress_bar/test_progress_bar_wt_cache_mode.py b/test/functional/tests/progress_bar/test_progress_bar_wt_cache_mode.py index f5ca2a9..fe8f7b3 100644 --- a/test/functional/tests/progress_bar/test_progress_bar_wt_cache_mode.py +++ b/test/functional/tests/progress_bar/test_progress_bar_wt_cache_mode.py @@ -1,17 +1,18 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from api.cas import casadm, cli from api.cas.cache_config import CacheMode, CleaningPolicy, SeqCutOffPolicy from api.cas.progress_bar import check_progress_bar from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType -from test_tools.disk_utils import Filesystem -from test_tools.fs_utils import create_random_test_file -from test_utils.size import Size, Unit +from test_tools.fs_tools import create_random_test_file, Filesystem +from type_def.size import Size, Unit mount_point = "/mnt/test" diff --git a/test/functional/tests/security/fuzzy/kernel/common/common.py b/test/functional/tests/security/fuzzy/kernel/common/common.py index 408682a..a64982d 100644 --- a/test/functional/tests/security/fuzzy/kernel/common/common.py +++ b/test/functional/tests/security/fuzzy/kernel/common/common.py @@ -3,19 +3,20 @@ # Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # + import base64 import os import posixpath +import yaml + from collections import namedtuple from typing import List -import yaml - from api.cas import casadm from api.cas.cache_config import CacheMode, CacheLineSize, KernelParameters, CleaningPolicy from core.test_run import TestRun -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem +from type_def.size import Size, Unit def get_fuzz_config(config_name: str): diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_cache_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_cache_id.py index 3cf6804..6fc3a3c 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_cache_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_cache_id.py @@ -20,7 +20,7 @@ from api.cas.cli import add_core_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( get_fuzz_config, run_cmd_and_validate, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_core_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_core_id.py index 53e38ac..94b5487 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_core_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_core_id.py @@ -24,7 +24,7 @@ from tests.security.fuzzy.kernel.common.common import ( get_fuzz_config, run_cmd_and_validate, ) -from test_utils.os_utils import Udev +from test_tools.udev import Udev core_id_min = 0 core_id_max = 4095 diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_device.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_device.py index 9fda5ae..213fa80 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_device.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_add_core_device.py @@ -20,7 +20,7 @@ from api.cas.cli import add_core_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_device_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_cache_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_cache_id.py index 92b57aa..1866eb4 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_cache_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_cache_id.py @@ -9,7 +9,7 @@ from api.cas.cli import script_try_add_cmd, remove_detached_cmd from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_core_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_core_id.py index 5f132e9..924d5b4 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_core_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_core_id.py @@ -9,7 +9,7 @@ from api.cas.cli import script_try_add_cmd, remove_detached_cmd from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_device.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_device.py index 637f1a7..d38008e 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_device.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_add_core/test_fuzzy_script_add_core_try_add_device.py @@ -7,7 +7,7 @@ from api.cas.cli import script_try_add_cmd, remove_detached_cmd from core.test_run import TestRun from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_device_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_device.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_device.py index 5e580d5..6b11f86 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_device.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_device.py @@ -18,7 +18,7 @@ from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.size import Unit, Size +from type_def.size import Unit, Size from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_device_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_flags.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_flags.py index 535e74f..e4a502a 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_flags.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_flags.py @@ -19,8 +19,8 @@ from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev -from test_utils.size import Unit, Size +from test_tools.udev import Udev +from type_def.size import Unit, Size from tests.security.fuzzy.kernel.common.common import ( get_fuzz_config, run_cmd_and_validate, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_id.py index 89c20bd..65ac303 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_id.py @@ -18,7 +18,7 @@ from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.size import Unit, Size +from type_def.size import Unit, Size from tests.security.fuzzy.kernel.common.common import ( get_fuzz_config, run_cmd_and_validate, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_line_size.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_line_size.py index b8ca4ed..3781e5c 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_line_size.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_line_size.py @@ -18,7 +18,7 @@ from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.size import Unit, Size +from type_def.size import Unit, Size from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_load_device.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_load_device.py index 72073e7..e8f4736 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_load_device.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_load_device.py @@ -18,7 +18,7 @@ from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.size import Unit, Size +from type_def.size import Unit, Size from tests.security.fuzzy.kernel.common.common import ( run_cmd_and_validate, get_device_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_mode.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_mode.py index 210bb31..3272379 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_mode.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_start/test_fuzzy_start_cache_mode.py @@ -18,7 +18,7 @@ from api.cas.cli import start_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.size import Unit, Size +from type_def.size import Unit, Size from tests.security.fuzzy.kernel.common.common import ( get_fuzz_config, run_cmd_and_validate, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_cache_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_cache_id.py index 5f5552d..6e127b0 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_cache_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_cache_id.py @@ -18,7 +18,7 @@ from api.cas.cli import remove_core_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_core_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_core_id.py index 012f690..65c69da 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_core_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_core_id.py @@ -18,7 +18,7 @@ from api.cas.cli import remove_core_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_flag.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_flag.py index 7674d9c..e1c85d3 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_flag.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_core_flag.py @@ -17,7 +17,7 @@ from api.cas.cli import remove_core_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_cache_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_cache_id.py index a0661ed..412cddb 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_cache_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_cache_id.py @@ -20,7 +20,7 @@ from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_core_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_core_id.py index 18c23be..8b85f8d 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_core_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_remove_inactive_core_id.py @@ -19,7 +19,7 @@ from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_cache_id.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_cache_id.py index 1cc7f8a..60cb245 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_cache_id.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_cache_id.py @@ -18,7 +18,7 @@ from api.cas.cli import stop_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_flag.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_flag.py index 3baffcd..ac8825a 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_flag.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_stop_remove/test_fuzzy_stop_cache_flag.py @@ -18,7 +18,7 @@ from api.cas.cli import stop_cmd from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.peach_fuzzer.peach_fuzzer import PeachFuzzer -from test_utils.os_utils import Udev +from test_tools.udev import Udev from tests.security.fuzzy.kernel.common.common import ( prepare_cas_instance, get_fuzz_config, diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/common/common.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/common/common.py index 91cb165..c592e6c 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/common/common.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/common/common.py @@ -7,7 +7,7 @@ from datetime import timedelta from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.size import Size, Unit +from type_def.size import Size, Unit mount_point = "/mnt/test" diff --git a/test/functional/tests/security/test_compilation_flags.py b/test/functional/tests/security/test_compilation_flags.py index e519134..b9a7357 100644 --- a/test/functional/tests/security/test_compilation_flags.py +++ b/test/functional/tests/security/test_compilation_flags.py @@ -1,15 +1,15 @@ # # Copyright(c) 2019-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import os import re - import pytest from core.test_run import TestRun -from test_tools.fs_utils import Permissions, PermissionsUsers, PermissionSign +from test_tools.fs_tools import Permissions, PermissionsUsers, PermissionSign from test_utils.filesystem.fs_item import FsItem diff --git a/test/functional/tests/security/test_load_corrupted_metadata.py b/test/functional/tests/security/test_load_corrupted_metadata.py index 94d09b7..79ef2e0 100644 --- a/test/functional/tests/security/test_load_corrupted_metadata.py +++ b/test/functional/tests/security/test_load_corrupted_metadata.py @@ -19,8 +19,8 @@ from storage_devices.device import Device from core.test_run import TestRun from storage_devices.ramdisk import RamDisk from test_tools.dd import Dd -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from connection.utils.output import CmdException +from type_def.size import Size, Unit @pytest.mark.parametrizex("cache_mode", CacheMode) diff --git a/test/functional/tests/security/test_security_user.py b/test/functional/tests/security/test_security_user.py index 5dc5720..0f8a618 100644 --- a/test/functional/tests/security/test_security_user.py +++ b/test/functional/tests/security/test_security_user.py @@ -12,11 +12,10 @@ from api.cas.casadm_params import OutputFormat from api.cas.init_config import InitConfig from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import create_user, check_if_user_exists -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem, ls_item, parse_ls_output +from test_tools.os_tools import create_user, check_if_user_exists +from connection.utils.output import CmdException +from type_def.size import Size, Unit mount_point = "/mnt/cas" system_casadm_bin_path = "/sbin/casadm" @@ -57,12 +56,12 @@ def test_user_cli(): with TestRun.step(f"Copy casadm bin from {system_casadm_bin_path} " f"to {user_casadm_bin_dest_path}."): - casadm_bin = fs_utils.parse_ls_output(fs_utils.ls_item(f"{system_casadm_bin_path}"))[0] + casadm_bin = parse_ls_output(ls_item(f"{system_casadm_bin_path}"))[0] casadm_bin_copy = casadm_bin.copy(user_casadm_bin_dest_path, True) casadm_bin_copy.chmod_numerical(777) with TestRun.step("Copy IO class config."): - io_conf = fs_utils.parse_ls_output(fs_utils.ls_item(f"{ioclass_config_path}"))[0] + io_conf = parse_ls_output(ls_item(f"{ioclass_config_path}"))[0] io_conf_copy = io_conf.copy(ioclass_config_copy_path, force=True) with TestRun.step("Unmount core."): @@ -412,7 +411,7 @@ def test_user_service(): with TestRun.step(f"Copy casadm bin from {system_casadm_bin_path} " f"to {user_casadm_bin_dest_path}."): - casadm_bin = fs_utils.parse_ls_output(fs_utils.ls_item(f"{system_casadm_bin_path}"))[0] + casadm_bin = parse_ls_output(ls_item(f"{system_casadm_bin_path}"))[0] casadm_bin_copy = casadm_bin.copy(user_casadm_bin_dest_path, True) casadm_bin_copy.chmod_numerical(777) diff --git a/test/functional/tests/stats/test_block_stats.py b/test/functional/tests/stats/test_block_stats.py index c439f76..67c0fbf 100644 --- a/test/functional/tests/stats/test_block_stats.py +++ b/test/functional/tests/stats/test_block_stats.py @@ -5,7 +5,6 @@ # import json - import pytest from api.cas import casadm @@ -15,8 +14,8 @@ from api.cas.statistics import get_stats_dict, get_stat_value, OperationType from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit iterations = 10 dd_block_size = Size(1, Unit.Blocks4096) diff --git a/test/functional/tests/stats/test_consistency_between_outputs.py b/test/functional/tests/stats/test_consistency_between_outputs.py index 61fffd0..f697463 100644 --- a/test/functional/tests/stats/test_consistency_between_outputs.py +++ b/test/functional/tests/stats/test_consistency_between_outputs.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -12,8 +13,8 @@ from api.cas.casadm import OutputFormat, print_statistics, start_cache from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.dd import Dd -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem +from type_def.size import Size, Unit iterations = 64 cache_size = Size(8, Unit.GibiByte) diff --git a/test/functional/tests/stats/test_display_statistics.py b/test/functional/tests/stats/test_display_statistics.py index 8d06f7b..bcd99cb 100644 --- a/test/functional/tests/stats/test_display_statistics.py +++ b/test/functional/tests/stats/test_display_statistics.py @@ -1,14 +1,13 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # - +import pytest import time from datetime import timedelta -import pytest - from api.cas import casadm from api.cas.cache_config import ( CacheLineSize, @@ -27,7 +26,7 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.size import Size, Unit +from type_def.size import Size, Unit # One cache instance per every cache mode: caches_count = len(CacheMode) diff --git a/test/functional/tests/stats/test_ioclass_stats.py b/test/functional/tests/stats/test_ioclass_stats.py index 5f03963..9d29728 100644 --- a/test/functional/tests/stats/test_ioclass_stats.py +++ b/test/functional/tests/stats/test_ioclass_stats.py @@ -1,9 +1,10 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -import random +import random import pytest from api.cas import casadm @@ -17,7 +18,6 @@ from api.cas.cli_messages import ( ) from api.cas.statistics import ( config_stats_ioclass, - usage_stats, usage_stats_ioclass, request_stats, block_stats_core, @@ -25,11 +25,12 @@ from api.cas.statistics import ( ) from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_utils.filesystem.file import File -from test_utils.os_utils import sync, Udev -from test_utils.output import CmdException -from test_utils.size import Size, Unit +from test_tools.os_tools import sync +from test_tools.udev import Udev +from connection.utils.output import CmdException +from type_def.size import Size, Unit IoClass = ioclass_config.IoClass diff --git a/test/functional/tests/stats/test_stat_max.py b/test/functional/tests/stats/test_stat_max.py index 2f0cda3..9aee7c7 100644 --- a/test/functional/tests/stats/test_stat_max.py +++ b/test/functional/tests/stats/test_stat_max.py @@ -4,10 +4,10 @@ # SPDX-License-Identifier: BSD-3-Clause # -from time import sleep - import pytest +from time import sleep + from api.cas import casadm from api.cas.cache_config import CacheMode, CleaningPolicy from api.cas.casadm import StatsFilter @@ -16,8 +16,8 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit cache_size = Size(1, Unit.GibiByte) core_size = Size(2, Unit.GibiByte) diff --git a/test/functional/tests/stats/test_statistics_integrity.py b/test/functional/tests/stats/test_statistics_integrity.py index e8f4bea..f4238e5 100644 --- a/test/functional/tests/stats/test_statistics_integrity.py +++ b/test/functional/tests/stats/test_statistics_integrity.py @@ -4,10 +4,10 @@ # SPDX-License-Identifier: BSD-3-Clause # -from time import sleep - import pytest +from time import sleep + from api.cas import casadm from api.cas.cache_config import CacheMode, CacheModeTrait from api.cas.casadm import StatsFilter @@ -16,8 +16,8 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine -from test_utils.os_utils import Udev -from test_utils.size import Size, Unit +from test_tools.udev import Udev +from type_def.size import Size, Unit # One cache instance per every cache mode: caches_count = len(CacheMode) diff --git a/test/functional/tests/stress/test_kedr.py b/test/functional/tests/stress/test_kedr.py deleted file mode 100644 index 84828f1..0000000 --- a/test/functional/tests/stress/test_kedr.py +++ /dev/null @@ -1,291 +0,0 @@ -# -# Copyright(c) 2020-2022 Intel Corporation -# SPDX-License-Identifier: BSD-3-Clause -# - -import pytest - -from datetime import timedelta - -from test_tools.kedr import Kedr, KedrProfile -from api.cas import cas_module, installer, casadm -from core.test_run import TestRun -from test_utils import os_utils -from test_utils.size import Size, Unit -from test_tools.disk_utils import Filesystem -from test_utils.os_utils import sync -from test_tools.fio.fio import Fio -from test_tools.fio.fio_param import ReadWrite, IoEngine -from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan - -mountpoint = "/tmp/cas1-1" - -@pytest.fixture(scope="module") -def install_kedr(): - TestRun.LOGGER.info("Checking if kedr is installed") - if not Kedr.is_installed(): - TestRun.LOGGER.info("Installing kedr") - Kedr.install() - - -@pytest.fixture(scope="function") -def unload_modules(): - TestRun.LOGGER.info("Check if CAS is installed") - if installer.check_if_installed(): - TestRun.LOGGER.info("Unloading modules") - cas_module.unload_all_cas_modules() - - TestRun.LOGGER.info("Stop kedr if it is running") - if Kedr.is_loaded(): - Kedr.stop() - - TestRun.LOGGER.info("Mounting debugfs") - os_utils.mount_debugfs() - - -@pytest.mark.skip(reason="kedr not supported") -@pytest.mark.parametrize("module", cas_module.CasModule) -def test_kedr_memleak_load_cas_module(module, unload_modules, install_kedr): - """ - title: Loading modules with kedr started with 'memleak' configuration - description: Load and unload modules with kedr started to watch for memory leaks - pass_criteria: - - No memory leaks observed after loading and unloading module - """ - with TestRun.step(f"Starting kedr against {module}"): - Kedr.start(module.value) - - with TestRun.step(f"Loading {module}"): - os_utils.load_kernel_module(module.value) - - with TestRun.step(f"Unloading {module}"): - os_utils.unload_kernel_module(module.value, os_utils.ModuleRemoveMethod.modprobe) - - with TestRun.step(f"Checking for memory leaks for {module}"): - try: - Kedr.check_for_mem_leaks(module.value) - except Exception as e: - TestRun.LOGGER.error(f"{e}") - - with TestRun.step(f"Stopping kedr"): - Kedr.stop() - - -@pytest.mark.skip(reason="kedr not supported") -@pytest.mark.parametrize("module", cas_module.CasModule) -def test_kedr_fsim_load_cas_module(module, unload_modules, install_kedr): - """ - title: Loading modules with kedr started with 'fsim' configuration - description: Load and unload modules with kedr started to simulate kmalloc fails - pass_criteria: - - Module fails to load - """ - with TestRun.step(f"Starting kedr against {module}"): - Kedr.start(module.value, KedrProfile.FAULT_SIM) - - with TestRun.step("Setting up fault simulation parameters"): - Kedr.setup_fault_injections() - - with TestRun.step(f"Trying to load {module}"): - out = os_utils.load_kernel_module(module.value) - if out.exit_code == 0 \ - or "Cannot allocate memory" not in out.stderr: - TestRun.LOGGER.error(f"Loading module should fail because of alloc error, instead " - f"modprobe's output is: {out}") - - with TestRun.step(f"Stopping kedr"): - Kedr.stop() - - -@pytest.mark.skip(reason="kedr not supported") -@pytest.mark.parametrize("module", cas_module.CasModule) -@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) -@pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) -def test_kedr_start_cache(module, unload_modules, install_kedr): - """ - title: Start cache and add core with kedr started against one of CAS modules - description: | - Load CAS modules, start kedr against one of them, start cache and add core, - stop cache and unload modules - pass_criteria: - - No memory leaks observed - """ - with TestRun.step("Preparing cache device"): - cache_device = TestRun.disks['cache'] - cache_device.create_partitions([Size(500, Unit.MebiByte)]) - cache_part = cache_device.partitions[0] - - with TestRun.step("Preparing core device"): - core_device = TestRun.disks['core'] - core_device.create_partitions([Size(1, Unit.GibiByte)]) - core_part = core_device.partitions[0] - - with TestRun.step("Unload CAS modules if needed"): - if os_utils.is_kernel_module_loaded(module.value): - cas_module.unload_all_cas_modules() - - with TestRun.step(f"Starting kedr against {module.value}"): - Kedr.start(module.value) - - with TestRun.step(f"Loading CAS modules"): - os_utils.load_kernel_module(cas_module.CasModule.cache.value) - - with TestRun.step("Starting cache"): - cache = casadm.start_cache(cache_part, force=True) - - with TestRun.step("Adding core"): - cache.add_core(core_dev=core_part) - - with TestRun.step("Stopping cache"): - cache.stop() - - with TestRun.step(f"Unloading CAS modules"): - cas_module.unload_all_cas_modules() - - with TestRun.step(f"Checking for memory leaks for {module}"): - try: - Kedr.check_for_mem_leaks(module.value) - except Exception as e: - TestRun.LOGGER.error(f"{e}") - - with TestRun.step(f"Stopping kedr"): - Kedr.stop() - - -@pytest.mark.skip(reason="kedr not supported") -@pytest.mark.os_dependent -@pytest.mark.parametrize("module", cas_module.CasModule) -@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) -@pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) -def test_kedr_basic_io_raw(module, unload_modules, install_kedr): - """ - title: Basic IO test with kedr started with memory leaks profile - description: | - Load CAS modules, start kedr against one of them, start cache and add core, - run simple 4 minute random IO, stop cache and unload modules - pass_criteria: - - No memory leaks observed - """ - with TestRun.step("Preparing cache device"): - cache_device = TestRun.disks['cache'] - cache_device.create_partitions([Size(500, Unit.MebiByte)]) - cache_part = cache_device.partitions[0] - - with TestRun.step("Preparing core device"): - core_device = TestRun.disks['core'] - core_device.create_partitions([Size(1, Unit.GibiByte)]) - core_part = core_device.partitions[0] - - with TestRun.step("Unload CAS modules if needed"): - if os_utils.is_kernel_module_loaded(module.value): - cas_module.unload_all_cas_modules() - - with TestRun.step(f"Starting kedr against {module.value}"): - Kedr.start(module.value) - - with TestRun.step(f"Loading CAS modules"): - os_utils.load_kernel_module(cas_module.CasModule.cache.value) - - with TestRun.step("Starting cache"): - cache = casadm.start_cache(cache_part, force=True) - - with TestRun.step("Adding core"): - core = cache.add_core(core_dev=core_part) - - with TestRun.step(f"Running IO"): - (Fio().create_command() - .io_engine(IoEngine.libaio) - .run_time(timedelta(minutes=4)) - .time_based() - .read_write(ReadWrite.randrw) - .target(f"{core.path}") - .direct() - ).run() - - with TestRun.step("Stopping cache"): - cache.stop() - - with TestRun.step(f"Unloading CAS modules"): - cas_module.unload_all_cas_modules() - - with TestRun.step(f"Checking for memory leaks for {module.value}"): - try: - Kedr.check_for_mem_leaks(module.value) - except Exception as e: - TestRun.LOGGER.error(f"{e}") - - with TestRun.step(f"Stopping kedr"): - Kedr.stop() - - -@pytest.mark.skip(reason="kedr not supported") -@pytest.mark.os_dependent -@pytest.mark.parametrize("module", cas_module.CasModule) -@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) -@pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) -def test_kedr_basic_io_fs(module, unload_modules, install_kedr): - """ - title: Basic IO test on core with ext4 filesystem with kedr started with memory leaks profile - description: | - Load CAS modules, start kedr against one of them, create filesystem on core, start cache - and add core, run simple random IO, stop cache and unload modules - pass_criteria: - - No memory leaks observed - """ - with TestRun.step("Preparing cache device"): - cache_device = TestRun.disks['cache'] - cache_device.create_partitions([Size(500, Unit.MebiByte)]) - cache_part = cache_device.partitions[0] - - with TestRun.step("Preparing core device (creating partition, " - "filesystem and mounting core)"): - core_device = TestRun.disks['core'] - core_device.create_partitions([Size(1, Unit.GibiByte)]) - core_part = core_device.partitions[0] - core_part.create_filesystem(Filesystem.ext4) - sync() - - with TestRun.step("Unload CAS modules if needed"): - if os_utils.is_kernel_module_loaded(module.value): - cas_module.unload_all_cas_modules() - - with TestRun.step(f"Starting kedr against {module.value}"): - Kedr.start(module.value) - - with TestRun.step(f"Loading CAS modules"): - os_utils.load_kernel_module(cas_module.CasModule.cache.value) - - with TestRun.step("Starting cache"): - cache = casadm.start_cache(cache_part, force=True) - - with TestRun.step("Adding core"): - core = cache.add_core(core_part) - - with TestRun.step("Mounting core"): - core.mount(mountpoint) - - with TestRun.step(f"Running IO"): - (Fio().create_command() - .io_engine(IoEngine.libaio) - .size(cache.size * 2) - .read_write(ReadWrite.randrw) - .target(f"{core.mount_point}/test_file") - ).run() - - with TestRun.step("Unmounting core"): - core.unmount() - - with TestRun.step("Stopping cache"): - cache.stop() - - with TestRun.step(f"Unloading CAS modules"): - cas_module.unload_all_cas_modules() - - with TestRun.step(f"Checking for memory leaks for {module.value}"): - try: - Kedr.check_for_mem_leaks(module.value) - except Exception as e: - TestRun.LOGGER.error(f"{e}") - - with TestRun.step(f"Stopping kedr"): - Kedr.stop() diff --git a/test/functional/tests/stress/test_stress_attach_detach.py b/test/functional/tests/stress/test_stress_attach_detach.py index b121a95..8b5492b 100644 --- a/test/functional/tests/stress/test_stress_attach_detach.py +++ b/test/functional/tests/stress/test_stress_attach_detach.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -9,7 +10,7 @@ import random from api.cas import casadm from core.test_run import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_utils.size import Size, Unit +from type_def.size import Size, Unit @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/stress/test_stress_change_io_class_config_io.py b/test/functional/tests/stress/test_stress_change_io_class_config_io.py index 3bf1a07..0687b6a 100644 --- a/test/functional/tests/stress/test_stress_change_io_class_config_io.py +++ b/test/functional/tests/stress/test_stress_change_io_class_config_io.py @@ -1,5 +1,6 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -15,11 +16,11 @@ from api.cas.cache_config import CacheMode from api.cas.ioclass_config import IoClass from core.test_run_utils import TestRun from storage_devices.disk import DiskTypeSet, DiskType, DiskTypeLowerThan -from test_tools.disk_utils import Filesystem +from test_tools.fs_tools import Filesystem from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine -from test_utils.asynchronous import start_async_func -from test_utils.size import Size, Unit +from connection.utils.asynchronous import start_async_func +from type_def.size import Size, Unit from tests.io_class.io_class_common import generate_and_load_random_io_class_config diff --git a/test/functional/tests/stress/test_stress_cleaning_policy_change.py b/test/functional/tests/stress/test_stress_cleaning_policy_change.py index 6c8ea0f..12e18b4 100644 --- a/test/functional/tests/stress/test_stress_cleaning_policy_change.py +++ b/test/functional/tests/stress/test_stress_cleaning_policy_change.py @@ -1,5 +1,6 @@ # # Copyright(c) 2024 Huawei Technologies Co., Ltd. +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -14,9 +15,9 @@ from api.cas.cache_config import ( ) from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit -from test_utils.os_utils import Udev +from test_tools.fs_tools import Filesystem +from type_def.size import Size, Unit +from test_tools.udev import Udev from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine diff --git a/test/functional/tests/stress/test_stress_io_small_device.py b/test/functional/tests/stress/test_stress_io_small_device.py index d8135ba..a87ca20 100644 --- a/test/functional/tests/stress/test_stress_io_small_device.py +++ b/test/functional/tests/stress/test_stress_io_small_device.py @@ -1,9 +1,11 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import pytest + from datetime import timedelta from api.cas import casadm, casadm_parser @@ -12,7 +14,7 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeLowerThan, DiskTypeSet from test_tools.fio.fio import Fio from test_tools.fio.fio_param import CpusAllowedPolicy, IoEngine, ReadWrite -from test_utils.size import Size, Unit +from type_def.size import Size, Unit stress_time = timedelta(minutes=30) diff --git a/test/functional/tests/stress/test_stress_shutdown.py b/test/functional/tests/stress/test_stress_shutdown.py index e0ca82c..4df44a1 100644 --- a/test/functional/tests/stress/test_stress_shutdown.py +++ b/test/functional/tests/stress/test_stress_shutdown.py @@ -1,11 +1,14 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # import time import pytest + from datetime import timedelta + from api.cas import casadm, casadm_parser from api.cas.cache_config import CacheLineSize, CacheMode, CleaningPolicy, CacheModeTrait from api.cas.init_config import InitConfig @@ -13,7 +16,7 @@ from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeLowerThan, DiskTypeSet from test_tools.fio.fio import Fio from test_tools.fio.fio_param import IoEngine, ReadWrite -from test_utils.size import Size, Unit +from type_def.size import Size, Unit cores_number = 2 iterations_per_config = 5 diff --git a/test/functional/tests/stress/test_stress_without_io.py b/test/functional/tests/stress/test_stress_without_io.py index da4ad5a..1772f62 100644 --- a/test/functional/tests/stress/test_stress_without_io.py +++ b/test/functional/tests/stress/test_stress_without_io.py @@ -1,5 +1,6 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -11,9 +12,8 @@ from api.cas.cache_config import CacheMode from api.cas.init_config import InitConfig from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem, create_random_test_file +from type_def.size import Size, Unit iterations_per_config = 50 cas_conf_path = "/etc/opencas/opencas.conf" @@ -293,7 +293,7 @@ def prepare_with_file_creation(config): core = cache.add_core(core_dev) core.create_filesystem(Filesystem.ext3) core.mount(mount_point) - file = fs_utils.create_random_test_file(test_file_path) + file = create_random_test_file(test_file_path) file_md5sum = file.md5sum() core.unmount() return cache, core, file, file_md5sum diff --git a/test/functional/tests/volumes/common.py b/test/functional/tests/volumes/common.py index 2acfec3..6166c82 100644 --- a/test/functional/tests/volumes/common.py +++ b/test/functional/tests/volumes/common.py @@ -5,10 +5,10 @@ # from api.cas.init_config import InitConfig, opencas_conf_path -from test_tools import fs_utils from core.test_run import TestRun -from test_utils.os_utils import get_block_device_names_list -from test_utils.size import Size, Unit +from test_tools.disk_tools import get_block_device_names_list +from test_tools.fs_tools import create_random_test_file, parse_ls_output, ls_item +from type_def.size import Size, Unit test_file_size = Size(500, Unit.KiloByte) lvm_filters = [ @@ -23,7 +23,7 @@ def create_files_with_md5sums(destination_path, files_count): temp_file = f"/tmp/file{i}" destination_file = f"{destination_path}/file{i}" - test_file = fs_utils.create_random_test_file(temp_file, test_file_size) + test_file = create_random_test_file(temp_file, test_file_size) test_file.copy(destination_file, force=True) md5sums.append(test_file.md5sum()) @@ -37,12 +37,12 @@ def compare_md5sums(md5_sums_source, files_to_check_path, copy_to_tmp=False): for i in range(md5_sums_elements): file_to_check_path = f"{files_to_check_path}/file{i}" - file_to_check = fs_utils.parse_ls_output(fs_utils.ls_item(file_to_check_path))[0] + file_to_check = parse_ls_output(ls_item(file_to_check_path))[0] if copy_to_tmp: file_to_check_path = f"{files_to_check_path}/filetmp" file_to_check.copy(file_to_check_path, force=True) - file_to_check = fs_utils.parse_ls_output(fs_utils.ls_item(file_to_check_path))[0] + file_to_check = parse_ls_output(ls_item(file_to_check_path))[0] if md5_sums_source[i] != file_to_check.md5sum(): TestRun.fail(f"Source and target files {file_to_check_path} checksums are different.") diff --git a/test/functional/tests/volumes/test_discard_on_huge_core.py b/test/functional/tests/volumes/test_discard_on_huge_core.py index 47ff08c..14cdbe7 100644 --- a/test/functional/tests/volumes/test_discard_on_huge_core.py +++ b/test/functional/tests/volumes/test_discard_on_huge_core.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -8,7 +9,7 @@ import pytest from api.cas import casadm from storage_devices.disk import DiskType, DiskTypeSet from core.test_run import TestRun -from test_utils.size import Size, Unit +from type_def.size import Size, Unit scsi_dev_size_gb = str(40 * 1024) diff --git a/test/functional/tests/volumes/test_many_cores_on_many_lvms.py b/test/functional/tests/volumes/test_many_cores_on_many_lvms.py index dc023ae..1c82e9c 100644 --- a/test/functional/tests/volumes/test_many_cores_on_many_lvms.py +++ b/test/functional/tests/volumes/test_many_cores_on_many_lvms.py @@ -14,7 +14,7 @@ from storage_devices.disk import DiskType, DiskTypeSet from test_tools import initramfs from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from tests.volumes.common import get_test_configuration diff --git a/test/functional/tests/volumes/test_many_lvms_on_many_cores.py b/test/functional/tests/volumes/test_many_lvms_on_many_cores.py index 6618395..2a74ead 100644 --- a/test/functional/tests/volumes/test_many_lvms_on_many_cores.py +++ b/test/functional/tests/volumes/test_many_lvms_on_many_cores.py @@ -14,7 +14,7 @@ from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools import initramfs from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from tests.volumes.common import get_test_configuration, lvm_filters diff --git a/test/functional/tests/volumes/test_many_lvms_on_single_core.py b/test/functional/tests/volumes/test_many_lvms_on_single_core.py index acb6132..51407cc 100644 --- a/test/functional/tests/volumes/test_many_lvms_on_single_core.py +++ b/test/functional/tests/volumes/test_many_lvms_on_single_core.py @@ -14,7 +14,7 @@ from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools import initramfs from test_tools.fio.fio import Fio from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod -from test_utils.size import Size, Unit +from type_def.size import Size, Unit from tests.volumes.common import get_test_configuration, lvm_filters diff --git a/test/functional/tests/volumes/test_multilevel_cache_3.py b/test/functional/tests/volumes/test_multilevel_cache_3.py index 566acef..93ee4b2 100644 --- a/test/functional/tests/volumes/test_multilevel_cache_3.py +++ b/test/functional/tests/volumes/test_multilevel_cache_3.py @@ -1,15 +1,16 @@ # # Copyright(c) 2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # - import pytest + from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun from api.cas.cache import CacheMode, casadm -from test_utils.size import Size, Unit -from test_tools.disk_utils import Filesystem +from type_def.size import Size, Unit +from test_tools.fs_tools import Filesystem from .common import create_files_with_md5sums, compare_md5sums mount_point = "/mnt/test" diff --git a/test/functional/tests/volumes/test_raid_as_cache.py b/test/functional/tests/volumes/test_raid_as_cache.py index 7eb5ca9..b423764 100644 --- a/test/functional/tests/volumes/test_raid_as_cache.py +++ b/test/functional/tests/volumes/test_raid_as_cache.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -11,9 +12,8 @@ from .common import compare_md5sums, create_files_with_md5sums from core.test_run import TestRun from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from storage_devices.raid import Raid, RaidConfiguration, MetadataVariant, Level -from test_tools import fs_utils -from test_tools.disk_utils import Filesystem -from test_utils.size import Size, Unit +from test_tools.fs_tools import Filesystem, create_random_test_file, remove +from type_def.size import Size, Unit mount_point = "/mnt/test" mount_point2 = "/mnt/test2" @@ -66,14 +66,14 @@ def test_raid_as_cache(cache_mode): with TestRun.step("Copy files to cache and check md5sum."): for i in range(0, number_of_files): - test_file = fs_utils.create_random_test_file(test_file_tmp_path, test_file_size) + test_file = create_random_test_file(test_file_tmp_path, test_file_size) test_file_copied = test_file.copy(test_file_path, force=True) if test_file.md5sum() != test_file_copied.md5sum(): TestRun.LOGGER.error("Checksums are different.") - fs_utils.remove(test_file.full_path, True) - fs_utils.remove(test_file_copied.full_path, True) + remove(test_file.full_path, True) + remove(test_file_copied.full_path, True) TestRun.LOGGER.info(f"Successful verification.") diff --git a/test/functional/tests/volumes/test_volume_partitions.py b/test/functional/tests/volumes/test_volume_partitions.py index 385968f..f76816e 100644 --- a/test/functional/tests/volumes/test_volume_partitions.py +++ b/test/functional/tests/volumes/test_volume_partitions.py @@ -1,5 +1,6 @@ # # Copyright(c) 2020-2022 Intel Corporation +# Copyright(c) 2024 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # @@ -10,9 +11,9 @@ from api.cas.cache_config import CacheMode from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from core.test_run import TestRun from storage_devices.partition import Partition -from test_tools import fs_utils, disk_utils -from test_tools.disk_utils import PartitionTable, Filesystem -from test_utils.size import Size, Unit +from test_tools.disk_tools import PartitionTable, create_partitions +from test_tools.fs_tools import Filesystem, create_random_test_file +from type_def.size import Size, Unit mount_point = "/mnt/cas" cores_number = 16 @@ -42,8 +43,8 @@ def test_cas_preserves_partitions(partition_table, filesystem, cache_mode): core_dev.create_partitions(core_sizes, partition_table) with TestRun.step("Create filesystem on core devices."): - for i in range(cores_number): - core_dev.partitions[i].create_filesystem(filesystem) + for part in core_dev.partitions: + part.create_filesystem(filesystem) with TestRun.step("Mount core devices and create test files."): files = [] @@ -51,7 +52,7 @@ def test_cas_preserves_partitions(partition_table, filesystem, cache_mode): mount_path = f"{mount_point}{i}" core.mount(mount_path) test_file_path = f"{mount_path}/test_file" - files.append(fs_utils.create_random_test_file(test_file_path)) + files.append(create_random_test_file(test_file_path)) with TestRun.step("Check md5 sums of test files."): test_files_md5sums = [] @@ -120,7 +121,7 @@ def test_partition_create_cas(partition_table, filesystem, cache_mode): with TestRun.step("Create partitions on exported device."): core_sizes = [Size(1, Unit.GibiByte)] * cores_number core.block_size = core_dev.block_size - disk_utils.create_partitions(core, core_sizes, partition_table) + create_partitions(core, core_sizes, partition_table) with TestRun.step("Create filesystem on core devices."): for part in core.partitions: @@ -132,7 +133,7 @@ def test_partition_create_cas(partition_table, filesystem, cache_mode): mount_path = f"{mount_point}{i}" part.mount(mount_path) test_file_path = f"{mount_path}/test_file" - files.append(fs_utils.create_random_test_file(test_file_path)) + files.append(create_random_test_file(test_file_path)) with TestRun.step("Check md5 sums of test files."): test_files_md5sums = []