@pytest.mark.parametrize("thresholds_list", [[ random.randint(1, int(SEQ_CUTOFF_THRESHOLD_MAX.get_value(Unit.KibiByte))), random.randint(1, int(SEQ_CUTOFF_THRESHOLD_MAX.get_value(Unit.KibiByte))), random.randint(1, int(SEQ_CUTOFF_THRESHOLD_MAX.get_value(Unit.KibiByte))), random.randint(1, int(SEQ_CUTOFF_THRESHOLD_MAX.get_value(Unit.KibiByte))), ]]) @pytest.mark.parametrize("cache_mode, io_type, io_type_last", [(CacheMode.WB, ReadWrite.write, ReadWrite.randwrite), (CacheMode.WT, ReadWrite.write, ReadWrite.randwrite), (CacheMode.WA, ReadWrite.read, ReadWrite.randread), (CacheMode.WO, ReadWrite.write, ReadWrite.randwrite)] ) @pytest.mark.parametrizex("cls", CacheLineSize) @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_seq_cutoff_multi_core(thresholds_list, cache_mode, io_type, io_type_last, cls): """ title: Sequential cut-off tests during sequential and random IO 'always' policy with 4 cores description: | Testing if amount of data written to cache after sequential writes for different sequential cut-off thresholds on each core, while running sequential IO on 3 out of 4 cores and random IO against the last core, is correct. pass_criteria: - Amount of written blocks to cache is less or equal than amount set with sequential cut-off threshold for three first cores. - Amount of written blocks to cache is equal to io size run against last core. """ with TestRun.step(
from test_tools.dd import Dd 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_utils.os_utils import Udev from test_utils.size import Size, Unit random_thresholds = random.sample(range(1028, 1024 ** 2, 4), 3) random_stream_numbers = random.sample(range(2, 128), 3) @pytest.mark.parametrizex("streams_number", [1, 128] + random_stream_numbers) @pytest.mark.parametrizex("threshold", [Size(1, Unit.MebiByte), Size(1, Unit.GibiByte)] + [Size(x, Unit.KibiByte) for x in random_thresholds]) @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_multistream_seq_cutoff_functional(threshold, streams_number): """ title: Functional test for multistream sequential cutoff description: | Testing if amount of data written to cache and core is correct after running sequential writes from multiple streams with different sequential cut-off thresholds. pass_criteria: - Amount of data written to cache is equal to amount set with sequential cutoff threshold - Amount of data written in pass-through is equal to io size run after reaching the sequential cutoff threshold """ with TestRun.step("Start cache and add core device."): cache_disk = TestRun.disks['cache'] core_disk = TestRun.disks['core']
# Copyright(c) 2019-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # import pytest from api.cas import casadm 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 @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.nand, DiskType.optane])) def test_standby_neg_cli_params(): """ title: Verifying parameters for starting a standby cache instance description: | Try executing the standby init command with required arguments missing or unallowed arguments present. pass_criteria: - The execution is unsuccessful for all improper argument combinations - A proper error message is displayed for unsuccessful executions """ with TestRun.step("Prepare the device for the cache."): cache_device = TestRun.disks["cache"] cache_device.create_partitions([Size(500, Unit.MebiByte)]) cache_device = cache_device.partitions[0]