FS/XFS testing framework
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: fstests@vger.kernel.org, Filipe Manana <fdmanana@suse.com>
Subject: [PATCH] create _require_metadata_journaling, and add to tests that need it
Date: Mon, 23 Feb 2015 15:50:11 -0600	[thread overview]
Message-ID: <54EBA093.3050401@redhat.com> (raw)

Many tests use dm_flakey to trigger log replay, but for filesystems that
don't support metadata journaling, this causes failures when it shouldn't.
(i.e. we can hardly test log replay if there is no log).

For some tests they actually sync everything we care about, and find
inconsistencies elsewhere, but I erred on the side of simply not running
the test in most cases.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---



diff --git a/common/rc b/common/rc
index 7449a1d..015d2f5 100644
--- a/common/rc
+++ b/common/rc
@@ -2340,6 +2340,35 @@ _require_norecovery()
 	_scratch_unmount
 }
 
+# Does this filesystem support metadata journaling?
+# We exclude ones here that don't; otherwise we assume
+# that it does, so the test will run, fail, and motivate
+# someone to update this test for a new filesystem.
+#
+# It's possible that TEST_DEV and SCRATCH_DEV have different
+# features (it'd be odd, but possible) so check $TEST_DEV
+# by default, but we can optionaly pass any dev we want.
+_require_metadata_journaling()
+{
+	if [ -z $1 ]; then
+		DEV=$TEST_DEV
+	else
+		DEV=$1
+	fi
+
+	case "$FSTYP" in
+	ext2|vfat|msdos)
+		_notrun "$FSTYP does not support metadata journaling"
+		;;
+	ext4)
+		# ext4 could be mkfs'd without a journal...
+		_require_dumpe2fs
+		$DUMPE2FS_PROG -h $DEV | grep has_journal || \
+			_notrun "$FSTYP on $DEV not configured with metadata journaling"
+		;;
+	esac
+}
+
 # Does fiemap support?
 _require_fiemap()
 {



diff --git a/tests/generic/034 b/tests/generic/034
index 4ec1db8..966b3d2 100755
--- a/tests/generic/034
+++ b/tests/generic/034
@@ -53,6 +53,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 
diff --git a/tests/generic/040 b/tests/generic/040
index 5f10f48..c841fbc 100755
--- a/tests/generic/040
+++ b/tests/generic/040
@@ -62,6 +62,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 
diff --git a/tests/generic/041 b/tests/generic/041
index 36a6f42..f38b662 100755
--- a/tests/generic/041
+++ b/tests/generic/041
@@ -66,6 +66,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 
diff --git a/tests/generic/056 b/tests/generic/056
index 9ec00e3..8bb1522 100755
--- a/tests/generic/056
+++ b/tests/generic/056
@@ -55,6 +55,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 
diff --git a/tests/generic/057 b/tests/generic/057
index 4c0ffd1..3b9f89e 100755
--- a/tests/generic/057
+++ b/tests/generic/057
@@ -55,6 +55,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 
diff --git a/tests/generic/311 b/tests/generic/311
index 85e52e8..d21b6eb 100755
--- a/tests/generic/311
+++ b/tests/generic/311
@@ -56,6 +56,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch_nocheck
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 # xfs_io is not required for this test, but it's the best way to verify
 # the test system supports fallocate() for allocation
diff --git a/tests/generic/321 b/tests/generic/321
index 3bd6b12..c821a23 100755
--- a/tests/generic/321
+++ b/tests/generic/321
@@ -45,6 +45,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch_nocheck
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 
diff --git a/tests/generic/322 b/tests/generic/322
index 3ec2387..4c0edf6 100755
--- a/tests/generic/322
+++ b/tests/generic/322
@@ -45,6 +45,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch_nocheck
 _require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
 


             reply	other threads:[~2015-02-23 21:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-23 21:50 Eric Sandeen [this message]
2015-02-23 22:49 ` [PATCH] create _require_metadata_journaling, and add to tests that need it Dave Chinner
2015-02-23 22:55 ` [PATCH V2] " Eric Sandeen
2015-02-24  2:31   ` [PATCH V3] " Eric Sandeen
2015-02-24 11:30     ` Filipe David Manana
2015-02-24 10:22 ` [PATCH] " Lukáš Czerner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54EBA093.3050401@redhat.com \
    --to=sandeen@redhat.com \
    --cc=fdmanana@suse.com \
    --cc=fstests@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox