summaryrefslogtreecommitdiff
path: root/tests/misc-tests/018-recv-end-of-stream/test.sh
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/018-recv-end-of-stream/test.sh
parente693f0e4ffb1776a05b78264ee3d93d5f07efede (diff)
New upstream release Closes: #849353, #817806, #854915, #845473
Diffstat (limited to 'tests/misc-tests/018-recv-end-of-stream/test.sh')
-rwxr-xr-xtests/misc-tests/018-recv-end-of-stream/test.sh149
1 files changed, 149 insertions, 0 deletions
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