Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 32 additions & 12 deletions fs/xfstests.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import os
import re
import shutil
import subprocess
from avocado import Test
from avocado.utils import process, build, git, distro, partition
from avocado.utils import disk, pmem, genio
Expand Down Expand Up @@ -147,7 +148,7 @@ def __setUp_packages(self):
dver = self.detected_distro.version

packages = ['e2fsprogs', 'automake', 'gcc', 'quota', 'attr', 'make',
'xfsprogs', 'gawk', 'git', 'sed', 'acl', 'bc', 'dbench',
'xfsprogs', 'gawk', 'git', 'sed', 'acl', 'bc',
'dump', 'fio', 'xfsdump', 'indent', 'lvm2', 'psmisc']
if self.detected_distro.name in ['Ubuntu', 'debian']:
packages.extend(
Expand All @@ -156,7 +157,7 @@ def __setUp_packages(self):
'gettext', 'libinih-dev', 'liburcu-dev', 'libblkid-dev',
'liblzo2-dev', 'zlib1g-dev', 'e2fslibs-dev', 'libzstd-dev',
'libudev-dev', 'libcap-dev', 'liburing-dev', 'sqlite3',
f'linux-headers-{os.uname().release}', 'gettext'])
f'linux-headers-{os.uname().release}', 'dbench'])
if self.detected_distro.version in ['14']:
packages.append('libtool')
else:
Expand All @@ -171,8 +172,7 @@ def __setUp_packages(self):
'libtool', 'libacl-devel', 'libattr-devel', 'libaio-devel',
'libuuid-devel', 'libblkid-devel', 'lzo-devel', 'zlib-devel',
'e2fsprogs-devel', 'libzstd-devel', 'systemd-devel', 'meson',
'xfsprogs-devel', 'gcc-c++', 'gdbm-devel', 'kernel-devel',
'libcap-devel', 'liburing-devel', 'sqlite'])
'xfsprogs-devel', 'gcc-c++', 'liburing-devel'])
if self.detected_distro.name == 'rhel' and dver.startswith('9'):
packages.append('inih-devel')

Expand All @@ -181,20 +181,25 @@ def __setUp_packages(self):
'libbtrfs-devel', 'libcap-progs', 'liburcu-devel',
'libinih-devel', 'libopenssl-devel', 'gettext-tools',
'btrfsprogs', 'fsverity-utils', 'libfsverity0',
'fsverity-utils-devel', 'duperemove', 'sqlite3',
'checkbashisms', 'kernel-default-extra'])
'duperemove', 'sqlite3'])
if int(str(dver).split('.')[0]) < 16:
packages.append('acct')
elif int(str(dver).split('.')[0]) >= 16:
packages.extend(
['gdbm-devel', 'libcap-devel', 'fsverity-utils-devel',
'kernel-default-extra'])
else:
packages.extend(['userspace-rcu-devel', 'openssl-devel', 'gettext'])
packages.extend(['userspace-rcu-devel', 'openssl-devel', 'gettext',
'gdbm-devel', 'kernel-devel', 'libcap-devel',
'sqlite'])

packages_remove = ['indent', 'dbench', 'dump']
packages_remove = ['indent', 'dump']
if 'rhel' in self.detected_distro.name and any(dver.startswith(x)
for x in ['8', '9', '10']):
packages = [p for p in packages if p not in packages_remove]

if self.detected_distro.name in ['centos', 'fedora']:
packages.append('btrfs-progs-devel')
packages.extend(['btrfs-progs-devel', 'dbench'])
else:
self.cancel("test not supported in %s" % self.detected_distro.name)

Expand Down Expand Up @@ -244,6 +249,19 @@ def setUp(self):

self.__setUp_packages()

