xfs/186: run test on expected XFS configuration
authorEryu Guan <eguan@redhat.com>
Tue, 21 Jun 2016 10:56:37 +0000 (18:56 +0800)
committerEryu Guan <eguan@redhat.com>
Wed, 22 Jun 2016 02:28:18 +0000 (10:28 +0800)
Usually xfs/186 _notrun on crc enabled XFS because of
_require_attr_v1, since v2 attr format is always enabled on v5 XFS.

But when testing on 512B block size XFS, i.e. MKFS_OPTIONS="-m crc=0
-b size=512", test fails. This is because crc enabled XFS was
created in the end, not 512B block size XFS with crc disabled, and
that's not what we want to test.

The reason why _scratch_mkfs_xfs creates a different XFS than
expected is that, it may ignore $MKFS_OPTIONS if mkfs fails due to
conflicts between $MKFS_OPTIONS and the provided mkfs options.

In the case of xfs/186, "-b size=512" conflicts with "-i size=512",
and the first mkfs fails, then it ends up with a 4k block size XFS
with crc enabled (the default config).

Fix it by checking crc enablement status and attr version in the
test, to make sure it's testing on expected XFS.

Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
tests/xfs/186

index 9b64d6c957d13e60e5f3ac6cbe74b34338977219..192a8c8225d71f68153b99c59acb44c7dba0b163 100755 (executable)
@@ -156,7 +156,20 @@ _require_attr_v1
 
 rm -f $seqres.full
 
-_scratch_mkfs -i attr=2,size=512 -l lazy-count=1 >/dev/null 2>&1
+_scratch_mkfs -i attr=2,size=512 -l lazy-count=1 | _filter_mkfs \
+       >>$seqres.full 2>$tmp.mkfs
+# import crc status and attr version
+. $tmp.mkfs
+
+# _scratch_mkfs may ignore $MKFS_OPTIONS if mkfs fails due to conflicts between
+# $MKFS_OPTIONS and the provided mkfs options, which could result in creating
+# an XFS we don't want. Check crc status and attr version to be sure.
+if [ $_fs_has_crcs -eq 1 ]; then
+       _notrun "attr v1 not supported on $SCRATCH_DEV"
+fi
+if [ $attr -ne 2 ]; then
+       _notrun "need attr v2 on $SCRATCH_DEV"
+fi
 
 # set inum to root dir ino
 # we'll add in dirents and EAs into the root directory