tstVDCompact.vd revision 48a15610b4cfea625302a67f21b3f46215c59aa4
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# $Id$
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync#
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Storage: Testcase for compacting disks.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync#
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync#
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Copyright (C) 2011 Oracle Corporation
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync#
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# available from http://www.virtualbox.org. This file is free software;
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# you can redistribute it and/or modify it under the terms of the GNU
23179f1443b03947d85eccc81cbc6b5153a4abf3vboxsync# General Public License (GPL) as published by the Free Software
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
92a27575521748a392dcd1b996fce55b87411a00vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
92a27575521748a392dcd1b996fce55b87411a00vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
92a27575521748a392dcd1b996fce55b87411a00vboxsync#
92a27575521748a392dcd1b996fce55b87411a00vboxsync
92a27575521748a392dcd1b996fce55b87411a00vboxsync# Init I/O RNG for generating random data for writes
92a27575521748a392dcd1b996fce55b87411a00vboxsynciorngcreate size=10M mode=manual seed=1234567890
92a27575521748a392dcd1b996fce55b87411a00vboxsync
92a27575521748a392dcd1b996fce55b87411a00vboxsync# Create zero pattern
92a27575521748a392dcd1b996fce55b87411a00vboxsynciopatterncreatefromnumber name=zero size=1M pattern=0
92a27575521748a392dcd1b996fce55b87411a00vboxsync
92a27575521748a392dcd1b996fce55b87411a00vboxsync# Create disk containers, read verification is on.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsynccreatedisk name=disk verify=yes
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Create the disk and close it.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsynccreate disk=disk mode=base name=tstCompact.vdi type=dynamic backend=VDI size=200M
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Fill the disk with random data
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsyncio disk=disk async=no max-reqs=32 mode=seq blocksize=64k off=0-200M size=200M writes=100
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Read the data to verify it once.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsyncio disk=disk async=no max-reqs=32 mode=seq blocksize=64k off=0-200M size=200M writes=0
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Fill a part with 0's
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsyncio disk=disk async=no max-reqs=32 mode=seq blocksize=64k off=100M-150M size=50M writes=100 pattern=zero
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Now compact
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsynccompact disk=disk image=0
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Read again to verify that the content hasn't changed
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsyncio disk=disk async=no max-reqs=32 mode=seq blocksize=64k off=0-200M size=200M writes=0
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync# Cleanup
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsyncclose disk=disk mode=single delete=yes
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsyncdestroydisk name=disk
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsynciopatterndestroy name=zero
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsynciorngdestroy
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync