ceph/qa/tasks/cephfs/test_acls.py
Xiubo Li d5cb1cf529 qa: install xfsprogs-dev from source to support encrypt
Currently the xfsprogs packages won't support the 'add_enckey' feature
in xfs_io command, we need to install it from source.

Fixes: https://tracker.ceph.com/issues/58133
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2022-12-01 16:33:10 +08:00

45 lines
1.8 KiB
Python

from logging import getLogger
from io import StringIO
from tasks.cephfs.xfstests_dev import XFSTestsDev
log = getLogger(__name__)
class TestACLs(XFSTestsDev):
def test_acls(self):
from tasks.cephfs.fuse_mount import FuseMount
from tasks.cephfs.kernel_mount import KernelMount
# TODO: make xfstests-dev compatible with ceph-fuse. xfstests-dev
# remounts CephFS before running tests using kernel, so ceph-fuse
# mounts are never actually testsed.
if isinstance(self.mount_a, FuseMount):
log.info('client is fuse mounted')
self.skipTest('Requires kernel client; xfstests-dev not '\
'compatible with ceph-fuse ATM.')
elif isinstance(self.mount_a, KernelMount):
log.info('client is kernel mounted')
# XXX: check_status is set to False so that we can check for command's
# failure on our own (since this command doesn't set right error code
# and error message in some cases) and print custom log messages
# accordingly.
proc = self.mount_a.client_remote.run(args=['sudo', './check',
'generic/099'], cwd=self.xfstests_repo_path, stdout=StringIO(),
stderr=StringIO(), timeout=30, check_status=False,omit_sudo=False,
label='running tests for ACLs from xfstests-dev')
if proc.returncode != 0:
log.info('Command failed.')
log.info(f'Command return value: {proc.returncode}')
stdout, stderr = proc.stdout.getvalue(), proc.stderr.getvalue()
log.info(f'Command stdout -\n{stdout}')
log.info(f'Command stderr -\n{stderr}')
self.assertEqual(proc.returncode, 0)
success_line = 'Passed all 1 tests'
self.assertIn(success_line, stdout)