Before previous patch, btrfs-convert will result fsck complain if there
is any regular file extent in newly converted btrfs.
Add test case for it.
Signed-off-by: Qu Wenruo <quwenruo@xxxxxxxxxxxxxx>
---
tests/convert-tests.sh | 85 ++++++++++++++++++++++++++++++++------------------
1 file changed, 55 insertions(+), 30 deletions(-)
diff --git a/tests/convert-tests.sh b/tests/convert-tests.sh
index f6b919d..5c4f22e 100644
--- a/tests/convert-tests.sh
+++ b/tests/convert-tests.sh
@@ -4,48 +4,73 @@
# clean.
#
-here=`pwd`
+unset top
+unset LANG
+LANG=C
+script_dir=$(dirname $(realpath $0))
+top=$(realpath $script_dir/../)
+TEST_DEV=${TEST_DEV:-}
+TEST_MNT=${TEST_MNT:-$top/tests/mnt}
+RESULT="$top/tests/convert-tests-results.txt"
+IMAGE="$script_dir/test.img"
-_fail()
-{
- echo "$*" | tee -a convert-tests-results.txt
- exit 1
-}
+source $top/tests/common
+export top
+export RESULT
+# For comprehensive convert test which needs write something into ext*
+export TEST_MNT
+export LANG
+
+rm -f $RESULT
+mkdir -p $TEST_MNT || _fail "unable to create mount point on $TEST_MNT"
+
+# test reply on btrfs-convert
+check_prereq btrfs-convert
+check_prereq btrfs
-rm -f convert-tests-results.txt
-test(){
+convert_test(){
echo " [TEST] $1"
nodesize=$2
shift 2
- echo "creating ext image with: $*" >> convert-tests-results.txt
+ echo "creating ext image with: $*" >> $RESULT
# 256MB is the smallest acceptable btrfs image.
- rm -f $here/test.img >> convert-tests-results.txt 2>&1 \
+ rm -f $IMAGE >> $RESULT 2>&1 \
|| _fail "could not remove test image file"
- truncate -s 256M $here/test.img >> convert-tests-results.txt 2>&1 \
+ truncate -s 256M $IMAGE >> $RESULT 2>&1 \
|| _fail "could not create test image file"
- $* -F $here/test.img >> convert-tests-results.txt 2>&1 \
+ $* -F $IMAGE >> $RESULT 2>&1 \
|| _fail "filesystem create failed"
- $here/btrfs-convert -N "$nodesize" $here/test.img \
- >> convert-tests-results.txt 2>&1 \
+
+ # write a file with regular file extent
+ $SUDO_HELPER mount $IMAGE $TEST_MNT
+ $SUDO_HELPER dd if=/dev/zero bs=$nodesize count=4 of=$TEST_MNT/test \
+ 1>/dev/null 2>&1
+ $SUDO_HELPER umount $TEST_MNT
+
+ # do convert test
+ $top/btrfs-convert -N "$nodesize" $script_dir/test.img \
+ >> $RESULT 2>&1 \
|| _fail "btrfs-convert failed"
- $here/btrfs check $here/test.img >> convert-tests-results.txt 2>&1 \
+ $top/btrfs check $script_dir/test.img >> $RESULT 2>&1 \
|| _fail "btrfs check detected errors"
}
+setup_root_helper
+
# btrfs-convert requires 4k blocksize.
-test "ext2 4k nodesize" 4096 mke2fs -b 4096
-test "ext3 4k nodesize" 4096 mke2fs -j -b 4096
-test "ext4 4k nodesize" 4096 mke2fs -t ext4 -b 4096
-test "ext2 8k nodesize" 8192 mke2fs -b 4096
-test "ext3 8k nodesize" 8192 mke2fs -j -b 4096
-test "ext4 8k nodesize" 8192 mke2fs -t ext4 -b 4096
-test "ext2 16k nodesize" 16384 mke2fs -b 4096
-test "ext3 16k nodesize" 16384 mke2fs -j -b 4096
-test "ext4 16k nodesize" 16384 mke2fs -t ext4 -b 4096
-test "ext2 32k nodesize" 32768 mke2fs -b 4096
-test "ext3 32k nodesize" 32768 mke2fs -j -b 4096
-test "ext4 32k nodesize" 32768 mke2fs -t ext4 -b 4096
-test "ext2 64k nodesize" 65536 mke2fs -b 4096
-test "ext3 64k nodesize" 65536 mke2fs -j -b 4096
-test "ext4 64k nodesize" 65536 mke2fs -t ext4 -b 4096
+convert_test "ext2 4k nodesize" 4096 mke2fs -b 4096
+convert_test "ext3 4k nodesize" 4096 mke2fs -j -b 4096
+convert_test "ext4 4k nodesize" 4096 mke2fs -t ext4 -b 4096
+convert_test "ext2 8k nodesize" 8192 mke2fs -b 4096
+convert_test "ext3 8k nodesize" 8192 mke2fs -j -b 4096
+convert_test "ext4 8k nodesize" 8192 mke2fs -t ext4 -b 4096
+convert_test "ext2 16k nodesize" 16384 mke2fs -b 4096
+convert_test "ext3 16k nodesize" 16384 mke2fs -j -b 4096
+convert_test "ext4 16k nodesize" 16384 mke2fs -t ext4 -b 4096
+convert_test "ext2 32k nodesize" 32768 mke2fs -b 4096
+convert_test "ext3 32k nodesize" 32768 mke2fs -j -b 4096
+convert_test "ext4 32k nodesize" 32768 mke2fs -t ext4 -b 4096
+convert_test "ext2 64k nodesize" 65536 mke2fs -b 4096
+convert_test "ext3 64k nodesize" 65536 mke2fs -j -b 4096
+convert_test "ext4 64k nodesize" 65536 mke2fs -t ext4 -b 4096
--
2.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html