summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--tests/convert-tests.sh35
2 files changed, 36 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index fd30047e..8e14d483 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ libbtrfs_objects = send-stream.o send-utils.o rbtree.o btrfs-list.o crc32c.o \
libbtrfs_headers = send-stream.h send-utils.h send.h rbtree.h btrfs-list.h \
crc32c.h list.h kerncompat.h radix-tree.h extent-cache.h \
extent_io.h ioctl.h ctree.h btrfsck.h
-TESTS = fsck-tests.sh
+TESTS = fsck-tests.sh convert-tests.sh
INSTALL = install
prefix ?= /usr/local
diff --git a/tests/convert-tests.sh b/tests/convert-tests.sh
new file mode 100644
index 00000000..87369c5e
--- /dev/null
+++ b/tests/convert-tests.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+#
+# convert ext2/3/4 images to btrfs images, and make sure the results are
+# clean.
+#
+
+here=`pwd`
+
+_fail()
+{
+ echo "$*" | tee -a convert-tests-results.txt
+ exit 1
+}
+
+rm -f convert-tests-results.txt
+rm -f test.img
+
+test(){
+ echo " [TEST] $1"
+ shift
+ echo "creating ext image with: $*" >> convert-tests-results.txt
+ # 256MB is the smallest acceptable btrfs image.
+ dd if=/dev/zero of=$here/test.img bs=1024 count=$((256*1024)) \
+ >> convert-tests-results.txt 2>&1 || _fail "dd failed"
+ $* -F $here/test.img >> convert-tests-results.txt 2>&1 \
+ || _fail "filesystem create failed"
+ $here/btrfs-convert $here/test.img >> convert-tests-results.txt 2>&1 \
+ || _fail "btrfs-convert failed"
+ $here/btrfsck $here/test.img >> convert-tests-results.txt 2>&1 \
+ || _fail "btrfsck detected errors"
+}
+
+test "ext2, 4k blocksize" mke2fs -b 4096
+test "ext3, 4k blocksize" mke2fs -j -b 4096
+test "ext4, 4k blocksize" mke2fs -t ext4 -b 4096