[2/2] btrfs-progs: test for restoring multiple devices fs into a single device
diff mbox

Message ID 20170517014131.8549-1-fdmanana@kernel.org
State New
Headers show

Commit Message

Filipe Manana May 17, 2017, 1:41 a.m. UTC
From: Filipe Manana <fdmanana@suse.com>

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 <fdmanana@suse.com>
---
 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

Comments

Liu Bo May 19, 2017, 12:18 a.m. UTC | #1
On Wed, May 17, 2017 at 02:41:31AM +0100, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
> 
> 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 <fdmanana@suse.com>

Reviewed-by: Liu Bo <bo.li.liu@oracle.com>

Thanks,

-liubo
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lakshmipathi.G May 19, 2017, 6:59 a.m. UTC | #2
Looks fine, just couple of minor feedback.

> +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.

> +
> +# 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.
David Sterba May 29, 2017, 5:01 p.m. UTC | #3
On Wed, May 17, 2017 at 02:41:31AM +0100, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
> 
> 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 <fdmanana@suse.com>

Applied, with the shell quotes added, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/tests/misc-tests/020-image-multi-devices/test.sh b/tests/misc-tests/020-image-multi-devices/test.sh
new file mode 100755
index 00000000..d4a5f006
--- /dev/null
+++ b/tests/misc-tests/020-image-multi-devices/test.sh
@@ -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"