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