2018-10-09 15:37:00 +03:00
The extended testsuite only works with UID=0. It contains of several
2012-05-25 20:44:42 +04:00
subdirectories named "test/TEST-??-*", which are run one by one.
To run the extended testsuite do the following:
2018-10-09 15:37:00 +03:00
$ ninja -C build # Avoid building anything as root later
$ sudo test/run-integration-tests.sh
ninja: Entering directory `/home/zbyszek/src/systemd/build'
ninja: no work to do.
--x-- Running TEST-01-BASIC --x--
+ make -C TEST-01-BASIC BUILD_DIR=/home/zbyszek/src/systemd/build clean setup run
make: Entering directory '/home/zbyszek/src/systemd/test/TEST-01-BASIC'
TEST CLEANUP: Basic systemd setup
TEST SETUP: Basic systemd setup
2012-05-25 20:44:42 +04:00
...
2018-10-09 15:37:00 +03:00
TEST RUN: Basic systemd setup [OK]
make: Leaving directory '/home/zbyszek/src/systemd/test/TEST-01-BASIC'
--x-- Result of TEST-01-BASIC: 0 --x--
--x-- Running TEST-02-CRYPTSETUP --x--
+ make -C TEST-02-CRYPTSETUP BUILD_DIR=/home/zbyszek/src/systemd/build clean setup run
2012-05-25 20:44:42 +04:00
If one of the tests fails, then $subdir/test.log contains the log file of
the test.
2018-10-09 15:37:00 +03:00
To run just one of the cases:
2012-05-25 20:44:42 +04:00
2018-10-09 15:37:00 +03:00
$ sudo make -C test/TEST-01-BASIC clean setup run
2012-05-25 20:44:42 +04:00
2018-10-09 15:37:00 +03:00
Specifying the build directory
==============================
2013-12-08 03:01:53 +04:00
2018-10-09 15:37:00 +03:00
If the build directory is not detected automatically, it can be specified
with BUILD_DIR=:
2012-05-25 20:44:42 +04:00
2018-10-09 15:37:00 +03:00
$ sudo BUILD_DIR=some-other-build/ test/run-integration-tests
2012-05-25 20:44:42 +04:00
2018-10-09 15:37:00 +03:00
or
2012-05-25 20:44:42 +04:00
2018-10-09 15:37:00 +03:00
$ sudo make -C test/TEST-01-BASIC BUILD_DIR=../../some-other-build/ ...
2013-12-08 03:01:53 +04:00
2018-10-09 15:37:00 +03:00
Note that in the second case, the path is relative to the test case directory.
An absolute path may also be used in both cases.
Configuration variables
=======================
2019-03-16 20:32:38 +03:00
TEST_NO_QEMU=1
Don't run tests under QEMU
2018-10-09 15:37:00 +03:00
2019-03-16 20:32:38 +03:00
TEST_NO_NSPAWN=1
Don't run tests under systemd-nspawn
2013-12-08 03:01:53 +04:00
2019-03-16 20:32:38 +03:00
TEST_NO_KVM=1
Disable QEMU KVM autodetection (may be necessary when you're trying to run the
*vanilla* QEMU and have both qemu and qemu-kvm installed)
QEMU_MEM=512M
Configure amount of memory for QEMU VMs (defaults to 512M)
QEMU_SMP=1
Configure number of CPUs for QEMU VMs (defaults to 1)
KERNEL_APPEND='...'
Append additional parameters to the kernel command line
NSPAWN_ARGUMENTS='...'
Specify additional arguments for systemd-nspawn
QEMU_TIMEOUT=infinity
Set a timeout for tests under QEMU (defaults to infinity)
NSPAWN_TIMEOUT=infinity
Set a timeout for tests under systemd-nspawn (defaults to infinity)
INTERACTIVE_DEBUG=1
Configure the machine to be more *user-friendly* for interactive debuggung
(e.g. by setting a usable default terminal, suppressing the shutdown after
the test, etc.)
2018-10-09 15:37:00 +03:00
The kernel and initramfs can be specified with $KERNEL_BIN and $INITRD.
(Fedora's or Debian's default kernel path and initramfs are used by default)
2013-12-08 03:01:53 +04:00
A script will try to find your QEMU binary. If you want to specify a different
2018-10-09 15:37:00 +03:00
one with $QEMU_BIN.
Debugging the qemu image
========================
If you want to log in the testsuite virtual machine, you can specify additional
kernel command line parameter with $KERNEL_APPEND and then log in as root.
$ sudo make -C test/TEST-01-BASIC KERNEL_APPEND="systemd.unit=multi-user.target" run
2013-12-08 03:01:53 +04:00
2018-10-09 15:37:00 +03:00
Root password is empty.