summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/common8
-rwxr-xr-xtests/convert-tests.sh31
2 files changed, 39 insertions, 0 deletions
diff --git a/tests/common b/tests/common
index 8a626b6a..c50b661f 100644
--- a/tests/common
+++ b/tests/common
@@ -94,6 +94,14 @@ check_prereq()
fi
}
+check_global_prereq()
+{
+ which $1 &> /dev/null
+ if [ $? -ne 0 ]; then
+ _fail "Failed system wide prerequisities: $1";
+ fi
+}
+
check_image()
{
local image
diff --git a/tests/convert-tests.sh b/tests/convert-tests.sh
index 94477b47..32793b2f 100755
--- a/tests/convert-tests.sh
+++ b/tests/convert-tests.sh
@@ -15,6 +15,11 @@ DATASET_SIZE=50
source $TOP/tests/common
+# Allow child test to use $TOP and $RESULTS
+export TOP
+export RESULTS
+export LANG
+
rm -f $RESULTS
setup_root_helper
@@ -22,6 +27,25 @@ prepare_test_dev 512M
CHECKSUMTMP=$(mktemp --tmpdir btrfs-progs-convert.XXXXXXXXXX)
+run_one_test() {
+ local testname
+
+ testname="$1"
+ echo " [TEST/conv] $testname"
+ cd $testname
+ echo "=== Entering $testname" >> $RESULTS
+ if [ -x test.sh ]; then
+ # Difference convert test case needs different tools to restore
+ # and check image, so only support custom test scripts
+ ./test.sh
+ if [ $? -ne 0 ]; then
+ _fail "test failed for case $(basename $testname)"
+ fi
+ else
+ _fail "custom test script not found"
+ fi
+}
+
generate_dataset() {
dataset_type="$1"
@@ -172,4 +196,11 @@ for feature in '' 'extref' 'skinny-metadata' 'no-holes'; do
convert_test "$feature" "ext4 64k nodesize" 65536 mke2fs -t ext4 -b 4096
done
+# Test special images
+for i in $(find $TOP/tests/convert-tests -maxdepth 1 -mindepth 1 -type d \
+ ${TEST:+-name "$TEST"} | sort)
+do
+ run_one_test "$i"
+done
+
rm $CHECKSUMTMP