lorax/test
Alexander Todorov 258d01647a Change paths for '/api/status' calls and skip this test
Skipping because:

larsu: I get `open failed: administratively prohibited: open failed`
larsu: ssh somehow disallows making a side channel for the forward
larsu: there's an option that controls it, but it's set to "yes"
larsu: I've straced the sshd, with no luck coming closer

We'll deal with this later, possibly together with the rest of
the skipped test cases.

Related: rhbz#1698366
2019-09-13 11:27:12 +03:00
..
check-api Change paths for '/api/status' calls and skip this test 2019-09-13 11:27:12 +03:00
check-cli Skip AWS, Azure, qcow2 and live-iso tests 2019-09-13 11:27:12 +03:00
check-cloud Skip AWS, Azure, qcow2 and live-iso tests 2019-09-13 11:27:12 +03:00
composertest.py Ignore Cockpit CI files when linting 2019-09-13 11:27:12 +03:00
README.md Backport changes for Cockpit CI 2019-06-25 11:57:33 +03:00
run Backport changes for Cockpit CI 2019-06-25 11:57:33 +03:00
vm.install Install test dependencies inside virtualenv 2019-09-13 11:27:12 +03:00

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. Branch/test matrix is configured in bots/tests-scan inside the cockpit repository.

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 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. To debug a test failure, pass --sit. This will keep the test machine running after the first failure and 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