descriptionContinuous build tools and automated tests for HelenOS.
homepage URLhttp://www.helenos.org
repository URLhttps://github.com/HelenOS/ci.git
ownerjakub@jermar.eu
last changeMon, 11 Mar 2024 09:44:15 +0000 (11 10:44 +0100)
last refreshSat, 27 Apr 2024 10:17:36 +0000 (27 12:17 +0200)
content tags
add:
README.md

HelenOS Continuous Integration Testing Scripts

The purpose of this repository is to have a universal script for building and testing (almost) everything related to HelenOS. Currently, the script is able to:

See http://www.helenos.org/wiki/CI for more information. Nightly builds using this tool are pushed to http://ci.helenos.org/.

Note: this tool is not meant to be used for normal development of HelenOS (i.e. the "edit - incrementally compile - test" loop) but rather for pre-merge tests or automated nightly builds.

Running

# Fetch default branches and build everything.
./build.py

# Limit paralellism
./build.py --jobs 3

# Fetch from non-default branches
./build.py --helenos-repository git@github.com:login/helenos.git

Tests

The tests are executed in QEMU and it is possible to type text into console and assert for command output.

See scripts in scenarios/ directory for examples or the test-in-vm.py script to learn about internals.

usage: test-in-vm.py [-h] [--headless] [--scenario FILENAME.yml] --arch
                     ARCHITECTURE [--memory MB] --image FILENAME
                     [--pass OPTION] [--vterm-dump FILENAME.txt]
                     [--last-screenshot FILENAME.png] [--debug]

Testing of HelenOS in VM

optional arguments:
  -h, --help            show this help message and exit
  --headless            Do not show any VM windows.
  --scenario FILENAME.yml
                        Scenario file
  --arch ARCHITECTURE   Emulated architecture identification.
  --memory MB           Amount of memory for the virtual machine.
  --image FILENAME      HelenOS boot image (e.g. ISO file).
  --pass OPTION         Extra options to pass through to the emulator
  --vterm-dump FILENAME.txt
                        Where to store full vterm dump.
  --last-screenshot FILENAME.png
                        Where to store last screenshot.
  --debug               Print debugging messages

Typical invocation will use the following arguments:
  --image helenos.iso
  --scenario scenario.yml
  --arch amd64               # ia32, ppc32 etc.
  --vterm-dump dump.txt      # all text from main vterm
  --last-screenshot shot.png # last VM screen

Simple test running malloc and checking its output looks like this:

meta:
  name: "tester malloc"
  harbours: []

tasks:
  - boot
  - command:
      args: "tester malloc1"
      assert:  "Test passed"
      negassert: "Test failed"

Test checking that we are able to launch GCC (needs special image):

meta:
  name: "gcc --version"
  harbours:
     - gcc

tasks:
  - boot
  - command:
      args: "gcc --version"
      assert:  "GCC"
shortlog
2024-03-11 Vojtech HorkyBump pillow to 10.2.0 (dependabot, see #5)master
2024-03-11 Vojtech HorkyQEMU: more special characters understood
2024-03-02 dependabot... Bump pillow from 10.1.0 to 10.2.0
2024-03-02 Vojtech HorkyDrop nose, convert to pytest
2024-03-02 Vojtech HorkyUpdate and freeze requirements
2024-03-02 Vojtech HorkyRun MSIM in non-deterministic mode
2024-03-02 Vojtech HorkyMore thorough check for required tools
2024-03-02 Vojtech HorkyDrop trailing whitespace
2023-11-02 Vojtech Horkyconvert: order of operations is important
2023-07-10 Vojtech HorkyCheck installed packages too
2023-07-10 Vojtech HorkyCheck installed tools first
2020-11-28 Jiri SvobodaUpdate OCR position for libui
2019-11-12 Vojtech HorkySpecify profile on hsct.sh init
2019-10-11 Jiří ZárevúckyTry to fix random spurious failures (#3)
2019-10-11 Jiří ZárevúckyFix HelenOS build commands
2019-06-02 Jiří ZárevúckyUpdate base fs test
...
heads
3 weeks ago dependabot/pip/pillow-10.3.0
6 weeks ago master