VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/docs/VBoxValidationKitReadMe.html

Last change on this file was 106065, checked in by vboxsync, 3 months ago

Manual copyright year updates.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 13.0 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
7<title>The VirtualBox Validation Kit</title>
8<style type="text/css">
9
10/*
11:Author: David Goodger (goodger@python.org)
12:Id: $Id: VBoxValidationKitReadMe.html 106065 2024-09-16 21:42:41Z vboxsync $
13:Copyright: This stylesheet has been placed in the public domain.
14
15Default cascading style sheet for the HTML output of Docutils.
16
17See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
18customize this style sheet.
19*/
20
21/* used to remove borders from tables and images */
22.borderless, table.borderless td, table.borderless th {
23 border: 0 }
24
25table.borderless td, table.borderless th {
26 /* Override padding for "table.docutils td" with "! important".
27 The right padding separates the table cells. */
28 padding: 0 0.5em 0 0 ! important }
29
30.first {
31 /* Override more specific margin styles with "! important". */
32 margin-top: 0 ! important }
33
34.last, .with-subtitle {
35 margin-bottom: 0 ! important }
36
37.hidden {
38 display: none }
39
40.subscript {
41 vertical-align: sub;
42 font-size: smaller }
43
44.superscript {
45 vertical-align: super;
46 font-size: smaller }
47
48a.toc-backref {
49 text-decoration: none ;
50 color: black }
51
52blockquote.epigraph {
53 margin: 2em 5em ; }
54
55dl.docutils dd {
56 margin-bottom: 0.5em }
57
58object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
59 overflow: hidden;
60}
61
62/* Uncomment (and remove this text!) to get bold-faced definition list terms
63dl.docutils dt {
64 font-weight: bold }
65*/
66
67div.abstract {
68 margin: 2em 5em }
69
70div.abstract p.topic-title {
71 font-weight: bold ;
72 text-align: center }
73
74div.admonition, div.attention, div.caution, div.danger, div.error,
75div.hint, div.important, div.note, div.tip, div.warning {
76 margin: 2em ;
77 border: medium outset ;
78 padding: 1em }
79
80div.admonition p.admonition-title, div.hint p.admonition-title,
81div.important p.admonition-title, div.note p.admonition-title,
82div.tip p.admonition-title {
83 font-weight: bold ;
84 font-family: sans-serif }
85
86div.attention p.admonition-title, div.caution p.admonition-title,
87div.danger p.admonition-title, div.error p.admonition-title,
88div.warning p.admonition-title, .code .error {
89 color: red ;
90 font-weight: bold ;
91 font-family: sans-serif }
92
93/* Uncomment (and remove this text!) to get reduced vertical space in
94 compound paragraphs.
95div.compound .compound-first, div.compound .compound-middle {
96 margin-bottom: 0.5em }
97
98div.compound .compound-last, div.compound .compound-middle {
99 margin-top: 0.5em }
100*/
101
102div.dedication {
103 margin: 2em 5em ;
104 text-align: center ;
105 font-style: italic }
106
107div.dedication p.topic-title {
108 font-weight: bold ;
109 font-style: normal }
110
111div.figure {
112 margin-left: 2em ;
113 margin-right: 2em }
114
115div.footer, div.header {
116 clear: both;
117 font-size: smaller }
118
119div.line-block {
120 display: block ;
121 margin-top: 1em ;
122 margin-bottom: 1em }
123
124div.line-block div.line-block {
125 margin-top: 0 ;
126 margin-bottom: 0 ;
127 margin-left: 1.5em }
128
129div.sidebar {
130 margin: 0 0 0.5em 1em ;
131 border: medium outset ;
132 padding: 1em ;
133 background-color: #ffffee ;
134 width: 40% ;
135 float: right ;
136 clear: right }
137
138div.sidebar p.rubric {
139 font-family: sans-serif ;
140 font-size: medium }
141
142div.system-messages {
143 margin: 5em }
144
145div.system-messages h1 {
146 color: red }
147
148div.system-message {
149 border: medium outset ;
150 padding: 1em }
151
152div.system-message p.system-message-title {
153 color: red ;
154 font-weight: bold }
155
156div.topic {
157 margin: 2em }
158
159h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
160h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
161 margin-top: 0.4em }
162
163h1.title {
164 text-align: center }
165
166h2.subtitle {
167 text-align: center }
168
169hr.docutils {
170 width: 75% }
171
172img.align-left, .figure.align-left, object.align-left, table.align-left {
173 clear: left ;
174 float: left ;
175 margin-right: 1em }
176
177img.align-right, .figure.align-right, object.align-right, table.align-right {
178 clear: right ;
179 float: right ;
180 margin-left: 1em }
181
182img.align-center, .figure.align-center, object.align-center {
183 display: block;
184 margin-left: auto;
185 margin-right: auto;
186}
187
188table.align-center {
189 margin-left: auto;
190 margin-right: auto;
191}
192
193.align-left {
194 text-align: left }
195
196.align-center {
197 clear: both ;
198 text-align: center }
199
200.align-right {
201 text-align: right }
202
203/* reset inner alignment in figures */
204div.align-right {
205 text-align: inherit }
206
207/* div.align-center * { */
208/* text-align: left } */
209
210.align-top {
211 vertical-align: top }
212
213.align-middle {
214 vertical-align: middle }
215
216.align-bottom {
217 vertical-align: bottom }
218
219ol.simple, ul.simple {
220 margin-bottom: 1em }
221
222ol.arabic {
223 list-style: decimal }
224
225ol.loweralpha {
226 list-style: lower-alpha }
227
228ol.upperalpha {
229 list-style: upper-alpha }
230
231ol.lowerroman {
232 list-style: lower-roman }
233
234ol.upperroman {
235 list-style: upper-roman }
236
237p.attribution {
238 text-align: right ;
239 margin-left: 50% }
240
241p.caption {
242 font-style: italic }
243
244p.credits {
245 font-style: italic ;
246 font-size: smaller }
247
248p.label {
249 white-space: nowrap }
250
251p.rubric {
252 font-weight: bold ;
253 font-size: larger ;
254 color: maroon ;
255 text-align: center }
256
257p.sidebar-title {
258 font-family: sans-serif ;
259 font-weight: bold ;
260 font-size: larger }
261
262p.sidebar-subtitle {
263 font-family: sans-serif ;
264 font-weight: bold }
265
266p.topic-title {
267 font-weight: bold }
268
269pre.address {
270 margin-bottom: 0 ;
271 margin-top: 0 ;
272 font: inherit }
273
274pre.literal-block, pre.doctest-block, pre.math, pre.code {
275 margin-left: 2em ;
276 margin-right: 2em }
277
278pre.code .ln { color: grey; } /* line numbers */
279pre.code, code { background-color: #eeeeee }
280pre.code .comment, code .comment { color: #5C6576 }
281pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
282pre.code .literal.string, code .literal.string { color: #0C5404 }
283pre.code .name.builtin, code .name.builtin { color: #352B84 }
284pre.code .deleted, code .deleted { background-color: #DEB0A1}
285pre.code .inserted, code .inserted { background-color: #A3D289}
286
287span.classifier {
288 font-family: sans-serif ;
289 font-style: oblique }
290
291span.classifier-delimiter {
292 font-family: sans-serif ;
293 font-weight: bold }
294
295span.interpreted {
296 font-family: sans-serif }
297
298span.option {
299 white-space: nowrap }
300
301span.pre {
302 white-space: pre }
303
304span.problematic {
305 color: red }
306
307span.section-subtitle {
308 /* font-size relative to parent (h1..h6 element) */
309 font-size: 80% }
310
311table.citation {
312 border-left: solid 1px gray;
313 margin-left: 1px }
314
315table.docinfo {
316 margin: 2em 4em }
317
318table.docutils {
319 margin-top: 0.5em ;
320 margin-bottom: 0.5em }
321
322table.footnote {
323 border-left: solid 1px black;
324 margin-left: 1px }
325
326table.docutils td, table.docutils th,
327table.docinfo td, table.docinfo th {
328 padding-left: 0.5em ;
329 padding-right: 0.5em ;
330 vertical-align: top }
331
332table.docutils th.field-name, table.docinfo th.docinfo-name {
333 font-weight: bold ;
334 text-align: left ;
335 white-space: nowrap ;
336 padding-left: 0 }
337
338/* "booktabs" style (no vertical lines) */
339table.docutils.booktabs {
340 border: 0px;
341 border-top: 2px solid;
342 border-bottom: 2px solid;
343 border-collapse: collapse;
344}
345table.docutils.booktabs * {
346 border: 0px;
347}
348table.docutils.booktabs th {
349 border-bottom: thin solid;
350 text-align: left;
351}
352
353h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
354h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
355 font-size: 100% }
356
357ul.auto-toc {
358 list-style-type: none }
359
360</style>
361</head>
362<body>
363<div class="document" id="the-virtualbox-validation-kit">
364<h1 class="title">The VirtualBox Validation Kit</h1>
365
366<div class="section" id="introduction">
367<h1>Introduction</h1>
368<p>The VirtualBox Validation Kit is our new public tool for doing automated
369testing of VirtualBox. We are continually working on adding new features
370and guest operating systems to our battery of tests.</p>
371<p>We warmly welcome contributions, new ideas for good tests and fixes.</p>
372</div>
373<div class="section" id="directory-layout">
374<h1>Directory Layout</h1>
375<dl class="docutils">
376<dt>./docs/</dt>
377<dd><p class="first">The documentation for the test suite mostly lives here, the exception being
378readme.txt files that are better off living near what they concern.</p>
379<p class="last">For a definition of terms used here, see the Definitions / Glossary section
380of ./docs/AutomaticTestingRevamp.txt / ./docs/AutomaticTestingRevamp.html.</p>
381</dd>
382<dt>./testdriver/</dt>
383<dd><p class="first">Python module implementing the base test drivers and supporting stuff.
384The base test driver implementation is found in ./testdriver/base.py while
385the VBox centric specialization is in ./testdriver/vbox.py. Various VBox
386API wrappers that makes things easier to use and glosses over a lot of API
387version differences that live in ./testdriver/vboxwrappers.py.</p>
388<p>Test VM collections are often managed thru ./testdriver/vboxtestvms.py, but
389doesn't necessarily have to be, it's up to the individual test driver.</p>
390<p>For logging, reporting result, uploading useful files and such we have a
391reporter singleton sub-package, ./testdriver/reporter.py. It implements
392both local (for local testing) and remote (for testboxes + test manager)
393reporting.</p>
394<p class="last">There is also a VBoxTXS client implementation in txsclient.py and a stacked
395test driver for installing VBox (vboxinstaller.py). Most test drivers will
396use the TXS client indirectly thru vbox.py methods. The installer driver
397is a special trick for the testbox+testmanager setup.</p>
398</dd>
399<dt>./tests/</dt>
400<dd>The python scripts driving the tests. These are organized by what they
401test and are all derived from the base classes in ./testdriver (mostly from
402vbox.py of course). Most tests use one or more VMs from a standard set of
403preconfigured VMs defined by ./testdriver/vboxtestvms.py (mentioned above),
404though the installation tests used prepared ISOs and floppy images.</dd>
405<dt>./vms/</dt>
406<dd>Text documents describing the preconfigured test VMs defined by
407./testdrive/vboxtestvms.py. This will also contain description of how to
408prepare installation ISOs when we get around to it (soon).</dd>
409<dt>./utils/</dt>
410<dd><p class="first">Test utilities and lower level test programs, compiled from C, C++ and
411Assembly mostly. Generally available for both host and guest, i.e. in the
412zip and on the VBoxValidationKit.iso respectively.</p>
413<p>The Test eXecution Service (VBoxTXS) found in ./utils/TestExecServ is one
414of the more important utilities. It implements a remote execution service
415for running programs/tests inside VMs and on other test boxes. See
416./utils/TestExecServ/vboxtxs-readme.txt for more details.</p>
417<p class="last">A simple network bandwidth and latency test program can be found in
418./utils/network/NetPerf.cpp.</p>
419</dd>
420<dt>./bootsectors/</dt>
421<dd><p class="first">Boot sector test environment. This allows creating floppy images in
422assembly that tests specific CPU or device behavior. Most tests can be
423put on a USB stick, floppy or similar and booted up on real hardware for
424comparison. All floppy images can be used for manual testing by developers
425and most will be used by test drivers (./tests/<em>/td</em>.py) sooner or later.</p>
426<p class="last">The boot sector environment is heavily bound to yasm and it's ability to
427link binary images for single assembly input units. There is a &quot;library&quot;
428of standard initialization code and runtime code, which include switch to
429all (well V8086 mode is still missing, but we'll get that done eventually)
430processor modes and paging modes. The image specific code is split into
431init/driver code and test template, the latter can be instantiated for each
432process execution+paging mode.</p>
433</dd>
434<dt>./common/</dt>
435<dd>Python package containing common python code.</dd>
436<dt>./testboxscript/</dt>
437<dd>The testbox script. This is installed on testboxes used for automatic
438testing with the testmanager.</dd>
439<dt>./testmanager/</dt>
440<dd>The VirtualBox Test Manager (server side code). This is written in Python
441and currently uses postgresql as database backend for no particular reason
442other than that it was already installed on the server the test manager was
443going to run on. It's relatively generic, though there are of course
444things in there that are of more use when testing VirtualBox than other
445things. A more detailed account (though perhaps a little dated) of the
446test manager can be found in ./docs/AutomaticTestingRevamp.txt and
447./docs/AutomaticTestingRevamp.html.</dd>
448<dt>./testanalysis/</dt>
449<dd>A start a local test result analysis, comparing network test output. We'll
450probably be picking this up again later.</dd>
451<dt>./snippets/</dt>
452<dd>Various code snippets that may be turned into real tests at some point.</dd>
453</dl>
454<table class="docutils field-list" frame="void" rules="none">
455<col class="field-name" />
456<col class="field-body" />
457<tbody valign="top">
458<tr class="field"><th class="field-name">Status:</th><td class="field-body">$Id: VBoxValidationKitReadMe.html 106065 2024-09-16 21:42:41Z vboxsync $</td>
459</tr>
460<tr class="field"><th class="field-name">Copyright:</th><td class="field-body">Copyright (C) 2010-2024 Oracle Corporation.</td>
461</tr>
462</tbody>
463</table>
464</div>
465</div>
466</body>
467</html>
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