VirtualBox

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

Last change on this file since 60871 was 59549, checked in by vboxsync, 9 years ago

Validation Kit: Documentation.

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