Commit Graph

3581 Commits

Author SHA1 Message Date
Theodore Ts'o b13f51d571 report: make sure control charcters are encoded in xUnit report
Control characters (such as backspace, used in progress reports by
mkfs.ext4, for example) can make Python's XML parsers choke, claiming
that it is an invalid XML document.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-21 16:12:39 +08:00
Jan Kara 968ccf32e4 generic: Handle missing [gs]etcap tools
Add proper requires for getcap and setcap tools to tests that need
them.  Also define standard variables GETCAP_PROG and SETCAP_PROG.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-21 16:12:39 +08:00
Eric Sandeen c3c9630968 generic: test online label ioctl
This tests the online label ioctl that btrfs has, which has been
recently proposed for XFS.

To run, it requires an updated xfs_io with the label command and a
filesystem that supports it

A slight change here to _require_xfs_io_command as well, so that
tests which simply fail with "Inappropriate ioctl" can be caught in
the common case.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-21 16:12:39 +08:00
Amir Goldstein 60300eb6e1 generic/459: use xfs_freeze instead of fsfreeze
This is what all other tests use as well as _require_freeze

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-18 14:40:47 +08:00
Xiao Yang 287b2e05b5 generic/486: Get rid of the redundant error=%d printing
1) Without the fix, perror() can indicate the actual error(ENODATA).
2) After calling perror() and redirecting the output of perror()
   to a file, errno seems to be set to EINVAL unexpectedly.
   See the following mail for detailed info:
   https://www.spinics.net/lists/fstests/msg09675.html

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-18 14:31:20 +08:00
Jan Kara 3d112df8bd common/quota: Fix _qmount_options for ext4 journalled quotas
_qmount_options didn't properly replace ext[34] journalled quotas
mount options. As such the mount option string got garbled and the
test (e.g. generic/379) failed.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 14:21:59 +08:00
Jan Kara b2bffe5c77 common/quota: Make project quota handling work for ext2 & ext3
Project quota can work for ext2 & ext3 the same way as for ext4.
Handle them properly as currently the tests just fail because of
unknown prjquota mount option. After this patch, tests will be "not
run" because ext4 driver refuses to use project quota mount options
for "old" fs types.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 14:00:25 +08:00
Amir Goldstein 5018cd1c0f generic: test first read with freeze right after mount
With ext4, this leads to freeze proection bypass WARN_ON in
ext4_journal_check_start.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 11:37:51 +08:00
Amir Goldstein ab4c48e3ae fstests: define and use TIMEOUT_PROG
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 11:31:38 +08:00
Jan Kara 5761a6eaad generic: Add SEEK_DATA tests for offsets in the middle of holes
ext4 had a bug for files with indirect extents where it wrongly
reported a size of a hole in some cases and thus SEEK_DATA
implementation could skip some data in a file. Test for that. The
problem is fixed by patch "ext4: Fix hole length detection in
ext4_ind_map_blocks()".

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 10:48:57 +08:00
Filipe Manana fd0607faf2 generic: test for fsync of file with xattrs
Test that xattrs are not lost after calling fsync multiple times
with a filesystem commit in between the fsync calls.

This test is motivated by a bug found in btrfs which is fixed by a
patch for the linux kernel titled:

  Btrfs: fix xattr loss after power failure

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 10:30:24 +08:00
Dave Chinner 5fc65da0a6 xfs: test mount vs superblock shrinker races
Test case for superblock shrinkers running while the filesystem is
being set up and/or torn down and tripping over inconsistent state.

Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 10:03:03 +08:00
Omar Sandoval 5c19a58f7d btrfs: test ENOSPC caused by many orphan items
Btrfs has a bug where we can prematurely ENOSPC if we have lots of
orphaned files, i.e., deleted files which are still open. Add a test
which repeatedly creates and deletes a file while keeping all of the
file descriptors open. This should succeed but doesn't on Btrfs
without the fix.

