Commit Graph

89 Commits

Author SHA1 Message Date
Dave Chinner 544262ae10 xfsqa: define resblks for tests near ENOSPC
Several tests assume a certain amount of disk space free after the
reserve block pool is filled. Changing the default size of the
reserve block pool breaks these tests because there is less space
available that first thought.

Change these tests to specify a known reserve block pool size of
1024 blocks to ensure that they continue to work correctly even if
the default size changes.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-03-06 11:25:10 +11:00
Dave Chinner b2de346746 xfsqa: fix size specification for scratch mkfs
When making a specifically sized scratch filesystem, we need to
calculate the size rather than assigning the caclculation expression
to a variable and passing that into the _scratch_mkfs_sized
function. Currently sized filesystems are failing to be made and the
code is falling back to full sized filesystems so we are not testing
enospc issues correctly.

Signed-off-by: Dave Chinner <david@fromorbit.com>
2010-03-06 11:24:38 +11:00
Eric Sandeen 3839d29973 xfstests: mount xfs with a context when selinux is on
When selinux is on, we get tons of new xattrs, which messes
up all kinds of output.

The simplest way out of this, for now, seems to be to just mount
with a global context instead and skip writing the extra xattrs.

I've been using this internally on Fedora and RHEL for a while now.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Dave Chinner <david@fromorbit.com>
2010-02-19 09:33:45 -06:00
Eric Sandeen 2e57a3e0d7 xfstests: make 204 generic
204 can be generic.

Also remove a stray _scratch_mkfs that snuck into
_scratch_mkfs_sized :/

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-02-09 16:05:51 -06:00
Eric Sandeen e7c87cd480 xfstests: routine to create scratch of certain size
This is needed for later enospc tests to be generic

We have to explicitly call the mkfs rather than
_scratch_mkfs since extN wants nr-of-blocks as
an argument -after- the device name.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-02-05 11:03:01 -06:00
Eric Sandeen 8a5dcff7ca xfstests: 223 - test file alignment on stripe geometry
A first-cut test to ensure that files are well-aligned on filesystems
with stripe geometry.

Several sizes of stripe units are mkfs'd, and then files are written
and fallocated in various multiples of those stripe sizes.
Each file is checked to ensure that the first block is
stripe-aligned.

(Ideally, for any fragmented files, we should ensure that each
fragment start is well-aligned, but this does not do that yet)

(slightly unrelated: don't send scratch mkfs output to /dev/null,
we'd like to see mkfs output and direct it to $seq.full - this
more or less matches _scratch_mkfs_xfs behavior and doesn't
break any tests that I can see)

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-02-03 10:43:53 -06:00
Eric Sandeen 640ecede93 xfstests: filter selinux output in _acl_ls etc
When selinux is on, ls -l gives us a "." to indicate selinux
attrs, which breaks some tests:

 === Test minimal ACE ===
 Setup file
--rwxrw-r-- id1 id2 file1
+-rwxrw-r--. id1 id2 file1

so make an _ls_l helper to filter that out.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-02-03 08:35:24 -06:00
Eric Sandeen 73fee68110 xfstests: helper to detect fs free space
Make a common helper to skip a test if there's not enough
free space on the target fs.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-02-02 17:23:58 -06:00
Dave Chinner 771e69de67 xfstests: Convert all tests to use /bin/bash
While most tests use /bin/sh, they are dependent on /bin/sh being a
bash shell.  Convert all the tests to execute via /bin/bash as it is
much, much simpler than trying to debug and remove all the bashisms
throughout the test code.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
2010-01-20 10:27:08 +11:00
Jaroslav Barton 08ea701634 _check_generic_filesystem support for fsck parameters
_check_generic_filesystem now support fsck parameters. Fsck parameters
can be passed by FSCK_OPTIONS environmental variable. Default values
will be used if FSCK_OPTIONS is missing or empty (same mechanism as
MOUNT_OPTIONS and MKFS_OPTIONS).

