VirtualBox

source: vbox/trunk/src/VBox/Storage/testcase/tstVDCopy.vd

Last change on this file was 98103, checked in by vboxsync, 16 months ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1/* $Id: tstVDCopy.vd 98103 2023-01-17 14:15:46Z vboxsync $ */
2/**
3 * Storage: Testcase for VDCopy with snapshots and optimizations.
4 */
5
6/*
7 * Copyright (C) 2011-2023 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28void main()
29{
30 /* Init I/O RNG for generating random data for writes. */
31 iorngcreate(10M, "manual", 1234567890);
32
33 /* Create source disk and fill data. */
34 print("Creating Source Disk");
35 createdisk("source", false);
36 create("source", "base", "source_base.vdi", "dynamic", "VDI", 1G, false, false);
37 io("source", false, 1, "rnd", 64K, 0, 512M, 256M, 100, "none");
38
39 print("Creating first diff");
40 create("source", "diff", "source_diff1.vdi", "dynamic", "VDI", 1G, false, false);
41 io("source", false, 1, "rnd", 64K, 512M, 1G, 256M, 50, "none");
42
43 print("Creating second diff");
44 create("source", "diff", "source_diff2.vdi", "dynamic", "VDI", 1G, false, false);
45 io("source", false, 1, "rnd", 1M, 0, 1G, 45M, 100, "none");
46
47 print("Creating third diff");
48 create("source", "diff", "source_diff3.vdi", "dynamic", "VDI", 1G, false, false);
49 io("source", false, 1, "rnd", 1M, 0, 1G, 45M, 100, "none");
50
51 print("Creating fourth diff");
52 create("source", "diff", "source_diff4.vdi", "dynamic", "VDI", 1G, false, false);
53 io("source", false, 1, "rnd", 1M, 0, 1G, 45M, 100, "none");
54
55 print("Creating destination disk");
56 createdisk("dest", false);
57
58 print("Copying base image");
59 copy("source", "dest", 0, "VDI", "dest_base.vdi", false, 0, 0xffffffff, 0xffffffff); /* Image content unknown */
60
61 print("Copying first diff optimized");
62 copy("source", "dest", 1, "VDI", "dest_diff1.vdi", false, 0, 0, 0);
63
64 print("Copying other diffs optimized");
65 copy("source", "dest", 2, "VDI", "dest_diff2.vdi", false, 0, 1, 1);
66 copy("source", "dest", 3, "VDI", "dest_diff3.vdi", false, 0, 2, 2);
67 copy("source", "dest", 4, "VDI", "dest_diff4.vdi", false, 0, 3, 3);
68
69 print("Comparing disks");
70 comparedisks("source", "dest");
71
72 printfilesize("source", 0);
73 printfilesize("source", 1);
74 printfilesize("source", 2);
75 printfilesize("source", 3);
76 printfilesize("source", 4);
77
78 printfilesize("dest", 0);
79 printfilesize("dest", 1);
80 printfilesize("dest", 2);
81 printfilesize("dest", 3);
82 printfilesize("dest", 4);
83
84 print("Cleaning up");
85 close("dest", "single", true);
86 close("dest", "single", true);
87 close("dest", "single", true);
88 close("dest", "single", true);
89 close("dest", "single", true);
90
91 close("source", "single", true);
92 close("source", "single", true);
93 close("source", "single", true);
94 close("source", "single", true);
95 close("source", "single", true);
96 destroydisk("source");
97 destroydisk("dest");
98
99 iorngdestroy();
100}
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use