Skip to contentSkip to conversation

shared,ext4: move ext4-specific tests out of shared/

PATCH Superseded Theodore Ts'o 2 participants 9 messages Jun 24, 2019 – Jun 28, 2019

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/5 shared,ext4: move ext4-specific tests out of shared/

The tests shared/{001,003,004,272} test behaviour around the ext4's journal. As such, they are pointless to run on ext2, and ext3 no longer is in kernels newer than 4.3. (And most enterprise distributions have been using ext4 to support the ext3 file system; that capability has been around since 2.6.33.) So we can move these tests out of shared and into the ext4 class of tests:

	shared/001 --> ext4/036
	shared/003 --> ext4/037
	shared/004 --> ext4/038
	shared/272 --> ext4/039
---
 tests/{shared/001 => ext4/036}         | 4 ++--
 tests/ext4/036.out                     | 2 ++
 tests/{shared/003 => ext4/037}         | 4 +---
 tests/ext4/037.out                     | 2 ++
 tests/{shared/004 => ext4/038}         | 2 +-
 tests/ext4/038.out                     | 2 ++
 tests/{shared/272 => ext4/039}         | 2 +-
 tests/{shared/272.out => ext4/039.out} | 2 +-
 tests/ext4/group                       | 4 ++++
 tests/shared/001.out                   | 2 --
 tests/shared/003.out                   | 2 --
 tests/shared/004.out                   | 2 --
 tests/shared/group                     | 4 ----
 13 files changed, 16 insertions(+), 18 deletions(-)
 rename tests/{shared/001 => ext4/036} (92%)
 create mode 100644 tests/ext4/036.out
 rename tests/{shared/003 => ext4/037} (96%)
 create mode 100644 tests/ext4/037.out
 rename tests/{shared/004 => ext4/038} (96%)
 create mode 100644 tests/ext4/038.out
 rename tests/{shared/272 => ext4/039} (97%)
 rename tests/{shared/272.out => ext4/039.out} (72%)
 delete mode 100644 tests/shared/001.out
 delete mode 100644 tests/shared/003.out
 delete mode 100644 tests/shared/004.out
tests/ext4/036 renamed from tests/shared/001 +2 -2
similarity index 92%
rename from tests/shared/001
rename to tests/ext4/036
index bde6e198..60a5224f 100755
@@ -2,9 +2,9 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2015 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test No. 001
+# FS QA Test No. ext4/036 (was shared/001)
 #
-# Test truncate orphan inodes when mounting extN.
+# Test truncate orphan inodes when mounting ext4
 # ext4 used to hit WARNING, this commit fixed the issue
 #
 # 721e3eb ext4: lock i_mutex when truncating orphan inodes
tests/ext4/036.out new file +2 -0
new file mode 100644
index 00000000..ed460d98
@@ -0,0 +1,2 @@
+QA output created by 036
+Silence is golden
tests/ext4/037 renamed from tests/shared/003 +1 -3
similarity index 96%
rename from tests/shared/003
rename to tests/ext4/037
index 761b9691..6a5a801c 100755
@@ -2,15 +2,13 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2015 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test 003
+# FS QA Test ext4/037 (was shared/003)
 #
 # Test mount a needs_recovery partition with noload option.
 # ext4 used to Oops until part of this commit:
 #
 # 744692d ext4: use ext4_get_block_write in buffer write
 #
-# Also test on ext2/3.
-#
 seq=`basename $0`
 seqres=$RESULT_DIR/$seq
 echo "QA output created by $seq"
tests/ext4/037.out new file +2 -0
new file mode 100644
index 00000000..5c3a30a4
@@ -0,0 +1,2 @@
+QA output created by 037
+Silence is golden
tests/ext4/038 renamed from tests/shared/004 +1 -1
similarity index 96%
rename from tests/shared/004
rename to tests/ext4/038
index 3021c85d..893d5727 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2016 Fujitsu.  All Rights Reserved.
 #
-# FS QA Test 004
+# FS QA Test ext4/038 (was shared/004)
 #
 # Regression test for commit:
 # c9eb13a ext4: fix hang when processing corrupted orphaned inode list