_check_extN_filesystem function is no longer needed, extN filesystem are
properly handled by default values in _check_generic_filesystem.
2009-09-16 09:55:59 -03:00
Theodore Ts'o 8b61ae6352 add ext2/3/4-specific _check_extN_filesystem function
The _check_generic_filesystem function doesn't force a full filesystem
check, so filesystem inconsistencies after a test wouldn't be noticed.
To fix this, I added an extN specific check filesystem function.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2009-08-27 18:17:32 -03:00
Eric Sandeen 76f4a7b9fa Test a few very basic defragmentation scenarios.
This test creates some files, runs defrag on them,
and compares the before/after fragmentation as well
as file md5sums and timestamps.

The test currently expects to find e4defrag in
/usr/bin

It should be relatively easy to add more interestingly
fragmented files to the tests, as well as to test
that memory-mapped files aren't touched, etc - 
but this gives us a framework.

V2: remount before checking file contents, and create
common.defrag.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2009-08-10 13:10:26 -05:00
Christian Kujau 3ba1b10a87 don't fail if nslookup is not found
When nslookup is not available, execution would stop. This patch moves the
check for nslookup and the _get_fqdn function into the ./new script (since
this is the only place where it's used) and we don't fail any more but try
to find out our FQDN without nslookup.

Signed-off-by: Christian Kujau <lists@nerdbynature.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2009-07-20 11:31:39 +02:00
Eric Sandeen af2ea2e779 Fix syntax error in common.rc
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
2009-06-25 10:14:24 -05:00
Eric Sandeen 6db07ff49e basic fallocate boundary tests
This is just like test 072, but using fallocate instead
of the xfs ioctl.  Just very basic fallocate tests.

Also adds a "prealloc" group (./check -g prealloc)
and a _require_xfs_io_falloc check.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2009-06-24 12:58:30 -05:00
Theodore Ts'o 74dee07d4a fix _require_scratch test for extN, resierfs, gfs2, and btrfs
The extN, reiserfs, gfs2, and btrfs filesysytem types should use the
same check for a block device as XFS and UDF, and not the test for
NFS, which was checking for host:/foo/bar/baz when checking for a
scratch device.

Also, the NFS logic was also incorrect, in that it would allow a
zero-length SCRATCH_DEV to continue.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Felix Blyakher <felixb@sgi.com>
2009-06-20 19:05:45 +02:00
Eric Sandeen 485db19e3c enable generic filesystems to be checked
This includes a fair bit of rearranging to avoid code duplication,
but the goal is to allow 'fsck -n -t $FSTYP $device' to be run on
any generic filesystem.

Any FS for which this doesn't work will need it's own fsck routine.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2009-06-02 22:42:21 +02:00
Eric Sandeen 288f540b00 xfstests: initial reiserfs, gfs2, btrfs support
This patch gets reiserfs, gfs2, and btrfs off the ground.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2009-05-29 15:12:28 -05:00
Eric Sandeen 5c8455c5d9 Set default extN mount options
ext2/3/4 don't support acls & attrs w/o specific mount
options, so make those the default whenever we mount
these filesystems.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2009-05-28 11:39:20 -05:00
Eric Sandeen 914f5260d0 Set up testdir for generic filesystems
Make the default filesystem testdir setup the same as
what xfs did; simply set up the testdir variable.

Update the comment for UDF & NFS, as to why they are
currently doing something different.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2009-05-28 11:38:16 -05:00
Eric Sandeen 7737a5d7fb Support "generic" filesystem type
Create a new "generic" _supported_fs type for tests
which are not really filesystem-specific.  "generic"
tests do expect that acl & attr are supported though.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2009-05-28 11:37:38 -05:00
Dave Chinner e714acc0ef reduce the number of processes forked
One of the big cpu time consumers when running xfsqa on UML
is forking of new processes. when looping lots of times,
using 'expr' to calculate the loop counter increment means
we fork at least once every loop. using shell builtins means
that we don't fork and many tests run substantially faster.

Some tests are even runnable with this modification. e.g. 110
went from taking 4500s to run down to 9s with the loop iterators
changed to avoid forking.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2009-03-25 20:53:36 +01:00
Christoph Hellwig 2370bb6d22 xfstests: a couple of fixes for external logs
Fix a couple of issues when running xfsqa with external logs:

 - update the 096 golden output for the external log case
 - add a new _scratch_xfs_check similar to _scratch_xfs_logprint and
   _scratch_xfs_repair that take the log device into account and use it
   in test 134
 - use _scratch_xfs_repair in test 202 to fix it for external log
   devices

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
2009-03-21 21:04:13 +01:00
David Disseldorp 72b4e6cb85 A recent change to XFSQA to resolve mkfs option conflicts means mkfs can be run twice per _scratch_mkfs_xfs:
$MKFS_XFS_PROG $SCRATCH_OPTIONS $MKFS_OPTIONS $extra_mkfs_options $SCRATCH_DEV
    local mkfs_status=$?

    # a mkfs failure may be caused by conflicts between
    # $MKFS_OPTIONS and $extra_mkfs_options

    if [ $mkfs_status -ne 0 -a ! -z "$extra_mkfs_options" ]; then
        echo "** mkfs failed with extra mkfs options added to \"$MKFS_OPTIONS\" by test $seq **" \
            >>$here/$seq.full
        echo "** attempting to mkfs using only test $seq options: $extra_mkfs_options **" \
            >>$here/$seq.full
        $MKFS_XFS_PROG $SCRATCH_OPTIONS $extra_mkfs_options $SCRATCH_DEV
        mkfs_status=$?
    fi

In the case of a failure caused by conflict between $MKFS_OPTIONS and $extra_mkfs_options,
the mkfs output is shown twice, first off is the failed mkfs output, secondly the resolved mkfs output.

This can cause QA failures for a number of tests, particularly those that filter the mkfs output.

This change shows only the applied (final) mkfs output from _scratch_mkfs_xfs.
Merge of master-melb:xfs-cmds:29041a by kenmcd.
2007-07-03 04:01:25 +00:00
David Disseldorp 498eb16b55 Currently there are a few ways mkfs options are specified in XFSQA:
1) suite wide MKFS_OPTIONS are specified before tests are run
	e.g.
	vimes:/home/fsgqa/kali/xfsqa/xfstests # export MKFS_OPTIONS="-l size=100m"

2) test wide MKFS_OPTIONS are specified during a particular test
	e.g. 119
	export MKFS_OPTIONS="-l version=2,size=1200b,su=64k"

3) mkfs options are appended by a test at mkfs time
	e.g.  083
	_scratch_mkfs_xfs -dsize=$fsz,agcount=$ags  >>$seq.full

(4) Another form of appending is just appending to MKFS_OPTIONS directly
	e.g. 	114:export MKFS_OPTIONS="$MKFS_OPTIONS -i parent=1"
		115:export MKFS_OPTIONS="$MKFS_OPTIONS -i paths=1"

Conflicts between mkfs options specified with method 1 & 3 are common.
960377 	XFSQA 041, 042 - mkfs fails with large log size MKFS_OPTIONS.

This change means if a mkfs fails where mkfs options have been appended by a test (method 3),
The mkfs is retried using only those options defined by the test.

occurances of method 4 (in test 114 & 115) are also changed to use method 3.

$seq.full logs the fact that a mkfs options conflict has occured.
Merge of master-melb:xfs-cmds:28601a by kenmcd.

  append -i parent mkfs option using _scratch_mkfs_xfs -i parent...
  rather than export MKFS_OPTIONS="$MKFS_OPTIONS -i parent=1.
  this avoids mkfs option conflicts
2007-05-17 15:58:12 +00:00