btrfs-progs: tests: add mkfs tests
authorDavid Sterba <dsterba@suse.com>
Mon, 19 Oct 2015 15:27:55 +0000 (17:27 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 2 Nov 2015 08:35:05 +0000 (09:35 +0100)
Mkfs deserves it's own.

Signed-off-by: David Sterba <dsterba@suse.com>
Makefile.in
tests/mkfs-tests.sh [new file with mode: 0755]

index b3081f4..cc6ed59 100644 (file)
@@ -201,11 +201,15 @@ test-misc: btrfs btrfs-image btrfs-corrupt-block btrfs-debug-tree mkfs.btrfs btr
        @echo "    [TEST]   misc-tests.sh"
        $(Q)bash tests/misc-tests.sh
 
+test-mkfs: btrfs mkfs.btrfs
+       @echo "    [TEST]   mkfs-tests.sh"
+       $(Q)bash tests/mkfs-tests.sh
+
 test-clean:
        @echo "Cleaning tests"
        $(Q)bash tests/clean-tests.sh
 
-test: test-fsck test-convert test-misc
+test: test-fsck test-mkfs test-convert test-misc
 
 #
 # NOTE: For static compiles, you need to have all the required libs
diff --git a/tests/mkfs-tests.sh b/tests/mkfs-tests.sh
new file mode 100755 (executable)
index 0000000..4780b54
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# mkfs.btrfs tests
+
+unset TOP
+unset LANG
+LANG=C
+SCRIPT_DIR=$(dirname $(readlink -f $0))
+TOP=$(readlink -f $SCRIPT_DIR/../)
+TEST_DEV=${TEST_DEV:-}
+RESULTS="$TOP/tests/mkfs-tests-results.txt"
+IMAGE="$TOP/tests/test.img"
+
+source $TOP/tests/common
+
+# Allow child test to use $TOP and $RESULTS
+export TOP
+export RESULTS
+# For custom script needs to verfiy recovery
+export LANG
+# For tests that only use a loop device
+export IMAGE
+
+rm -f $RESULTS
+
+check_prereq mkfs.btrfs
+check_prereq btrfs
+
+# The tests are driven by their custom script called 'test.sh'
+
+for i in $(find $TOP/tests/mkfs-tests -maxdepth 1 -mindepth 1 -type d  \
+       ${TEST:+-name "$TEST"} | sort)
+do
+       echo "    [TEST]   $(basename $i)"
+       cd $i
+       echo "=== Entering $i" >> $RESULTS
+       if [ -x test.sh ]; then
+               ./test.sh
+               if [ $? -ne 0 ]; then
+                       _fail "test failed for case $(basename $i)"
+               fi
+       fi
+       cd $TOP
+done