Systemd/test
Yu Watanabe e28fd95ffb test-network: add udev related tests for networkctl 2019-07-02 09:43:21 +02:00
..
TEST-01-BASIC test: correctly fail when system is borked 2019-05-27 22:31:55 +03:00
TEST-02-CRYPTSETUP scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-03-JOBS scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-04-JOURNAL scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-05-RLIMITS scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-06-SELINUX scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-07-ISSUE-1981 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-08-ISSUE-2730 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-09-ISSUE-2691 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-10-ISSUE-2467 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-11-ISSUE-3166 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-12-ISSUE-3171 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-13-NSPAWN-SMOKE cgtop,test: use consistent capitalization for CGroup 2019-05-21 10:57:23 +02:00
TEST-14-MACHINE-ID scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-15-DROPIN scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-16-EXTEND-TIMEOUT test: don't timeout while waiting for other test units 2019-04-15 13:59:27 +02:00
TEST-17-UDEV-WANTS scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-18-FAILUREACTION scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-19-DELEGATE scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-20-MAINPIDGAMES codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
TEST-21-SYSUSERS codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
TEST-22-TMPFILES tests: add test for suid/sgid handling in tmpfiles 2019-04-30 09:18:23 +02:00
TEST-23-TYPE-EXEC scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-24-UNIT-TESTS scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-25-IMPORT scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-26-SETENV scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-27-STDOUTFILE scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-28-PERCENTJ-WANTEDBY scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-29-UDEV-ID_RENAMING scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-30-ONCLOCKCHANGE scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-31-DEVICE-ENUMERATION scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
TEST-32-OOMPOLICY TEST-32-OOMPOLICY: drop unneeded headers 2019-05-19 13:03:21 +02:00
TEST-34-DYNAMICUSERMIGRATE test: add test for DynamicUser=0 → =1 migration (and back) 2019-06-25 10:47:46 +02:00
fuzz network,udev: add Property= setting in [Match] section 2019-07-01 01:24:42 +09:00
hwdb
journal-data
loopy.service.d
mocks
test-execute Treat kernel version condition as a list of quoted checks 2019-06-29 17:11:03 +02:00
test-network test-network: add udev related tests for networkctl 2019-07-02 09:43:21 +02:00
test-path
test-resolve
test-umount
unit-.service.d
unit-with-.service.d
unit-with-multiple-.service.d
unit-with-multiple-dashes.service.d
.gitignore
README.testsuite test: improve testsuite configuration documentation 2019-03-16 18:59:07 +01:00
a.service
b.service
basic.target
c.service
create-sys-script.py
d.service
daughter.service
dml-discard-empty.service cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-discard-set-ml.service cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-discard.slice cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-override-empty.service cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-override.slice cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-passthrough-empty.service cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-passthrough-set-dml.service cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml-passthrough-set-ml.service cgroup: Test that it's possible to set memory protection to 0 again 2019-05-08 12:06:32 +01:00
dml-passthrough.slice cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
dml.slice cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
e.service
end.service
f.service
g.service
grandchild.service
h.service
hello-after-sleep.target
hello.service
hwdb-test.sh
loopy.service
loopy2.service
loopy3.service
loopy4.service
meson.build cgroup: Implement default propagation of MemoryLow with DefaultMemoryLow 2019-04-12 17:23:58 +02:00
mkosi.build.networkd-test
mkosi.default.networkd-test codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
mkosi.nspawn.networkd-test
networkd-test.py test: use newer verb to set log levels 2019-04-03 08:19:08 +02:00
nomem.slice
nomemleaf.service
parent-deep.slice
parent.slice
rule-syntax-check.py rule-syntax-check: allow PROGRAM as an assignment 2019-02-10 19:06:58 +01:00
run-integration-tests.sh scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
run-unit-tests.py
sched_idle_bad.service
sched_idle_ok.service
sched_rr_bad.service
sched_rr_change.service
sched_rr_ok.service
shutdown.target
sleep.service
sockets.target
son.service
splash.bmp
sys-script.py
sysinit.target
sysv-generator-test.py codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
test-efi-create-disk.sh scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
test-exec-deserialization.py
test-functions test: improve handling of ASan under clang 2019-05-27 17:46:07 +02:00
testsuite.target
timers.target
udev-test.pl codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
unit-with-multiple-dashes.service
unstoppable.service

README.testsuite

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.