Skip to content

Commit

Permalink
stratis_cli_cert: add SysfsMonitor class
Browse files Browse the repository at this point in the history
Signed-off-by: Bryan Gurney <[email protected]>
  • Loading branch information
bgurney-rh committed Nov 17, 2023
1 parent 8555ed4 commit 99d724d
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 1 deletion.
57 changes: 56 additions & 1 deletion stratis_cli_cert.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

# isort: LOCAL
from testlib.dbus import StratisDbus, fs_n, p_n
from testlib.infra import DbusMonitor, KernelKey, StratisdSystemdStart, SymlinkMonitor
from testlib.infra import DbusMonitor, KernelKey, StratisdSystemdStart, SymlinkMonitor, SysfsMonitor
from testlib.utils import (
RandomKeyTmpFile,
create_relative_device_path,
Expand Down Expand Up @@ -182,6 +182,8 @@ def tearDown(self):
:return: None
"""
SysfsMonitor.tearDown(self)

SymlinkMonitor.tearDown(self)

DbusMonitor.tearDown(self)
Expand Down Expand Up @@ -562,6 +564,54 @@ def test_pool_init_cache_add_data(self):
True,
)

@skip(_skip_condition(3))
def test_pool_add_data_init_cache(self):
"""
Test adding data for a pool, then initializing the cache.
"""

pool_name = make_test_pool(StratisCliCertify.DISKS[0:1])
filesystem_name = fs_n()

self._unittest_command(
[
_STRATIS_CLI,
"filesystem",
"create",
pool_name,
filesystem_name,
],
0,
True,
True,
)

self._unittest_command(
[
_STRATIS_CLI,
"pool",
"add-data",
pool_name,
StratisCliCertify.DISKS[1],
],
0,
True,
True,
)

self._unittest_command(
[
_STRATIS_CLI,
"pool",
"init-cache",
pool_name,
StratisCliCertify.DISKS[2],
],
0,
True,
True,
)

@skip(_skip_condition(1))
def test_pool_stop_started(self):
"""
Expand Down Expand Up @@ -1103,6 +1153,10 @@ def main():
help="disks to use, a minimum of 3 in order to run every test",
)

argument_parser.add_argument(
"--verify-sysfs", help="Verify /sys/class/block files", action="store_true"
)

argument_parser.add_argument(
"--monitor-dbus", help="Monitor D-Bus", action="store_true"
)
Expand All @@ -1125,6 +1179,7 @@ def main():

parsed_args, unittest_args = argument_parser.parse_known_args()
StratisCliCertify.DISKS = parsed_args.DISKS
SysfsMonitor.verify_sysfs = parsed_args.verify_sysfs
DbusMonitor.monitor_dbus = parsed_args.monitor_dbus
SymlinkMonitor.verify_devices = parsed_args.verify_devices
StratisCertify.maxDiff = None
Expand Down
17 changes: 17 additions & 0 deletions testlib/infra.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,23 @@ def setUp(self):
exec_command(["udevadm", "settle"])


class SysfsMonitor(unittest.TestCase):
"""
Manage verification of sysfs files for devices.
"""

def tearDown(self):
if SysfsMonitor.verify_sysfs: # pylint: disable=no-member
try:
misaligned_devices = []
for dev in os.listdir("/sys/class/block"):
if fnmatch.fnmatch(dev, "dm-*"):
misaligned_devices.append(dev)
self.assertEqual(misaligned_devices, [])
except FileNotFoundError:
pass


class SymlinkMonitor(unittest.TestCase):
"""
Manage verification of device symlinks.
Expand Down

0 comments on commit 99d724d

Please sign in to comment.