summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2016-06-03 10:34:25 +0800
committerDavid Sterba <dsterba@suse.com>2016-06-03 15:22:18 +0200
commitfde5ae2e49a9cd7091fb8db8d748d7687a544d23 (patch)
tree1e5f48af62d5000c3f180f862eabaaa5f497c319 /tests
parent97198cd75e15457360aba93a28af65458292694f (diff)
btrfs-progs: convert-tests: Add support for custom test scripts
Add support for custom convert test scripts, just like fsck tests. Instead of generic convert tests, we need more specifically created images for new convert tests. This patch provide the needed infrastructure for later convert test cases. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
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