Michal Mielewczyk
7f55116b5e
pyocf: settle cache before testing occupancy
...
The next commit will move occupancy accounting to backfill which makes
testing statistics value even more time dependent. Settling cache before
cache.get_stats() prevents this error-inducing race conditions
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2025-03-24 12:22:25 +01:00
Michal Mielewczyk
98a3aaea89
pyocf: Test detaching cache with cleaning policy
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2025-03-17 15:28:09 +01:00
Krzysztof Majzerowicz-Jaszcz
23abad76a8
Add script for running PyOCF with sanitization
...
GCC/Clang sanitizer can be used together with PyOCF to catch some errors during
testing.
CC was purposely removed from the Makefile. It always points to GCC on Linux
by default. This allows to change the compiler and its options during the run
of the script
Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2025-03-14 16:54:30 +01:00
Daniel Madej
3263503de1
pyocf: Add test for re-attaching device w/o force
...
Signed-off-by: Daniel Madej <daniel.madej@huawei.com >
2025-02-06 09:24:40 +01:00
Robert Baldyga
be068df400
Merge pull request #853 from mmichal10/repart
...
Repart
2025-02-04 16:39:49 +01:00
Robert Baldyga
08eb00665c
Merge pull request #854 from robertbaldyga/request-cleanup
...
A little cleanup between ocf_request and ocf_io
2025-02-04 15:20:44 +01:00
Robert Baldyga
b850727d17
tests: Fix d2c test
...
Cache attach operation is not supposed to complete unless all the d2c
requests are completed, thus need to handle it asynchronously.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
2024-11-21 21:29:23 +01:00
Michal Mielewczyk
91ad6476e2
pyocf: Cache lines reclassification test
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-21 19:32:51 +02:00
Michal Mielewczyk
a18bee3d23
pyocf: ioclass statas api
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-21 19:32:51 +02:00
Robert Baldyga
85513332d7
Remove ocf_io_get()
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
2024-10-15 09:55:56 +02:00
Robert Baldyga
b16b49c84d
tests: Introduce cache/core flush test
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-04 07:54:46 +02:00
Roel Apfelbaum
b8ea10f30c
pyocf: Fix core.reset_stats()
...
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-04 07:52:14 +02:00
Michal Mielewczyk
a681f7ec7e
pyocf: Test for reporting and accounting IO errors
...
Test for bug fixed in 237f6c708a
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-02 16:21:10 +02:00
Michal Mielewczyk
6ec4f6cceb
pyocf: rio: reads and writes accounting
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-02 15:55:28 +02:00
Michal Mielewczyk
818dacfe89
pyocf: Disarm error volumes in teardown
...
This prevents obfuscating the actual test errors
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-02 15:52:21 +02:00
Michal Mielewczyk
191471af1b
Test for IO in d2c after attaching cache
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-10-02 15:33:06 +02:00
Robert Baldyga
d8d750462a
tests: pyocf: Remove legacy submit_* ops implementation from volumes
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
9b7f476470
pyocf: Update after removing struct ocf_io
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
be0ad8fe20
pyocf: Update tests after the API changes
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
1c2d5bbcf3
Introduce forward_io_simple
...
It's intended to be used in a context, where cache is not initialized
and the io_queue is not available yet.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
2d303e8d09
Replace ocf_forward_get_io() with more specific ops
...
struct ocf_io is going to be removed soon (consolidated with ocf_request).
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
6aa141c247
Introduce ocf_forward_get_data()
...
Skip the ocf_io abstraction and get the data directly from the request.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
5859e432c8
Introduce ocf_forward_metadata()
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
cd544e8ee5
Introduce ocf_forward_write_zeros()
...
This is meant to be used in atomic mode to avoid allocating huge buffers
for zeroing data on drive.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-20 13:59:46 +02:00
Robert Baldyga
c9cd217a08
pyocf: Update to use forward API
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-19 15:55:19 +02:00
Roel Apfelbaum
73387c8f26
Support set_data() with offset > 0 for core
...
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-17 16:26:27 +02:00
Sara Merzel
9a6fe8a49b
pyocf: Tests for partial hits
...
Signed-off-by: Sara Merzel <sara.merzel@huawei.com >
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-17 14:16:23 +02:00
Michal Mielewczyk
97477d484f
pyocf: Helpers for sync IOs for Volume
...
Signed-off-by: Sara Merzel <sara.merzel@huawei.com >
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-17 10:04:02 +02:00
Michal Mielewczyk
f75ad04ec7
pyocf: Remove redundant imports
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-12 14:07:30 +02:00
Robert Baldyga
c07e44f036
pyocf: Fix cache settle
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
2024-09-09 15:28:11 +02:00
Sara Merzel
835eb708b5
Introduce pass-through block stats
...
Signed-off-by: Sara Merzel <sara.merzel@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-06 14:47:02 +02:00
Gershon Geva
2096e34489
Pass user's params when opening a core volume
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-09-04 20:29:41 +02:00
Robert Baldyga
8db93260ae
Avoid adding mngt_queue to io_queues list
...
Previously every created queue was added to io_queues list, which
made mngt_queue being used in ocf_parallelize. Change mngt_queue creation
API so that mngt_queue is not added to the list and doesn't have
unnecessary functionalities initialized.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 10:45:26 +02:00
Michael Lyulko
59227999da
pyocf: fix standby detach completion
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:39:55 +02:00
Robert Baldyga
640ee86663
pyocf: Introduce discard tests
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:39:55 +02:00
Roel Apfelbaum
9f0147ab1e
pyocf: refactor sync io operations
...
Replace the pattern:
completion = OcfCompletion([("err", c_int)])
io.callback = completion.callback
io.submit()
completion.wait()
with:
completion = Sync(io).submit()
Also, remove some redundant imports.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:39:53 +02:00
Robert Baldyga
8d4661bdc9
pyocf: rio: Introduce copy()
...
This allows to create a Rio prototype object and the copy it for every
invocations so that some parameters can be overwritten without modifying
the prototype object itself.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:29:43 +02:00
Robert Baldyga
d892e3b0d5
pyocf: rio: Fix offset
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:29:42 +02:00
Michal Mielewczyk
16830cd3c3
pyocf: rio: Fix the default JobSpec
...
Make JobSpec dataclass' default values immutable.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:29:10 +02:00
Robert Baldyga
8668ae9c37
pyocf: Fix test_io_propagation_multiple_subvolumes
...
Make sure end_offset is never generated as 0. Otherwise the last volume
in the range will not get any io, leading false negative test result.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com >
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-08-29 08:28:13 +02:00
Michal Mielewczyk
83ec255458
Disable changing cache params for detached cache
...
Majority of management operations should be blocked for detached cache,
although adding and removing cores should be possible.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-07-10 16:19:37 +02:00
Michal Mielewczyk
f8a0f88892
Test detaching cache twice
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-07-10 16:16:18 +02:00
Michal Mielewczyk
c95f396ba9
Test for attaching cache twice
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-07-10 16:15:34 +02:00
Michal Mielewczyk
58fddd3602
Test add and remove core with cache detached
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-07-10 16:15:18 +02:00
Michal Mielewczyk
06a2125ba9
pytest: update random.seed() argument
...
From python3.11 the function accepts only NoneType, int, float, str, bytes, or
bytearray
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com >
2024-07-10 16:14:30 +02:00
Robert Baldyga
2560aa709c
tests: Use proper random object for string generation
...
PyOCF needs to control random seed, to allow running tests with
pytest-xdist. Use local random object initialized with seed
from the config.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2023-03-30 10:30:55 +02:00
Robert Baldyga
93b6ddb8a7
Merge pull request #703 from jfckm/metadata-corruption-tests
...
Metadata corruption tests
2022-07-22 16:06:41 +02:00
Robert Baldyga
675cd11f40
Add missing license headers
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2022-07-22 08:33:55 +02:00
Jan Musial
f1a8bac1db
pyocf: Improve logs readability for corruption tests
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2022-07-19 10:50:11 +02:00
Jan Musial
159fda9356
Security test for metadata corruption in standby activate
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2022-07-19 10:50:11 +02:00