Commit Graph

169 Commits

Author SHA1 Message Date
Dave Chinner 9c5d298030 generic: _test_generic_punch not blocksize clean
Test 17 of _test_generic_punch uses the filesystem block size to do
a sub-single block punch. The result of this is a files of
different sizes and md5sums when the filesystem block size changes.
However the only difference in file contents if the length of the
file - the zeroed region is always in the same place. Hence we can
use hexdump rather than md5sum to check the output remains
consistent and the hole remains in the correct place despite the
changing block sizes.

Fix up all the golden output for all the tests that use this
function, too.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-02-04 11:52:26 +11:00
Dave Chinner 180adeb433 xfs/291: fix spurious ENOSPC errors
xfs/291 tries to fill the filesystem almost full, so if the log size
changes with mkfs defaults then it's free space calculations are not
longer valid and so it throws lots of ENOSPC errors during a run.
This is not fatal for this test, but it does increase the runtime of
it and fill the 291.full file with unnecessary errors.

The number of frag files it creates is also too many for a 512 byte
inode filesystem (by about 900) so reduce the number of inodes
initially created so the test works ofr 512 byte inodes. With 512
byte inodes, the free space histogram looks like this after the frag
phase:

   from      to extents  blocks    pct
      1       1   10730   10730 100.00

And for 256 byte inodes:

   from      to extents  blocks    pct
      1       1   12388   12388 100.00

So these changes do not affect the intended operation of the test.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-02-04 11:52:17 +11:00
Dave Chinner 586d190340 xfs/199: enforce v4 superblock format for test
This test relies of the contents of the sb_features2 field being
known. Make sure ot clear allt eh MKFS_OPTIONS and ensure that we
direct mkfs to create only the simplest of featuresets to test this
functionality.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-02-04 11:52:03 +11:00
Dave Chinner 3ed573ee4b xfs/104: use fixed log size
In changing the default log sizes in mkfs, the freespace
calculations in xfs/104 are no longer valid and so it fails with
ENOSPC before running any of the growfs tests. Make the test use a
fixed log size of 5MB so that freespace calculations remain valid
and the test passes regardless of whether we have a new or old mkfs
binary.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2014-01-22 07:21:19 -06:00
Dave Chinner b04b0fd675 xfs: support xfs_metadump with external logs
When running xfstests with an external log, the metadump tests fail
with extra output like:

    +filesystem is marked as having an external log; specify logdev on the mount command line.
    +xfs_metadump: cannot read superblock for ag 0

Add a _scratch_metadump() function to handle different logdev
configurations automatically for metadump.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2014-01-22 07:21:19 -06:00
Dave Chinner 5b524eedc5 xfs/073, 208: remove .full output before starting the test
Otherwise we end up with an ever-growing file for every test that is
run and that makes it hard to isolate failures.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2014-01-22 07:21:19 -06:00
Dave Chinner 86e91cc95c xfs: add fsstress/recovery test
This has found several issues with recovery on CRC based
filesystems. It is based on a test case for a dir3 assert failure
provided by Michael L Semon.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2014-01-22 07:21:19 -06:00
Dave Chinner b9b5d74a9e xfs: New _require_* tests for CRC enabled filesystems
CRCs always enabled 32 bit project inodes and attr2 formats, hence
they cannot be turned off. Add new require rules for the tests that
require attr and 16 bit project IDs so these tests are avoided on
CRC enabled filesystems.

Also, add a xfs_db write check so that we can avoid tests that are
dependent on xfs_db modifying filesystem structures as they will
fail on CRC enabled filessystems right now. This is just temporary
until full write xfs_db support is available.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2014-01-22 07:21:18 -06:00
Eric Sandeen 94d3f77819 xfs/049, 073: use MKFS_XFS_PROG where appropriate
I got burned on a mishmash system with /usr/sbin/mkfs but
/sbin/mkfs.xfs - or was it the other way around...

Anyway, in these tests, there's no need for the concatenation
to create "mkfs.xfs" - just use MKFS_XFS_PROG.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-01-20 13:28:38 +11:00
Jie Liu 9645d9ad85 xfs: disable group/project quotas along with fsstress
Introduce xfs/305 to verify that we can turn group/project quotas
off while user quotas is on and fsstress is running at the same time.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-01-20 12:46:01 +11:00
Jie Liu b42851e536 xfs: verify turn group/project quotas off while user quotas is on
Introduce xfs/304 to verify that we can turn group/project quotas
off while user quotas is on.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-01-20 12:44:43 +11:00
Jie Liu cc92a9531f xfs: refactor xfs/299 for crc feature pre-checkup
Refactor xfs/299 to make use of those two crc related pre-checkup
routines, and remove the super block number from the golden output
file as it does not make sense IMO.  Also, filter out *EXPERIMENTAL*
string from mkfs.xfs output as those contents would be removed once
crc feature becomes stable.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-01-20 12:44:02 +11:00
Jie Liu 5bcbff9155 xfs: verify xfs_quota commands against invalid mount path
Introduce a new test to verify xfs_quota administrator commands can
deal with invalid XFS mount path properly without NULL pointer
dereference issue.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2013-12-03 10:29:33 +11:00
Christoph Hellwig c041421687 xfstests: stop special casing nfs and udf
For historical reasons beyond my knowledge xfstests tries to abuse the
scratch device as test device for nfs and udf.  Because not all test
have inherited the right usage of the _setup_testdir and _cleanup_testdir
helpers this leads to lots of unessecary test failures.

