From 5f59376ea9626bc47a5a3e9d64a66c3ee897b271 Mon Sep 17 00:00:00 2001 From: Karolina Rogowska Date: Tue, 30 Mar 2021 16:56:02 +0200 Subject: [PATCH] test fix: test_ioclass_eviction_priority Using workload path per each io class Signed-off-by: Karolina Rogowska --- test/functional/tests/io_class/io_class_common.py | 5 ++--- .../tests/io_class/test_io_class_eviction_priority.py | 10 +++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/test/functional/tests/io_class/io_class_common.py b/test/functional/tests/io_class/io_class_common.py index 7f661f8..4352448 100644 --- a/test/functional/tests/io_class/io_class_common.py +++ b/test/functional/tests/io_class/io_class_common.py @@ -3,8 +3,6 @@ # SPDX-License-Identifier: BSD-3-Clause-Clear # -from datetime import timedelta - from api.cas import casadm from api.cas import ioclass_config from api.cas.cache_config import ( @@ -89,13 +87,14 @@ def get_io_class_usage(cache, io_class_id, percent=False): ).usage_stats -def run_io_dir(path, size_4k): +def run_io_dir(path, size_4k, offset=0): dd = ( Dd() .input("/dev/zero") .output(f"{path}") .count(size_4k) .block_size(Size(1, Unit.Blocks4096)) + .seek(offset) ) TestRun.LOGGER.info(f"{dd}") output = dd.run() 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 033c6a5..8f756c8 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 @@ -8,13 +8,13 @@ from math import isclose import pytest -from .io_class_common import * from api.cas.cache_config import CacheMode, CacheLineSize from api.cas.ioclass_config import IoClass 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 .io_class_common import * @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @@ -130,11 +130,15 @@ def test_ioclass_eviction_priority(cache_line_size): ::-1 ] # List is ordered by eviction priority io_classes_evicted = [] + io_offset = 0 for io_class in io_classes_to_evict: + io_size = int((io_class.max_occupancy * cache_size) / Unit.Blocks4096) run_io_dir( - f"{target_io_class.dir_path}/tmp_file", - int((io_class.max_occupancy * cache_size) / Unit.Blocks4096), + f"{target_io_class.dir_path}/tmp_file_{io_class.id}", + io_size, + io_offset ) + io_offset += io_size part_to_evict_end_occupancy = get_io_class_occupancy( cache, io_class.id, percent=True )