tests/ext4/038.out new file +2 -0
new file mode 100644
index 00000000..5e0f13ec
@@ -0,0 +1,2 @@
+QA output created by 038
+Silence is golden
tests/ext4/039 renamed from tests/shared/272 +1 -1
similarity index 97%
rename from tests/shared/272
rename to tests/ext4/039
index b94dfc3c..28db308d 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2006 Silicon Graphics, Inc.  All Rights Reserved.
 #
-# FSQA Test No. 272
+# FSQA Test No. ext4/039 (was shared/272)
 #
 # Test data journaling flag switch for a single file  
 #
tests/ext4/039.out renamed from tests/shared/272.out +1 -1
similarity index 72%
rename from tests/shared/272.out
rename to tests/ext4/039.out
index a9eaf84c..2c8aabad 100644
@@ -1,3 +1,3 @@
-QA output created by 272
+QA output created by 039
 Switch data journalling mode. Silence is golden.
 Check filesystem
tests/ext4/group +4 -0
index d27ec893..6418d82d 100644
@@ -38,6 +38,10 @@
 033 auto ioctl resize
 034 auto quick quota
 035 auto quick resize
+036 auto quick
+037 auto quick
+038 auto quick
+039 auto enospc rw
 271 auto rw quick
 301 aio auto ioctl rw stress defrag
 302 aio auto ioctl rw stress defrag
tests/shared/001.out deleted +0 -2
deleted file mode 100644
index 88678b8e..00000000
@@ -1,2 +0,0 @@
-QA output created by 001
-Silence is golden
tests/shared/003.out deleted +0 -2
deleted file mode 100644
index 6895fc80..00000000
@@ -1,2 +0,0 @@
-QA output created by 003
-Silence is golden
tests/shared/004.out deleted +0 -2
deleted file mode 100644
index af8614ae..00000000
@@ -1,2 +0,0 @@
-QA output created by 004
-Silence is golden
tests/shared/group +0 -4
index b091d911..6f184946 100644
@@ -3,10 +3,7 @@
 # - do not start group names with a digit
 # - comment line before each group is "new" description
 #
-001 auto quick
 002 auto metadata quick log
-003 auto quick
-004 auto quick
 005 dangerous_fuzzers
 006 auto enospc
 007 dangerous_fuzzers
@@ -15,6 +12,5 @@
 010 auto stress dedupe
 011 auto quick
 032 mkfs auto quick
-272 auto enospc rw
 289 auto quick
 298 auto trim
Signature · 1 line
2.22.0
#1 lore raw

PATCH 2/5 check: add ext4 group list when testing ext2 and ext3

Modern kernels use the ext4 implementation to support ext2 and ext3 mounts, and a number of the ext4 tests are actually suitable for ext2 and ext3. We're trying to move tests out of shared anyway, so instead of moving tests from ext4/NNN to shared, let's just include the ext4 group list when FSTYP is ext2 or ext3.

---
 check | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
check +5 -1
index 7511e1ce..2a5d8ab1 100755
@@ -130,6 +130,7 @@ get_group_list()
 	local grp=$1
 	local grpl=""
 	local sub=$(dirname $grp)
+	local fsgroup="$FSTYP"
 
 	if [ -n "$sub" -a "$sub" != "." -a -d "$SRC_DIR/$sub" ]; then
 		# group is given as <subdir>/<group> (e.g. xfs/quick)
@@ -138,7 +139,10 @@ get_group_list()
 		return
 	fi
 
-	for d in $SRC_GROUPS $FSTYP; do
+	if [ "$FSTYP" = ext2 -o "$FSTYP" = ext3 ]; then
+	    fsgroup=ext4
+	fi
+	for d in $SRC_GROUPS $fsgroup; do
 		if ! test -d "$SRC_DIR/$d" ; then
 			continue
 		fi
Signature · 1 line
2.22.0
#2 lore raw

PATCH 3/5 shared,ext4: move ext[234]-specific tests out of shared/

In reply to Theodore Ts'o

Move the following tests:

	shared/005 --> ext4/040
	shared/007 --> ext4/041
	shared/289 --> ext4/042
---
 tests/{shared/005 => ext4/040}         | 2 +-
 tests/{shared/007.out => ext4/040.out} | 2 +-
 tests/{shared/007 => ext4/041}         | 2 +-
 tests/{shared/005.out => ext4/041.out} | 2 +-
 tests/{shared/289 => ext4/042}         | 2 +-
 tests/{shared/289.out => ext4/042.out} | 2 +-
 tests/ext4/group                       | 3 +++
 tests/shared/group                     | 3 ---
 8 files changed, 9 insertions(+), 9 deletions(-)
 rename tests/{shared/005 => ext4/040} (97%)
 rename tests/{shared/007.out => ext4/040.out} (77%)
 rename tests/{shared/007 => ext4/041} (97%)
 rename tests/{shared/005.out => ext4/041.out} (77%)
 rename tests/{shared/289 => ext4/042} (98%)
 rename tests/{shared/289.out => ext4/042.out} (67%)
tests/ext4/040 renamed from tests/shared/005 +1 -1
similarity index 97%
rename from tests/shared/005
rename to tests/ext4/040
index 67940dd0..3e475f7d 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2017 Oracle, Inc.  All Rights Reserved.
 #
-# FSQA Test No. 005
+# FSQA Test No. ext4/040 (was shared/005)
 #
 # Since loff_t is a signed type, it is invalid for a filesystem to load
 # an inode with i_size = -1ULL.  Unfortunately, nobody checks this,
tests/ext4/040.out renamed from tests/shared/007.out +1 -1
similarity index 77%
rename from tests/shared/007.out
rename to tests/ext4/040.out
index 3afba59a..dbccb495 100644
@@ -1,4 +1,4 @@
-QA output created by 007
+QA output created by 040
 Format and mount
 Corrupt filesystem
 Remount, try to append
tests/ext4/041 renamed from tests/shared/007 +1 -1
similarity index 97%
rename from tests/shared/007
rename to tests/ext4/041
index 65cb5273..5c9c0713 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2017 Oracle, Inc.  All Rights Reserved.
 #
-# FSQA Test No. 007
+# FSQA Test No. ext4/041 (was shared/007)
 #
 # Since loff_t is a signed type, it is invalid for a filesystem to load
 # an inode with i_size = -1ULL.  Unfortunately, nobody checks this,
tests/ext4/041.out renamed from tests/shared/005.out +1 -1
similarity index 77%
rename from tests/shared/005.out
rename to tests/ext4/041.out
index 06e3fcdc..97480072 100644
@@ -1,4 +1,4 @@
-QA output created by 005
+QA output created by 041
 Format and mount
 Corrupt filesystem
 Remount, try to append
tests/ext4/042 renamed from tests/shared/289 +1 -1
similarity index 98%
rename from tests/shared/289
rename to tests/ext4/042
index 94b64430..17d482a1 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2012 Red Hat, Inc.  All Rights Reserved.
 #
-# FS QA Test No. 289
+# FS QA Test No. ext4/042 (was shared/289)
 #
 # Test overhead & df output for extN filesystems
 #
tests/ext4/042.out renamed from tests/shared/289.out +1 -1
similarity index 67%
rename from tests/shared/289.out
rename to tests/ext4/042.out
index a4de760a..1bd6f82a 100644
@@ -1,3 +1,3 @@
-QA output created by 289
+QA output created by 042
 minix f_blocks is in range
 bsd f_blocks is in range
tests/ext4/group +3 -0
index 6418d82d..9dfc0d35 100644
@@ -42,6 +42,9 @@
 037 auto quick
 038 auto quick
 039 auto enospc rw
+040 dangerous_fuzzers
+041 dangerous_fuzzers
+042 auto quick
 271 auto rw quick
 301 aio auto ioctl rw stress defrag
 302 aio auto ioctl rw stress defrag
tests/shared/group +0 -3
index 6f184946..3507d7d4 100644
@@ -4,13 +4,10 @@
 # - comment line before each group is "new" description
 #
 002 auto metadata quick log
-005 dangerous_fuzzers
 006 auto enospc
-007 dangerous_fuzzers
 008 auto stress dedupe
 009 auto stress dedupe
 010 auto stress dedupe
 011 auto quick
 032 mkfs auto quick
-289 auto quick
 298 auto trim
Signature · 1 line
2.22.0
#3 lore raw

PATCH 4/5 shared,generic: move shared/006 to generic/

In reply to Theodore Ts'o

The shared/006 uses _scratch_mkfs_sized to create a limited size file system, and then creates inodes until it gets ENOSPC, and then checks to make sure the file system is consistent. It then remounts the file system, removes all of the files, and makes sure the file system is consistent afterwards.