Remove the special casing, which gets nfs down to a minimal number of
failures.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Sugned-off-by: Dave Chinner <david@fromorbit.com>
2013-12-03 10:29:26 +11:00
Mark Tinguely 812838f86d xfstest: fix filtering in 206 for ftype and projid32bit
xfs/206 displays the output for mkfs.xfs, xfs_growfs and xfs_info.
Change the filtering to hide the new output for the field type
feature.

While cleaning up the ftype output, also clean up the projid32bit
output in xfs_growfs and xfs_info.

Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-11-09 13:05:35 -06:00
Eryu Guan fa74b4bdba xfstests: fix _filter_ro_mount and make xfs/200 pass with old mount
We just want to remove "block device" in _filter_ro_mount(), so add
"mount:" back.

Add one more call of _filter_ro_mount() in xfs/200 to match 200.out.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-11-04 14:34:04 -06:00
Dave Chinner 8a6adf9d74 xfstests: fix mkfs filter on xfs/096
Needs to filter out the new ftype field.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-11-04 14:32:04 -06:00
Rich Johnston fe8a159300 xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early
Multi-stream xfsdump/xfsrestore of more than partialmax wholly-sparse
files segfaults with the following warning:

  "partial_reg: Out of records. Extend attrs applied early."

Add a test that dumps and restores partialmax + 1 wholly-sparse files.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-23 18:56:56 -05:00
Rich Johnston 71026bf1f9 xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
Verify extended attributes are not lost after multi-stream
xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
however the extended attributes for that file are lost.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-23 18:54:12 -05:00
Brian Foster bb4074a31a xfstests: use minimum log size in xfs/016
Test xfs/016 fails to run due to invalid mkfs options. The log size
is reported as too small according to the minimum log size
calculation:

log size 512 blocks too small, minimum size is 853 blocks

Update log_size to the currently specified minimum.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-22 16:08:35 -05:00
Eric Sandeen 5d88b638ff xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
In some cases selinux's creation of an xattr on the temporary
fd creates a local xattr, but the file we are trying to 
defragment has attrs in extent format, and the forkoff mismatch
will cause xfs_fsr to fail.  This test demonstrates it;  I
have old patches sent to the list long ago that should fix
it.  I'll resend them soon.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-22 15:43:45 -05:00
Eric Sandeen a49141302f xfstests: fix xfs/205 for new log size defaults
test xfs/205 expects a certain log size, but defaults have
changed, the logs are bigger, and this test now fails w/ early
ENOSPC:

     QA output created by 205
    +   !!! disk full (expected)
    +   !!! disk full (expected)
    +   !!! disk full (expected)
     *** one file
    +   !!! disk full (expected)
     *** one file, a few bytes at a time
     ...

Fix this by specifying the log size at mkfs time, so freespace is
as the test expects it to be.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-16 15:22:35 -05:00
Eric Sandeen cd7eb340dd xfstests: handle xfs_quota output w/ long devicenames
Long device names may be split onto their own line
on quota output:

Filesystem   Blocks  Quota  Limit Warn/Time    Mounted on
/dev/mapper/my-very-very-very-long-devicename
                48M      0      0  00 [------] /mnt/scratch

which breaks tests that capture quota output - currently,
only xfs/108.

Add a _filter_quota() which fixes this.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-16 15:19:35 -05:00
Eric Sandeen fc671750a5 xfstests: add filter to 200 accommodate changed mount output
The mount binary changed its output w.r.t. red-only devices, and
stopped referring to a "block device."

This broke at least test xfs/200; add a common filter to remove
the "block device" from older mount binary output, and change
the 200.out file to match.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-16 15:18:35 -05:00
Eric Sandeen aaac93cb80 xfstests: restrict 259 device sizes to multiples of 512
Test 259 tries to make a loop device size which is 1 byte less
than 4T; losetup now warns that this makes little sense, and
the warning breaks the test output:

    +losetup: /mnt/test/259.image: warning: file does not fit into a 512-byte sector the end of the file will be ignored.

The RH QE testcase did originally use loopback, so did
not in effect test anything other than 512-multiple boundaries.

Just drop the non-512-byte-multiple cases, they produce
devices exactly the same size as their 512-byte-multiple
neighbors.

(FWIW, this is a regression test for the bug that
d943b11 mkfs: get size of device properly
fixed.)

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-10-16 15:16:35 -05:00