diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2016-06-03 10:34:26 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-06-03 16:53:25 +0200 |
commit | dc4bbc37a1f2b8677f2f45cda6a06f9cf462895e (patch) | |
tree | f45e18d375211246d7ce51ab45a090aa1bccfbc5 | |
parent | fde5ae2e49a9cd7091fb8db8d748d7687a544d23 (diff) |
btrfs-progs: convert-tests: Add test case for backup superblock migration
New convert introduced simpler chunk/extent allocation algorithm, at the
cost of complex backup superblock migration codes.
Use specially built ext2 images to test if btrfs-convert can convert and
rollback images without problem.
All these special ext2 image have blocks/holes across 2nd btrfs backup
superblock.
The naming of test image is like the following:
|<------superblock migration range----->|
64M 64M + 64K
|-Data--|-Data--|/Hole//|-Data--|/Hole//|-Data--|--Data--| = drdhdhdrd
These test cases should check all typical layouts and make sure new
convert works.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhdrd.e2image.raw.xz | bin | 0 -> 84564 bytes | |||
-rw-r--r-- | tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhrh.e2image.raw.xz | bin | 0 -> 84568 bytes | |||
-rw-r--r-- | tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhdrd.e2image.raw.xz | bin | 0 -> 84556 bytes | |||
-rw-r--r-- | tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhrh.e2image.raw.xz | bin | 0 -> 84568 bytes | |||
-rwxr-xr-x | tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh | 39 |
5 files changed, 39 insertions, 0 deletions
diff --git a/tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhdrd.e2image.raw.xz b/tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhdrd.e2image.raw.xz Binary files differnew file mode 100644 index 00000000..73e2309c --- /dev/null +++ b/tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhdrd.e2image.raw.xz diff --git a/tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhrh.e2image.raw.xz b/tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhrh.e2image.raw.xz Binary files differnew file mode 100644 index 00000000..0d5442ff --- /dev/null +++ b/tests/convert-tests/004-ext2-backup-superblock-ranges/drdhdhrh.e2image.raw.xz diff --git a/tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhdrd.e2image.raw.xz b/tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhdrd.e2image.raw.xz Binary files differnew file mode 100644 index 00000000..a1a30429 --- /dev/null +++ b/tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhdrd.e2image.raw.xz diff --git a/tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhrh.e2image.raw.xz b/tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhrh.e2image.raw.xz Binary files differnew file mode 100644 index 00000000..ac0dbc60 --- /dev/null +++ b/tests/convert-tests/004-ext2-backup-superblock-ranges/hrhdhrh.e2image.raw.xz diff --git a/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh b/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh new file mode 100755 index 00000000..493e4db5 --- /dev/null +++ b/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Specially created e2image dump to test backup superblock migration for +# new convert. +# These images will cause the following problems if convert doesn't handle +# backup superblock migration well: +# 1) Assert while building free space tree +# 2) Error copying inodes +# 3) Discontinuous file extents after convert +# 4) Overlap file extents +# 5) Unable to rollback + +source $TOP/tests/common + +check_prereq btrfs-convert +check_prereq btrfs +check_prereq btrfs-show-super +check_global_prereq e2fsck +check_global_prereq xzcat + +setup_root_helper +prepare_test_dev 512M + +for src in $(find . -iname "*.e2image.raw.xz"); do + extracted=$(extract_image "$src") + run_check $SUDO_HELPER e2fsck -n -f $extracted + run_check $SUDO_HELPER $TOP/btrfs-convert $extracted + run_check $SUDO_HELPER $TOP/btrfs check $extracted + run_check $SUDO_HELPER $TOP/btrfs-show-super $extracted + + run_check $SUDO_HELPER mount -o loop $extracted $TEST_MNT + run_check $SUDO_HELPER e2fsck -n -f $TEST_MNT/ext2_saved/image + run_check $SUDO_HELPER umount $TEST_MNT + + run_check $SUDO_HELPER $TOP/btrfs check $extracted + run_check $SUDO_HELPER $TOP/btrfs-convert -r $extracted + run_check $SUDO_HELPER e2fsck -n -f $extracted + rm -f $extracted +done |