Count md5sum of tmp files in recovery tests before reboot

Signed-off-by: klapinsk <katarzyna.lapinska@intel.com>
This commit is contained in:
klapinsk 2021-04-28 12:37:37 +02:00
parent 5a6d4bea86
commit 28ae17e23b
3 changed files with 39 additions and 18 deletions

View File

@ -28,9 +28,7 @@ def copy_file(source, target, size, direct=None):
dd.run()
def compare_files(file1, file2, should_differ=False):
file1_md5 = file1.md5sum()
file2_md5 = file2.md5sum()
def compare_files(file1_md5, file2_md5, should_differ=False):
if should_differ ^ (file1_md5 != file2_md5):
if should_differ:
TestRun.fail("Source and target file checksums are identical.")

View File

@ -9,7 +9,6 @@ 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.dd import Dd
from test_tools.disk_utils import Filesystem
from test_tools.fs_utils import readlink
from test_utils import os_utils
@ -47,6 +46,7 @@ def test_recovery_flush_reset_raw(cache_mode):
with TestRun.step("Create test files."):
source_file, target_file = create_test_files(test_file_size)
source_file_md5 = source_file.md5sum()
with TestRun.step("Setup cache and add core."):
cache = casadm.start_cache(cache_device, cache_mode)
@ -74,7 +74,8 @@ def test_recovery_flush_reset_raw(cache_mode):
"before restart."):
copy_file(source=readlink(core_device.path), target=target_file.full_path,
size=test_file_size, direct="iflag")
compare_files(source_file, target_file, should_differ=True)
target_file_md5 = target_file.md5sum()
compare_files(source_file_md5, target_file_md5, should_differ=True)
with TestRun.step("Load cache."):
cache = casadm.load_cache(cache_device)
@ -91,11 +92,16 @@ def test_recovery_flush_reset_raw(cache_mode):
"Compare it with the first version they should be the same."):
copy_file(source=readlink(core_device.path), target=target_file.full_path,
size=test_file_size, direct="iflag")
compare_files(source_file, target_file)
target_file_md5 = target_file.md5sum()
compare_files(source_file_md5, target_file_md5)
with TestRun.step("Cleanup core device and remove test files."):
target_file.remove()
source_file.remove()
try:
target_file.remove()
source_file.remove()
except Exception:
# On some OSes files at /tmp location are automatically removed after DUT hard reset
pass
@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand]))
@ -126,6 +132,7 @@ def test_recovery_flush_reset_fs(cache_mode, fs):
with TestRun.step("Create test files."):
source_file, target_file = create_test_files(test_file_size)
source_file_md5 = source_file.md5sum()
with TestRun.step("Setup cache and add core."):
cache = casadm.start_cache(cache_device, cache_mode)
@ -170,10 +177,15 @@ def test_recovery_flush_reset_fs(cache_mode, fs):
copy_file(source=os.path.join(mount_point, "source_test_file"),
target=target_file.full_path,
size=test_file_size, direct="iflag")
compare_files(source_file, target_file)
target_file_md5 = target_file.md5sum()
compare_files(source_file_md5, target_file_md5)
with TestRun.step("Unmount core device and remove test files."):
core_device.unmount()
target_file.remove()
source_file.remove()
try:
target_file.remove()
source_file.remove()
except Exception:
# On some OSes files at /tmp location are automatically removed after DUT hard reset
pass
Udev.enable()

View File

@ -9,7 +9,6 @@ from api.cas import casadm
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.dd import Dd
from test_tools.disk_utils import Filesystem
from test_utils.size import Size, Unit
from tests.lazy_writes.recovery.recovery_tests_methods import create_test_files, copy_file, \
@ -47,6 +46,7 @@ def test_recovery_unplug_cache_fs(cache_mode, cls, filesystem, direct):
with TestRun.step("Create test files."):
source_file, target_file = create_test_files(test_file_size)
source_file_md5 = source_file.md5sum()
with TestRun.step("Create filesystem on core device."):
core_device.create_filesystem(filesystem)
@ -92,12 +92,17 @@ def test_recovery_unplug_cache_fs(cache_mode, cls, filesystem, direct):
with TestRun.step("Copy file from core device and check md5sum."):
copy_file(source=test_file_path, target=target_file.full_path,
size=test_file_size, direct="iflag" if direct else None)
compare_files(source_file, target_file)
target_file_md5 = target_file.md5sum()
compare_files(source_file_md5, target_file_md5)
with TestRun.step("Unmount core device and remove files."):
core_device.unmount()
target_file.remove()
source_file.remove()
try:
target_file.remove()
source_file.remove()
except Exception:
# On some OSes files at /tmp location are automatically removed after DUT hard reset
pass
@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand]))
@ -125,6 +130,7 @@ def test_recovery_unplug_cache_raw(cache_mode, cls):
with TestRun.step("Create test files."):
source_file, target_file = create_test_files(test_file_size)
source_file_md5 = source_file.md5sum()
with TestRun.step("Start cache and add core."):
cache = casadm.start_cache(cache_device, cache_mode, cls)
@ -158,8 +164,13 @@ def test_recovery_unplug_cache_raw(cache_mode, cls):
with TestRun.step("Copy file from core device and check md5sum."):
copy_file(source=core_device.path, target=target_file.full_path,
size=test_file_size, direct="iflag")
compare_files(source_file, target_file)
target_file_md5 = target_file.md5sum()
compare_files(source_file_md5, target_file_md5)
with TestRun.step("Cleanup core device and remove test files."):
target_file.remove()
source_file.remove()
try:
target_file.remove()
source_file.remove()
except Exception:
# On some OSes files at /tmp location are automatically removed after DUT hard reset
pass