diff options
Diffstat (limited to 'tests/misc-tests')
-rwxr-xr-x | tests/misc-tests/001-btrfstune-features/test.sh | 8 | ||||
-rwxr-xr-x | tests/misc-tests/002-uuid-rewrite/test.sh | 12 | ||||
-rwxr-xr-x | tests/misc-tests/003-zero-log/test.sh | 9 | ||||
-rwxr-xr-x | tests/misc-tests/006-image-on-missing-device/test.sh | 7 | ||||
-rwxr-xr-x | tests/misc-tests/010-convert-delete-ext2-subvol/test.sh | 5 | ||||
-rwxr-xr-x | tests/misc-tests/011-delete-missing-device/test.sh | 11 | ||||
-rw-r--r-- | tests/misc-tests/016-send-clone-src/multi-clone-src-v4.8.2.stream.xz | bin | 0 -> 2688 bytes | |||
-rwxr-xr-x | tests/misc-tests/016-send-clone-src/test.sh | 50 | ||||
-rwxr-xr-x | tests/misc-tests/017-recv-stream-malformatted/test.sh | 25 | ||||
-rwxr-xr-x | tests/misc-tests/018-recv-end-of-stream/test.sh | 149 |
10 files changed, 246 insertions, 30 deletions
diff --git a/tests/misc-tests/001-btrfstune-features/test.sh b/tests/misc-tests/001-btrfstune-features/test.sh index c858d701..bfa7f43e 100755 --- a/tests/misc-tests/001-btrfstune-features/test.sh +++ b/tests/misc-tests/001-btrfstune-features/test.sh @@ -3,8 +3,6 @@ source $TOP/tests/common -check_prereq btrfs-debug-tree -check_prereq btrfs-show-super check_prereq mkfs.btrfs check_prereq btrfstune check_prereq btrfs @@ -16,7 +14,7 @@ prepare_test_dev # parameters: # - option for mkfs.btrfs -O, empty for defaults # - option for btrfstune -# - string representing the feature in btrfs-show-super dump +# - string representing the feature in dump-super output test_feature() { local mkfsfeatures @@ -28,12 +26,12 @@ test_feature() sbflag="$3" run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $mkfsfeatures $TEST_DEV - if run_check_stdout $TOP/btrfs-show-super $TEST_DEV | \ + if run_check_stdout $TOP/btrfs inspect-internal dump-super $TEST_DEV | \ grep -q "$sbflag"; then _fail "FAIL: feature $sbflag must not be set on the base image" fi run_check $TOP/btrfstune $tuneopt $TEST_DEV - if ! run_check_stdout $TOP/btrfs-show-super $TEST_DEV | \ + if ! run_check_stdout $TOP/btrfs inspect-internal dump-super $TEST_DEV | \ grep -q "$sbflag"; then _fail "FAIL: feature $sbflag not set" fi diff --git a/tests/misc-tests/002-uuid-rewrite/test.sh b/tests/misc-tests/002-uuid-rewrite/test.sh index d84ec6ca..fd100fb3 100755 --- a/tests/misc-tests/002-uuid-rewrite/test.sh +++ b/tests/misc-tests/002-uuid-rewrite/test.sh @@ -3,8 +3,6 @@ source $TOP/tests/common -check_prereq btrfs-debug-tree -check_prereq btrfs-show-super check_prereq mkfs.btrfs check_prereq btrfstune check_prereq btrfs @@ -15,7 +13,7 @@ get_fs_uuid() { local image image="$1" - run_check_stdout $TOP/btrfs-show-super "$image" | \ + run_check_stdout $TOP/btrfs inspect-internal dump-super "$image" | \ grep '^fsid' | awk '{print $2}' } @@ -29,13 +27,13 @@ test_uuid_random() --uuid $origuuid \ --rootdir $TOP/Documentation \ $TEST_DEV - run_check $TOP/btrfs-show-super "$TEST_DEV" + run_check $TOP/btrfs inspect-internal dump-super "$TEST_DEV" currentfsid=$(run_check_stdout $TOP/btrfstune -f -u $TEST_DEV | \ grep -i 'current fsid:' | awk '{print $3}') if ! [ $currentfsid = $origuuid ]; then _fail "FAIL: current UUID mismatch" fi - run_check $TOP/btrfs-show-super "$TEST_DEV" + run_check $TOP/btrfs inspect-internal dump-super "$TEST_DEV" run_check $SUDO_HELPER $TOP/btrfs check $TEST_DEV } @@ -51,10 +49,10 @@ test_uuid_user() --uuid $origuuid \ --rootdir $TOP/Documentation \ $TEST_DEV - run_check $TOP/btrfs-show-super "$TEST_DEV" + run_check $TOP/btrfs inspect-internal dump-super "$TEST_DEV" run_check $TOP/btrfstune -f -U $newuuid \ $TEST_DEV - # btrfs-show-super is called within get_fs_uuid + # btrfs inspect-internal dump-super is called within get_fs_uuid fsid=$(get_fs_uuid $TEST_DEV) if ! [ $fsid = $newuuid ]; then _fail "FAIL: UUID not rewritten" diff --git a/tests/misc-tests/003-zero-log/test.sh b/tests/misc-tests/003-zero-log/test.sh index b650930e..e7c5c806 100755 --- a/tests/misc-tests/003-zero-log/test.sh +++ b/tests/misc-tests/003-zero-log/test.sh @@ -3,7 +3,6 @@ source $TOP/tests/common -check_prereq btrfs-show-super check_prereq mkfs.btrfs check_prereq btrfs prepare_test_dev @@ -13,14 +12,14 @@ get_log_root() local image image="$1" - $TOP/btrfs-show-super "$image" | \ + $TOP/btrfs inspect-internal dump-super "$image" | \ grep '^log_root\>' | awk '{print $2}' } get_log_root_level() { local image image="$1" - $TOP/btrfs-show-super "$image" | \ + $TOP/btrfs inspect-internal dump-super "$image" | \ grep '^log_root_level' | awk '{print $2}' } @@ -30,7 +29,7 @@ test_zero_log() run_check $SUDO_HELPER $TOP/mkfs.btrfs -f \ --rootdir $TOP/Documentation \ $TEST_DEV - run_check $TOP/btrfs-show-super $TEST_DEV + run_check $TOP/btrfs inspect-internal dump-super $TEST_DEV if [ "$1" = 'standalone' ]; then run_check $TOP/btrfs rescue zero-log $TEST_DEV else @@ -44,7 +43,7 @@ test_zero_log() if [ "$log_root_level" != 0 ]; then _fail "FAIL: log_root_level not reset" fi - run_check $TOP/btrfs-show-super $TEST_DEV + run_check $TOP/btrfs inspect-internal dump-super $TEST_DEV run_check $SUDO_HELPER $TOP/btrfs check $TEST_DEV } diff --git a/tests/misc-tests/006-image-on-missing-device/test.sh b/tests/misc-tests/006-image-on-missing-device/test.sh index b22a95d7..5b6fe065 100755 --- a/tests/misc-tests/006-image-on-missing-device/test.sh +++ b/tests/misc-tests/006-image-on-missing-device/test.sh @@ -6,7 +6,6 @@ source $TOP/tests/common -check_prereq btrfs-show-super check_prereq btrfs-image check_prereq mkfs.btrfs check_prereq btrfs @@ -40,7 +39,7 @@ cleanup_devices() for i in `seq $ndevs`; do truncate -s0 img$i done - run_check $SUDO_HELPER losetup --list + run_check $SUDO_HELPER losetup --all } test_image_dump() @@ -61,12 +60,12 @@ test_run() run_check $SUDO_HELPER umount $TEST_MNT test_image_dump - run_check $TOP/btrfs filesystem show $dev1 + run_check $SUDO_HELPER $TOP/btrfs filesystem show $dev1 # create a degraded raid1 filesystem, check must succeed # btrfs-image must not loop run_mayfail wipefs -a $dev2 run_check $SUDO_HELPER losetup -d $dev2 - run_check $TOP/btrfs filesystem show $dev1 + run_check $SUDO_HELPER $TOP/btrfs filesystem show $dev1 test_image_dump } diff --git a/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh b/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh index 451e453a..7915867c 100755 --- a/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh +++ b/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh @@ -6,7 +6,6 @@ source $TOP/tests/common check_prereq btrfs-convert -check_prereq btrfs-debug-tree check_prereq btrfs setup_root_helper @@ -15,11 +14,11 @@ prepare_test_dev run_check truncate -s 2G "$TEST_DEV" run_check mkfs.ext4 -F "$TEST_DEV" run_check $TOP/btrfs-convert "$TEST_DEV" -run_check $TOP/btrfs-debug-tree "$TEST_DEV" +run_check $SUDO_HELPER $TOP/btrfs inspect-internal dump-tree "$TEST_DEV" run_check_mount_test_dev run_check $SUDO_HELPER $TOP/btrfs subvolume delete -c "$TEST_MNT/ext2_saved" run_check_umount_test_dev -run_check $TOP/btrfs-debug-tree "$TEST_DEV" +run_check $SUDO_HELPER $TOP/btrfs inspect-internal dump-tree "$TEST_DEV" run_check_stdout $TOP/btrfs-convert --rollback "$TEST_DEV" | grep -q 'is it deleted' || _fail "unexpected rollback" diff --git a/tests/misc-tests/011-delete-missing-device/test.sh b/tests/misc-tests/011-delete-missing-device/test.sh index 26645f10..5b5f9786 100755 --- a/tests/misc-tests/011-delete-missing-device/test.sh +++ b/tests/misc-tests/011-delete-missing-device/test.sh @@ -3,7 +3,6 @@ source $TOP/tests/common -check_prereq btrfs-show-super check_prereq mkfs.btrfs check_prereq btrfs @@ -33,22 +32,22 @@ cleanup_devices() for i in `seq $ndevs`; do truncate -s0 img$i done - run_check $SUDO_HELPER losetup --list + run_check $SUDO_HELPER losetup --all } test_do_mkfs() { run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $@ ${devs[@]} - run_check $TOP/btrfs-show-super $dev1 + run_check $SUDO_HELPER $TOP/btrfs inspect-internal dump-super $dev1 run_check $SUDO_HELPER $TOP/btrfs check $dev1 - run_check $TOP/btrfs filesystem show + run_check $SUDO_HELPER $TOP/btrfs filesystem show } test_wipefs() { - run_check wipefs -a $devtodel + run_check $SUDO_HELPER wipefs -a $devtodel run_check $SUDO_HELPER losetup -d $devtodel - run_check losetup -a + run_check $SUDO_HELPER losetup --all run_check $TOP/btrfs filesystem show } test_delete_missing() diff --git a/tests/misc-tests/016-send-clone-src/multi-clone-src-v4.8.2.stream.xz b/tests/misc-tests/016-send-clone-src/multi-clone-src-v4.8.2.stream.xz Binary files differnew file mode 100644 index 00000000..34c14ed5 --- /dev/null +++ b/tests/misc-tests/016-send-clone-src/multi-clone-src-v4.8.2.stream.xz diff --git a/tests/misc-tests/016-send-clone-src/test.sh b/tests/misc-tests/016-send-clone-src/test.sh new file mode 100755 index 00000000..e256eef9 --- /dev/null +++ b/tests/misc-tests/016-send-clone-src/test.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# +# test for sending stream size of clone-src option, compare against a send +# stream generated by buggy version + +source $TOP/tests/common + +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper +prepare_test_dev 1g + +run_check $TOP/mkfs.btrfs -f $IMAGE +run_check_mount_test_dev + +here=`pwd` +cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT" + +run_check $SUDO_HELPER $TOP/btrfs subvolume create subv-parent1 +for i in 1 2 3; do + run_check $SUDO_HELPER dd if=/dev/zero of=subv-parent1/file1_$i bs=1M count=1 + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv-parent1 subv-snap1_$i +done + +run_check $SUDO_HELPER $TOP/btrfs subvolume create subv-parent2 +for i in 1 2 3; do + run_check $SUDO_HELPER dd if=/dev/zero of=subv-parent2/file2_$i bs=1M count=1 + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv-parent2 subv-snap2_$i +done + +truncate -s0 "$here"/send-stream.img +chmod a+w "$here"/send-stream.img +run_check $SUDO_HELPER $TOP/btrfs send -f "$here"/send-stream.img \ + -c subv-snap1_1 -c subv-snap2_1 subv-snap1_[23] subv-snap2_[23] + +image=$(extract_image "$here"/multi-clone-src-v4.8.2.stream.xz) +old_stream_size=`stat --format=%s "$image"` +stream_size=`stat --format=%s "$here"/send-stream.img` + +if [ $old_stream_size -lt $stream_size ]; then + run_check ls -l "$image" "$here"/send-stream.img + _fail "sending stream size is bigger than old stream" +fi + +run_check rm -f -- "$image" "$here"/send-stream.img + +cd "$here" || _fail "cannot chdir back to test directory" + +run_check_umount_test_dev diff --git a/tests/misc-tests/017-recv-stream-malformatted/test.sh b/tests/misc-tests/017-recv-stream-malformatted/test.sh new file mode 100755 index 00000000..884b7d42 --- /dev/null +++ b/tests/misc-tests/017-recv-stream-malformatted/test.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# test receiving stream that's not valid, simple cases + +source $TOP/tests/common + +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper +prepare_test_dev 1g + +run_check $TOP/mkfs.btrfs -f $IMAGE +run_check_mount_test_dev + +echo -n '' | run_mayfail $SUDO_HELPER "$TOP/btrfs" receive "$TEST_MNT" && + _fail "unexpected: received empty stream" + +echo -n '1' | run_mayfail $SUDO_HELPER "$TOP/btrfs" receive "$TEST_MNT" && + _fail "unexpected: received stream with shrot and corrupted header" + +echo -n '12345678901234567' | run_mayfail $SUDO_HELPER "$TOP/btrfs" receive "$TEST_MNT" && + _fail "unexpected: received stream with corrupted header" + +run_check_umount_test_dev diff --git a/tests/misc-tests/018-recv-end-of-stream/test.sh b/tests/misc-tests/018-recv-end-of-stream/test.sh new file mode 100755 index 00000000..d39683e9 --- /dev/null +++ b/tests/misc-tests/018-recv-end-of-stream/test.sh @@ -0,0 +1,149 @@ +#!/bin/bash +# +# end of stream conditions: test that no instructions in a stream are still +# received, at least the header must be present + +source $TOP/tests/common + +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper +prepare_test_dev 1g + +here=`pwd` + +test_full_empty_stream() { + local str + + str="$here/stream-full-empty.stream" + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + + cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT" + + run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1 + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap + + truncate -s0 "$str" + chmod a+w "$str" + run_check $SUDO_HELPER $TOP/btrfs send -f "$str" subv1-snap + + cd "$here" || _fail "cannot chdir back to test directory" + run_check_umount_test_dev + + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$str" "$TEST_MNT" + run_check_umount_test_dev + + run_check rm -f -- "$str" +} + +test_full_simple_stream() { + local str + + str="$here/stream-full-simple.stream" + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + + cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT" + + run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1 + for i in 1 2 3; do + run_check $SUDO_HELPER dd if=/dev/zero of=subv1/file1_$i bs=1M count=1 + done + + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap + + truncate -s0 "$str" + chmod a+w "$str" + run_check $SUDO_HELPER $TOP/btrfs send -f "$str" subv1-snap + + cd "$here" || _fail "cannot chdir back to test directory" + run_check_umount_test_dev + + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$str" "$TEST_MNT" + run_check_umount_test_dev + + run_check rm -f -- "$str" +} + +test_incr_empty_stream() { + local fstr + local istr + + fstr="$here/stream-full-empty.stream" + istr="$here/stream-incr-empty.stream" + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + + cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT" + + run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1 + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv2-snap + + truncate -s0 "$fstr" "$istr" + chmod a+w "$fstr" "$istr" + run_check $SUDO_HELPER $TOP/btrfs send -f "$fstr" subv1-snap + run_check $SUDO_HELPER $TOP/btrfs send -p subv1-snap -f "$istr" subv2-snap + + cd "$here" || _fail "cannot chdir back to test directory" + run_check_umount_test_dev + + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$fstr" "$TEST_MNT" + run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$istr" "$TEST_MNT" + run_check_umount_test_dev + + run_check rm -f -- "$fstr" "$istr" +} + +test_incr_simple_stream() { + local str + + fstr="$here/stream-full-simple.stream" + istr="$here/stream-incr-simple.stream" + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + + cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT" + + run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1 + for i in 1 2 3; do + run_check $SUDO_HELPER dd if=/dev/zero of=subv1/file1_$i bs=1M count=1 + done + + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap + + for i in 1 2 3; do + run_check $SUDO_HELPER dd if=/dev/urandom of=subv1/file1_$i bs=1M count=1 + done + + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv2-snap + + truncate -s0 "$fstr" "$istr" + chmod a+w "$fstr" "$istr" + run_check $SUDO_HELPER $TOP/btrfs send -f "$fstr" subv1-snap + run_check $SUDO_HELPER $TOP/btrfs send -p subv1-snap -f "$istr" subv2-snap + + cd "$here" || _fail "cannot chdir back to test directory" + run_check_umount_test_dev + + run_check $TOP/mkfs.btrfs -f $TEST_DEV + run_check_mount_test_dev + run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$fstr" "$TEST_MNT" + run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$istr" "$TEST_MNT" + run_check_umount_test_dev + + run_check rm -f -- "$fstr" "$istr" +} + +test_full_empty_stream +test_full_simple_stream +test_incr_empty_stream +test_incr_simple_stream |