This test was marked as only being supported on ext[234] and xfs, and so it was in shared. However, I've tested and this test works just fine on btrfs, ubifs, tmpfs, and should work on all file systems that support _scratch_mkfs_sized, since even if there isn't a fixed inode table, the file system will eventually run out of disk space.

---
 tests/{shared/006 => generic/558} | 4 +---
 tests/generic/558.out             | 2 ++
 tests/generic/group               | 1 +
 tests/shared/006.out              | 2 --
 tests/shared/group                | 1 -
 5 files changed, 4 insertions(+), 6 deletions(-)
 rename tests/{shared/006 => generic/558} (96%)
 create mode 100644 tests/generic/558.out
 delete mode 100644 tests/shared/006.out
tests/generic/558 renamed from tests/shared/006 +1 -3
similarity index 96%
rename from tests/shared/006
rename to tests/generic/558
index aa65e9a2..8bfc65fa 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2014 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test No. shared/006
+# FS QA Test No. generic/558
 #
 # Stress test fs by using up all inodes and check fs.
 #
@@ -42,9 +42,7 @@ create_file()
 . ./common/filter
 
 # real QA test starts here
-_supported_fs ext4 ext3 ext2 xfs
 _supported_os Linux
-
 _require_scratch
 
 rm -f $seqres.full
tests/generic/558.out new file +2 -0
new file mode 100644
index 00000000..9a6c4e79
@@ -0,0 +1,2 @@
+QA output created by 558
+Silence is golden
tests/generic/group +1 -0
index 543c0627..8fc85b63 100644
@@ -560,3 +560,4 @@
 555 auto quick cap
 556 auto quick casefold
 557 auto quick log
+558 auto enospc
tests/shared/006.out deleted +0 -2
deleted file mode 100644
index 675c1b7c..00000000
@@ -1,2 +0,0 @@
-QA output created by 006
-Silence is golden
tests/shared/group +0 -1
index 3507d7d4..2cf910bd 100644
@@ -4,7 +4,6 @@
 # - comment line before each group is "new" description
 #
 002 auto metadata quick log
-006 auto enospc
 008 auto stress dedupe
 009 auto stress dedupe
 010 auto stress dedupe
Signature · 1 line
2.22.0
#4 lore raw

Re: [PATCH 4/5] shared,generic: move shared/006 to generic/

Quoted 9 lines · Theodore Ts'o

The shared/006 uses _scratch_mkfs_sized to create a limited size file system, and then creates inodes until it gets ENOSPC, and then checks to make sure the file system is consistent. It then remounts the file system, removes all of the files, and makes sure the file system is consistent afterwards.

This test was marked as only being supported on ext[234] and xfs, and so it was in shared. However, I've tested and this test works just fine on btrfs, ubifs, tmpfs, and should work on all file systems that

This is because the $free_inode is 0 and $loop is 1, so we end up creating only 1000 files in the test without hitting ENOSPC at all.

Perhaps we could introduce a new require rule to check if fs supports fixed inode number (just check if '_get_free_inode $TEST_DIR' returns non-zero).

Quoted 32 lines

support _scratch_mkfs_sized, since even if there isn't a fixed inode table, the file system will eventually run out of disk space.

---
 tests/{shared/006 => generic/558} | 4 +---
 tests/generic/558.out             | 2 ++
 tests/generic/group               | 1 +
 tests/shared/006.out              | 2 --
 tests/shared/group                | 1 -
 5 files changed, 4 insertions(+), 6 deletions(-)
 rename tests/{shared/006 => generic/558} (96%)
 create mode 100644 tests/generic/558.out
 delete mode 100644 tests/shared/006.out
tests/generic/558 renamed from tests/shared/006 +1 -1
similarity index 96%
rename from tests/shared/006
rename to tests/generic/558
index aa65e9a2..8bfc65fa 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2014 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test No. shared/006
+# FS QA Test No. generic/558
 #
 # Stress test fs by using up all inodes and check fs.
 #

tests/generic/558 create_file() · line 45

Quoted 4 lines
tests/generic/558 renamed from tests/shared/006 +0 -1
@@ -42,9 +42,7 @@ create_file()
 . ./common/filter
 
 # real QA test starts here
-_supported_fs ext4 ext3 ext2 xfs

_supported_fs generic

Thanks,
Eryu

