summaryrefslogtreecommitdiffstats
path: root/src/ceph/qa/workunits/rbd/merge_diff.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/ceph/qa/workunits/rbd/merge_diff.sh')
-rwxr-xr-xsrc/ceph/qa/workunits/rbd/merge_diff.sh474
1 files changed, 0 insertions, 474 deletions
diff --git a/src/ceph/qa/workunits/rbd/merge_diff.sh b/src/ceph/qa/workunits/rbd/merge_diff.sh
deleted file mode 100755
index 0b6643d..0000000
--- a/src/ceph/qa/workunits/rbd/merge_diff.sh
+++ /dev/null
@@ -1,474 +0,0 @@
-#!/bin/bash -ex
-
-pool=rbd
-gen=$pool/gen
-out=$pool/out
-testno=1
-
-mkdir -p merge_diff_test
-pushd merge_diff_test
-
-function expect_false()
-{
- if "$@"; then return 1; else return 0; fi
-}
-
-function clear_all()
-{
- fusermount -u mnt || true
-
- rbd snap purge --no-progress $gen || true
- rbd rm --no-progress $gen || true
- rbd snap purge --no-progress $out || true
- rbd rm --no-progress $out || true
-
- rm -rf diffs || true
-}
-
-function rebuild()
-{
- clear_all
- echo Starting test $testno
- ((testno++))
- if [[ "$2" -lt "$1" ]] && [[ "$3" -gt "1" ]]; then
- rbd create $gen --size 100 --object-size $1 --stripe-unit $2 --stripe-count $3 --image-format $4
- else
- rbd create $gen --size 100 --object-size $1 --image-format $4
- fi
- rbd create $out --size 1 --object-size 524288
- mkdir -p mnt diffs
- # lttng has atexit handlers that need to be fork/clone aware
- LD_PRELOAD=liblttng-ust-fork.so.0 rbd-fuse -p $pool mnt
-}
-
-function write()
-{
- dd if=/dev/urandom of=mnt/gen bs=1M conv=notrunc seek=$1 count=$2
-}
-
-function snap()
-{
- rbd snap create $gen@$1
-}
-
-function resize()
-{
- rbd resize --no-progress $gen --size $1 --allow-shrink
-}
-
-function export_diff()
-{
- if [ $2 == "head" ]; then
- target="$gen"
- else
- target="$gen@$2"
- fi
- if [ $1 == "null" ]; then
- rbd export-diff --no-progress $target diffs/$1.$2
- else
- rbd export-diff --no-progress $target --from-snap $1 diffs/$1.$2
- fi
-}
-
-function merge_diff()
-{
- rbd merge-diff diffs/$1.$2 diffs/$2.$3 diffs/$1.$3
-}
-
-function check()
-{
- rbd import-diff --no-progress diffs/$1.$2 $out || return -1
- if [ "$2" == "head" ]; then
- sum1=`rbd export $gen - | md5sum`
- else
- sum1=`rbd export $gen@$2 - | md5sum`
- fi
- sum2=`rbd export $out - | md5sum`
- if [ "$sum1" != "$sum2" ]; then
- exit -1
- fi
- if [ "$2" != "head" ]; then
- rbd snap ls $out | awk '{print $2}' | grep "^$2\$" || return -1
- fi
-}
-
-#test f/t header
-rebuild 4194304 4194304 1 2
-write 0 1
-snap a
-write 1 1
-export_diff null a
-export_diff a head
-merge_diff null a head
-check null head
-
-rebuild 4194304 4194304 1 2
-write 0 1
-snap a
-write 1 1
-snap b
-write 2 1
-export_diff null a
-export_diff a b
-export_diff b head
-merge_diff null a b
-check null b
-
-rebuild 4194304 4194304 1 2
-write 0 1
-snap a
-write 1 1
-snap b
-write 2 1
-export_diff null a
-export_diff a b
-export_diff b head
-merge_diff a b head
-check null a
-check a head
-
-rebuild 4194304 4194304 1 2
-write 0 1
-snap a
-write 1 1
-snap b
-write 2 1
-export_diff null a
-export_diff a b
-export_diff b head
-rbd merge-diff diffs/null.a diffs/a.b - | rbd merge-diff - diffs/b.head - > diffs/null.head
-check null head
-
-#data test
-rebuild 4194304 4194304 1 2
-write 4 2
-snap s101
-write 0 3
-write 8 2
-snap s102
-export_diff null s101
-export_diff s101 s102
-merge_diff null s101 s102
-check null s102
-
-rebuild 4194304 4194304 1 2
-write 0 3
-write 2 5
-write 8 2
-snap s201
-write 0 2
-write 6 3
-snap s202
-export_diff null s201
-export_diff s201 s202
-merge_diff null s201 s202
-check null s202
-
-rebuild 4194304 4194304 1 2
-write 0 4
-write 12 6
-snap s301
-write 0 6
-write 10 5
-write 16 4
-snap s302
-export_diff null s301
-export_diff s301 s302
-merge_diff null s301 s302
-check null s302
-
-rebuild 4194304 4194304 1 2
-write 0 12
-write 14 2
-write 18 2
-snap s401
-write 1 2
-write 5 6
-write 13 3
-write 18 2
-snap s402
-export_diff null s401
-export_diff s401 s402
-merge_diff null s401 s402
-check null s402
-
-rebuild 4194304 4194304 1 2
-write 2 4
-write 10 12
-write 27 6
-write 36 4
-snap s501
-write 0 24
-write 28 4
-write 36 4
-snap s502
-export_diff null s501
-export_diff s501 s502
-merge_diff null s501 s502
-check null s502
-
-rebuild 4194304 4194304 1 2
-write 0 8
-resize 5
-snap r1
-resize 20
-write 12 8
-snap r2
-resize 8
-write 4 4
-snap r3
-export_diff null r1
-export_diff r1 r2
-export_diff r2 r3
-merge_diff null r1 r2
-merge_diff null r2 r3
-check null r3
-
-rebuild 4194304 4194304 1 2
-write 0 8
-resize 5
-snap r1
-resize 20
-write 12 8
-snap r2
-resize 8
-write 4 4
-snap r3
-resize 10
-snap r4
-export_diff null r1
-export_diff r1 r2
-export_diff r2 r3
-export_diff r3 r4
-merge_diff null r1 r2
-merge_diff null r2 r3
-merge_diff null r3 r4
-check null r4
-
-# merge diff doesn't yet support fancy striping
-# rebuild 4194304 65536 8 2
-# write 0 32
-# snap r1
-# write 16 32
-# snap r2
-# export_diff null r1
-# export_diff r1 r2
-# expect_false merge_diff null r1 r2
-
-rebuild 4194304 4194304 1 2
-write 0 1
-write 2 1
-write 4 1
-write 6 1
-snap s1
-write 1 1
-write 3 1
-write 5 1
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 1 1
-write 3 1
-write 5 1
-snap s1
-write 0 1
-write 2 1
-write 4 1
-write 6 1
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 3
-write 6 3
-write 12 3
-snap s1
-write 1 1
-write 7 1
-write 13 1
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 3
-write 6 3
-write 12 3
-snap s1
-write 0 1
-write 6 1
-write 12 1
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 3
-write 6 3
-write 12 3
-snap s1
-write 2 1
-write 8 1
-write 14 1
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 1 1
-write 7 1
-write 13 1
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 1
-write 6 1
-write 12 1
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 2 1
-write 8 1
-write 14 1
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 3
-write 6 3
-write 12 3
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 2 4
-write 8 4
-write 14 4
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 4
-write 6 4
-write 12 4
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 6
-write 6 6
-write 12 6
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 3 6
-write 9 6
-write 15 6
-snap s1
-write 0 3
-write 6 3
-write 12 3
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 8
-snap s1
-resize 2
-resize 100
-snap s2
-export_diff null s1
-export_diff s1 s2
-merge_diff null s1 s2
-check null s2
-
-rebuild 4194304 4194304 1 2
-write 0 8
-snap s1
-resize 2
-resize 100
-snap s2
-write 20 2
-snap s3
-export_diff null s1
-export_diff s1 s2
-export_diff s2 s3
-merge_diff s1 s2 s3
-check null s1
-check s1 s3
-
-#addme
-
-clear_all
-popd
-rm -rf merge_diff_test
-
-echo OK