Commit Graph

3395 Commits

Author SHA1 Message Date
Chengguang Xu dbb857f8d1 common/rc: perform _require_metadata_journaling check on overlay base fs
Currently generic shutdown tests are enabled on overlayfs by
extending _require_scratch_shutdown() to check shutdown support for
overlayfs, some of those tests also call
_require_metadata_journaling() to inspect whether test filesystem
support metadata journaling or not, so need to extend
_require_metadata_journaling() as well to check metadata journaling
support for overlayfs in case shutdown tests run on uncommon
overlayfs setup and fail. For example, base filesystem of overlayfs
is ext2 or ext4 with noload mode.

Metadata journaling check is based on base filesystem configurations
and  because -overlay option saves those configurations to
OVL_BASE_*, adding restore/override the configurations before/after
the check.

Tested ext2, xfs, ext4(load/no-load mode) as base filesystem of
overlayfs in single and multi section configurations.

[eguan: update _notrun message]

Signed-off-by: Chengguang Xu <cgxu519@icloud.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-10 19:02:21 +08:00
Darrick J. Wong dc325ce8ca xfs: find libxfs api violations
New test to run tools/find-api-violations.sh in xfsprogs.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-09 18:33:24 +08:00
Ross Zwisler 95c924c651 ext4: test for inline data + DAX corruption
Add a regression test for the following kernel commit:

  ext4: prevent data corruption with inline data + DAX

The test passes either if we don't encounter corruption, or if
mounting with DAX + inline data fails.  The latter is the way that
we prevent this issue in the kernel.

[eguan: add 'dax' group]

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-06 02:09:02 +08:00
Ross Zwisler 750a24e99e ext4: test for DAX + journaling corruption
Add a regression test for the following kernel commit:

  ext4: prevent data corruption with journaling + DAX

The test passes if either we successfully compare the data between
the mmap with journaling turned on and the one with journaling
turned off, or if we fail the chattr command to turn on or off
journaling.  The latter is how we prevent this issue in the kernel.

[eguan: add 'dax' group]

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-06 02:09:02 +08:00
Darrick J. Wong 4515048910 xfs/068: fix clonerange problems in file/dir count output
In this test we use a fixed sequence of operations in fsstress to
create some number of files and dirs and then exercise
xfsdump/xfsrestore on them.  Since clonerange/deduperange are not
supported on all xfs configurations, detect if they're in fsstress
and disable them so that we always execute exactly the same sequence
of operations no matter how the filesystem is configured.

[eguan: move it from xfs/068 to common/dump as Dave suggested]

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Suggested-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-06 02:09:02 +08:00
Liu Bo 70138c383b btrfs: make sure scrub fixes raid6 corruption
This is to reproduce a bug of scrub, with which scrub is unable to
repair raid6 corruption as expected.

The kernel side fixes are
  Btrfs: make raid6 rebuild retry more
  Btrfs: fix scrub to repair raid6 corruption

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-06 02:09:02 +08:00
Darrick J. Wong 3b1382f992 generic: run a long-soak write-only fsstress test
Let a lot of writes soak in with multithreaded fsstress to look for
bugs and other problems.

