xfstests-dev.git
7 years agoxfstests: use value of FSTYP if defined externally
David Sterba [Fri, 24 Jan 2014 01:05:01 +0000 (12:05 +1100)]
xfstests: use value of FSTYP if defined externally

The initial value of FSTYP is unconditionally set to 'xfs' and the
filesystem type is taken from the TEST_DEV. This could lead to confusion
if the device hasn't been formatted yet, eg. an empty image in VM, or
a different test setup took place before.

Now one can specify the desired FSTYP in advance and be safe. If unset,
the fallback to TEST_DEV type continues to work.

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
7 years agoxfstests: don't suggest to run full diff when DIFF_LENGTH is 0
David Sterba [Fri, 24 Jan 2014 01:04:33 +0000 (12:04 +1100)]
xfstests: don't suggest to run full diff when DIFF_LENGTH is 0

If DIFF_LENGTH is set to 0, the full output is available and the message
does not make sense.

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
7 years agoxfstests: add test for btrfs incremental send infinite loop issue
Filipe David Borba Manana [Fri, 24 Jan 2014 01:04:18 +0000 (12:04 +1100)]
xfstests: add test for btrfs incremental send infinite loop issue

Regression test for btrfs' incremental send feature:

1) Create several nested directories;

2) Create a read only snapshot;

3) Change the parentship of some of the deepest directories in a reverse
   way, so that parents become children and children become parents;

4) Create another read only snapshot and use it for an incremental send
   relative to the first snapshot.

At step 4 btrfs' send entered an infinite loop, increasing the memory it
used while building path strings until a krealloc was unable to allocate
more memory, which caused a warning dump in dmesg.

