Merge pull request #874 from mmichal10/refactor-tests

pyocf: Use Rio instead of raw IO API
This commit is contained in:
Robert Baldyga 2025-03-27 10:16:21 +01:00 committed by GitHub
commit bea7340e69
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 38 additions and 32 deletions

View File

@ -17,6 +17,7 @@ from pyocf.types.io import IoDir, Sync
from pyocf.types.queue import Queue from pyocf.types.queue import Queue
from pyocf.utils import Size as S from pyocf.utils import Size as S
from pyocf.types.shared import OcfError, OcfErrorCode, OcfCompletion, CacheLineSize from pyocf.types.shared import OcfError, OcfErrorCode, OcfCompletion, CacheLineSize
from pyocf.rio import Rio, ReadWrite
@pytest.mark.parametrize("cache_mode", CacheMode) @pytest.mark.parametrize("cache_mode", CacheMode)
@ -152,13 +153,15 @@ def test_detach_cache_detach_core_cleaning(pyocf_ctx, cleaning_policy, promotion
cache.set_promotion_policy(promotion_policy) cache.set_promotion_policy(promotion_policy)
for core in [core_1, core_2]: for core in [core_1, core_2]:
vol = CoreVolume(core) r = (
queue = core.cache.get_default_queue() Rio()
.target(CoreVolume(core))
core_size = core.get_stats()["size"] .readwrite(ReadWrite.WRITE)
data = Data(core_size.B) .size(core.get_stats()["size"])
.qd(1)
_io_to_core(vol, queue, data) .bs(S.from_KiB(64))
.run([core.cache.get_default_queue()])
)
core_1.detach() core_1.detach()
@ -178,13 +181,15 @@ def test_detach_cache_retach_core_cleaning(pyocf_ctx, cleaning_policy, promotion
def _write_cores(cores_list): def _write_cores(cores_list):
for core in cores_list: for core in cores_list:
vol = CoreVolume(core) r = (
queue = core.cache.get_default_queue() Rio()
.target(CoreVolume(core))
core_size = core.get_stats()["size"] .readwrite(ReadWrite.WRITE)
data = Data(core_size.B) .size(core.get_stats()["size"])
.qd(1)
_io_to_core(vol, queue, data) .bs(S.from_KiB(64))
.run([core.cache.get_default_queue()])
)
cache.add_core(core_1) cache.add_core(core_1)
cache.add_core(core_2) cache.add_core(core_2)
@ -222,13 +227,15 @@ def test_reattach_cache_reattach_core_cleaning(pyocf_ctx, cleaning_policy, promo
def _write_cores(cores_list): def _write_cores(cores_list):
for core in cores_list: for core in cores_list:
vol = CoreVolume(core) r = (
queue = core.cache.get_default_queue() Rio()
.target(CoreVolume(core))
core_size = core.get_stats()["size"] .readwrite(ReadWrite.WRITE)
data = Data(core_size.B) .size(core.get_stats()["size"])
.qd(1)
_io_to_core(vol, queue, data) .bs(S.from_KiB(64))
.run([core.cache.get_default_queue()])
)
cache.add_core(core_1) cache.add_core(core_1)
cache.add_core(core_2) cache.add_core(core_2)

View File

@ -25,6 +25,7 @@ from pyocf.types.shared import (
from pyocf.types.volume import RamVolume from pyocf.types.volume import RamVolume
from pyocf.types.volume_core import CoreVolume from pyocf.types.volume_core import CoreVolume
from pyocf.utils import Size from pyocf.utils import Size
from pyocf.rio import Rio, ReadWrite
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -96,17 +97,15 @@ def test_d2c_io(pyocf_ctx):
cache.detach_device() cache.detach_device()
vol = CoreVolume(core_1) r = (
queue = core_1.cache.get_default_queue() Rio()
data = Data(4096) .target(CoreVolume(core_1))
vol.open() .readwrite(ReadWrite.WRITE)
io = vol.new_io(queue, 0, data.size, IoDir.WRITE, 0, 0) .size(core_1.get_stats()["size"])
io.set_data(data) .qd(1)
.bs(Size.from_KiB(64))
completion = Sync(io).submit() .run([core_1.cache.get_default_queue()])
)
vol.close()
assert completion.results["err"] == 0
def test_detach_cache_zero_superblock(pyocf_ctx): def test_detach_cache_zero_superblock(pyocf_ctx):