2N/A<?
xml version="1.0" encoding="utf-8" ?>
2N/A<
meta http-
equiv="Content-Type" content="text/html; charset=utf-8" />
2N/A<
title>The VirtualBox Validation Kit</
title>
2N/A:Author: David Goodger (goodger@python.org)
2N/A:Copyright: This stylesheet has been placed in the public domain.
2N/ADefault cascading style sheet for the HTML output of Docutils.
2N/Acustomize this style sheet.
2N/A/* used to remove borders from tables and images */
2N/A The right padding separates the table cells. */
2N/A padding: 0 0.5em 0 0 ! important }
2N/A /* Override more specific margin styles with "! important". */
2N/A margin-top: 0 ! important }
2N/A.last, .with-subtitle {
2N/A margin-bottom: 0 ! important }
2N/A text-decoration: none ;
2N/A margin-bottom: 0.5em }
2N/A/* Uncomment (and remove this text!) to get bold-faced definition list terms
2N/A text-align: center }
2N/A border: medium outset ;
2N/A font-family: sans-serif }
2N/A font-family: sans-serif }
2N/A/* Uncomment (and remove this text!) to get reduced vertical space in
2N/A compound paragraphs.
2N/A margin-bottom: 0.5em }
2N/A text-align: center ;
2N/A font-style: italic }
2N/A font-style: normal }
2N/A font-size: smaller }
2N/A margin-bottom: 1em }
2N/A margin-left: 1.5em }
2N/A margin: 0 0 0.5em 1em ;
2N/A border: medium outset ;
2N/A background-color: #ffffee ;
2N/A font-family: sans-serif ;
2N/A border: medium outset ;
2N/A text-align: center }
2N/A text-align: center }
2N/A text-align: center }
2N/A/* reset inner alignment in figures */
2N/A text-align: inherit }
2N/A/* text-align: left } */
2N/A margin-bottom: 1em }
2N/A list-style: decimal }
2N/A list-style: lower-alpha }
2N/A list-style: upper-alpha }
2N/A list-style: lower-roman }
2N/A list-style: upper-roman }
2N/A font-style: italic }
2N/A font-style: italic ;
2N/A font-size: smaller }
2N/A white-space: nowrap }
2N/A text-align: center }
2N/A font-family: sans-serif ;
2N/A font-family: sans-serif ;
2N/Apre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
2N/Apre.code .deleted, code .deleted { background-color: #DEB0A1}
2N/Apre.code .inserted, code .inserted { background-color: #A3D289}
2N/A font-family: sans-serif ;
2N/A font-style: oblique }
2N/A font-family: sans-serif ;
2N/A font-family: sans-serif }
2N/A white-space: nowrap }
2N/A /* font-size relative to parent (
h1..h6 element) */
2N/A border-left: solid 1px gray;
2N/A margin-bottom: 0.5em }
2N/A border-left: solid 1px black;
2N/A padding-left: 0.5em ;
2N/A padding-right: 0.5em ;
2N/A vertical-align: top }
2N/A white-space: nowrap ;
2N/A list-style-type: none }
2N/A<
div class="document" id="the-virtualbox-test-suite">
2N/A<
h1 class="title">The VirtualBox Validation Kit</
h1>
2N/A<
div class="section" id="introduction">
2N/A<
h1>Introduction</
h1>
2N/A<
p>The VirtualBox test suite is the new way we're doing automated testing of
2N/AVirtualBox and is still rather incomplete, in fact it will probably always be
2N/Aincomplete as there will always be new features and guest OSes to test.</
p>
2N/A<
p>We're warmly welcoming contributions, new ideas for good tests, and fixes.</
p>
2N/A<
div class="section" id="directory-layout">
2N/A<
h1>Directory Layout</
h1>
2N/A<
dl class="docutils">
2N/A<
dd><
p class="first">The documentation for the test suite mostly lives here, the exception being
2N/Areadme.txt files that are better off living near what they concern.</
p>
2N/A<
p class="last">For a definition of terms used here, see the Definitions / Glossary section
2N/A<
dd><
p class="first">Python module implementing the base test drivers and supporting stuff.
2N/AAPI wrappers that makes things easier to use and glosses over a lot of API
2N/Adoesn't necessarily have to be, it's up to the individual test driver.</
p>
2N/A<
p>For logging, reporting result, uploading useful files and such we have a
2N/Aboth local (for local testing) and remote (for testboxes + test manager)
2N/A<
p class="last">There is also a VBoxTXS client implementation in
txsclient.py and a stacked
2N/Ause the TXS client indirectly thru
vbox.py methods. The installer driver
2N/Ais a special trick for the testbox+testmanager setup.</
p>
2N/A<
dd>The python scripts driving the tests. These are organized by what they
2N/Atest and are all derived from the base classes in /
testdriver (mostly from
2N/Avbox.py of course). Most tests use one or more VMs from a standard set of
2N/Athough the installation tests used prepared ISOs and floppy images.</
dd>
2N/A<
dd>Text documents describing the preconfigured test VMs defined by
2N/Aprepare installation ISOs when we get around to it (soon).</
dd>
2N/A<
dd><
p class="first">Test utilities and lower level test programs, compiled from C, C++ and
2N/AAssembly mostly. Generally available for both host and guest,
i.e. in the
2N/Aof the more important utilities. It implements a remote execution service
2N/A<
p class="last">A simple network bandwidth and latency test program can be found in
2N/A<
dd><
p class="first">Boot sector test environment. This allows creating floppy images in
2N/Aassembly that tests specific CPU or device behaviour. Most tests can be
2N/Aput on a USB stick, floppy or similar and booted up on real hardware for
2N/Acomparison. All floppy images can be used for manual testing by developers
2N/Aand most will be used by test drivers (/
tests/<
em>/td</
em>.py) sooner or later.</
p>
2N/A<
p class="last">The boot sector environment is heavily bound to yasm and it's ability to
2N/Alink binary images for single assembly input units. There is a "library"
2N/Aof standard initialization code and runtime code, which include switch to
2N/Aall (well V8086 mode is still missing, but we'll get that done eventually)
2N/Aprocessor modes and paging modes. The image specific code is split into
2N/Ainit/
driver code and test template, the latter can be instantiated for each
2N/Aprocess execution+paging mode.</
p>
2N/A<
dd>Python package containing common python code.</
dd>
2N/A<
dd>The testbox script. This is installed on testboxes used for automatic
2N/Atesting with the testmanager.</
dd>
2N/A<
dd>The VirtualBox Test Manager (server side code). This is written in Python
2N/Aand currently uses postgresql as database backend for no particular reason
2N/Aother than that it was already installed on the server the test manager was
2N/Agoing to run on. It's relatively generic, though there are of course
2N/Athings in there that are of more use when testing VirtualBox than other
2N/Athings. A more detailed account (though perhaps a little dated) of the
2N/A<
dd>A start a local test result analysis, comparing network test output. We'll
2N/Aprobably be picking this up again later.</
dd>
2N/A<
dd>Various code snippets that may be turned into real tests at some point.</
dd>
2N/A<
table class="docutils field-list" frame="void" rules="none">
2N/A<
col class="field-name" />
2N/A<
col class="field-body" />
2N/A<
tr class="field"><
th class="field-name">Status:</
th><
td class="field-body">$Id$</
td>
2N/A<
tr class="field"><
th class="field-name">Copyright:</
th><
td class="field-body">Copyright (C) 2010-2014 Oracle Corporation.</
td>