|
|
1.1 ! root 1: #!/bin/bash ! 2: # ! 3: # Combined test to grow the refcount table and test snapshots. ! 4: # ! 5: # Copyright (C) 2009 Red Hat, Inc. ! 6: # ! 7: # This program is free software; you can redistribute it and/or modify ! 8: # it under the terms of the GNU General Public License as published by ! 9: # the Free Software Foundation; either version 2 of the License, or ! 10: # (at your option) any later version. ! 11: # ! 12: # This program is distributed in the hope that it will be useful, ! 13: # but WITHOUT ANY WARRANTY; without even the implied warranty of ! 14: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 15: # GNU General Public License for more details. ! 16: # ! 17: # You should have received a copy of the GNU General Public License ! 18: # along with this program. If not, see <http://www.gnu.org/licenses/>. ! 19: # ! 20: ! 21: # creator ! 22: [email protected] ! 23: ! 24: seq=`basename $0` ! 25: echo "QA output created by $seq" ! 26: ! 27: here=`pwd` ! 28: tmp=/tmp/$$ ! 29: status=1 # failure is the default! ! 30: ! 31: _cleanup() ! 32: { ! 33: _cleanup_test_img ! 34: true ! 35: } ! 36: trap "_cleanup; exit \$status" 0 1 2 3 15 ! 37: ! 38: # get standard environment, filters and checks ! 39: . ./common.rc ! 40: . ./common.filter ! 41: ! 42: # actually any format that supports snapshots ! 43: _supported_fmt qcow2 ! 44: _supported_proto generic ! 45: _supported_os Linux ! 46: ! 47: echo ! 48: echo "creating image" ! 49: ! 50: # With 1k clusters a refcount block contains 512 clusters ! 51: # This makes 512k of the image file covered by a refcount block ! 52: # A refcount table that spans one clusters has 128 refcount ! 53: # tables which makes up 64M in the image file. ! 54: # ! 55: # We use a 36M image, so initially we can be sure that only one cluster is used ! 56: # for the refcount table. On the other hand this is big enough to cause a ! 57: # refcount table growth when rewriting the image after creating one snapshot. ! 58: size=36M ! 59: CLUSTER_SIZE=1k ! 60: _make_test_img $size ! 61: ! 62: # Create two snapshots which fill the image with two different patterns ! 63: echo "creating first snapshot" ! 64: $QEMU_IO -c "aio_write -P 123 0 $size" $TEST_IMG | _filter_qemu_io ! 65: $QEMU_IMG snapshot -c snap1 $TEST_IMG ! 66: echo "creating second snapshot" ! 67: $QEMU_IO -c "aio_write -P 165 0 $size" $TEST_IMG | _filter_qemu_io ! 68: $QEMU_IMG snapshot -c snap2 $TEST_IMG ! 69: ! 70: # Now check the pattern ! 71: echo "checking first snapshot" ! 72: $QEMU_IMG snapshot -a snap1 $TEST_IMG ! 73: $QEMU_IO -c "aio_read -P 123 0 $size" $TEST_IMG | _filter_qemu_io ! 74: echo "checking second snapshot" ! 75: $QEMU_IMG snapshot -a snap2 $TEST_IMG ! 76: $QEMU_IO -c "aio_read -P 165 0 $size" $TEST_IMG | _filter_qemu_io ! 77: ! 78: echo ! 79: echo "checking image for errors" ! 80: _check_test_img ! 81: ! 82: # success, all done ! 83: echo "*** done" ! 84: rm -f $seq.full ! 85: status=0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.