Commit Graph

252 Commits

Author SHA1 Message Date
Darrick J. Wong d43f8034c5 common: create _require_test_program to look for programs in src/
Create a helper that looks for a test program in src/ and fails the
test if it doesn't exist.  Refactor the existing testcases to use it.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2016-02-12 09:39:05 -08:00
Darrick J. Wong 89f436e3ac reflink: remove unnecessary umounts from test code
The test harness already takes care of this, so get rid of it.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2016-02-12 09:39:04 -08:00
Darrick J. Wong 0a2b768cb7 reflink: remove redundant filesystem checks from the end of the tests
Turns out that check already runs _check_filesystems after each test,
so we don't need to do this at the end of each test.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2016-02-12 09:39:04 -08:00
Darrick J. Wong a682b22db3 generic/182: this is a dedupe test, check for dedupe
Since this test examines dedupe behavior, the documentation should
say 'dedupe', not 'reflink'.  Furthermore, the feature checks must
look for working dedupe functionality, not reflink functionality.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
[hch@lst.de: add the test for dedupe support]
Signed-off-by: Christoph Hellwig <hch@lst.de>
2016-02-12 09:39:04 -08:00
Christoph Hellwig 911efb0897 reflink: change to relative margins
NFS uses 32K blocks and thus the numbers used for sanity checking
various reflink operations are way off.  Change to relative margings
and increase them a bit to make NFS happy.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-08 09:27:15 +11:00
Darrick J. Wong 813524b566 tests: use lowercase variables for all the new reflink tests
Since $TESTDIR is a local variable, make it lowercase to avoid
confusion with $TEST_DIR.  While we're at it, make all the local
variables lowercase.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-08 09:27:15 +11:00
Darrick J. Wong aa69397ed1 dedupe: record dedupe errors in golden output
The xfs_io dedupe command originally didn't print dedupe errors
to stderr like you'd expect.  Since that was fixed, the golden
output should be changed to reflect that.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-08 09:27:15 +11:00
Darrick J. Wong a3d855e424 reflink: fix off-by-one errors when iterating file blocks in a loop
When we're iterating file blocks in a loop (via seq), we have to
end at $nr-1, not $nr.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-08 09:27:15 +11:00
Eric Sandeen 1dfb50585c quota: test Q_GETNEXTQUOTA
The new Q_GETNEXTQUOTA quotactl (not yet merged) is designed
to take an ID as input ala Q_GETQUOTA, and return the quota
for the next active ID >= the input ID.  This lets us quickly
iterate over all existing quotas by leveraging the kernel's
knowledge of which quotas are allocated and active.

The test contains a new helper binary, test-nextquota, which
tests both the "vfs" and "xfs" versions of the quotactl.
It accepts an ID, and outputs the returned ID, ihard, and
isoft values for that quota.  It doesn't return block information
simply because that can vary depending on fs, block size, etc,
and we want something very consistent as output, for verifiation.

The test harness sets quotas for 100 random IDs, remounts,
and uses these quotactls to iterate over all the IDs we set,
using the test binary, making sure we get back what we expect.

Not the prettiest thing, but it works!

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-08 09:27:14 +11:00
Eryu Guan 931e5cb3ef generic/23[23]: some cleanups
1. remove $seqres.full before test
2. no need to check return values of _fsstress and _check_quota_usage
   calls, the golden image could catch the failures.
3. remove unused FSX related variables

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-08 09:27:14 +11:00
Dave Chinner f8c65ca45d xfs: support realtime/log device setup changes in config sections
Currently changing the devices used by "USE_EXTERNAL" environmental
variable is not supported by the config section parsing. Add the
functionality so that we can use config sections to test external
device configs successfully.

This required tracking down a bug in _check_xfs_filesystem() which
was causing a log device to be passed to a test device without an
external log device. This was caused by an uninitialised variable in
the function. I also added full output file removals to the first
couple of generic tests that were failing, because that's where the
check failure output ends up in this case.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-02-02 15:54:43 +11:00
Andreas Gruenbacher 6b7be00b07 fsx: Report number of successful operations
Report the number of successful operations at the end of an fsx run.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-01-11 14:44:21 +11:00
Andreas Gruenbacher 3597757462 fsx: Small improvements and fixes
Move the run_fsx shell function into common/rc.  Fix it to avoid
duplicate output on errors.  Write the actual fsx parameters used into
$seqres.full instead of the BSIZE and PSIZE placeholders.

Include the symbolic fallocate mode in fsx error messages instead of the
numeric value.  Use fprintf(stderr, ...) instead of warn() when
including strerror(errno) doesn't make sense.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-01-11 14:43:40 +11:00
Darrick J. Wong 44f59bd904 generic: create a dedupe group
Create a group for just the deduplication tests.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:40:16 +11:00
Darrick J. Wong 2a885960ec reflink: test a big CoW operation
Test what happens when we send largeish buffers to CoW all at once.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:36:26 +11:00
Darrick J. Wong 8ceac6e2f7 reflink: test CoW with blocksize < pagesize
Test CoW operations when blocksize < pagesize and the only reflink
block is in the middle of the page.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:35:21 +11:00
Darrick J. Wong c8a13e5303 reflink: more CoW tests for reflink and dedupe
These tests examine the behavior of advanced and tricky copy on write
situations.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:27:04 +11:00
Darrick J. Wong 1b3dc467e4 reflink: more tests
Add more tests for unaligned copy-on-write things, and explicitly
test the ability to pass "len == 0" to mean reflink/dedupe all
the way to the end of the file".

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:13:37 +11:00
Darrick J. Wong 11dd9959b8 generic/15[78]: fix error messages in the golden output
Fix the error messages in the golden output for generic/15[78], which
examine the responses to invalid inputs as returned by the
clone/clone_range/extent_same ioctls.  Also fix a filtering omission.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:08:01 +11:00
Darrick J. Wong 26aad2e053 tests: don't leave cruft behind on the TEST_MNT
Don't leave cruft behind on the test device's filesystem, so as to
avoid filling it with debris.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:07:57 +11:00
Eryu Guan 6a855067a0 generic/079: _notrun if fs doesn't support ioctl
Overlayfs directory inode doesn't support ioctl and reports
"Inappropriate ioctl", so grep for this error message and _notrun if the
message is found.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:07:50 +11:00
Eryu Guan 55f6116f3a generic/062: don't create WHITEOUT_DEV
overlay doesn't support creating WHITEOUT_DEV (major and minor device ID
are both 0). Create null device instead.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:07:48 +11:00
Eric Sandeen 27d077ec0b common: use mount/umount helpers everywhere
Replace every explicit mount/umount of scratch or test devices with
helper functions. This allows the next patch to add in hooks to these
functions in order to set up & tear down overlayfs on every mount/umount

(also adds _test_unmount(), which didn't exist prior)

[Eryu Guan rebased the patch agains latest master and replaced more
mount/umount with helpers]

Signed-off-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eric Sandeen <esandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:07:43 +11:00
Xiaoguang Wang f2f13c3735 generic/275: add to the 'enospc' group
Currently we're developing a new in-band deduplication feature for btrfs,
when enabing this feature, it will take much long time to hit the enospc
condition which 275 tries to create. I think 275 is also certain enospc
test and we should add it to 'enospc' group, then we can skip it easily by
excluding 'enospc' group when running fstests.

Signed-off-by: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
2015-12-21 18:01:54 +11:00
Jeff Moyer 7721b85016 generic/042: remove from the 'auto' group
This test fails 100% of the time for me on xfs and current git head, and
is not run for ext4 since ext4 does not support shutdown.  After talking
with bfoster, it isn't expected to succeed right now.  Since the auto
group is for tests that *are* expected to succeed, let's move this one
out.

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2015-12-21 18:01:47 +11:00