[eguan: remove '-v' option of fsstress and remove 'clone' group]

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-06 02:09:02 +08:00
Luis Henriques ebe1aa88a1 generic/050: fix _require_local_device $SCRATCH_DEV check order
Commit 2b4eae7fd8 ("common/rc: add scratch shutdown support for
overlayfs") added a _require_local_device check to generic tests 042
and 050.  However, for test 050, this check was added _before_
actually verifying that a SCRATCH_DEV actually exists.  This patch
simply re-orders the _require_local_device to the right place.

Signed-off-by: Luis Henriques <lhenriques@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-03 01:19:11 +08:00
Darrick J. Wong e76e13ce8c fsstress: implement the clonerange/deduperange ioctls
Mix it up a bit by reflinking and deduping data blocks when
possible.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-02 19:25:01 +08:00
Darrick J. Wong ce02f1b2f8 generic: test error shutdown while stressing filesystem
Test log recovery with repeated (simulated) disk failures.  We kick
off fsstress on the scratch fs, then switch out the underlying
device with dm-error to see what happens when the disk goes down.
Having taken down the fs in this manner, remount it and repeat.
This test is a Good Enough (tm) simulation of our internal multipath
failure testing efforts.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-02 17:35:45 +08:00
Theodore Ts'o e6f1dfa3e3 ext4: use a slightly bigger file system in ext4/021
An 8 MB file system may not be big enough for certain file system
configurations --- in particular, if the inode size is 2048 bytes.
Make the test file system 10MB instead.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-31 20:49:36 +08:00
Ari Sundholm 79a3bb053f common/encrypt: Create an encrypted equivalent of _scratch_mkfs_sized
Test case generic/399 hardcodes "-O encrypt" in MKFS_OPTIONS when
calling _scratch_mkfs_sized, which only works with the mkfs of
certain filesystems. Create a new helper,
_scratch_mkfs_sized_encrypted, for handling the differences between
the mkfs tools of different filesystems. It also allows those
filesystems whose mkfs doesn't accept "-O encrypt" to skip the test
gracefully until proper support is added for them in the helper.

ubifs is not supported in the new helper despite supporting
encryption, as _scratch_mkfs_sized has no ubifs support and adding
that should be done in a separate patch.

Signed-off-by: Ari Sundholm <ari@tuxera.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-31 20:49:36 +08:00
Qu Wenruo 5525ac5228 btrfs: Add new 'limit' test group for btrfs
Btrfs qgroup also supports to limit the usage of specified qgroups.

It's possible to enable qgroup but doesn't enable limit.
(Most user won't use qgroup limit for various problems)

So add a new test group 'limit' for btrfs, as a subset of existing
'qgroup' group.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-31 20:49:36 +08:00
Luis R. Rodriguez 39fa7d89bc xfs/040: document purpose
Getting xfs/040 to "pass" takes a bit of effort, however the effort
to require updating xfsprogs is purely an xfsprogs maintainer task
only. There no functional gain by users of xfs or a QA team to get
this test to pass. This is not trivial from the current description
so document this.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Reviewed-by: Bill O'Donnell <billodo@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-24 21:30:58 +08:00
Chengguang Xu 0f2373e045 generic: add syncfs test
Inspired by syncfs bug of overlayfs which does not sync dirtyinodes
in underlying filesystem.

Run syncfs and shutdown filesystem(or underlying filesystem of
overlayfs) to check syncfs result.

Signed-off-by: Chengguang Xu <cgxu519@icloud.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-24 21:30:58 +08:00
Chengguang Xu c3594bec4e common/rc: check syncfs support
Add a check case in _require_xfs_io_command() to support syncfs

Signed-off-by: Chengguang Xu <cgxu519@icloud.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-24 21:30:58 +08:00
Chengguang Xu 2b4eae7fd8 common/rc: add scratch shutdown support for overlayfs
Enable shutdown tests on overlayfs. This requires configuring
overlayfs with TEST|SCRATCH_DEV pointing to block device, which act
as base fs of overlay. The legacy config (pointing TEST|SCRATCH_DEV
to existing directories) won't support shutdown.

Extend _require_scratch_shutdown() to deal with overlay by checking
shutdown support on $OVL_BASE_SCRATCH_MNT instead of $SCRATCH_MNT,
so we check shutdown support status against the underlying upper fs
of overlay.

Introduce new _scratch_shutdown() helper to do the actual shutdown
work and shutdown upper fs in the case of overlay. Also converting
existing bare 'src/godown' calls to use this helper to avoid false
failures when testing overlayfs.

generic/042 and generic/050 assume $SCRATCH_DEV to be a local
device, so add _require_local_device $SCRATCH_DEV rule.

[eguan: rewrite commit log]

Signed-off-by: Chengguang Xu <cgxu519@icloud.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-24 21:30:58 +08:00
Ari Sundholm db71085194 fsstress: getcwd() return value fixes
Add a check for the return value of getcwd(). Fix another check
which mistakenly checks if the return value is less than zero
instead of checking whether the return value is NULL.

Signed-off-by: Ari Sundholm <ari@tuxera.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-24 21:30:58 +08:00
Ari Sundholm 6db67b7252 fsstress: Eliminate valgrind noise
This patch plugs what we think are the remaining sources of valgrind
noise we found when running fsstress under valgrind.  The noise is
caused by memory being left unfreed before process termination.

Signed-off-by: Ari Sundholm <ari@tuxera.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-24 21:30:58 +08:00
Luis R. Rodriguez 3d04948b82 README: document group fsgqa is required
The group fsgqa is also required.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-15 15:17:48 +08:00
Darrick J. Wong d69d223dfa xfs: fix tests to handle removal of no-alloc create nonfeature
We're removing from XFS the ability to perform no-allocation file
creation.  This was added years ago because some customer of SGI
demanded that we still be able to create (empty?) files with zero
free blocks remaining so long as there were free inodes and space in
existing directory blocks.  This came at an unacceptable risk of
ENOSPC'ing midway through a transaction and shutting down the fs, so
we're removing it for the create case having changed our minds 20
years later.

However, some tests fail as a result, so fix them to be more
flexible about not failing when a dir/file creation fails due to
ENOSPC.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-15 15:16:46 +08:00
Darrick J. Wong 88b65cf51e generic/45[34]: test line draw characters in file/attr names
Try to draw a multiline rectangular outline in a file name and xattr
name, just to see if we can.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-15 15:16:46 +08:00
Darrick J. Wong 9d5ea22aea common/xfs: fix scrub support probing again
In the final version of the xfs_io scrub command we don't allow the
probe function to have any parameters, so fix the helper to abide
that.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-15 15:16:46 +08:00
Luis R. Rodriguez 2353022e57 build: update AC_PACKAGE_WANT_GDBM() and src/dbtest.c to build
Modern gdbm-devel packages bundle together gdbm.h and ndbm.h.  The
old m4 macro had detection support for some old gdbm libraries but
not for new ones.

We fix compilation of src/dbtest.c by making the autoconf helper
check for this new arrangement:

If both gdbm.h and ndbm.h are found define set both gdbm_ndbm_=true,
and have_db=true, and define HAVE_GDBM_H. The src/dbtest.c already
had a HAVE_GDBM_H but there was never a respective autoconf settter
for it. We can just re-use this and fix it for new arrangement.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-15 15:16:28 +08:00
Luis R. Rodriguez 07350fc758 generic/group: add 304 to dedupe group
Other generic tests that test dedupe all have 'dedupe' group except
generic/304. Add 304 to dedupe group too.

[eguan: add commit log]

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-14 12:42:19 +08:00