summaryrefslogtreecommitdiff
path: root/tests/misc-tests/016-send-clone-src/test.sh
blob: 2780ebbd2b5eebb98011e9e3d52f042cb876f966 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
run_check "$TOP/mkfs.btrfs" -f "$TEST_DEV"
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