The following linux kernel patch fixes this issue.

   Btrfs: fix infinite path build loops in incremental send
   (https://patchwork.kernel.org/patch/3522361/)

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
7 years agogeneric/204: use fixed log size for XFS
Dave Chinner [Mon, 20 Jan 2014 06:22:37 +0000 (06:22 +0000)]
generic/204: use fixed log size for XFS

In changing the default log sizes in mkfs, the freespace
calculations in generic/204 are no longer valid and so it fails with
ENOSPC before ti has finished creating the necessary files.. Make
the test use a fixed log size of 5MB for XFS 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>
7 years agoxfs/104: use fixed log size
Dave Chinner [Mon, 20 Jan 2014 06:22:36 +0000 (06:22 +0000)]
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>
7 years agoxfs: support xfs_metadump with external logs
Dave Chinner [Mon, 20 Jan 2014 06:22:35 +0000 (06:22 +0000)]
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>
7 years agoxfs/073, 208: remove .full output before starting the test
Dave Chinner [Mon, 20 Jan 2014 06:22:34 +0000 (06:22 +0000)]
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>
7 years agoxfs: add fsstress/recovery test
Dave Chinner [Mon, 20 Jan 2014 06:22:33 +0000 (06:22 +0000)]
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>
7 years agoxfs: New _require_* tests for CRC enabled filesystems
Dave Chinner [Mon, 20 Jan 2014 06:22:32 +0000 (06:22 +0000)]
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>
7 years agoxfs: test scratch device mkfs features
Dave Chinner [Mon, 20 Jan 2014 06:22:31 +0000 (06:22 +0000)]
xfs: test scratch device mkfs features

Some filesystem features are not compatible with certain tests, and
so we need to do require tests to determine if they are supported.
Some of these incompatibilities might be a result of optional mkfs
parameters specified in MKFS_OPTIONS. In this case, we don't want
scratch_mkfs_xfs stripping MKFS_OPTIONS and saying the feature is
supported when the next _scratch_mkfs command in the test will
result in a different mkfs command line.

Hence add a "mkfs supported" function to run a non-destructive mkfs
test to determine if the feature is supported by the current test's
mkfs configuration.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoext4: regression test for ext4 resize with non-extent files
Eric Sandeen [Mon, 20 Jan 2014 07:09:27 +0000 (07:09 +0000)]
ext4: regression test for ext4 resize with non-extent files

Regression test for:

c5c72d8 ext4: fix online resizing for ext3-compat file systems

Signed-off-by: Eric Sandeen <esandeen@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agobtrfs: sparse copy between different filesystems/mountpoints
Koen De Wit [Mon, 20 Jan 2014 02:56:37 +0000 (13:56 +1100)]
btrfs: sparse copy between different filesystems/mountpoints

Check if creating a sparse copy ("reflink") of a file on btrfs
expectedly fails when it's done between different filesystems or
different mount points of the same filesystem.

For both situations, these actions are executed:
   - Copy a file with the reflink=auto option.
     A normal copy should be created.
   - Copy a file with the reflink=always option. Should result in
     error.

[sandeen: mostly cosmetic changes]

Signed-off-by: Koen De Wit <koen.de.wit@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: moving and deleting sparse copies on btrfs
Koen De Wit [Mon, 20 Jan 2014 02:56:36 +0000 (13:56 +1100)]
btrfs: moving and deleting sparse copies on btrfs

Moving and deleting cloned ("reflinked") files on btrfs:
   - Create a file and a reflink
   - Move both to a directory
   - Delete the original (moved) file, check that the copy still exists.

[sandeen: mostly cosmetic changes]

Signed-off-by: Koen De Wit <koen.de.wit@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: sparse copy of a directory tree on btrfs
Koen De Wit [Mon, 20 Jan 2014 02:56:36 +0000 (13:56 +1100)]
btrfs: sparse copy of a directory tree on btrfs

Tests file clone functionality of btrfs ("reflinks") on directory trees.
   - Create directory and subdirectory, each having one file
   - Create 2 recursive reflinked copies of the tree
   - Modify the original files
   - Modify one of the copies

[sandeen: mostly cosmetic changes]

Signed-off-by: Koen De Wit <koen.de.wit@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: simple sparse copy testcase for btrfs
Koen De Wit [Mon, 20 Jan 2014 02:56:34 +0000 (13:56 +1100)]
btrfs: simple sparse copy testcase for btrfs

Tests file clone functionality of btrfs ("reflinks"):
   - Reflink a file
   - Reflink the reflinked file
   - Modify the original file
   - Modify the reflinked file

[sandeen: add helpers, make several mostly-cosmetic
 changes to the original testcase]

Signed-off-by: Koen De Wit <koen.de.wit@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agolsqa.pl: update for new tests layout
David Sterba [Mon, 20 Jan 2014 02:28:39 +0000 (13:28 +1100)]
lsqa.pl: update for new tests layout

Accepted parameter types:
- nothing - list all tests from all subdirectories in tests/*
- tests/DIR - list all tests from DIR
- tests/DIR/123 - show header from single test

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agocheck: accept tests/ prefix for test name on commandline
David Sterba [Mon, 20 Jan 2014 02:28:39 +0000 (13:28 +1100)]
check: accept tests/ prefix for test name on commandline

Just for convenience to let tab completion or shell globs work (files
that are not in the group file are ignored).

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoMakefile: fix minor build warning
David Sterba [Mon, 20 Jan 2014 02:28:38 +0000 (13:28 +1100)]
Makefile: fix minor build warning

Make in the toplevel directory tries to process the 'group' file that
existed in the previous file layout

$ make
 sed: can't read group: No such file or directory
 sed: can't read group: No such file or directory
 ...

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoxfstests: allow override of XFS_IOC_DIOINFO
Eric Sandeen [Mon, 20 Jan 2014 02:28:38 +0000 (13:28 +1100)]
xfstests: allow override of XFS_IOC_DIOINFO

This change allows xfstests runs to simulate apps
which don't bother to call XFS_IOC_DIOINFO, and simply
issue DIO in sizes and alignments of its own choosing.

So i.e.:

# export XFS_DIO_MIN=512

prior to an xfstests run, and these test binaries
should issue 512-aligned DIOs instead of whatever
XFS_IOC_DIOINFO says (i.e. instead of maybe 4k).

(This is in preparation for allowing 512 IOs on
"advanced format" 512/4k disks, when xfs has an
internal 4k sector size).

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoxfs/049, 073: use MKFS_XFS_PROG where appropriate
Eric Sandeen [Mon, 20 Jan 2014 02:28:38 +0000 (13:28 +1100)]
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>
8 years agobtrfs/001: filter subvol delete output
Anand Jain [Mon, 20 Jan 2014 02:28:38 +0000 (13:28 +1100)]
btrfs/001: filter subvol delete output

btrfs/001 is failing as the below btrfs-progs patch changed the
output during subvol delete.
Patch :
btrfs-progs: add options to set commit mode after subvol delete

adding it to the filter

Signed-off-by: Anand Jain <Anand.Jain@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs/006: fails with mixed-mode/small disks
Anand Jain [Mon, 20 Jan 2014 02:28:38 +0000 (13:28 +1100)]
btrfs/006: fails with mixed-mode/small disks

as of now the script does not filter 0.00 size  in the
filesystem show output, which is the case in multi-disk
mixed-mode (that is default group type for small disks)

Signed-off-by: Anand Jain <Anand.Jain@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: test send issue with non-aligned clone operations
Filipe David Borba Manana [Mon, 20 Jan 2014 02:28:38 +0000 (13:28 +1100)]
btrfs: test send issue with non-aligned clone operations

Test for an issue in btrfs send where it sent clone operations to user
space with a range (offset + length) that was not aligned with the block
size. This caused the btrfs receive command to send such clone operations
to the ioctl clone API, which would return -EINVAL errors to btrfs receive,
causing the receive command to abort immediately.

This corresponding btrfs linux kernel patch that fixes this issue is at:

https://patchwork.kernel.org/patch/3470401/

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoaio-stress: use calloc for thread_info array
Jeff Mahoney [Mon, 20 Jan 2014 02:28:27 +0000 (13:28 +1100)]
aio-stress: use calloc for thread_info array

The thread_info array is assumed to be initialized to 0s, but
that causes a segfault when MALLOC_PERTURB_ is set.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
8 years agocommon: Enhance the scratch dev pool and deletable device check
Miao Xie [Mon, 20 Jan 2014 01:52:21 +0000 (12:52 +1100)]
common: Enhance the scratch dev pool and deletable device check

_require_scratch_dev_pool() checks the devices number in
SCRATCH_DEV_POOL, but it's not enough since some btrfs RAID10 tests
needs 4 devices, but when 3 or less devices are provided, the check is
useless and related test case will fail(btrfs/003 btrfs/011 btrfs/023).

Also _require_deletable_scratch_dev_pool only checks whether it is
virtul, like virtio(not including virtio-scsi) disk will pass the check
but is unable to delete.

This patch enhance _require_scratch_dev_pool by add optional $1 as
needed device number to do extra check.
And enhance _require_deletable_scratch_dev_pool by directly check
/sys/class/block/$DEV/device/delete file.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
8 years agobtrfs/022: fix failed case with qgroup limit test
Wang Shilong [Mon, 20 Jan 2014 01:49:16 +0000 (12:49 +1100)]
btrfs/022: fix failed case with qgroup limit test

To have noexceed test, we should clear data before and then retry.
However, when we are near to quota limit, we may fail to truncate/remove
data before, so we restart everthing here.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agogeneric/321, 322: do not remove lost+found
Lukas Czerner [Mon, 20 Jan 2014 01:48:33 +0000 (12:48 +1100)]
generic/321, 322: do not remove lost+found

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agogeneric/322: use _filter_scratch()
Lukas Czerner [Mon, 20 Jan 2014 01:47:56 +0000 (12:47 +1100)]
generic/322: use _filter_scratch()

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agocommon: Filter out lost+found directory from _ls_l() output
Lukas Czerner [Mon, 20 Jan 2014 01:46:51 +0000 (12:46 +1100)]
common: Filter out lost+found directory from _ls_l() output

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoxfs: disable group/project quotas along with fsstress
Jie Liu [Mon, 20 Jan 2014 01:46:01 +0000 (12:46 +1100)]
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>
8 years agoxfs: verify turn group/project quotas off while user quotas is on
Jie Liu [Mon, 20 Jan 2014 01:44:43 +0000 (12:44 +1100)]
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>
8 years agoxfs: refactor xfs/299 for crc feature pre-checkup
Jie Liu [Mon, 20 Jan 2014 01:44:02 +0000 (12:44 +1100)]
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>
8 years agocommon: introduce two pre-checkup routines for xfs crc specified testing
Jie Liu [Mon, 20 Jan 2014 01:42:46 +0000 (12:42 +1100)]
common: introduce two pre-checkup routines for xfs crc specified testing

Introduce two pre-checkup routines _require_xfs_mkfs_crc as well
as _require_xfs_crc to verify if mkfs.xfs and kernel are have crc
feature or not.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoAdd udf support into _scratch_mkfs_sized
Jan Kara [Mon, 23 Dec 2013 22:53:51 +0000 (22:53 +0000)]
Add udf support into _scratch_mkfs_sized

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Ben Myers <bpm@sgi.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoFix output parsing in _check_udf_filesystem()
Jan Kara [Mon, 23 Dec 2013 22:53:50 +0000 (22:53 +0000)]
Fix output parsing in _check_udf_filesystem()

Move of tests into separate subdirectories broke sed(1) expression in
_check_udf_filesystem(). Actually use of sed in that place was rather
stupid so just replace it with plain echo.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Ben Myers <bpm@sgi.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Add tmpfs support
Boris Ranto [Tue, 10 Dec 2013 20:11:52 +0000 (20:11 +0000)]
xfstests: Add tmpfs support

This is just a simple patch to get the tmpfs working as a target file
system. The patch copies the way nfs is handled in xfstests.

I didn't change the xfstests logic to recognize a proper SCRATCH_DEV.
Hence, the SCRATCH_DEV for tmpfs should be in nfs form (with ':' sign
in it) in order for this to work properly.

Signed-off-by: Boris Ranto <branto@redhat.com>
Signed-off-by: Junho Ryu <jayr@google.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: set umask to avoid spurious generic/314 test failures
Eric Whitney [Sat, 21 Sep 2013 21:17:35 +0000 (21:17 +0000)]
xfstests: set umask to avoid spurious generic/314 test failures

Generic/314 can fail when the group write file mode bit for "subdir" does not
match that found in the golden output, as has been seen in ext4 regression
testing.  It appears that the golden output for generic/314 was taken on a
system where the $qa_user's umask cleared that mode bit - most likely, where
the umask was 022.  Depending upon the distro, it's not uncommon for a user's
default umask to have a different value, such as 002.  When that's the case,
we get a false negative failure when the group write mode bit for "subdir" is
not cleared.  This failure is unrelated to the value of the SGID mode bit
that is the object of this test.

We could either require that $qa_user's account be configured in advance with
a umask of 022, or explicitly set a umask value compatible with the golden
output when creating "subdir".  The latter option is more robust.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agogeneric: require filesize to be greater than fs block size in
Stanislav Kholmanskikh [Wed, 11 Dec 2013 11:21:28 +0000 (11:21 +0000)]
generic: require filesize to be greater than fs block size in

 generic/240
Date: Wed, 11 Dec 2013 11:21:28 -0000
From: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>

If we execute generic/240 on a fs which has its fs block size greater
than 64k (for example, NFS), this test will fail with:

  io_submit failed: Invalid argument

This will happen because in src/aio-dio-regress/aiodio_sparse2.c this
expression

  num_aio = filesize / step;

will set num_aio to 0 and this means that no io_prep_write() will happen
before calling io_submit().

Fixing filesize to be 8 * "fs block size".

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstest generic/280: wait for setquota to finish before umount
Guangyu Sun [Thu, 24 Oct 2013 17:56:21 +0000 (17:56 +0000)]
xfstest generic/280: wait for setquota to finish before umount

While running xfstest 280, we occasionally got such error:

  setquota: Cannot set quota for user 0 from kernel on
  /dev/mapper/xfstests-disk1: No such device
  setquota: Cannot write quota for 0 on /dev/mapper/xfstests-disk1: No such
  device

setquota calls syscall quotactl, and the kernel will wait for the filesystem
to unfreeze and then performs command. Then kernel will double check if the
device is still mounted. If not, an ENODEV will be thrown.

While in the testcase, unfreeze and umount might be so close that the device
got umounted before quotactl is performed.

Reported-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Signed-off-by: Guangyu Sun <guangyu.sun@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redaht.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agogeneric: add a rename fsync test
Josef Bacik [Mon, 2 Dec 2013 23:29:37 +0000 (10:29 +1100)]
generic: add a rename fsync test

Btrfs was screwing up rename+fsync, add some regression tests for
the various scenarios it was screwing up.

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agogeneric: add new test for fsync() on directories
Josef Bacik [Mon, 2 Dec 2013 23:29:36 +0000 (10:29 +1100)]
generic: add new test for fsync() on directories

Btrfs had some issues with fsync()'ing directories and fsync()'ing
after renames.  These three new tests cover the 3 different issues
we were seeing.  This breaks out the dmflakey stuff into a common
helper to be shared between generic/311 and this new test.

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: add wrong compression type regression test
Miao Xie [Mon, 2 Dec 2013 23:29:34 +0000 (10:29 +1100)]
btrfs: add wrong compression type regression test

Btrfs would crash when the users wrote some data into a file with
compress flag but the compression of the fs was disabled. This test
case is to check this bug still happen or not.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoxfs: verify xfs_quota commands against invalid mount path
Jie Liu [Mon, 2 Dec 2013 23:29:33 +0000 (10:29 +1100)]
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>
8 years agogeneric: use correct size value in generic/273
Brian Foster [Mon, 2 Dec 2013 23:29:32 +0000 (10:29 +1100)]
generic: use correct size value in generic/273

generic/273 factors the "space available" output from df into the
calculation for the size of the origin data set. Recent commit

  bfdd1e72b358 xfstests: added -P option to $DF_PROG

... converted the use of 'df' to $DF_PROG. This implicitly adds the
-T parameter to add the fs type column, shifts the available space
column over by one and unintentionally causes 273 to look at "used
space" and create too small of a data set for a useful test.
Realign to the available space value.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: test if raids are actually created
Anand Jain [Mon, 2 Dec 2013 23:29:31 +0000 (10:29 +1100)]
btrfs: test if raids are actually created

A test case to verify if the given raid option for the
metadata and data are actually created.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agobtrfs: add basic qgroup testing
Josef Bacik [Mon, 2 Dec 2013 23:29:29 +0000 (10:29 +1100)]
btrfs: add basic qgroup testing

We have no tests for testing qgroups, so we have no way of knowing
if our changes are breaking qgroups at all.  Get the ball rolling
with some basic functionality tests, these just make sure we can
enable quotas and do rescan and get sane values back, as well as
make sure the limiting stuff works properly.

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
8 years agoxfstests: stop special casing nfs and udf
Christoph Hellwig [Mon, 2 Dec 2013 23:29:26 +0000 (10:29 +1100)]
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>
8 years agoxfstests generic/320: heavy rm workload test
Eryu Guan [Tue, 12 Nov 2013 07:59:44 +0000 (07:59 +0000)]
xfstests generic/320: heavy rm workload test

This test is based on generic/273, a regression test for commit

9a3a5da xfs: check for stale inode before acquiring iflock on push

On unpatched kernel, rm processes would hang.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: _filter_mkfs should consume input from stdin for non-xfs fs
Eryu Guan [Tue, 12 Nov 2013 07:59:18 +0000 (07:59 +0000)]
xfstests: _filter_mkfs should consume input from stdin for non-xfs fs

_filter_mkfs is a filter so that it should read from stdin first
before printing anything out. Otherwise the command prior to the
pipeline may get EPIPE.

I saw this when testing extN with generic/204, _scratch_mkfs_sized was
unable to create fs because of EPIPE, then _scratch_mount failed.

generic/204 12s ... [failed, exit status 1] - output mismatch (see /root/xfstests/results//generic/204.out.bad)
    --- tests/generic/204.out   2013-11-01 16:47:56.728591856 +0800
    +++ /root/xfstests/results//generic/204.out.bad     2013-11-01 22:52:53.207828779 +0800
    @@ -1,2 +1,7 @@
     QA output created by 204
    -*** done
    +mount: wrong fs type, bad option, bad superblock on /dev/sda6,
    +       missing codepage or helper program, or other error
    +       In some cases useful info is found in syslog - try
    +       dmesg | tail  or so
    +

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: add a helper to get the minimum dio size
Christoph Hellwig [Wed, 6 Nov 2013 10:59:32 +0000 (10:59 +0000)]
xfstests: add a helper to get the minimum dio size

Various tests opencode checks to find out the minimum support direct I/O
size.  Replace those with a generic helper that handles network filesystems as
well.  Also remove the Linux 2.4 workaround we had in once place.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: add regression test for running btrfs balance and defrag concurrently
Liu Bo [Thu, 31 Oct 2013 09:34:22 +0000 (09:34 +0000)]
xfstests: add regression test for running btrfs balance and defrag concurrently

The test aims to trigger snapshot-aware defrag path in write endio by
running balance, which is not expected and leads to a crash.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: fix compile error of src/fssum.c on bigendian host
Eryu Guan [Tue, 12 Nov 2013 04:16:53 +0000 (04:16 +0000)]
xfstests: fix compile error of src/fssum.c on bigendian host

Definition of htonll() is needed on bigendian host too, otherwise
src/fssum.c won't compile on ppc64/s390x hosts.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Acked-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: added -P option to $DF_PROG
Stanislav Kholmanskikh [Tue, 29 Oct 2013 09:25:24 +0000 (09:25 +0000)]
xfstests: added -P option to $DF_PROG

Added -P option to $DF_PROG and changed the invocation of
'df' command in generic/{251,260,273,275} testcases
with $DF_PROG.

Otherwise the testcases will fail if the scratch
device has a long name (for example, if it's an LVM volume).
Because df outputs its usage stats with two lines:

/dev/mapper/xfstests-disk1
                       3030800      4608   2868908   1% /tmp/mnt/disk1

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: generic/273: use src/feature -o
Stanislav Kholmanskikh [Mon, 11 Nov 2013 09:34:54 +0000 (09:34 +0000)]
xfstests: generic/273: use src/feature -o

Due to partially committed series (fd080d64b6e9677cb9d0a15dc7e308b6ca0e273f)
generic/273 test uses '_no_of_online_cpus' function which is not defined.

Now it's safe to switch it to 'src/feature -o'.

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: src/feature.c: print a number of online CPUs
Stanislav Kholmanskikh [Tue, 29 Oct 2013 10:03:59 +0000 (10:03 +0000)]
xfstests: src/feature.c: print a number of online CPUs

For this purpose we use sysconf() as it is the
preferred platform neutral interface for getting this
sort of information.

Based on Dave Chinner proposal.

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: posix_memalign and io_submit do not set errno
Christoph Hellwig [Thu, 7 Nov 2013 17:00:45 +0000 (17:00 +0000)]
xfstests: posix_memalign and io_submit do not set errno

posix_memalign and io_submit do not set errno, but rather return the
error respectively the negated error directly.

Found this out while figuring out why 240 reported an impossible error
from io_submit when run on NFS.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstest: fix filtering in 206 for ftype and projid32bit
Mark Tinguely [Thu, 24 Oct 2013 21:56:42 +0000 (21:56 +0000)]
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>
8 years agoxfstests: fix _filter_ro_mount and make xfs/200 pass with old mount
Eryu Guan [Thu, 31 Oct 2013 10:55:16 +0000 (10:55 +0000)]
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>
8 years agoxfstests: generic/317 use relative paths to avoid traversal permission problems
Dwight Engen [Wed, 30 Oct 2013 18:30:50 +0000 (18:30 +0000)]
xfstests: generic/317 use relative paths to avoid traversal permission problems

On Wed, 30 Oct 2013 09:24:41 -0700
Christoph Hellwig <hch@infradead.org> wrote:

> On Wed, Oct 30, 2013 at 09:19:55AM -0700, Christoph Hellwig wrote:
> > On Mon, Oct 28, 2013 at 11:43:28AM -0400, Dwight Engen wrote:
> > > Hi Cristoph, on my system (where fsgqa is id 501) the one liner
> > > the test is running is:
> > >
> > > # ./src/nsexec -s -U -M "0 501 1000" -G "0 501 1000" ./src/lstat64
> > > Usage: lstat64 [-t] filename ...
> >
> > The id here is 1000 and the following works just fine:
> >
> > /src/nsexec -s -U -M "0 1000 1000" -G "0 1000 1000" ./src/lstat64
> > Usage: lstat64 [-t] filename ...
>
> But:
>
> ./src/nsexec -s -U -M "0 1000 1000" -G "0 501
> 1000" /root/xfstests/src/lstat64 execvp: Permission denied
>
>
> Which is probably due to:
> root@vm:~/xfstests# ls -ld ~
> drwx------ 6 root root 4096 Oct 30 16:24 /root
>
>
> Guess we need a relative path here?

Yep, that makes sense. I modeled this on 219 which was using
$here/src/lstat64 but didn't think about the fact that in my test fsgqa
might have traversal problems. I see plenty of other tests are using
relative paths so the following patch should (hopefully) fix 317 for you.
Thanks for tracking it down.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: fix mkfs filter on xfs/096
Dave Chinner [Wed, 30 Oct 2013 03:58:55 +0000 (03:58 +0000)]
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>
8 years agoxfstests: generic/317 318 need procfs uid_map/gid_map support
Eryu Guan [Tue, 29 Oct 2013 12:17:48 +0000 (12:17 +0000)]
xfstests: generic/317 318 need procfs uid_map/gid_map support

generic/317 and 318 need /proc/<pid>/[uid_map|gid_map], test fail on
older kernels without that support.

Add a _require_ugid_map() function and called by 317 and 318.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: generic/318 use symbolic namespaced ids
Dwight Engen [Thu, 24 Oct 2013 20:11:55 +0000 (20:11 +0000)]
xfstests: generic/318 use symbolic namespaced ids

Christoph, I think the following should fix 318 for you.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests btrfs/020: test device replace on RO btrfs
Eryu Guan [Wed, 23 Oct 2013 16:44:43 +0000 (16:44 +0000)]
xfstests btrfs/020: test device replace on RO btrfs

btrfs replace on readonly fs should not be allowed.

Regression test case for commit:
bbb651e Btrfs: don't allow the replace procedure on read only filesystems

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: generic/273: do not use /proc/cpuinfo
Stanislav Kholmanskikh [Wed, 23 Oct 2013 11:58:44 +0000 (11:58 +0000)]
xfstests: generic/273: do not use /proc/cpuinfo

The content of /proc/cpuinfo file is platform-dependent.
So we can not use it reliably to check a number of available cpus.
It would be better to use sysfs interface, as _no_of_online_cpus() does.

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied...
Rich Johnston [Mon, 21 Oct 2013 20:02:32 +0000 (20:02 +0000)]
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>
8 years agoxfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
Rich Johnston [Mon, 21 Oct 2013 20:02:31 +0000 (20:02 +0000)]
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>
8 years agoxfstests: add regression test for kernel bz 60673 V2
Josef Bacik [Mon, 21 Oct 2013 17:52:08 +0000 (17:52 +0000)]
xfstests: add regression test for kernel bz 60673 V2

There was a problem with send trying to overwrite a file that wasn't actually
the same.  This is a test to check this particular case where receive fails when
it should succeed properly.  I tested this to verify it fails without my fix and
passes with my fix.

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: stat the dev we're removing to make sure its' really gone
Josef Bacik [Mon, 21 Oct 2013 16:13:53 +0000 (16:13 +0000)]
xfstests: stat the dev we're removing to make sure its' really gone

I've been periodically failing btrfs/003 because my box sometimes takes a little
longer to unregister the device when we remove it and so the output from btrfs
dev show doesn't match what we are wanting since it still sees the device.  To
fix this just stat and sleep if we still see the device node and only continue
once udev or whatever actually removes the device node so that we don't get
random failures.

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: use -F for mkfs.ext4 in btrfs/012
Josef Bacik [Mon, 21 Oct 2013 16:05:16 +0000 (16:05 +0000)]
xfstests: use -F for mkfs.ext4 in btrfs/012

I noticed this test was hanging because mkfs.ext4 wanted to make sure it was ok
to mkfs an entire device.  We need -F so it doesn't ask this question.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: wipefs new device in btrfs/003
Josef Bacik [Mon, 21 Oct 2013 15:53:16 +0000 (15:53 +0000)]
xfstests: wipefs new device in btrfs/003

We changed btrfs device add to check and see if there is an existing fs on the
device we are adding, so you now have to do -f if you want to do this.  In order
to get around checking to see if we have this version of btrfs-progs just wipefs
the device we're adding to make sure the device add will pass no matter which
version of btrfs-progs you have.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: use minimum log size in xfs/016
Brian Foster [Fri, 18 Oct 2013 17:16:14 +0000 (17:16 +0000)]
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>
8 years agoxfstests: btrfs/018: a regression test for subvolume rename
Josef Bacik [Fri, 18 Oct 2013 18:26:30 +0000 (18:26 +0000)]
xfstests: btrfs/018: a regression test for subvolume rename

A user reported a regression where we could no longer rename a subvolume into
another subvolume.  This is a test case to do just that to make sure we don't
regress on this again.

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: btrfs/017: add a regression test for snapshot creation
Josef Bacik [Fri, 18 Oct 2013 18:26:29 +0000 (18:26 +0000)]
xfstests: btrfs/017: add a regression test for snapshot creation

We had a regression where you couldn't snapshot a file system if you mounted it
ro and then remounted it rw.  This is a test that does just that to make sure we
don't have this problem again.  I ran the test without the fix and it blew up,
and then applied the fix and verified that it passed.  Thanks,

Reviewed-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: btrfs/016: a hole punching send test
Josef Bacik [Fri, 18 Oct 2013 18:26:26 +0000 (18:26 +0000)]
xfstests: btrfs/016: a hole punching send test

I recently added a patch to avoid sending holes with btrfs send, but I screwed
it up by not sending a hole when we did a hole punch.  This is an xfstest
version of the test I wrote to show that I had a bug and to verify I was fixing
it properly.  This test properly fails with my old patch and passes with my good
patch.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: fix btrfs/002 to not use the scratch dev pool
Josef Bacik [Fri, 18 Oct 2013 18:26:23 +0000 (18:26 +0000)]
xfstests: fix btrfs/002 to not use the scratch dev pool

This test doesn't need the scratch dev pool and it also doesn't call
_require_scratch_dev_pool, so just kick out the scratch dev pool part of the
test.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
Eric Sandeen [Fri, 18 Oct 2013 16:23:14 +0000 (16:23 +0000)]
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>
8 years agoxfstests: btrfs/015: add a regression test for snapshot creation
Josef Bacik [Fri, 27 Sep 2013 13:55:37 +0000 (13:55 +0000)]
xfstests: btrfs/015: add a regression test for snapshot creation

We had a regression where you couldn't snapshot a file system if
you mounted it ro and then remounted it rw.  This is a test that
does just that to make sure we don't have this problem again.  I
ran the test without the fix and it blew up, and then applied the
fix and verified that it passed.

[rjohnston: renumbered test]

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: make fs for 274 larger
Josef Bacik [Fri, 21 Jun 2013 20:31:10 +0000 (20:31 +0000)]
xfstests: make fs for 274 larger

Btrfs will default to mixed block groups for 1 gigabyte file systems and
smaller, which means data and metadata share the same area.  This makes
generic/274 fail for us because we cannot reserve enough metadata space to do
our writes.  Bumping the scratch fs up to 2 gigabytes allows us to do our normal
metadata/data separation and allows us to pass this test.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: add specific test for default ACL inheritance
Filipe David Borba Manana [Wed, 16 Oct 2013 16:25:18 +0000 (16:25 +0000)]
xfstests: add specific test for default ACL inheritance

This test is motivated by an issue found by a btrfs user, addressed
and described by the following Linux kernel patch:

https://patchwork.kernel.org/patch/3046931/

The steps to reproduce the issue on btrfs are the following:

$ mkfs.btrfs -f /dev/loop0
$ mount /dev/loop0 /mnt
$ mkdir /mnt/acl
$ setfacl -d --set u::rwx,g::rwx,o::- /mnt/acl
$ getfacl /mnt/acl
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::---

$ mkdir /mnt/acl/dir1
$ getfacl /mnt/acl/dir1
user::rwx
group::rwx
other::---

After unmounting and mounting again the filesystem, getfacl returned the
expected default ACL for the subdirectory:

$ umount /mnt/acl
$ mount /dev/loop0 /mnt
$ getfacl /mnt/acl/dir1
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:other::---

This means that the underlying ACL xattr was persisted correctly but
the in memory representation of the inode had (incorrectly) a NULL ACL.

[rjohnston: renumbered test to 319]

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: fix xfs/205 for new log size defaults
Eric Sandeen [Wed, 9 Oct 2013 19:48:45 +0000 (19:48 +0000)]
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>
8 years agoxfstests: an regression test for btrfs balance
Gui Hecheng [Wed, 9 Oct 2013 02:16:01 +0000 (02:16 +0000)]
xfstests: an regression test for btrfs balance

Originally, when executing "btrfs balance" right after
"btrfs subvolume snaphot" & "btrfs subvolume delete",
a kernel BUG arises.

This problem is caused by the patch:
[PATCH 1/2] Btrfs: fix for patch "cleanup: don't check
the same thing twice"
The commit id: 48475471728f060bfd2e686f592ef208d3ba8b7d
(in kernel/git/torvalds/linux.git)

handled by the patch:
[PATCH 2/3] Btrfs: fix oops caused by the space balance
and dead roots

[rjohnston: change test number to 14]

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Reviewed-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Incorrect check for gdbm/ndbm.h
Stanislav Kholmanskikh [Mon, 14 Oct 2013 15:01:39 +0000 (15:01 +0000)]
xfstests: Incorrect check for gdbm/ndbm.h

Current version of AC_PACKAGE_WANT_NDBM has following bugs:
* a typo (',') next to 'gdbm/ndbm.h', so C compiler fails
  with a syntax error when trying to compile
  "#include <gdbm/ndbm.h,>"

* autoconf never defines HAVE_GDBM_NDBM_H_ because it
  converts both header names (gdbm/ndbm.h, gdbm-ndbm.h)
  to GDBM_NDBM_H

Because of these bugs 'dbtest' can't be compiled on systems where
'gdbm-ndbm.h' header is absent but 'gdbm/ndbm.h' is present.

Fixed this.

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: handle xfs_quota output w/ long devicenames
Eric Sandeen [Sun, 6 Oct 2013 22:46:19 +0000 (22:46 +0000)]
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>
8 years agoxfstests: add filter to 200 accommodate changed mount output
Eric Sandeen [Sun, 6 Oct 2013 21:28:01 +0000 (21:28 +0000)]
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>
8 years agoxfstests: mkfs scratch device in generic/294
Eric Sandeen [Sun, 6 Oct 2013 20:42:31 +0000 (20:42 +0000)]
xfstests: mkfs scratch device in generic/294

test 294 is using the scratch device w/o mkfs-ing it first,
this runs the risk of following a test which completely
fills the fs, causing 294 to fail.

add "rm -f $seqres.full" as well, it was growing on every run.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: restrict 259 device sizes to multiples of 512
Eric Sandeen [Sun, 6 Oct 2013 02:40:00 +0000 (02:40 +0000)]
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>
8 years agoxfstests generic/260: get correct trimmed bytes
Eryu Guan [Fri, 4 Oct 2013 06:32:56 +0000 (06:32 +0000)]
xfstests generic/260: get correct trimmed bytes

Starting from util-linux v2.23 fstrim(1) reports trimmed bytes
differently, e.g.

new fstrim: /mnt/ext4: 9.7 GiB (10411118592 bytes) trimmed
old fstrim: /mnt/ext4: 10411118592 bytes were trimmed

generic/260 reports syntax error

    +./tests/generic/260: line 111: [: 9.7: integer expression expected
    +./tests/generic/260: line 121: [: 9.7: integer expression expected
    +./tests/generic/260: line 183: [: 9.7: integer expression expected

Add a new filter called _filter_fstrim in common/filter and get the
correct trimmed bytes in generic/260, so the test passes with both old
and new fstrim.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: btrfs/013 regression test for prealloc with balance
Josef Bacik [Fri, 27 Sep 2013 14:27:33 +0000 (14:27 +0000)]
xfstests: btrfs/013 regression test for prealloc with balance

We had a regression where we were not copying csums properly when balancing a
prealloc extent.  Unfortunately the way this showed up the most was with the
csum simply missing, which doesn't result in an error to userspace.  So I've
copied what generic/310 does and check dmesg for csum errors when the test
starts and then compare that count to the csum errors after the test finishes to
see if there was a problem.  This approach caught the error without my fix, and
then passed fine with my fix in place but with the previous errors still in
dmesg.  Thanks,

[rjohnston: changed test number to 13]

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: add xfs/291 to auto group
Eric Sandeen [Thu, 26 Sep 2013 14:14:08 +0000 (14:14 +0000)]
xfstests: add xfs/291 to auto group

291 passes just fine w/ current xfsprogs on non-crc filesystems,
so add it to the auto group.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: unify apostrophes in output files
Tomas Racek [Thu, 19 Sep 2013 16:20:37 +0000 (16:20 +0000)]
xfstests: unify apostrophes in output files

With coreutils v8.16 the style of apostrophes changed from `word' to
'word'. This is breaking some tests which use the older form.

This commit introduces function changes the golden output of the
affected tests and introduces a filter for the older style output.

[dchinner: modified to use a global filter in check rather than
per-test filters]
[rjohnston: minor comment change]

Signed-off-by: Tomas Racek <tracek@redhat.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: fix set-default test in btrfs/001
Josef Bacik [Wed, 18 Sep 2013 20:48:27 +0000 (20:48 +0000)]
xfstests: fix set-default test in btrfs/001

We were actually testing this improperly, there was a bug in the set default
code so we weren't actually honoring the 0 subvolid properly.  To fix this we
need to get the subvolid for the subvol we want to set as the default and use
that in the command.  With this patch we now pass again with the fix for the 0
subvolid.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Tested-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: check for valid input to _scratch_mkfs_sized
Eric Sandeen [Tue, 17 Sep 2013 19:30:41 +0000 (19:30 +0000)]
xfstests: check for valid input to _scratch_mkfs_sized

_scratch_mkfs_sized requires an integer number of bytes
as input; if it's given something else, catch it and _notrun.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Refactor code for obtaining test list
Lukas Czerner [Thu, 11 Jul 2013 10:37:58 +0000 (10:37 +0000)]
xfstests: Refactor code for obtaining test list

Put the code for obtaining the list of test into one place which makes
things more readable. It will also allow us to re-init the list in the
future if we need it.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Run all tests when nothing is specified
Lukas Czerner [Thu, 11 Jul 2013 10:37:56 +0000 (10:37 +0000)]
xfstests: Run all tests when nothing is specified

Currently when no tests or test groups are specified xfstests will
silently test nothing. Interestingly enough when test groups to exclude
are specified the rest of the tests will be run.

This commit changes that to run all possible tests (for a given file
system) when no specific tests has been specified. This matches the old
xfstests behaviour.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: fix fsstress usage() output
Eric Sandeen [Mon, 16 Sep 2013 22:00:37 +0000 (22:00 +0000)]
xfstests: fix fsstress usage() output

The show_ops() output should come as part of the -f option
help.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: btrfs/011 improvement for compressed filesystems
Stefan Behrens [Fri, 13 Sep 2013 10:27:21 +0000 (10:27 +0000)]
xfstests: btrfs/011 improvement for compressed filesystems

Josef noticed that using /dev/zero to generate most of the test
data doesn't work if someone overrides the mount options to
enable compression. The test that performs a cancellation failed
because the replace operation was already finished when the
cancel request was executed.

Since /dev/urandom is too slow to generate multiple GB, the
way how the filesystem data is generated is completely changed
with this patch. Now /dev/urandom is used to generate one 1MB
file and this file is copied up to 2048 times. /dev/zero is no
longer used.

The runtime of the test is about the same as before. Compression
works now, online duplication will again cause issues, but
we don't have online duplication today.

Reported-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
Reviewed-by: Jan Schmidt <list.xfs@jan-o-sch.net>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Make 204 work with different block and inode sizes.
Dave Chinner [Tue, 3 Sep 2013 00:14:55 +0000 (00:14 +0000)]
xfstests: Make 204 work with different block and inode sizes.

Otherwise it fails with ENOSPC on CRC enabled filesystems because
of the larger inode size.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: Obey mkfs options for sized filesystems on XFS
Dave Chinner [Tue, 3 Sep 2013 00:14:54 +0000 (00:14 +0000)]
xfstests: Obey mkfs options for sized filesystems on XFS

The XFS implementation of _scratch_mkfs_sized ignores MKFS_OPTIONS
when a custom block size is set and so isn't testing things like
CRCs on such sized filesytsems. Fix this by ensuring we don't try to
override the block size is it is set in MKFS_OPTIONS. xfs/204 shows
this problem.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests: generic/204 should call _check_scratch_fs
Dave Chinner [Tue, 3 Sep 2013 00:14:53 +0000 (00:14 +0000)]
xfstests: generic/204 should call _check_scratch_fs

Because if it corrupts the filesystem it currently goes undetected.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
8 years agoxfstests btrfs/012: test btrfs-convert
Eric Sandeen [Sun, 4 Aug 2013 20:12:31 +0000 (20:12 +0000)]
xfstests btrfs/012: test btrfs-convert

Turns out btrfs-convert broke on July 3, and lo! we
do not have a regression test, and now we have one,
and there was much rejoicing.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>