VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/tests/api/tdTreeDepth1.py@ 69111

Last change on this file since 69111 was 69111, checked in by vboxsync, 7 years ago

(C) year

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3# $Id: tdTreeDepth1.py 69111 2017-10-17 14:26:02Z vboxsync $
4
5"""
6VirtualBox Validation Kit - Medium and Snapshot Tree Depth Test #1
7"""
8
9__copyright__ = \
10"""
11Copyright (C) 2010-2017 Oracle Corporation
12
13This file is part of VirtualBox Open Source Edition (OSE), as
14available from http://www.virtualbox.org. This file is free software;
15you can redistribute it and/or modify it under the terms of the GNU
16General Public License (GPL) as published by the Free Software
17Foundation, in version 2 as it comes in the "COPYING" file of the
18VirtualBox OSE distribution. VirtualBox OSE is distributed in the
19hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
20
21The contents of this file may alternatively be used under the terms
22of the Common Development and Distribution License Version 1.0
23(CDDL) only, as it comes in the "COPYING.CDDL" file of the
24VirtualBox OSE distribution, in which case the provisions of the
25CDDL are applicable instead of those of the GPL.
26
27You may elect to license modified versions of this file under the
28terms and conditions of either the GPL or the CDDL or both.
29"""
30__version__ = "$Revision: 69111 $"
31
32
33# Standard Python imports.
34import os
35import sys
36
37# Only the main script needs to modify the path.
38try: __file__
39except: __file__ = sys.argv[0]
40g_ksValidationKitDir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
41sys.path.append(g_ksValidationKitDir)
42
43# Validation Kit imports.
44from testdriver import reporter
45from testdriver import vbox
46from testdriver import vboxcon
47
48
49class tdTreeDepth1(vbox.TestDriver):
50 """
51 Medium and Snapshot Tree Depth Test #1.
52 """
53
54 def __init__(self):
55 vbox.TestDriver.__init__(self)
56 self.asRsrcs = None
57
58
59 #
60 # Overridden methods.
61 #
62
63 def actionConfig(self):
64 """
65 Import the API.
66 """
67 if not self.importVBoxApi():
68 return False
69 return True
70
71 def actionExecute(self):
72 """
73 Execute the testcase.
74 """
75 return self.testMediumTreeDepth() \
76 and self.testSnapshotTreeDepth()
77
78 #
79 # Test execution helpers.
80 #
81
82 def testMediumTreeDepth(self):
83 """
84 Test medium tree depth.
85 """
86 reporter.testStart('mediumTreeDepth')
87
88 try:
89 oVM = self.createTestVM('test-medium', 1, None, 4)
90 assert oVM is not None
91
92 # create chain with 300 disk images (medium tree depth limit)
93 fRc = True
94 oSession = self.openSession(oVM)
95 for i in range(1, 301):
96 sHddPath = os.path.join(self.sScratchPath, 'Test' + str(i) + '.vdi')
97 if i is 1:
98 oHd = oSession.createBaseHd(sHddPath, cb=1024*1024)
99 else:
100 oHd = oSession.createDiffHd(oHd, sHddPath)
101 if oHd is None:
102 fRc = False
103 break
104
105 # modify the VM config, attach HDD
106 fRc = fRc and oSession.attachHd(sHddPath, sController='SATA Controller', fImmutable=False, fForceResource=False)
107 fRc = fRc and oSession.saveSettings()
108 fRc = oSession.close() and fRc
109
110 # unregister and re-register to test loading of settings
111 sSettingsFile = oVM.settingsFilePath
112 reporter.log('unregistering VM')
113 oVM.unregister(vboxcon.CleanupMode_DetachAllReturnNone)
114 oVBox = self.oVBoxMgr.getVirtualBox()
115 reporter.log('opening VM %s, testing config reading' % (sSettingsFile))
116 oVM = oVBox.openMachine(sSettingsFile)
117
118 assert fRc is True
119 except:
120 reporter.errorXcpt()
121
122 return reporter.testDone()[1] == 0
123
124 def testSnapshotTreeDepth(self):
125 """
126 Test snapshot tree depth.
127 """
128 reporter.testStart('snapshotTreeDepth')
129
130 try:
131 oVM = self.createTestVM('test-snap', 1, None, 4)
132 assert oVM is not None
133
134 # modify the VM config, create and attach empty HDD
135 oSession = self.openSession(oVM)
136 sHddPath = os.path.join(self.sScratchPath, 'TestSnapEmpty.vdi')
137 fRc = True
138 fRc = fRc and oSession.createAndAttachHd(sHddPath, cb=1024*1024, sController='SATA Controller', fImmutable=False)
139 fRc = fRc and oSession.saveSettings()
140
141 # take 250 snapshots (snapshot tree depth limit)
142 for i in range(1, 251):
143 fRc = fRc and oSession.takeSnapshot('Snapshot ' + str(i))
144 fRc = oSession.close() and fRc
145
146 # unregister and re-register to test loading of settings
147 sSettingsFile = oVM.settingsFilePath
148 reporter.log('unregistering VM')
149 oVM.unregister(vboxcon.CleanupMode_DetachAllReturnNone)
150 oVBox = self.oVBoxMgr.getVirtualBox()
151 reporter.log('opening VM %s, testing config reading' % (sSettingsFile))
152 oVM = oVBox.openMachine(sSettingsFile)
153
154 assert fRc is True
155 except:
156 reporter.errorXcpt()
157
158 return reporter.testDone()[1] == 0
159
160
161if __name__ == '__main__':
162 sys.exit(tdTreeDepth1().main(sys.argv))
163
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette