lorax/test/README.md
Lars Karlitski 250f49f78d Use Cockpit's test images and infrastructure
Allows to run the tests on multiple operating systems and on the
infrastructure that the Cockpit team maintains.

`make vm` downloads one of Cockpit's test images (override which one
with TEST_OS) and installs rpms build from the local checkout of lorax.
The resulting image is placed in `test/images/$TEST_OS`.

TEST_OS can be set to any of Cockpit's supported images (default:
fedora-30).

Run `make check-vm` to run the CLI checks in the VM. The bulk of the
work is done in `test/check-cli`, which uses Cockpit's `bots` library to
start the VM and run the script in it.

Also included is a `test/run` script, which is the entrypoint for
Cockpit's test infrastructure.
2019-05-20 20:24:01 +02:00

58 lines
1.8 KiB
Markdown

# Integration Tests
lorax uses Cockpit's integration test framework and infrastructure. To do this,
we're checking out Cockpit's `bots/` subdirectory. It contains links to test
images and tools to manipulate and start virtual machines from them.
Each test is run on a new instance of a virtual machine.
## Dependencies
These dependencies are needed on Fedora to run tests locally:
$ sudo dnf install curl expect \
libvirt libvirt-client libvirt-daemon libvirt-python \
python python-libguestfs python-lxml libguestfs-xfs \
python3 libvirt-python3 \
libguestfs-tools qemu qemu-kvm rpm-build rsync xz
## Building a test VM
To build a test VM, run
$ make vm
This downloads a base image from Cockpit's infrastructure. You can control
which image is downloaded with the `TEST_OS` environment variable. Cockpit's
[documentation](https://github.com/cockpit-project/cockpit/blob/master/test/README.md#test-configuration)
lists accepted values. It then creates a new image based on that (a qemu
snapshot) in `tests/images`, which contain the current `tests/` directory and
have newly built rpms from the current checkout installed.
To delete the generated image, run
$ make vm-reset
Base images are stored in `bots/images`. Set `TEST_DATA` to override this
directory.
## Running tests
After building a test image, run
$ ./test/check-cli [TESTNAME]
or any of the other `check-*` scripts. Right after the VM is started, these
scripts print an `ssh` line to connect to it.
Run `make vm` after changing tests or lorax source to recreate the test
machine. It is usually not necessary to reset the VM.
## Updating images
The `bots/` directory is checked out from Cockpit when `make vm` is first run.
To get the latest images you need to update it manually (in order not to poll
GitHub every time):
$ make -B bots