Quoted 45 lines
tests/generic/558 renamed from tests/shared/006 +0 -1
 _supported_os Linux
-
 _require_scratch
 
 rm -f $seqres.full
tests/generic/558.out new file +2 -0
new file mode 100644
index 00000000..9a6c4e79
@@ -0,0 +1,2 @@
+QA output created by 558
+Silence is golden
tests/generic/group +1 -0
index 543c0627..8fc85b63 100644
@@ -560,3 +560,4 @@
 555 auto quick cap
 556 auto quick casefold
 557 auto quick log
+558 auto enospc
tests/shared/006.out deleted +0 -2
deleted file mode 100644
index 675c1b7c..00000000
@@ -1,2 +0,0 @@
-QA output created by 006
-Silence is golden
tests/shared/group +0 -1
index 3507d7d4..2cf910bd 100644
@@ -4,7 +4,6 @@
 # - comment line before each group is "new" description
 #
 002 auto metadata quick log
-006 auto enospc
 008 auto stress dedupe
 009 auto stress dedupe
 010 auto stress dedupe
Signature · 1 line
2.22.0
#5 lore raw

PATCH 5/5 shared,generic: move tests using duperemove to generic/

In reply to Theodore Ts'o

Add _require_scratch_duperemove which validates that the file system supports duperemove. This allows us to move three tests from shared/ to generic/. This means these tests will automatically adapt when duperemove supports other file systems. Tests moved are:

	shared/008 --> generic/559
	shared/009 --> generic/560
	shared/010 --> generic/561
---
 common/reflink                            | 18 ++++++++++++++++++
 tests/{shared/008 => generic/559}         |  9 +++------
 tests/{shared/008.out => generic/559.out} |  2 +-
 tests/{shared/009 => generic/560}         |  9 ++-------
 tests/{shared/009.out => generic/560.out} |  2 +-
 tests/{shared/010 => generic/561}         |  9 ++-------
 tests/generic/561.out                     |  2 ++
 tests/generic/group                       |  3 +++
 tests/shared/010.out                      |  2 --
 tests/shared/group                        |  3 ---
 10 files changed, 32 insertions(+), 27 deletions(-)
 rename tests/{shared/008 => generic/559} (85%)
 rename tests/{shared/008.out => generic/559.out} (64%)
 rename tests/{shared/009 => generic/560} (91%)
 rename tests/{shared/009.out => generic/560.out} (74%)
 rename tests/{shared/010 => generic/561} (89%)
 create mode 100644 tests/generic/561.out
 delete mode 100644 tests/shared/010.out
common/reflink +18 -0
index 598f0877..ee60398e 100644
@@ -75,6 +75,24 @@ _require_scratch_reflink()
 	_scratch_unmount
 }
 
+# this test requires duperemove working for the file system
+_require_scratch_duperemove()
+{
+	_require_scratch
+	_require_command "$DUPEREMOVE_PROG" duperemove
+
+	_scratch_mkfs > /dev/null
+	_scratch_mount
+	dd if=/dev/zero of="$SCRATCH_MNT/file1" bs=128k count=1 >& /dev/null
+	dd if=/dev/zero of="$SCRATCH_MNT/file2" bs=128k count=1 >& /dev/null
+	if ! "$DUPEREMOVE_PROG" -d "$SCRATCH_MNT/file1" \
+	    "$SCRATCH_MNT/file2" >& /dev/null ; then
+		_scratch_unmount
+		_notrun "duperemove does not support file system type: $FSTYP"
+	fi
+	_scratch_unmount
+}
+
 # this test requires scratch fs to report explicit SHARED flag
 # e.g.
 #   0         4K         8K
tests/generic/559 renamed from tests/shared/008 +3 -6
similarity index 85%
rename from tests/shared/008
rename to tests/generic/559
index a7d76083..4a8a3dd8 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2018 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test 008
+# FS QA Test generic/559 (was shared/008)
 #
 # Dedupe a single big file and verify integrity
 #
@@ -29,12 +29,9 @@ _cleanup()
 # remove previous $seqres.full before test
 rm -f $seqres.full
 
-# duperemove only supports btrfs and xfs (with reflink feature).
-# Add other filesystems if it supports more later.
-_supported_fs xfs btrfs
+# real QA test starts here
 _supported_os Linux
