Commit Graph

602 Commits

Author SHA1 Message Date
Amir Goldstein 3e729f31b4 generic/exportfs: golden output is not silent
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-24 15:41:14 +08:00
Richard Wareing ee3e001035 xfs/realtime: add _require_no_rtinherit function
To better exercise the data path code of realtime subvolumes, we
will set rtinherit=1 during mkfs calls.  For tests which this is not
desired we introduce a _require_no_rtinherit function to opt out of
this behavior.

Signed-off-by: Richard Wareing <rwareing@fb.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-19 12:47:03 +08:00
Nikolay Borisov 97575acd74 generic/015: Change the test filesystem size to 101mb
This test has been failing for btrfs for quite some time, at least
since 4.7. There are 2 implementation details of btrfs that it
exposes:

1. Currently btrfs filesystem under 100mb are created in Mixed block
group mode. Freespace accounting for it is not 100% accurate - I've
observed consistent 1mb discrepancy between a newly created
filesystem, then writing a file and deleting it and checking the
free space.

2. BTRFS won't flush it's delayed allocation on file deletion if
less than 32mb are deleted. On such files we need to perform sync
(missing in the test) or wait until time elapses for transaction
commit.

In order to avoid both of the aforementioned idiosyncrasies of the
fs make the test filesystem 101mb. With this we achieve 2 things:

1. Since the filesystem is larger we can create a file larger than
32mb, so it's going to be flushed upon deletion and numbers acquired
from df will be accurate
2. We don't create the filesystem in mixed mode and also since the
1mb is less than %1 of 101mb we will fall within the tolerance of 1%

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2018-01-12 11:41:00 +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 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
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
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 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
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
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
Nikolay Borisov 1a377268b0 generic: initial fiemap range query test
Fiemap gained support for passing in optional offset len which
denote the range requested, so this patch adds testcases for this
functionality. Aditionally, a special "ranged" argument is added to
the require_xfs_io_command which checks for the presence of fiemap
range support.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-14 12:39:57 +08:00
Goldwyn Rodrigues 1ed1aad2f8 generic: Partial direct write test
Getting an error midway through a direct write would return an error
and the error-code is returned in the write() call. However, partial
data is over-written during the call.

This tests simulates the ENOSPC error to check for partial direct
write consistency.

[eguan: use $AWK_PROG instead of bare awk]

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-14 12:39:57 +08:00
Goldwyn Rodrigues 6a2fd57fb8 generic: Test RWF_NOWAIT
Tests the RWF_NOWAIT flag so the I/O returns immediately with
-EAGAIN on a new file since it requires block allocation.

It creates a file, syncs it, and overwrites the file with
RWF_NOWAIT.  This should succeed.

Finally, read the contents to make sure the overwrite is successful.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-14 12:39:57 +08:00
Ross Zwisler 729b2bc764 generic: add test for DAX MAP_SYNC support
This test creates a file and writes to it via an mmap(), but never
syncs via fsync/msync. This process is tracked via dm-log-writes,
then replayed.

If MAP_SYNC is working the dm-log-writes replay will show the test
file with 1 MiB of on-media block allocations.  This is because each
allocating page fault included an implicit metadata sync.  If
MAP_SYNC isn't working (which you can test by removing the "-S" flag
to xfs_io mmap) the file will be smaller or missing entirely.

Note that dm-log-writes doesn't track the data that we write via the
mmap(), so we can't do any data integrity checking.  We can only
verify that the metadata writes for the page faults happened.

[eguan: add comments on _require_log_writes_dax and fix its cleanup]

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>
2017-12-10 17:46:05 +08:00
yang xu bfef1cdccf generic/459: Fix check for ro-remount in extN
Currently ,freeze failure caused by the lack of space can not
guarantee to remount extN filesystem in read-only mode, and test
failed due to "ro" mount option not found. We can add a touch to
trigger the action which aborts journal and ro-remounts the fs.

[eguan: update commit log and comments a bit]

Signed-off-by: yang xu <xuyang.jy@cn.fujitsu.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-04 11:29:38 +08:00
Darrick J. Wong f210cedc00 generic/388: use TIME_FACTOR to scale test duration
Use TIME_FACTOR to increase the amount of time we spend testing log
shutdown recovery.

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-01 16:50:53 +08:00
Eryu Guan 69854f8dc5 fstests: filter readonly mount error messages
util-linux commit 6dede2f2f7c5 ("libmount: support MS_RDONLY on
write-protected devices") changed the error message on read-only
block device, and in the failure case printed one line message
instead of two (for details please see comments in common/filter),
and this change broke generic/050 and overlay/035.

Fix it by adding more filter rules to _filter_ro_mount and updating
associated .out files to unify the output from both old and new
util-linux versions.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-26 15:38:55 +08:00
Amir Goldstein 26b2fe2880 generic/456: document the fix commit
Add a link to Ted's post with more details about the bug
and the fix.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-26 15:38:55 +08:00
Amir Goldstein 283a05c97c generic/458: document the fix commit
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-26 15:38:55 +08:00
Xiao Yang 1162f45f66 generic/459: add check for dm-snapshot target
generic/459 should be skipped when dm-snapshot is not supported.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-26 15:38:55 +08:00
Eryu Guan 80ec2dd71c generic: test zero page cache beyond new EOF on truncate down
From mmap(2) manpage, "a file is mapped in multiples of the page
size. For a file that is not a multiple of the page size, the
remaining memory is zeroed when mapped", this test is to test this
behavior on truncate down.

This is inspired by an XFS bug that truncate down fails to zero page
cache beyond new EOF and causes stale data written to disk
unexpectedly and a subsequent mmap sees non-zeros post EOF.

Patch "xfs: truncate pagecache before writeback in
xfs_setattr_size()" fixed the bug on XFS.

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-18 13:34:27 +08:00
Darrick J. Wong 90eaf3d744 generic/45[34]: add emoji to the unusual fs naming test
Since we have a test to make sure that we can use Unicode points in
filesystem names, enhance it to check emoji names too.

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-11-16 12:16:20 +08:00
Chao Yu eb48c30502 generic: add testcase to test fallocate & f{data,}sync
f2fs can skip isize updating in fsync(), since during mount, f2fs
tries to recovery isize according to valid block address or
preallocated flag in last fsynced dnode block.

However, fallocate() breaks our rule with setting
FALLOC_FL_KEEP_SIZE flag, since it can preallocated block cross EOF,
once the file is fsynced, in POR, we will recover isize incorrectly
based on these fallocated blocks.

This patch adds a new testcase to test fallocate, in order to verify
whether filesystem will do correct recovery on isize.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-15 17:40:07 +08:00
Darrick J. Wong 1e24e5173e generic/204: use available blocks to determine the number of files to create
Use the available block count to compute the number of files we think
we can create, rather than hardcoding a particular size.  This fixes
the ENOSPC failures for xfs filesystems with rmap/reflink support.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-11-10 12:33:58 +08:00