-
Notifications
You must be signed in to change notification settings - Fork 245
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
btrfs-progs: tests: add a test case to check zoned bgt conversion
Add a new test case to make sure: - btrfstune can convert a zoned btrfs with extent tree to bgt - btrfstune can convert a zoned btrfs with bgt back to extent tree Reviewed-by: Johannes Thumshirn <[email protected]> Reviewed-by: Naohiro Aota <[email protected]> Signed-off-by: Qu Wenruo <[email protected]> Signed-off-by: David Sterba <[email protected]>
- Loading branch information
1 parent
b56cb0b
commit 045ff0f
Showing
1 changed file
with
55 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#!/bin/bash | ||
# Verify btrfstune for zoned devices with block-group-tree conversion | ||
|
||
source "$TEST_TOP/common" || exit | ||
|
||
setup_root_helper | ||
prepare_test_dev | ||
|
||
nullb="$TEST_TOP/nullb" | ||
# Create one 128M device with 4M zones, 32 of them | ||
size=128 | ||
zone=4 | ||
|
||
run_mayfail $SUDO_HELPER "$nullb" setup | ||
if [ $? != 0 ]; then | ||
_not_run "cannot setup nullb environment for zoned devices" | ||
fi | ||
|
||
# Record any other pre-existing devices in case creation fails | ||
run_check $SUDO_HELPER "$nullb" ls | ||
|
||
# Last line has the name of the device node path | ||
out=$(run_check_stdout $SUDO_HELPER "$nullb" create -s "$size" -z "$zone") | ||
if [ $? != 0 ]; then | ||
_fail "cannot create nullb zoned device $i" | ||
fi | ||
dev=$(echo "$out" | tail -n 1) | ||
name=$(basename "${dev}") | ||
|
||
run_check $SUDO_HELPER "$nullb" ls | ||
|
||
TEST_DEV="${dev}" | ||
|
||
# Create the fs without bgt | ||
run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f -m single -d single -O ^block-group-tree "${dev}" | ||
run_check_mount_test_dev | ||
run_check $SUDO_HELPER dd if=/dev/zero of="$TEST_MNT"/file1 bs=1M count=1 | ||
run_check $SUDO_HELPER "$TOP/btrfs" filesystem usage -T "$TEST_MNT" | ||
run_check_umount_test_dev | ||
|
||
# Convert to bgt | ||
run_check $SUDO_HELPER "$TOP/btrfstune" --convert-to-block-group-tree "${dev}" | ||
run_check_mount_test_dev | ||
run_check $SUDO_HELPER dd if=/dev/zero of="$TEST_MNT"/file2 bs=1M count=1 | ||
run_check $SUDO_HELPER "$TOP/btrfs" filesystem usage -T "$TEST_MNT" | ||
run_check_umount_test_dev | ||
|
||
# And convert back to old extent tree | ||
run_check $SUDO_HELPER "$TOP/btrfstune" --convert-from-block-group-tree "${dev}" | ||
run_check_mount_test_dev | ||
run_check $SUDO_HELPER dd if=/dev/zero of="$TEST_MNT"/file3 bs=1M count=1 | ||
run_check $SUDO_HELPER "$TOP/btrfs" filesystem usage -T "$TEST_MNT" | ||
run_check_umount_test_dev | ||
|
||
run_check $SUDO_HELPER "$nullb" rm "${name}" |