1 HelenOS Continuous Integration Testing Scripts
2 ==============================================
4 The purpose of this repository is to have a universal script for building
5 and testing (almost) everything related to HelenOS. Currently, the script
8 * fetch latest versions of HelenOS and harbours (ported software)
9 * build HelenOS for all supported architectures
10 * build all harbours (the full matrix)
11 * run automated tests in QEMU (selected platforms only)
13 See http://www.helenos.org/wiki/CI for more information. Nightly builds
14 using this tool are pushed to http://ci.helenos.org/.
16 **Note:** this tool is not meant to be used for normal development of
17 HelenOS (i.e. the "edit - incrementally compile - test" loop) but rather
18 for pre-merge tests or automated nightly builds.
25 # Fetch default branches and build everything.
31 # Fetch from non-default branches
32 ./build.py --helenos-repository git@github.com:login/helenos.git
38 The tests are executed in QEMU and it is possible to type text
39 into console and assert for command output.
41 See scripts in `scenarios/` directory for examples or the `test-in-vm.py`
42 script to learn about internals.
45 usage: test-in-vm.py [-h] [--headless] [--scenario FILENAME.yml] --arch
46 ARCHITECTURE [--memory MB] --image FILENAME
47 [--pass OPTION] [--vterm-dump FILENAME.txt]
48 [--last-screenshot FILENAME.png] [--debug]
50 Testing of HelenOS in VM
53 -h, --help show this help message and exit
54 --headless Do not show any VM windows.
55 --scenario FILENAME.yml
57 --arch ARCHITECTURE Emulated architecture identification.
58 --memory MB Amount of memory for the virtual machine.
59 --image FILENAME HelenOS boot image (e.g. ISO file).
60 --pass OPTION Extra options to pass through to the emulator
61 --vterm-dump FILENAME.txt
62 Where to store full vterm dump.
63 --last-screenshot FILENAME.png
64 Where to store last screenshot.
65 --debug Print debugging messages
67 Typical invocation will use the following arguments:
69 --scenario scenario.yml
70 --arch amd64 # ia32, ppc32 etc.
71 --vterm-dump dump.txt # all text from main vterm
72 --last-screenshot shot.png # last VM screen
75 Simple test running malloc and checking its output looks like this:
85 args: "tester malloc1"
87 negassert: "Test failed"
91 Test checking that we are able to launch GCC (needs special image):
102 args: "gcc --version"