1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-08 05:57:26 +03:00
Frantisek Sumsal d021d69a77 test: wait a bit after starting the test service
otherwise we might end up being faster than the unit itself, causing
unexpected fails, like:

```
testsuite.sh[297]: + systemctl start issue_14566_test
testsuite.sh[297]: + systemctl status issue_14566_test
testsuite.sh[304]: ● issue_14566_test.service - Issue 14566 Repro
testsuite.sh[304]:      Loaded: loaded (/etc/systemd/system/issue_14566_test.service; static; vendor preset: enabled)
testsuite.sh[304]:      Active: active (running) since Sat 2020-03-14 02:02:23 UTC; 417ms ago
testsuite.sh[304]:    Main PID: 301 ((repro.sh))
testsuite.sh[304]:       Tasks: 1 (limit: 535)
testsuite.sh[304]:      Memory: 180.0K
testsuite.sh[304]:         CPU: 122ms
testsuite.sh[304]:      CGroup: /system.slice/issue_14566_test.service
testsuite.sh[304]:              └─301 [(repro.sh)]
testsuite.sh[307]: ++ cat /leakedtestpid
testsuite.sh[307]: cat: /leakedtestpid: No such file or directory
testsuite.sh[297]: + leaked_pid=
```

(cherry picked from commit 197298ff9fc930de450330095cc5b67d165d0801)
(cherry picked from commit e110f4dacb6d56fc9d99456422c2cff7e54ae7f0)
(cherry picked from commit dbe16df9cd50dc6c3662fb90295edebb37c2fdad)
2020-03-26 14:33:55 +01:00
..
2019-09-21 23:07:00 +02:00
2015-02-18 16:33:46 +01:00
2019-07-30 13:27:06 +02:00
2019-07-30 13:27:06 +02:00
2019-07-30 13:27:06 +02:00
2019-07-30 13:27:06 +02:00
2019-07-30 13:27:06 +02:00
2013-01-28 03:54:49 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2015-11-10 18:01:15 +00:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2013-01-25 22:29:56 +01:00
2014-02-18 23:55:41 +01:00
2013-01-25 22:29:56 +01:00

The extended testsuite only works with UID=0. It contains of several
subdirectories named "test/TEST-??-*", which are run one by one.

To run the extended testsuite do the following:

$ 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
...
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

If one of the tests fails, then $subdir/test.log contains the log file of
the test.

To run just one of the cases:

$ sudo make -C test/TEST-01-BASIC clean setup run

Specifying the build directory
==============================

If the build directory is not detected automatically, it can be specified
with BUILD_DIR=:

$ sudo BUILD_DIR=some-other-build/ test/run-integration-tests

or

$ sudo make -C test/TEST-01-BASIC BUILD_DIR=../../some-other-build/ ...

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
=======================

TEST_NO_QEMU=1
    Don't run tests under QEMU

TEST_NO_NSPAWN=1
    Don't run tests under systemd-nspawn

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.)

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)

A script will try to find your QEMU binary. If you want to specify a different
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

Root password is empty.