Dmitry Monakhov [Wed, 20 Feb 2013 10:42:08 +0000 (10:42 +0000)]
xfstests: hardcode fops for determinable fsstests runs
106,107 and 117 are frozen tests which use known seed, it is
reasonable to explicitly hardcode file operations in order to avoid
implicit changes caused by future changes in fsstress.
NOTE: options generated like follows: fsstress -S c $ORIG_ARGS
Dmitry Monakhov [Wed, 20 Feb 2013 10:42:07 +0000 (10:42 +0000)]
xfstest: add configurable load factors
Most stress test has probable behavior, the longer test run the
larger corner cases will be cover. It is reasonable to allow
user to provide some sort of system load factor.
This patch introduce two global variables
LOAD_FACTOR: Usually means factor number of running tasks
TIME_FACTOR: Usually means factor of run time, or number of operations
If not specified both variables defined to 1, so original behavior
preserved.
TODO: Change all stress tests to use this variables
Dmitry Monakhov [Wed, 20 Feb 2013 10:42:06 +0000 (10:42 +0000)]
xfstests: add fio requirement V2
FIO is very flexible io generator, I would call it IO swiss knife.
Currently we have tons of hardcoded application which reproduces
some predefined scenario. This approach has obvious disadvantages
1) Lack of flexibility: one written it is hard to modify it in future
2) Code base is large, many routines written again and again
At the same time add new fio based test, just add simple INI file.
This greatly simplifies code review. I do believe that some day we will
replace most of hardcoded io binaries with fio.
One who is planning to run $FIO_PROG should first check that system
contains appropriate version which is able to handle jobfile
for example: _require_fio 286-job.fio
Tomas Racek [Sun, 3 Feb 2013 10:19:58 +0000 (10:19 +0000)]
xfstests: 298: Test that FS sends discard requests only on free blocks
V1->V2: Change way of testing suggested by Dave Chinner
1. Create image file with FS on it
2. Call fstrim to discard free blocks
3. Check that every punched hole in the image file is in the area
that is marked as free
Andrew Dahl [Mon, 14 Jan 2013 18:17:09 +0000 (12:17 -0600)]
xfstests: Refactor release scripts to conform to using git archive
Refactored release scripts to conform to using git archive
When generating a release, there is a risk of some files being
stale, such as configure and the m4/autotools temp files. This
is fixed with a clean at the beginning of release generation.
In addition, there is no uniformity in the current method of
source tar generation between xfs utilities. Using git archive
solves this issue across all utilities.
Signed-off-by: Andrew Dahl <adahl@sgi.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Reported-by: fugazzi® <fugazzi99@gmail.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Eric Sandeen [Wed, 2 Jan 2013 22:28:32 +0000 (16:28 -0600)]
xfstests: test multiply-logged inodes & continued transactions
New test for 2 xfs_logprint error cases:
As xlog_print_trans_inode() stands today, it will error
out if more than one flag is set on f->ilf_fields:
xlog_print_trans_inode: illegal inode type
but this is a perfectly valid case, to have i.e. a data and
an attr flag set.
and:
xlog_print_trans_inode() has a special case for 2
specific op_head->oh_len lengths. If it matches
sizeof(xfs_inode_log_format_32_t) or
sizeof(xfs_inode_log_format_64_t), it assumes that
it's got an inode, and attempts to convert it and
print it accordingly.
However, if we arrive here via an op header which
is continued, then the length is simply a continuation
of the previous op, and it might *randomly* match the
size of one of the inode log formats, and thus get parsed
incorrectly.
Test both of these cases.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Satoru Takeuchi [Sun, 9 Dec 2012 23:37:41 +0000 (08:37 +0900)]
xfstests: Change the interpreter of ltp/runtest.sh to bash
In some environment, Running 080 fails with many errors.
It happens because ltp/rwtest.sh assumes /bin/sh is `bash' and it's not
always true (ex. /bin/sh is `dash' in Debian.) This script should
explicitly declare that its interpreter is `bash'.
Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Eric Sandeen [Wed, 9 Jan 2013 16:17:59 +0000 (10:17 -0600)]
xfstests: test EROFS vs. EEXIST when creating on an RO filesystem
TBH, I don't know if this is posix-specified, but I found out the
hard way that when trying to re-create existing files on a readonly
filesystem, some apps expect/handle EEXIST, but fail on EROFS.
This will test mkdir, mknod, and symlinks for that behavior.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Eric Sandeen [Wed, 9 Jan 2013 16:13:26 +0000 (10:13 -0600)]
xfstests: move _filter_ln to common.filter
Move test 103's _filter_ln to common.filter and make
it more generic (not depending on 103's pathnames).
TBH I've lost my children's treasury of ln failure
messages, so I'm not sure this catches all variants;
it's hard to work backwards from the existing sed script
to what the various outputs were. This works for me
but might need more tweaking on other systems.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Currently the entire diff is printed to the stdout in the case that the
test output template differs from the actual test run. However in some
cases the diff can be _very_ long. This commit changes it so that we
print only first 10 lines of the diff.
Also indent the diff output from the left by four spaces for better
output readability.
Signed-off-by: Lukas Czerner <lczerner@redhat.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Jan Kara [Tue, 18 Dec 2012 10:35:50 +0000 (11:35 +0100)]
xfstests: Use qa_user and qa_group for test 219
Test 219 requires a special user. Use $qa_user and $qa_group (added in this
patch) for that purpose instead of hardcoded uid & gid. This also fixes
a false failure when repquota does not report quota for users not in passwd.
Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Rich Johnston [Fri, 9 Nov 2012 13:24:01 +0000 (13:24 +0000)]
xfstests: resolve compiler warnings
This patch resolves the following compiler/configure warnings:
configure: WARNING: unrecognized options: --enable-lib64
warning: 'xxxx' may be used uninitialized in this function [-Wuninitialized]
warning: variable 'xxx' set but not used [-Wunused-but-set-variable]
warning: call to function 'foo' without a real prototype [-Wunprototyped-calls]
Signed-off-by: Rich Johnston <rjohnston@sgi.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Rich Johnston [Fri, 9 Nov 2012 13:24:00 +0000 (13:24 +0000)]
xfstests: remove unused conditional NO_XFS
This patch removes the unused conditional NO_XFS which was added with
commit 332ee29d1ab7a8690ca8f6d06b0d116e3a4a4f0f:
"xfstests updates - rework build to be like other xfs packages ..."
Signed-off-by: Rich Johnston <rjohnston@sgi.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
sat [Mon, 19 Nov 2012 03:26:54 +0000 (03:26 +0000)]
xfstests: fix to build src/realpath and the correct the existence of target devices
Hi Rich, Eric
(2012/10/27 1:46), Rich Johnston wrote:
> On 06/08/2010 03:03 PM, Eric Sandeen wrote:
>> If you try running xfstests on lvm volumes which are symlinks,
>> it'll fail to run several tests because our _require_scratch
>> framework ultimately uses lstat not stat, and does not think
>> the lvm device (which is usually a symlink to a dm-X device)
>> is a block device. Sigh.
>>
>> Last try at this - just resolve any symlinked devicenames
>> into their realpath(3) in common.config.
>>
>> This actually seems to work.
>>
>> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
>>
>> ---
>>
>>
>> diff --git a/common.config b/common.config
>> index 926846b..e5b2483 100644
>> --- a/common.config
>> +++ b/common.config
>
> Looks good
>
> Reviewed-by: Rich Johnston <rjohnston@sgi.com>
>
> Eric,
>
> This patch has been committed to git://oss.sgi.com/xfs/cmds/xfstests, master branch, commit ID d5ea873f.
Andrew Dahl [Wed, 14 Nov 2012 18:57:35 +0000 (18:57 +0000)]
xfstests: xfs_tosspages() test addition
Tests the XFS_IOC_ZERO_RANGE ioctl by way of the "xfs_io zero" utility
to ensure it is tossing the expected ranges.
The ranges tested are [0,1] [0,4095] [0,4096] [0,4097] [4095,8191]
[4095,8192] [4095,8193] [4096,8192] [1024,4096]
Signed-off-by: Andrew Dahl <adahl@sgi.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Mark Tinguely <tinguely@sgi.com>
wenqing.lz [Sun, 21 Oct 2012 13:15:09 +0000 (13:15 +0000)]
xfstests: get return value in seek_sanity_test
In seek_sanity_test getting return value is missing. Thus we couldn't
get the result unless someone read the log file (e.g. # 285).
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Jie Liu <jeff.liu@oracle.com> Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Rich Johnston [Tue, 6 Nov 2012 20:23:59 +0000 (14:23 -0600)]
Revert "xfstests: optionally run all tests under quota"
Signed-off-by: Rich Johnston <rjohnston@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
This reverts commit edd6bcf9c478036df9056df05924f791a0d322dd which caused
the following tests to fail:
142.out.bad:Can't initialize the DMAPI
143.out.bad:Can't initialize the DMAPI
144.out.bad:Can't initialize the DMAPI
145.out.bad:Can't initialize the DMAPI
146.out.bad:Can't initialize the DMAPI
147.out.bad:Can't initialize the DMAPI
150.out.bad:Can't initialize the DMAPI
155.out.bad:Can't initialize the DMAPI
156.out.bad:Can't initialize the DMAPI
157.out.bad:Can't initialize the DMAPI
158.out.bad:Can't initialize the DMAPI
161.out.bad:Can't initialize the DMAPI
168.out.bad:Can't initialize the DMAPI
175.out.bad:Can't initialize the DMAPI
176.out.bad:Can't initialize the DMAPI
185.out.bad:Can't initialize the DMAPI
Eric Sandeen [Thu, 25 Oct 2012 17:19:24 +0000 (17:19 +0000)]
xfstests: test ext4 statfs
Calculating free blocks in ext[234] is surprisingly hard, since
by default we report "bsd" style df which doesn't count filesystem
"overhead" blocks as used.
With a lot of code dedicated to sorting out what to report as
free, things tend to go wrong surprisingly often.
Here's a test to actually try to stop the next regression. ;)
NB: For bsddf, the kernel currently does not count journal blocks
as overhead; it probably should. But the test below looks to have
the result within 1% of perfection, so it still passes even if
the kernel doesn't count the journal against free blocks.
Eric Sandeen [Tue, 9 Feb 2010 19:26:31 +0000 (19:26 +0000)]
xfstests: optionally run all tests under quota
This patch might be a little heavy handed, but it seems to
work; if you set USE_QUOTA=1 in your environment, all
tests should be run with quota on and enabled.
This will hopefully help shake out some of the ext4
quota problems, although one needs to keep an eye
on the console to see whether warnings scroll by.
Eric Sandeen [Tue, 8 Jun 2010 20:03:39 +0000 (20:03 +0000)]
xfstests: resolve symlinked devices to real paths
If you try running xfstests on lvm volumes which are symlinks,
it'll fail to run several tests because our _require_scratch
framework ultimately uses lstat not stat, and does not think
the lvm device (which is usually a symlink to a dm-X device)
is a block device. Sigh.
Last try at this - just resolve any symlinked devicenames
into their realpath(3) in common.config.
Eric Sandeen [Thu, 16 Sep 2010 18:07:47 +0000 (18:07 +0000)]
xfstests: add local.config example
I think it'd be useful to have a local.config template in the
git repo, to avoid having to re-read the README each time
to remember the required environment variable names.
Thoughts? Am I just lazy? :)
Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Rich Johnston <rjohnston@sgi.com> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
xfstests: Assume yes when test device is not partitioned
If an entire device used for file system creation, the mkfs.ext2/3/4
asks for confirmation before proceeding. Since the device is
configured for testing it is safe to assume positive response
during mkfs.
The patch also replaces hard coded mkfs path with MKFS_PROG variable.
Mike Frysinger [Mon, 24 Sep 2012 23:39:38 +0000 (19:39 -0400)]
xfstests: install shared libs with +x bits
These are shared libs w/executable code, so make sure they have +x bits
set on them. Some kernels will proactively disallow executable mmaps if
the files lack +x bits. It's also the right thing to do.
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Lukas Czerner [Tue, 16 Oct 2012 09:41:33 +0000 (09:41 +0000)]
xfstests: Test FITRIM where length is smaller than FSB
This tests corner case in FITRIM implementation where range size is
smaller than file system block or zero. In this case FITRIM should fail
with EINVAL.
The problem was spotted in xfs and ext4 where in case of length = 0 the
'end' variable underflowed. In case of length smaller than 1 FSB FITRIM
finished successfully, but we really should rather return EINVAL in both
cases.
(This patch has to be applied after 'Use upstream version of fstrim
instead of the local one')
Tomas Racek [Tue, 9 Oct 2012 13:24:10 +0000 (13:24 +0000)]
Use upstream version of fstrim instead of the local one
Local version of fstrim was dropped so that we depend on upstream
version which is now available via FSTRIM_PROG. _require_fstrim was
added to check if fstrim is available in the system and
_test_batched_discard to check if we can run fstrim on certain
mountpoint.
Also tests 251 and 260 were modified to reflect this change.
Eric Sandeen [Fri, 28 Sep 2012 03:33:45 +0000 (03:33 +0000)]
xfstests 068: Add mmap load
Test 068 is the go-to test for freeze deadlock coverage;
unfortunately it only uses fsstress, which doesn't do any
mmap IO.
Using the existing fstest binary gets us a cheap mmap
exerciser as well.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Jeff Liu [Sat, 2 Jun 2012 14:33:06 +0000 (14:33 +0000)]
xfstests: fix a compile warning at seek_sanity_test.c
Fix the compiler report warning at seek_sanity_test.c:
seek_sanity_test.c:46:3: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'int'
Signed-off-by: Jie Liu <jeff.liu@oracle.com> Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Eric Sandeen [Wed, 19 Sep 2012 22:53:56 +0000 (17:53 -0500)]
xfstests: add _require_freeze and minor cleanups
More filesystems have grown freeze capability, so rather than
hardcoding several in _supported_fs, make tests 068 and 280
generic and then add a new _require_freeze() which checks whether
the fs under test can be frozen before beginning the test.
Minor other cleanups to 280:
- remove extra _supported_fs line
- clear $seq.full before beginning
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Tao Ma [Fri, 14 Sep 2012 11:03:12 +0000 (19:03 +0800)]
xfstests: 275, Don't remove all the files in SCRATCH_MNT.
After the volume is mkfsed, it should have no other files that
need to be rmed. And what's more, it makes ext4 complain since
lost+found is also removed.
So remove this useless "rm -rf $SCRATCH_MNT/*".
Signed-off-by: Tao Ma <boyu.mt@taobao.com> Reviewed-by: Eric Sandeen <sandeen@sandeen.net> Signed-off-by: Ben Myers <bpm@sgi.com>
Jan Kara [Thu, 16 Aug 2012 09:14:35 +0000 (11:14 +0200)]
xfstests: Make test 272 work for ext3
ext3 does not support direct IO for files with data journalling. This
confuses test 272. Make the test check whether open succeeds and perform
the writing only if it does.
Thanks for Dave Chinner for suggesting a simpler way to fix the test.
Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Eric Sandeen [Wed, 12 Sep 2012 18:53:27 +0000 (13:53 -0500)]
285: Test xfs projid32bit functionality a bit more extensively
The test covers several areas including enabling projid32bit
functionality dynamically by xfs_admin, dumping, restoring, quota
reporting and xfs_db projid values reporting.
This test case hits a bug with xfsdump/xfsrestore process on a
projid32bit enabled filesystem.
Eric Sandeen: change {16,32}less filenames to {16,32}bit, add quick group
Signed-off-by: Boris Ranto <ranto.boris@gmail.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Eric Sandeen [Tue, 11 Sep 2012 01:46:10 +0000 (20:46 -0500)]
275: Fix to test and pass properly
This is a significant rework of 275, which made too many
assumptions about details of space usage and failed on several
filesystems (it passed on xfs, but only by accident).
This new version tries to leave about 256k free, then tries
a single 1M IO, and fails only if 0 bytes are written.
It also sends a lot more to $seq.full for debugging on failure,
doesn't rm -rf $SCRATC_MNT, and fixes a few other stylistic things.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Rich Johnston [Tue, 28 Aug 2012 17:26:08 +0000 (17:26 +0000)]
xfstests: Use installed libraries only
The xfstests autotools currently searches locally in
../{acl,attr,dmapi,xfsprogs}
for libraries that xfstests depends upon, in addition to searching for them in
their regular installed locations on a system, e.g. /usr/lib. It appears this
feature was added (but not documented) so that xfs developers can build and run
xfstests without having to install the libraries. This can lead to trouble if
you expect that xfstests is using the versions of the libraries installed on
the system.
If a local library was found and not installed, libtool will create a wrapper
script to call the binary from the .libs directory. This patch will remove
searching for local libraries so that the installed libraries are always used.
Signed-off-by: Rich Johnston <rjohnston@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Ben Myer <bpm@sgi.com>
Rich Johnston [Tue, 28 Aug 2012 17:26:07 +0000 (17:26 +0000)]
xfstests: Use libtool to install applications
This patch replaces the INSTALL macro with LTINSTALL so that libtool is used
to install the applications. Libtool will install the binary from the proper
location and display a warning if any shared library dependancies are not
properly installed. This ensures that a libtool wrapper shell script is not
installed in place of application when libtool wrappers are being used.
Signed-off-by: Rich Johnston <rjohnston@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Ben Myer <bpm@sgi.com>
Dave Chinner [Thu, 26 Jul 2012 08:35:06 +0000 (08:35 +0000)]
xfstests: speed up 227 by using preallocation
Test 227 (fsr test) creates fragmented fre space by doing lots of
small writes to sparse offsets ni a file. This seeks the disk heads
around a lot writing data. We don't need to write data - just
trigger allocation. Hence use preallocation instead of data writes
and run at allocation speed rather than data write speed.
Dave Chinner [Thu, 26 Jul 2012 08:35:05 +0000 (08:35 +0000)]
xfstests: _check_quota_usage needs to unmount to get XFS quotacheck
Remount won't run a quota check - it's only done during mount. Hence
all quota tests using this check function are not actually
validating XFS filesystems right now.
Dave Chinner [Thu, 26 Jul 2012 08:35:04 +0000 (08:35 +0000)]
xfstests: loop devices vs umount stupidity
Unmounting a fileystem mounted on a loop device doesn't always tear
down the loop device. Its racy, and it causes tests to randomly
fail.
To avoid that, we have to use umount -d to ensure that we destroy
loop devices under filesystems in case the kernel doesn't tear it
down automatically to prevent the test from failing. However, if
the kernel does tear it down automatically, umount now issues a
warning that it couldn't tear down the loop device because it
couldn't find it, and that causes the test to fail. *facepalm*
So, convert all the loop device unmounts to use -d, and direct the
output of all of them to /dev/null.
Dave Chinner [Thu, 26 Jul 2012 08:35:03 +0000 (08:35 +0000)]
xfstests: test 110 sometimes fails to unmount scratch dev
It runs a bunch of rm processes in the background, then immediately
calls _check_scratch_fs without waiting for them to complete, hence
the unmount can fail with a busy filesystem error.
common.attr: get block size of test fs not root fs
stat -f $TEST_DEV shows block size of the fs where $TEST_DEV
resides, usually it is the root fs. This will fail 020 on non-4096 block
size ext2/3/4, also 4096 block size ext2/3/4 on ppc64.
Instead, stat -f $TEST_DIR will show block size of the fs to be tested.
Tested and passed on ext2/3/4, xfs, btrfs with all supported block size.
Cc: Eric Sandeen <esandeen@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Boris Ranto [Wed, 30 May 2012 22:39:29 +0000 (17:39 -0500)]
016: Do not discard blocks at mkfs time
The test 016 fills scratch device with some data and then creates xfs fs
on the scratch device. Later, the test assumes that the previously
written data are still written there and checks for them at specific
locations. On ssd drive this will lead to a failure since the blocks are
discarded by default when the mkfs command is run.
This is a more verbose version of the previous patch.
This simple patch that adds -K to stop the discarding (if the mkfs
command supports it) fixed the issue for me:
Signed-off-by: Boris Ranto <branto@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Mark Tinguely [Wed, 23 May 2012 17:21:28 +0000 (12:21 -0500)]
030: fix for new xfs_repair versions
Given that we now drop invalid unlinked inode lists there is no message
to capture. Also add a sed expression to avoid failures on old repair
versions.
Signed-off-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Jan Kara [Thu, 17 May 2012 21:33:23 +0000 (16:33 -0500)]
273: fix failure due to lack of inodes
Test 273 fails for me due to lack of inodes (ext? filesystem is not configured
to have enough inodes for being filled up by 4k files). So change the test
to create larger files so that we don't hit this limit.
Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Eric Sandeen [Tue, 15 May 2012 20:20:05 +0000 (15:20 -0500)]
274: Many fixups
This changes quite a few things about 274 to make it more robust
and useful.
* More comments
* Use xfs_io for falloc (not all systems have /usr/bin/fallocate)
* use _require_xfs_io_falloc to be sure system & fs support preallocation
* Do not remove all of the files in $SCRATCH_MNT/ post-mkfs
* Do not remove all of the files in $SCRATCH_MNT/ on completion
(this breaks e2fsck when lost+found/ goes missing)
* Don't cd into $SCRATCH_MNT
* Try harder to completely fill the fs
* Use a larger preallocated space, and write into all of it (hopefully
avoid just accidentally succeeding by writing into fs reserved
space that may be there)
* Save more output in $seq.full instead of /dev/null
* Fill preallocated space diabolically
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Jan Kara <jack@suse.cz>
Tom Marek [Tue, 15 May 2012 15:48:47 +0000 (10:48 -0500)]
273: fix of reading scratch size and removing lost+found
There were two reasons why test 273 was failing. Firstrly, when running on
ext4 fs it was removing everything from SCRATCH_MNT directory at the beginning
of tests including the lost+found directory. This caused error while checking
scratch fs after finishing test. Secondly, obtaining of the partition size was
not counting with with behaviour of df utility which may split the line containg
informations about one partition when it is too long thus it may have returned
nothing.
First problem was solved with removing all unnecessary rm -rf commands and the
second one was fixed with alternative awk script which is able to deal with
any line splitting possible. Also 'umount $SCRATCH_DEV' was substituted for
'_scratch_unmount'.
Cc: sandeen@sandeen.net Signed-off-by: Tom Marek <tmarek@redhat.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Jeff Liu [Sun, 19 Feb 2012 14:51:43 +0000 (22:51 +0800)]
xfstests: introduce 286 for SEEK_DATA/SEEK_HOLE copy test
Introduce 286 for SEEK_DATA/SEEK_HOLE copy tests.
Signed-off-by: Jie Liu <jeff.liu@oracle.com> Reviewed-by: Rich Johnston <rjohnston@sgi.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Peng Haitao [Thu, 15 Mar 2012 02:25:46 +0000 (10:25 +0800)]
071: make this test work as expected on Linux
When offset + length is overflow of xfs_io builtin pread and pwrite in linux,
the error message should be "Invalid argument".
In 32_bit, offset + length should cause pread and pwrite to error, So the
out should be OK.
The patch fix as following:
- "pwrite64: Invalid argument" will be replaced with "pwrite64: File too large"
- "pread64: Invalid argument" will be replaced with "read 0/xxx bytes at offset <OFFSET>"
- delete _filter_xfs_io
- add auto group
- add 071.out.32
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Fri, 27 Jan 2012 18:34:31 +0000 (12:34 -0600)]
020: make this xattr test generic
020 can be made generic by limiting the total attribute space
used in the tests as appropriate. Unless we know we have a
large-xattr-capable fs, limit total space to a bit under one
fs block.
Now passes for me on ext3, ext4, btrfs, as well as xfs.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Lukas Czerner [Thu, 1 Mar 2012 08:15:16 +0000 (09:15 +0100)]
251: make fstrim call a bit more random
To cover cases when fstrim arguments are not block/block group/file
system size aligned, we can be a bit more random. This commit changes
fstrim argument computing to use $RANDOM bash variable in order to have
different minlen, start, len argument settings and change the full fs
fstrim to be called randomly as well.
Also make kill and wait not complain about non existent process, since
it may have already finished before we attempt to kill it and wait for
it. No reason to fail the test.
Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Ben Myers [Wed, 22 Feb 2012 18:27:14 +0000 (12:27 -0600)]
050: update inode softlimit output
With Mitsuo Hayasaka's kernel patch "xfs: change available ranges of softlimit
and hardlimit in quota check", xfs quota behavior is slightly different.
This needs to be reflected in test 050. The new behavior is that we only start
the timer when we're above soft inode quota, and we don't start the timer when
we're at or below.
Signed-off-by: Ben Myers <bpm@sgi.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Liu Bo [Mon, 6 Feb 2012 08:27:47 +0000 (16:27 +0800)]
251: fix cp -axT problem
When I ran xfstests, 251 got failed cause I use a symlink and
"cp -axT" did not work as wish:
cp: cannot overwrite directory `/mnt/scratch/1' with non-directory
With this patch, 251 has passed.
Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Curt Wohlgemuth [Tue, 7 Feb 2012 19:16:06 +0000 (11:16 -0800)]
fsx: fix msync parameters
This explicitly sends MS_SYNC as the flag to msync() in
fsx.c, in domapwrite(). Without this flag, the memory
written to the mmap'ed region will not be flushed to disk;
in fact, on Linux, calling msync() with a '0' or MS_ASYNC
flag is a no-op.
Signed-off-by: Curt Wohlgemuth <curtw@google.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Stefan Behrens [Thu, 8 Mar 2012 22:27:16 +0000 (16:27 -0600)]
before test execution, print test number to syslog
When the xfstests are executed in a batch (like "check 001-299")
and produce syslog output, it is helpful to know which test was
causing the output. Therefore each time a test is started, a
syslog message is generated that contains the number of the
xfstest.
Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Jeff Moyer [Fri, 2 Mar 2012 20:17:07 +0000 (14:17 -0600)]
113: add testing for O_DIRECT + O_SYNC
This patch adds a couple more aio-stress runs to test 113. The first
simply adds -S, to test out AIO+DIO+O_SYNC. The second adds -S and -o
2, which directs aio-stress to only perform the random write test.
These two tests helped identify several bugs in ext4.
Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Eric Sandeen [Fri, 17 Feb 2012 20:43:12 +0000 (14:43 -0600)]
256: use more specific grep for file size
Removing the "-F" flag in xfs_io changed stat output.
Before the change when -F was used, whether or not the file
was on xfs, it skipped the extra FSGEOM call. Now that -F is
removed, it calls FSGEOM if the file is on an xfs fs. The "size"
grep in test 256 was a bit too loose and matched 2 lines if the
FSGEOM output was present, breaking the test.
A more specific grep for stat.size fixes this.
Reported-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Wed, 8 Feb 2012 18:30:07 +0000 (12:30 -0600)]
068: run fsstress in read/write mode
Jan Kara was testing filesystem freeze, and was consistently locking
up, although my tests of 068 were passing. He pointed out that
he was running in read/write mode, and it was atime updates causing
the trouble. Sure enough, dropping "-w" from fsstress locked me up
too. Change this so we get better (and more realistic) coverage.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
cc: Jan Kara <jack@suse.cz> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Eric Sandeen [Mon, 6 Feb 2012 06:00:52 +0000 (00:00 -0600)]
fsstress: make sync a write op
I was running 068 to test freeze changes, and realized that
"sync" is not in the op list when "-w" (write ops) is specified,
although fsync & fdatasync are. It seems to me that sync should
be a default write op as well.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Eric Sandeen [Fri, 27 Jan 2012 19:05:07 +0000 (13:05 -0600)]
278: Ensure lost+found is not created with wrong link count
xfs_repair was leaving lost+found directory with a wrong link count when a
cleaned inode was re-used to create lost+found. This test case confirm that,
after xfs_repair is executed, the lost+found inode is left in a consistent
state.
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Eric Sandeen [Fri, 27 Jan 2012 18:28:20 +0000 (12:28 -0600)]
062: Sort recursive getfattr output
Test 062 was made "generic" a while back, but it fails on any filesystem
which returns getfattr -R results (aka readdir results) in something
other than inode-order.
With a little awk-fu we can sort the records from getfattr -R so that
the output is the same for xfs as well as ext4, etc.
Also filter out lost+found which extN creates at mkfs time, but
some other filesystems do not.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Fri, 27 Jan 2012 18:26:26 +0000 (12:26 -0600)]
xfstests: mount all filesystem typess with selinux context when needed
For some reason, non-xfs filesystems weren't getting mounted with
the selinux context; perhaps because none of the xattr tests used
to work on anything but xfs?
Anyway, 062 fails for extN unless we mount with the fs-wide
context.
So export SELINUX_MOUNT_OPTIONS for all filesystems.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Miao Xie [Wed, 14 Dec 2011 07:35:20 +0000 (15:35 +0800)]
use btrfsck to check btrfs filesystems
We failed to get fsck program to check the btrfs file system, it is
because btrfs uses its independent check tool which is named btrfsck
to check the file system, so the common checker -- fsck -- could not
find it, and reported there is no checker.
This patch fix it by using btrfsck directly.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Christoph Hellwig <hch@lst.de>