VirtualBox

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

Last change on this file was 106065, checked in by vboxsync, 6 weeks ago

Manual copyright year updates.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.9 KB
Line 
1
2The VirtualBox Validation Kit
3=============================
4
5
6Introduction
7------------
8
9The VirtualBox Validation Kit is our new public tool for doing automated
10testing of VirtualBox. We are continually working on adding new features
11and guest operating systems to our battery of tests.
12
13We warmly welcome contributions, new ideas for good tests and fixes.
14
15
16Directory Layout
17----------------
18
19./docs/
20 The documentation for the test suite mostly lives here, the exception being
21 readme.txt files that are better off living near what they concern.
22
23 For a definition of terms used here, see the Definitions / Glossary section
24 of ./docs/AutomaticTestingRevamp.txt / ./docs/AutomaticTestingRevamp.html.
25
26./testdriver/
27 Python module implementing the base test drivers and supporting stuff.
28 The base test driver implementation is found in ./testdriver/base.py while
29 the VBox centric specialization is in ./testdriver/vbox.py. Various VBox
30 API wrappers that makes things easier to use and glosses over a lot of API
31 version differences that live in ./testdriver/vboxwrappers.py.
32
33 Test VM collections are often managed thru ./testdriver/vboxtestvms.py, but
34 doesn't necessarily have to be, it's up to the individual test driver.
35
36 For logging, reporting result, uploading useful files and such we have a
37 reporter singleton sub-package, ./testdriver/reporter.py. It implements
38 both local (for local testing) and remote (for testboxes + test manager)
39 reporting.
40
41 There is also a VBoxTXS client implementation in txsclient.py and a stacked
42 test driver for installing VBox (vboxinstaller.py). Most test drivers will
43 use the TXS client indirectly thru vbox.py methods. The installer driver
44 is a special trick for the testbox+testmanager setup.
45
46./tests/
47 The python scripts driving the tests. These are organized by what they
48 test and are all derived from the base classes in ./testdriver (mostly from
49 vbox.py of course). Most tests use one or more VMs from a standard set of
50 preconfigured VMs defined by ./testdriver/vboxtestvms.py (mentioned above),
51 though the installation tests used prepared ISOs and floppy images.
52
53./vms/
54 Text documents describing the preconfigured test VMs defined by
55 ./testdrive/vboxtestvms.py. This will also contain description of how to
56 prepare installation ISOs when we get around to it (soon).
57
58./utils/
59 Test utilities and lower level test programs, compiled from C, C++ and
60 Assembly mostly. Generally available for both host and guest, i.e. in the
61 zip and on the VBoxValidationKit.iso respectively.
62
63 The Test eXecution Service (VBoxTXS) found in ./utils/TestExecServ is one
64 of the more important utilities. It implements a remote execution service
65 for running programs/tests inside VMs and on other test boxes. See
66 ./utils/TestExecServ/vboxtxs-readme.txt for more details.
67
68 A simple network bandwidth and latency test program can be found in
69 ./utils/network/NetPerf.cpp.
70
71./bootsectors/
72 Boot sector test environment. This allows creating floppy images in
73 assembly that tests specific CPU or device behavior. Most tests can be
74 put on a USB stick, floppy or similar and booted up on real hardware for
75 comparison. All floppy images can be used for manual testing by developers
76 and most will be used by test drivers (./tests/*/td*.py) sooner or later.
77
78 The boot sector environment is heavily bound to yasm and it's ability to
79 link binary images for single assembly input units. There is a "library"
80 of standard initialization code and runtime code, which include switch to
81 all (well V8086 mode is still missing, but we'll get that done eventually)
82 processor modes and paging modes. The image specific code is split into
83 init/driver code and test template, the latter can be instantiated for each
84 process execution+paging mode.
85
86./common/
87 Python package containing common python code.
88
89./testboxscript/
90 The testbox script. This is installed on testboxes used for automatic
91 testing with the testmanager.
92
93./testmanager/
94 The VirtualBox Test Manager (server side code). This is written in Python
95 and currently uses postgresql as database backend for no particular reason
96 other than that it was already installed on the server the test manager was
97 going to run on. It's relatively generic, though there are of course
98 things in there that are of more use when testing VirtualBox than other
99 things. A more detailed account (though perhaps a little dated) of the
100 test manager can be found in ./docs/AutomaticTestingRevamp.txt and
101 ./docs/AutomaticTestingRevamp.html.
102
103./testanalysis/
104 A start a local test result analysis, comparing network test output. We'll
105 probably be picking this up again later.
106
107./snippets/
108 Various code snippets that may be turned into real tests at some point.
109
110
111
112:Status: $Id: VBoxValidationKitReadMe.txt 106065 2024-09-16 21:42:41Z vboxsync $
113:Copyright: Copyright (C) 2010-2024 Oracle Corporation.
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