summaryrefslogtreecommitdiff
path: root/tests/misc-tests
diff options
context:
space:
mode:
authorDimitri John Ledkov <xnox@ubuntu.com>2017-02-13 11:24:33 +0000
committerDimitri John Ledkov <xnox@ubuntu.com>2017-02-13 11:24:33 +0000
commit4305d024938113df5d73021a09eb2a991f54ca2f (patch)
treed9e7ecc9db14bcc1394607a9e6c644a8b93e9bea /tests/misc-tests
parente693f0e4ffb1776a05b78264ee3d93d5f07efede (diff)
New upstream release Closes: #849353, #817806, #854915, #845473
Diffstat (limited to 'tests/misc-tests')
-rwxr-xr-xtests/misc-tests/001-btrfstune-features/test.sh8
-rwxr-xr-xtests/misc-tests/002-uuid-rewrite/test.sh12
-rwxr-xr-xtests/misc-tests/003-zero-log/test.sh9
-rwxr-xr-xtests/misc-tests/006-image-on-missing-device/test.sh7
-rwxr-xr-xtests/misc-tests/010-convert-delete-ext2-subvol/test.sh5
-rwxr-xr-xtests/misc-tests/011-delete-missing-device/test.sh11
-rw-r--r--tests/misc-tests/016-send-clone-src/multi-clone-src-v4.8.2.stream.xzbin0 -> 2688 bytes
-rwxr-xr-xtests/misc-tests/016-send-clone-src/test.sh50
-rwxr-xr-xtests/misc-tests/017-recv-stream-malformatted/test.sh25
-rwxr-xr-xtests/misc-tests/018-recv-end-of-stream/test.sh149
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
new file mode 100644
index 00000000..34c14ed5
--- /dev/null
+++ b/tests/misc-tests/016-send-clone-src/multi-clone-src-v4.8.2.stream.xz
Binary files differ
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