On 08/30/2017 10:02 PM, Fam Zheng wrote: > On Thu, 08/31 00:45, Ishani Chugh wrote: >> This patch is the test for incremental backup implementation in Backup tool. >> The test employs two basic subtests: >> 1) Backing up an empty guest and comparing it with base image. >> 2) Writing a pattern to the guest, creating backup, writing >> a pattern again, creating backup and comparing with base image. >> >> Signed-off-by: Ishani Chugh <chugh.ish...@research.iiit.ac.in> >> --- >> tests/qemu-iotests/193 | 86 >> ++++++++++++++++++++++++++++++++++++++++++++++ >> tests/qemu-iotests/193.out | 34 ++++++++++++++++++ >> tests/qemu-iotests/group | 1 + >> 3 files changed, 121 insertions(+) >> create mode 100755 tests/qemu-iotests/193 >> create mode 100644 tests/qemu-iotests/193.out >> >> diff --git a/tests/qemu-iotests/193 b/tests/qemu-iotests/193 >> new file mode 100755 >> index 0000000..500e5df >> --- /dev/null >> +++ b/tests/qemu-iotests/193 >> @@ -0,0 +1,86 @@ >> +#!/bin/bash >> +# >> +# Test Incremental backup functionality of qemu-backup tool >> +# >> +# Copyright (C) 2009 Red Hat, Inc. > > Year is off, probably the copyright holder too? >
Yup, please take credit for your own work, Ishani :) >> +# >> +# This program is free software; you can redistribute it and/or modify >> +# it under the terms of the GNU General Public License as published by >> +# the Free Software Foundation; either version 2 of the License, or >> +# (at your option) any later version. >> +# >> +# This program is distributed in the hope that it will be useful, >> +# but WITHOUT ANY WARRANTY; without even the implied warranty of >> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> +# GNU General Public License for more details. >> +# >> +# You should have received a copy of the GNU General Public License >> +# along with this program. If not, see <http://www.gnu.org/licenses/>. >> +# >> + >> +# creator >> +owner=chugh.ish...@research.iiit.ac.in >> + >> +seq=`basename $0` >> +echo "QA output created by $seq" >> + >> +here=`pwd` >> +status=1 # failure is the default! > > s/\t/ / > Fam means to remove the tab here and use spaces instead. >> + >> + >> +# get standard environment, filters and checks >> +. ./common.rc >> +. ./common.filter >> +. ./common.qemu >> + >> +_supported_fmt generic >> +_supported_proto generic >> +_supported_os Linux >> + >> + >> +CONFIG_FILE=$TEST_DIR/backup-config >> +SOCKET=unix:$TEST_DIR/backup_socket >> +size=128M >> + >> +_make_test_img $size >> +export QEMU_BACKUP_CONFIG=$CONFIG_FILE >> +qemu_comm_method="monitor" >> +echo >> +_launch_qemu -drive if=virtio,file=$TEST_IMG -qmp $SOCKET,server,nowait >> +$PYTHON ../../contrib/backup/qemu-backup.py guest add --guest adad --qmp >> $SOCKET >> +$PYTHON ../../contrib/backup/qemu-backup.py drive add --id virtio0 --guest >> adad --target $TEST_DIR/virtio0 >> +echo >> +echo "== Creating backup ==" >> +$PYTHON ../../contrib/backup/qemu-backup.py backup --inc --guest adad >> +_send_qemu_cmd $QEMU_HANDLE 'quit' '' >> +wait=1 _cleanup_qemu >> +echo >> +echo "== Comparing images ==" >> +$QEMU_IMG compare $TEST_DIR/virtio0_inc_0 $TEST_IMG >> + >> +rm $TEST_DIR/virtio0_inc_0 >> + >> +_launch_qemu -drive if=virtio,id=virtio0,file=$TEST_IMG -qmp >> $SOCKET,server,nowait >> +echo >> +echo "== Writing Pattern ==" >> +_send_qemu_cmd $QEMU_HANDLE 'qemu-io virtio0 "write -P 0x22 0 1M"' "(qemu)" >> | _filter_qemu_io >> +echo >> + >> +echo "== Creating backup ==" >> +$PYTHON ../../contrib/backup/qemu-backup.py backup --inc --guest adad >> + >> +echo "== Writing Pattern ==" >> +_send_qemu_cmd $QEMU_HANDLE 'qemu-io virtio0 "write -P 0x22 0 1M"' "(qemu)" >> | _filter_qemu_io >> +echo >> +$PYTHON ../../contrib/backup/qemu-backup.py backup --inc --guest adad >> +_send_qemu_cmd $QEMU_HANDLE 'quit' '' >> +wait=1 _cleanup_qemu >> +echo >> +echo "== Comparing images ==" >> +$QEMU_IMG compare $TEST_DIR/virtio0_inc_1 $TEST_IMG >> +rm $TEST_DIR/virtio0_inc_0 >> +rm $TEST_DIR/virtio0_inc_1 >> +rm $CONFIG_FILE >> + >> +echo "*** done" >> +status=0 >> \ No newline at end of file >> diff --git a/tests/qemu-iotests/193.out b/tests/qemu-iotests/193.out >> new file mode 100644 >> index 0000000..3a836c2 >> --- /dev/null >> +++ b/tests/qemu-iotests/193.out >> @@ -0,0 +1,34 @@ >> +QA output created by 193 >> +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 >> + >> +Successfully Added Guest >> +Successfully Added Drive >> + >> +== Creating backup == >> +QEMU X.Y.Z monitor - type 'help' for more information >> +(qemu) Formatting 'TEST_DIR/virtio0_inc_0', fmt=qcow2 size=134217728 >> cluster_size=65536 lazy_refcounts=off refcount_bits=16 >> +quit >> + >> +== Comparing images == >> +Images are identical. >> + >> +== Writing Pattern == >> +QEMU X.Y.Z monitor - type 'help' for more information >> +(qemu) qemu-io virtio0 "write -P 0x22 0 1M" >> + >> +== Creating backup == >> +Initial Backup does not exist >> +== Writing Pattern == >> +wrote 1048576/1048576 bytes at offset 0 >> +1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) >> +(qemu) Formatting 'TEST_DIR/virtio0_inc_0', fmt=qcow2 size=134217728 >> cluster_size=65536 lazy_refcounts=off refcount_bits=16 >> + >> +Formatting >> '/home/ishani/Desktop/opw/qemu/tests/qemu-iotests/scratch/virtio0_inc_1', >> fmt=qcow2 size=134217728 >> backing_file=/home/ishani/Desktop/opw/qemu/tests/qemu-iotests/scratch/virtio0_inc_0 >> backing_fmt=qcow2 encryption=off cluster_size=65536 lazy_refcounts=off >> refcount_bits=16 >> +qemu-io virtio0 "write -P 0x22 0 1M" >> +wrote 1048576/1048576 bytes at offset 0 >> +1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) >> +(qemu) quit >> + >> +== Comparing images == >> +Images are identical. >> +*** done >> diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group >> index 33c945b..6b9e034 100644 >> --- a/tests/qemu-iotests/group >> +++ b/tests/qemu-iotests/group >> @@ -189,3 +189,4 @@ >> 191 rw auto >> 192 rw auto quick >> 194 rw auto migration quick >> +193 rw auto > > Let's add this line after 192 before 194, and you can add 'quick' btw. > > Fam > >> -- >> 2.7.4 >> >>