-_require_scratch_dedupe
-_require_command "$DUPEREMOVE_PROG" duperemove
+_require_scratch_duperemove
 
 fssize=$((2 * 1024 * 1024 * 1024))
 _scratch_mkfs_sized $fssize > $seqres.full 2>&1
tests/generic/559.out renamed from tests/shared/008.out +1 -1
similarity index 64%
rename from tests/shared/008.out
rename to tests/generic/559.out
index f29d478f..a558ada3 100644
@@ -1,3 +1,3 @@
-QA output created by 008
+QA output created by 559
 = before cycle mount =
 = after cycle mount =
tests/generic/560 renamed from tests/shared/009 +2 -7
similarity index 91%
rename from tests/shared/009
rename to tests/generic/560
index 933d3098..d28c019f 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2018 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test 009
+# FS QA Test generic/560 (was shared/009)
 #
 # Iterate dedupe integrity test. Copy an original data0 several
 # times (d0 -> d1, d1 -> d2, ... dn-1 -> dn), dedupe dataN everytime
@@ -32,13 +32,8 @@ _cleanup()
 rm -f $seqres.full
 
 # real QA test starts here
-
-# duperemove only supports btrfs and xfs (with reflink feature).
-# Add other filesystems if it supports more later.
-_supported_fs xfs btrfs
 _supported_os Linux
-_require_scratch_dedupe
-_require_command "$DUPEREMOVE_PROG" duperemove
+_require_scratch_duperemove
 
 _scratch_mkfs > $seqres.full 2>&1
 _scratch_mount >> $seqres.full 2>&1
tests/generic/560.out renamed from tests/shared/009.out +1 -1
similarity index 74%
rename from tests/shared/009.out
rename to tests/generic/560.out
index 44a78ba3..10ae7edd 100644
@@ -1,4 +1,4 @@
-QA output created by 009
+QA output created by 560
 = Do dedup and verify =
 = Backwords verify =
 = Verify after cycle mount =
tests/generic/561 renamed from tests/shared/010 +2 -7
similarity index 89%
rename from tests/shared/010
rename to tests/generic/561
index 04f55890..76538080 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2018 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test 010
+# FS QA Test generic/561 (was shared/010)
 #
 # Dedup & random I/O race test, do multi-threads fsstress and dedupe on
 # same directory/files
@@ -32,13 +32,8 @@ _cleanup()
 rm -f $seqres.full
 
 # real QA test starts here
-
-# duperemove only supports btrfs and xfs (with reflink feature).
-# Add other filesystems if it supports more later.
-_supported_fs xfs btrfs
 _supported_os Linux
-_require_scratch_dedupe
-_require_command "$DUPEREMOVE_PROG" duperemove
+_require_scratch_duperemove
 _require_command "$KILLALL_PROG" killall
 
 _scratch_mkfs > $seqres.full 2>&1
tests/generic/561.out new file +2 -0
new file mode 100644
index 00000000..5e46f61f
@@ -0,0 +1,2 @@
+QA output created by 561
+Silence is golden
tests/generic/group +3 -0
index 8fc85b63..c30d18e0 100644
@@ -561,3 +561,6 @@
 556 auto quick casefold
 557 auto quick log
 558 auto enospc
+559 auto stress dedupe
+560 auto stress dedupe
+561 auto stress dedupe
tests/shared/010.out deleted +0 -2
deleted file mode 100644
index 1d83a8d6..00000000
@@ -1,2 +0,0 @@
-QA output created by 010
-Silence is golden
tests/shared/group +0 -3
index 2cf910bd..6112c8dd 100644
@@ -4,9 +4,6 @@
 # - comment line before each group is "new" description
 #
 002 auto metadata quick log
-008 auto stress dedupe
-009 auto stress dedupe
-010 auto stress dedupe
 011 auto quick
 032 mkfs auto quick
 298 auto trim
Signature · 1 line
2.22.0
#6 lore raw

Re: [PATCH 5/5] shared,generic: move tests using duperemove to generic/

Quoted 2 lines · Theodore Ts'o

Add _require_scratch_duperemove which validates that the file system supports duperemove. This allows us to move three tests from shared/

Hmmm, that should probably read, "... which validates that duperemove supports file system being tested..."

- Ted

Quoted 8 lines

