1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-01 09:21:26 +03:00
systemd/test
Frantisek Sumsal e4e039bce4 test: mark plymouth as optional dependency
rescue.service pulls in /bin/plymouth, which doesn't exist on some
distributions (e.g. Arch Linux). Let's mark it as optional, as it's not
even required by the referencing unit and causes unwanted fails in the
integration testsuite.
2019-01-21 11:35:24 +01:00
..
fuzz networkd: permit DNS "DefaultRoute" configuration in .network files 2018-12-21 12:10:07 +01:00
hwdb hwdb: improve and test syntax error messages 2016-12-01 11:56:50 -05:00
journal-data test-journal-importer: add a test case with broken input 2017-02-15 00:31:55 -05:00
loopy.service.d
mocks
TEST-01-BASIC test: drop service masking in TEST-01-BASIC 2019-01-11 13:45:08 +01:00
TEST-02-CRYPTSETUP test: mask several unnecessary services 2018-11-03 18:00:47 +09:00
TEST-03-JOBS test: mask several unnecessary services 2018-11-03 18:00:47 +09:00
TEST-04-JOURNAL test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-05-RLIMITS test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-06-SELINUX test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-07-ISSUE-1981 test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-08-ISSUE-2730 test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-09-ISSUE-2691 test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-10-ISSUE-2467 test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-11-ISSUE-3166 test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-12-ISSUE-3171 test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-13-NSPAWN-SMOKE tests: explicitly enable user namespaces for TEST-13-NSPAWN-SMOKE 2018-12-21 05:19:37 +09:00
TEST-14-MACHINE-ID test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-15-DROPIN test: drop 'After=multi-user.target' from most of testsuite.service 2018-11-03 18:00:47 +09:00
TEST-16-EXTEND-TIMEOUT test: disable QEMU based testing for TEST-16-EXTEND-TIMEOUT 2018-06-06 11:24:09 +02:00
TEST-17-UDEV-WANTS test: increase timeout for TEST-17-UDEV-WANTS 2018-11-03 18:00:47 +09:00
TEST-18-FAILUREACTION test: mask several unnecessary services 2018-11-03 18:00:47 +09:00
TEST-19-DELEGATE cgroup: s/cgroups? ?v?([0-9])/cgroup v\1/gI 2019-01-03 11:32:40 +09:00
TEST-20-MAINPIDGAMES test: mask several unnecessary services 2018-11-03 18:00:47 +09:00
TEST-21-SYSUSERS test: do not use global variable to pass error 2018-10-09 19:11:21 +09:00
TEST-22-TMPFILES test: Add tests for tmpfiles C behavior 2019-01-08 14:30:15 -06:00
TEST-23-TYPE-EXEC test: mask several unnecessary services 2018-11-03 18:00:47 +09:00
TEST-24-UNIT-TESTS test: add TEST-24-UNIT-TESTS running all basic tests under containers 2018-10-09 19:11:21 +09:00
TEST-25-IMPORT test: add simple test for importd 2018-11-26 18:09:01 +01:00
TEST-26-SETENV test: add test for setting service manager environment variables 2018-11-27 14:25:17 +09:00
TEST-27-STDOUTFILE test: make TEST-27 non-racy 2018-11-28 13:05:54 +09:00
TEST-28-PERCENTJ-WANTEDBY core: support %j in unit dependency resolution 2018-12-22 17:21:13 +09:00
test-execute test: let the shell find "touch" instead of hard-coded "/bin/touch" 2018-11-19 08:37:36 +01:00
test-network Merge pull request #11375 from daxtens/issue5882 2019-01-17 18:08:01 +01:00
test-path
test-resolve test: move resolved test data into test/ 2017-02-13 22:23:48 +01:00
test-umount test-umount: add a simple test for swap_list_get() 2018-03-16 10:12:50 +01:00
unit-.service.d test: add test for prefix unit loading 2018-04-13 11:34:48 +02:00
unit-with-.service.d test: add test for prefix unit loading 2018-04-13 11:34:48 +02:00
unit-with-multiple-.service.d test: add test for prefix unit loading 2018-04-13 11:34:48 +02:00
unit-with-multiple-dashes.service.d test: add test for prefix unit loading 2018-04-13 11:34:48 +02:00
.gitignore
a.service
b.service
basic.target
c.service
create-sys-script.py tree-wide: use proper unicode © instead of (C) where we can 2018-06-14 10:20:20 +02:00
d.service
daughter.service cgroup v2: Don't require CPU controller for CPU accounting in 4.15+ 2018-11-18 12:21:41 +00:00
e.service
end.service
f.service
g.service
grandchild.service
h.service
hello-after-sleep.target
hello.service
hwdb-test.sh tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
loopy2.service
loopy3.service
loopy4.service
loopy.service
meson.build meson: bump timeout for test-udev to 180s 2019-01-21 11:33:54 +01:00
mkosi.build.networkd-test networkd-test: add mkosi snippet for building and running networkd-tets.py in a network namespaced container 2018-12-07 12:25:24 +01:00
mkosi.default.networkd-test networkd-test: add mkosi snippet for building and running networkd-tets.py in a network namespaced container 2018-12-07 12:25:24 +01:00
mkosi.nspawn.networkd-test networkd-test: add mkosi snippet for building and running networkd-tets.py in a network namespaced container 2018-12-07 12:25:24 +01:00
networkd-test.py resolved: bind .local domains to mDNS with DNS_SCOPE_YES, similar LLMNR 2018-12-21 11:41:45 +01:00
nomem.slice cgroup: Add DisableControllers= directive to disable controller in subtree 2018-12-03 15:40:31 +00:00
nomemleaf.service cgroup: Add DisableControllers= directive to disable controller in subtree 2018-12-03 15:40:31 +00:00
parent-deep.slice
parent.slice
README.testsuite README.testsuite: update the documentation for meson 2018-10-09 15:31:00 +02:00
rule-syntax-check.py tree-wide: use proper unicode © instead of (C) where we can 2018-06-14 10:20:20 +02:00
run-integration-tests.sh tests: clean up again after running tests (#10446) 2018-10-19 03:59:24 +09:00
run-unit-tests.py run-unit-tests: add option to run unsafe tests too 2018-09-24 15:42:50 +02:00
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 tree-wide: use proper unicode © instead of (C) where we can 2018-06-14 10:20:20 +02:00
sysinit.target
sysv-generator-test.py tree-wide: use proper unicode © instead of (C) where we can 2018-06-14 10:20:20 +02:00
test-efi-create-disk.sh meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
test-exec-deserialization.py tree-wide: beautify remaining copyright statements 2018-06-14 10:20:21 +02:00
test-functions test: mark plymouth as optional dependency 2019-01-21 11:35:24 +01:00
testsuite.target
timers.target
udev-test.pl udev-test: check if permitted to create block device nodes 2018-12-11 16:55:34 +03:00
unit-with-multiple-dashes.service test: add test for prefix unit loading 2018-04-13 11:34:48 +02:00
unstoppable.service

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 can be used to disable qemu tests.

TEST_NO_NSPAWN=1 can be used to disable nspawn tests.

KERNEL_APPEND='...' can be used to add additional kernel parameters for the QEMU runs.

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.