[Eryu: use multi_open_unlink command to keep files open & unlinked
instead of shell scripts]

Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-16 09:53:15 +08:00
Zorro Lang a82e9464dd xfs: skip growfs test on large device
When test on large SCRATCH_DEV, growing a small XFS to huge size is
a horrible thing (e.g grow 128M to 500T) and it doesn't add any more
test coverage. So skip this kind of tests if LARGE_SCRATCH_DEV is
yes.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-14 23:19:58 +08:00
Amir Goldstein e401bc28c1 generic/484: add missing _require_test_program
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-14 16:52:03 +08:00
Jeff Layton bb8de58ca1 btrfs: add test for seeing unseen fsync errors on newly open files
This adds a regression test for the following kernel patch:

    b4678df184b3 ("errseq: Always report a writeback error once")

This is motivated by some rather odd behavior done by the PostgreSQL
project. The main database writers will offload the fsync calls to a
separate process, which can open files after a writeback error has
already occurred.

This used to work with older kernels that reported the error to only
one fd, but with the errseq_t changes we lost the ability to see
errors that occurred before the open. The above patch restores that
behavior.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-13 00:28:35 +08:00
Jeff Layton 22a147a1ad generic: test for seeing unseen fsync errors on newly open files
This adds a regression test for the following kernel patch:

    b4678df184b3 ("errseq: Always report a writeback error once")

This is motivated by some rather odd behavior done by the PostgreSQL
project. The main database writers will offload the fsync calls to a
separate process, which can open files after a writeback error has
already occurred.

This used to work with older kernels that reported the error to only
one fd, but with the errseq_t changes we lost the ability to see
errors that occurred before the open. The above patch restores that
behavior.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-13 00:18:48 +08:00
Darrick J. Wong 331edc6af6 xfs: checkbashisms in all script files
Find all the /bin/sh scripts in xfsprogs and check for bashisms.

Cc: sandeen@sandeen.net
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-11 20:55:35 +08:00
Amir Goldstein b3c907888d generic/{159,160}: require chattr instead of lsattr
The tests _require_test_lsattr, but don't actually use lsattr. They
use chattr +i/-i, so require the appropriate command.

_require_test_lsattr checks the FS_IOC_GETFLAGS ioctl on a directory
and that is not supported in overlayfs. _require_chattr checks the
ioctl on a file, which is supported in overlayfs, so this change
makes the tests run and pass on overlayfs.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-11 18:40:04 +08:00
Amir Goldstein c29a70330f common/rc: decouple xfs_io flink check from xfs_io -T check
The 3 tests that _require_xfs_io_command "flink", actually require
O_TMPFILE support and flink command, but the former is far unlikely
to be missing. The test btrfs/058 doesn't even use the flink
command.

When running these tests on a filesystem that does not support
O_TMPFILE (e.g. overlayfs) the result is not very infomative:

 generic/004 1s ... [not run] xfs_io flink failed (old kernel/wrong fs?)

Decouple the requirements for "flink" command and "-T" command line
flag and require the former explicitly in tests that use it.

As a result the report is now more informative:

 generic/004 1s ... [not run] O_TMPFILE is not supported

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-11 18:40:04 +08:00
Dave Chinner 272ddcdd19 xfs: test inobt/on disk free state mismatches
Fuzzing has recently uncovered a couple of conditions where we don't
detect corruptions that reallocate already allocated inodes. This
test exercises those cases, and checks that we shut down the
filesystem appropriately when such a corruption occurs.

Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-11 18:40:04 +08:00
Dave Chinner f3851ad630 fstests: many dangerous+auto tests are not dangerous anymore
There are a bunch of tests that are run by the auto group that are
marked dangerous. This was done because the test exercised a crash
or other fatal error that has since been fixed. Remove the dangerous
tag from the auto tests that pass on a 4.17-rc3 kernel as they are
not dangerous anymore.

Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-11 09:36:26 +08:00
Dave Chinner 46199319f6 fstests: remove old electric fence support
Just not used anymore.

Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-11 09:35:38 +08:00
Amir Goldstein 5509684db3 overlay: test multiple origin references to the same lower file
Multiple origin references to the same lower file from upper files
that are not hardlinks will falsely return the same st_ino/st_dev
for two different overlay files and will cause 'diff' to falsely
report that content of files is the same when it is not.

This test checks that overlayfs detects and fails lookup of a
multiply referenced origin.

The check for multiply referenced origin was a by-product of kernel
commit 31747eda41ef ("ovl: hash directory inodes for fsnotify")

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-10 00:03:10 +08:00
Amir Goldstein 12a986fe87 overlay/049: update fix commit id
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-05-10 00:03:10 +08:00