to generic/. This means these tests will automatically adapt when duperemove supports other file systems. Tests moved are:

	shared/008 --> generic/559
	shared/009 --> generic/560
	shared/010 --> generic/561
#7 lore raw
In reply to Theodore Ts'o
Quoted 6 lines · Theodore Ts'o

The tests shared/{001,003,004,272} test behaviour around the ext4's journal. As such, they are pointless to run on ext2, and ext3 no longer is in kernels newer than 4.3. (And most enterprise distributions have been using ext4 to support the ext3 file system; that capability has been around since 2.6.33.) So we can move these tests out of shared and into the ext4 class of tests:

Thanks a lot for the cleanup!

Quoted 5 lines
	shared/001 --> ext4/036
	shared/003 --> ext4/037
	shared/004 --> ext4/038
	shared/272 --> ext4/039

Looks like shared/001 and shared/004 are not journal related and could run with ext2 as well. So the two tests should be part of patch 3?

And I guess we should update "_supported_fs" field in ext4/037 and ext4/039 too, so they only support ext4.

Quoted 37 lines
---
 tests/{shared/001 => ext4/036}         | 4 ++--
 tests/ext4/036.out                     | 2 ++
 tests/{shared/003 => ext4/037}         | 4 +---
 tests/ext4/037.out                     | 2 ++
 tests/{shared/004 => ext4/038}         | 2 +-
 tests/ext4/038.out                     | 2 ++
 tests/{shared/272 => ext4/039}         | 2 +-
 tests/{shared/272.out => ext4/039.out} | 2 +-
 tests/ext4/group                       | 4 ++++
 tests/shared/001.out                   | 2 --
 tests/shared/003.out                   | 2 --
 tests/shared/004.out                   | 2 --
 tests/shared/group                     | 4 ----
 13 files changed, 16 insertions(+), 18 deletions(-)
 rename tests/{shared/001 => ext4/036} (92%)
 create mode 100644 tests/ext4/036.out
 rename tests/{shared/003 => ext4/037} (96%)
 create mode 100644 tests/ext4/037.out
 rename tests/{shared/004 => ext4/038} (96%)
 create mode 100644 tests/ext4/038.out
 rename tests/{shared/272 => ext4/039} (97%)
 rename tests/{shared/272.out => ext4/039.out} (72%)
 delete mode 100644 tests/shared/001.out
 delete mode 100644 tests/shared/003.out
 delete mode 100644 tests/shared/004.out
tests/ext4/036 renamed from tests/shared/001 +0 -0
similarity index 92%
rename from tests/shared/001
rename to tests/ext4/036
index bde6e198..60a5224f 100755

tests/ext4/036 line 5

Quoted 5 lines
tests/ext4/036 renamed from tests/shared/001 +1 -1
@@ -2,9 +2,9 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2015 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test No. 001
+# FS QA Test No. ext4/036 (was shared/001)

I prefer deleting the "was shared/001" annotation, so we're consistent with all other test, and we could get such info from git log anyway.

Thanks,
Eryu

Quoted 162 lines
tests/ext4/036 renamed from tests/shared/001 +1 -1
 #
-# Test truncate orphan inodes when mounting extN.
+# Test truncate orphan inodes when mounting ext4
 # ext4 used to hit WARNING, this commit fixed the issue
 #
 # 721e3eb ext4: lock i_mutex when truncating orphan inodes
tests/ext4/036.out new file +2 -0
new file mode 100644
index 00000000..ed460d98
@@ -0,0 +1,2 @@
+QA output created by 036
+Silence is golden
tests/ext4/037 renamed from tests/shared/003 +1 -3
similarity index 96%
rename from tests/shared/003
rename to tests/ext4/037
index 761b9691..6a5a801c 100755
@@ -2,15 +2,13 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2015 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test 003
+# FS QA Test ext4/037 (was shared/003)
 #
 # Test mount a needs_recovery partition with noload option.
 # ext4 used to Oops until part of this commit:
 #
 # 744692d ext4: use ext4_get_block_write in buffer write
 #
-# Also test on ext2/3.
-#
 seq=`basename $0`
 seqres=$RESULT_DIR/$seq
 echo "QA output created by $seq"