# Enable io_uring if disabled
knob = "/proc/sys/kernel/io_uring_disabled"
if os.path.exists(knob):
try:
current = int(process.system_output(f"cat {knob}").strip())
# 0 = enabled, 1/2 = disabled
if current != 0:
process.run(f"echo 0 > {knob}", sudo=True, shell=True)
except Exception as ex:
self.log.warn(f"Could not update io_uring_disabled: {ex}")
else:
self.log.info("io_uring_disabled knob not present older kernel")

# Build upstream fs tools if requested
if self.run_type == 'upstream':
prefix = "/usr/local"
Expand Down Expand Up @@ -343,9 +361,9 @@ def setUp(self):
new_lines.append(f'export SCRATCH_LOGDEV="{self.log_scratch}"\n')
self.log_devices.append(self.log_scratch)
if self.mkfs_opt:
new_lines.append(f'MKFS_OPTIONS="{self.mkfs_opt}"\n')
new_lines.append(f'export MKFS_OPTIONS="{self.mkfs_opt}"\n')
if self.mount_opt:
new_lines.append(f'MOUNT_OPTIONS="{self.mount_opt}"\n')
new_lines.append(f'export MOUNT_OPTIONS="{self.mount_opt}"\n')

with open(cfg_file, 'w') as f:
f.writelines(new_lines)
Expand All @@ -369,12 +387,14 @@ def setUp(self):
git.get_repo('https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git',
destination_dir=self.teststmpdir)
build.make(self.teststmpdir, extra_args=f"-j{os.cpu_count()}")
os.chmod(self.workdir, 0o755)
subprocess.check_call(["chmod", "-R", "a+rX", self.teststmpdir])

# Ensure test users exist
for user in ['fsgqa', 'fsgqa2', '123456-fsgqa']:
if process.system(f'id {user}', ignore_status=True):
cmd = f'useradd -m {"-U " if user == "fsgqa" else ""}{user}'
process.system(cmd, sudo=True)
process.system(cmd, sudo=True, ignore_status=True)

def _git_build(self, fs_type, repo_url, dirname, prefix, bin_prefix):
# Generic helper to clone, configure and build a repo
Expand Down
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_adv.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_adv:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536 -O quota,inline_data,fast_commit'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_adv_auto.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_adv_auto:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g auto'
args: '-R xunit -L 10 -g auto'
mkfs_opt: '-b 65536 -O quota,inline_data,fast_commit'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_adv_upstream.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_adv:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536 -O quota,inline_data,fast_commit'
mount_opt: '-o block_validity'

Expand Down
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_auto.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_auto:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g auto'
args: '-R xunit -L 10 -g auto'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_bigalloc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_bigalloc:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536 -O bigalloc'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_ext3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_ext3:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536 -O ^extents,^flex_bg,^uninit_bg,^64bit,^metadata_csum,^huge_file,^dir_nlink,^extra_isize'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_nodelalloc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_nodelalloc:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536'
mount_opt: '-o nodelalloc'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_nodioread_nolock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_nodioread_nolock:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity,nodioread_nolock'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_nojournal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k_nojournal:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536 -O ^has_journal'
mount_opt: '-o block_validity'
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/64k_upstream.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ loop_type: !mux
fs_type: !mux
fs_ext4_64k:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity'

Expand Down
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/dax.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ test_mnt: '/mnt/test_pmem'
fs_type: !mux
fs_ext4_dax:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g auto'
args: '-R xunit -L 10 -g auto'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity,dax'

Expand Down
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/dax_log.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ logdev: true
fs_type: !mux
fs_ext4:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity,dax'

Expand Down
2 changes: 1 addition & 1 deletion fs/xfstests.py.data/ext4/dax_upstream.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ test_mnt: '/mnt/test_pmem'
fs_type: !mux
fs_ext4_dax:
fs: 'ext4'
args: '-R xunit -e ext4/048 -L 10 -g quick'
args: '-R xunit -L 10 -g quick'
mkfs_opt: '-b 65536'
mount_opt: '-o block_validity,dax'

Expand Down
Loading