3 # end of stream conditions: test that no instructions in a stream are still
4 # received, at least the header must be present
6 source $TOP/tests/common
8 check_prereq mkfs.btrfs
16 test_full_empty_stream() {
19 str="$here/stream-full-empty.stream"
20 run_check $TOP/mkfs.btrfs -f $TEST_DEV
21 run_check_mount_test_dev
23 cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT"
25 run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1
26 run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap
30 run_check $SUDO_HELPER $TOP/btrfs send -f "$str" subv1-snap
32 cd "$here" || _fail "cannot chdir back to test directory"
33 run_check_umount_test_dev
35 run_check $TOP/mkfs.btrfs -f $TEST_DEV
36 run_check_mount_test_dev
37 run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$str" "$TEST_MNT"
38 run_check_umount_test_dev
40 run_check rm -f -- "$str"
43 test_full_simple_stream() {
46 str="$here/stream-full-simple.stream"
47 run_check $TOP/mkfs.btrfs -f $TEST_DEV
48 run_check_mount_test_dev
50 cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT"
52 run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1
54 run_check $SUDO_HELPER dd if=/dev/zero of=subv1/file1_$i bs=1M count=1
57 run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap
61 run_check $SUDO_HELPER $TOP/btrfs send -f "$str" subv1-snap
63 cd "$here" || _fail "cannot chdir back to test directory"
64 run_check_umount_test_dev
66 run_check $TOP/mkfs.btrfs -f $TEST_DEV
67 run_check_mount_test_dev
68 run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$str" "$TEST_MNT"
69 run_check_umount_test_dev
71 run_check rm -f -- "$str"
74 test_incr_empty_stream() {
78 fstr="$here/stream-full-empty.stream"
79 istr="$here/stream-incr-empty.stream"
80 run_check $TOP/mkfs.btrfs -f $TEST_DEV
81 run_check_mount_test_dev
83 cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT"
85 run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1
86 run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap
87 run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv2-snap
89 truncate -s0 "$fstr" "$istr"
90 chmod a+w "$fstr" "$istr"
91 run_check $SUDO_HELPER $TOP/btrfs send -f "$fstr" subv1-snap
92 run_check $SUDO_HELPER $TOP/btrfs send -p subv1-snap -f "$istr" subv2-snap
94 cd "$here" || _fail "cannot chdir back to test directory"
95 run_check_umount_test_dev
97 run_check $TOP/mkfs.btrfs -f $TEST_DEV
98 run_check_mount_test_dev
99 run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$fstr" "$TEST_MNT"
100 run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$istr" "$TEST_MNT"
101 run_check_umount_test_dev
103 run_check rm -f -- "$fstr" "$istr"
106 test_incr_simple_stream() {
109 fstr="$here/stream-full-simple.stream"
110 istr="$here/stream-incr-simple.stream"
111 run_check $TOP/mkfs.btrfs -f $TEST_DEV
112 run_check_mount_test_dev
114 cd "$TEST_MNT" || _fail "cannot chdir to TEST_MNT"
116 run_check $SUDO_HELPER $TOP/btrfs subvolume create subv1
118 run_check $SUDO_HELPER dd if=/dev/zero of=subv1/file1_$i bs=1M count=1
121 run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv1-snap
124 run_check $SUDO_HELPER dd if=/dev/urandom of=subv1/file1_$i bs=1M count=1
127 run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot -r subv1 subv2-snap
129 truncate -s0 "$fstr" "$istr"
130 chmod a+w "$fstr" "$istr"
131 run_check $SUDO_HELPER $TOP/btrfs send -f "$fstr" subv1-snap
132 run_check $SUDO_HELPER $TOP/btrfs send -p subv1-snap -f "$istr" subv2-snap
134 cd "$here" || _fail "cannot chdir back to test directory"
135 run_check_umount_test_dev
137 run_check $TOP/mkfs.btrfs -f $TEST_DEV
138 run_check_mount_test_dev
139 run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$fstr" "$TEST_MNT"
140 run_check $SUDO_HELPER $TOP/btrfs receive -v -f "$istr" "$TEST_MNT"
141 run_check_umount_test_dev
143 run_check rm -f -- "$fstr" "$istr"
146 test_full_empty_stream
147 test_full_simple_stream
148 test_incr_empty_stream
149 test_incr_simple_stream