btrfs-progs: test for restoring multiple devices fs into a single device
PATCH 2/2 btrfs-progs: test for restoring multiple devices fs into a single device
From: Filipe Manana <[email protected]>
Test that we are able to create an image from a multiple devices fs, that we are able to restore that image into a single device and finally that we are able to mount it.
--- tests/misc-tests/020-image-multi-devices/test.sh | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 tests/misc-tests/020-image-multi-devices/test.sh
tests/misc-tests/020-image-multi-devices/test.sh new file +49 -0
@@ -0,0 +1,49 @@ +#!/bin/bash +# Test btrfs-image with multiple devices filesystem and verify that restoring +# the created image works against a single device. + +source $TOP/tests/common + +check_prereq btrfs-image +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper + +rm -f dev1 dev2 +run_check truncate -s 2G dev1 +run_check truncate -s 2G dev2 + +loop1=$(run_check_stdout $SUDO_HELPER losetup --find --show dev1) +loop2=$(run_check_stdout $SUDO_HELPER losetup --find --show dev2) + +# Create the test file system. + +run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $loop1 $loop2 +run_check $SUDO_HELPER mount $loop1 $TEST_MNT +run_check $SUDO_HELPER dd bs=1M count=1 if=/dev/zero of=$TEST_MNT/foobar +orig_md5=$(run_check_stdout md5sum $TEST_MNT/foobar | cut -d ' ' -f 1) +run_check $SUDO_HELPER umount $TEST_MNT + +# Create the image to restore later. +run_check $SUDO_HELPER $TOP/btrfs-image $loop1 $IMAGE + +# Wipe out the filesystem from the devices, restore the image on a single +# device, check everything works and file foobar is there and with 1Mb of +# zeroes. +run_check $SUDO_HELPER wipefs -a $loop1 +run_check $SUDO_HELPER wipefs -a $loop2 + +run_check $SUDO_HELPER $TOP/btrfs-image -r $IMAGE $loop1 + +run_check $SUDO_HELPER mount $loop1 $TEST_MNT +new_md5=$(run_check_stdout md5sum $TEST_MNT/foobar | cut -d ' ' -f 1) +run_check $SUDO_HELPER umount $TEST_MNT + +# Cleanup loop devices. +run_check $SUDO_HELPER losetup -d $loop1 +run_check $SUDO_HELPER losetup -d $loop2 +rm -f dev1 dev2 + +# Compare the file digests. +[ $orig_md5 == $new_md5 ] || _fail "File digests do not match"
Signature · 1 line
2.11.0
Quoted 7 lines · On Wed, May 17, 2017 at 02:41:31AM +0100, [email protected] wrote:
From: Filipe Manana <[email protected]>
Test that we are able to create an image from a multiple devices fs, that we are able to restore that image into a single device and finally that we are able to mount it.
Signed-off-by Filipe Manana <[email protected]>
Thanks,
-liubo
Looks fine, just couple of minor feedback.
Quoted 1 line
+run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $loop1 $loop2
Please add quotation around variable in the script, as suggested in tests/README.md 'Coding style, best practices' section. This section is added recently, we are updating older scripts.
tests/misc-tests/020-image-multi-devices/test.sh line 49
Quoted 8 lines
tests/misc-tests/020-image-multi-devices/test.sh new file +8
-0+ +# Cleanup loop devices. +run_check $SUDO_HELPER losetup -d $loop1 +run_check $SUDO_HELPER losetup -d $loop2 +rm -f dev1 dev2 + +# Compare the file digests. +[ $orig_md5 == $new_md5 ] || _fail "File digests do not match"
"Cleanup loop devices" can be done after comparing file integrity? This way, if integrity fails, the setup will be there to debug further. thanks.
Signature · 3 lines
---- Cheers, Lakshmipathi.G
David Sterba
AppliedQuoted 7 lines · On Wed, May 17, 2017 at 02:41:31AM +0100, [email protected] wrote:
From: Filipe Manana <[email protected]>
Test that we are able to create an image from a multiple devices fs, that we are able to restore that image into a single device and finally that we are able to mount it.
Signed-off-by Filipe Manana <[email protected]>
Applied, with the shell quotes added, thanks.