tests/ext4/037.out new file +2 -0
new file mode 100644
index 00000000..5c3a30a4
@@ -0,0 +1,2 @@
+QA output created by 037
+Silence is golden
tests/ext4/038 renamed from tests/shared/004 +1 -1
similarity index 96%
rename from tests/shared/004
rename to tests/ext4/038
index 3021c85d..893d5727 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2016 Fujitsu.  All Rights Reserved.
 #
-# FS QA Test 004
+# FS QA Test ext4/038 (was shared/004)
 #
 # Regression test for commit:
 # c9eb13a ext4: fix hang when processing corrupted orphaned inode list
tests/ext4/038.out new file +2 -0
new file mode 100644
index 00000000..5e0f13ec
@@ -0,0 +1,2 @@
+QA output created by 038
+Silence is golden
tests/ext4/039 renamed from tests/shared/272 +1 -1
similarity index 97%
rename from tests/shared/272
rename to tests/ext4/039
index b94dfc3c..28db308d 100755
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2006 Silicon Graphics, Inc.  All Rights Reserved.
 #
-# FSQA Test No. 272
+# FSQA Test No. ext4/039 (was shared/272)
 #
 # Test data journaling flag switch for a single file  
 #
tests/ext4/039.out renamed from tests/shared/272.out +1 -1
similarity index 72%
rename from tests/shared/272.out
rename to tests/ext4/039.out
index a9eaf84c..2c8aabad 100644
@@ -1,3 +1,3 @@
-QA output created by 272
+QA output created by 039
 Switch data journalling mode. Silence is golden.
 Check filesystem
tests/ext4/group +4 -0
index d27ec893..6418d82d 100644
@@ -38,6 +38,10 @@
 033 auto ioctl resize
 034 auto quick quota
 035 auto quick resize
+036 auto quick
+037 auto quick
+038 auto quick
+039 auto enospc rw
 271 auto rw quick
 301 aio auto ioctl rw stress defrag
 302 aio auto ioctl rw stress defrag
tests/shared/001.out deleted +0 -2
deleted file mode 100644
index 88678b8e..00000000
@@ -1,2 +0,0 @@
-QA output created by 001
-Silence is golden
tests/shared/003.out deleted +0 -2
deleted file mode 100644
index 6895fc80..00000000
@@ -1,2 +0,0 @@
-QA output created by 003
-Silence is golden
tests/shared/004.out deleted +0 -2
deleted file mode 100644
index af8614ae..00000000
@@ -1,2 +0,0 @@
-QA output created by 004
-Silence is golden
tests/shared/group +0 -4
index b091d911..6f184946 100644
@@ -3,10 +3,7 @@
 # - do not start group names with a digit
 # - comment line before each group is "new" description
 #
-001 auto quick
 002 auto metadata quick log
-003 auto quick
-004 auto quick
 005 dangerous_fuzzers
 006 auto enospc
 007 dangerous_fuzzers
@@ -15,6 +12,5 @@
 010 auto stress dedupe
 011 auto quick
 032 mkfs auto quick
-272 auto enospc rw
 289 auto quick
 298 auto trim
Signature · 1 line
2.22.0
#8 lore raw
Quoted 8 lines · Eryu Guan
Quoted 5 lines
	shared/001 --> ext4/036
	shared/003 --> ext4/037
	shared/004 --> ext4/038
	shared/272 --> ext4/039

Looks like shared/001 and shared/004 are not journal related and could run with ext2 as well. So the two tests should be part of patch 3?

Orphaned inodes is something which is only a thing with ext3/ext4. The fact that these tests pass on ext2 is purely a happy accident --- because ext2 completely ignores the orphaned list. I suppose I should just remove ext2 from the supported list, but these tests take a super small amount of time so why the tests are kinda pointless for ext2, it doesn't cost much time, either.

Quoted 2 lines

And I guess we should update "_supported_fs" field in ext4/037 and ext4/039 too, so they only support ext4.

ext4/037 should have be marked as only supported by ext3 and ext4. It's passing by accident on my system because I have CONFIG_EXT4_USE_FOR_EXT2, and so the lack of the noload mount option wasn't tripping up the test and causing a test failure. (The fact that no one has complained is actually a really strong suggestion that most people running xfstests have EXT4_USE_FOR_EXT2 enabled.) I'll fix this.

ext4/039 is right as is; it makes sense for ext3 and ext4, and if someone is testing with FSTYP=ext3 we do want to run that test.

I'll adjust some of the supported_fs lines in the next version.

- Ted