systemd/test
Martin Pitt 2926b130b6 test: retry checking for transient hostname in hostnamectl (#4769)
Sometimes setting the transient hostname does not happen synchronously, so
retry up to five times. It is not yet clear whether this is legitimate
behaviour or an underlying bug, but this will at least show whether the wrong
transient hostname is just a race condition or permanently wrong.

Fixes #4753
2016-11-30 08:02:49 +01:00
..
bus-policy bus-policy: also add in other bus policy tests from dbus1 2014-11-26 20:58:34 +01:00
loopy.service.d core: do not add dependencies to self 2014-08-07 20:42:58 -04:00
mocks Add mock fsck process 2015-02-18 16:33:46 +01:00
TEST-01-BASIC test: merge check_nspawn() into run_nspawn() 2016-06-24 16:23:39 +02:00
TEST-02-CRYPTSETUP tree-wide: remove uses of --failed 2016-05-08 20:27:33 -04:00
TEST-03-JOBS tests: use less aggressive systemctl --wait timeout in TEST-03-JOBS (#4606) 2016-11-07 21:51:20 +03:00
TEST-04-JOURNAL tests: add test that journald keeps fds over termination by signal 2016-11-01 21:20:26 -04:00
TEST-05-RLIMITS test: merge check_nspawn() into run_nspawn() 2016-06-24 16:23:39 +02:00
TEST-06-SELINUX tests: force booting the kernel with SELinux 2016-06-24 11:28:35 +02:00
TEST-07-ISSUE-1981 test: merge check_nspawn() into run_nspawn() 2016-06-24 16:23:39 +02:00
TEST-08-ISSUE-2730 tests: track and check for timeouts 2016-06-24 16:07:16 +02:00
TEST-09-ISSUE-2691 tests: track and check for timeouts 2016-06-24 16:07:16 +02:00
TEST-10-ISSUE-2467 tests: don't fail if QEMU is not available 2016-06-24 11:28:35 +02:00
TEST-11-ISSUE-3166 tests: don't fail if QEMU is not available 2016-06-24 11:28:35 +02:00
TEST-12-ISSUE-3171 test: merge check_nspawn() into run_nspawn() 2016-06-24 16:23:39 +02:00
TEST-13-NSPAWN-SMOKE tests/TEST-13-NSPAWN-SMOKE: add SYSTEMD_NSPAWN_API_VFS_WRITABLE 2016-11-18 09:51:03 +01:00
test-execute test: add tests for RestrictNamespaces= 2016-11-15 15:50:19 +01:00
test-path test-path: move all related test files to a specific directory 2015-10-31 15:07:19 +01:00
.gitignore update .gitignore 2013-01-28 03:54:49 +01:00
a.service test: rename test directory 2011-12-31 18:06:56 +01:00
b.service test: rename test directory 2011-12-31 18:06:56 +01:00
basic.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
c.service test: rename test directory 2011-12-31 18:06:56 +01:00
d.service test: rename test directory 2011-12-31 18:06:56 +01:00
daughter.service cgroups: Cache controller masks and optimize queues. 2013-11-22 11:22:47 +10:00
e.service test: rename test directory 2011-12-31 18:06:56 +01:00
end.service tests: various fixes 2015-11-10 18:01:15 +00:00
f.service test: rename test directory 2011-12-31 18:06:56 +01:00
g.service test: rename test directory 2011-12-31 18:06:56 +01:00
grandchild.service test: add missing test units 2014-02-18 23:55:41 +01:00
h.service test: rename test directory 2011-12-31 18:06:56 +01:00
hello-after-sleep.target test: add test for jobs 2013-01-25 22:29:56 +01:00
hello.service test: add test for jobs 2013-01-25 22:29:56 +01:00
hwdb-test.sh tests: add hwdb parsing test 2016-11-24 11:46:03 +01:00
loopy2.service core: do not add dependencies to self 2014-08-07 20:42:58 -04:00
loopy3.service core: warn when merged units have conflicting dependencies 2014-08-07 20:46:49 -04:00
loopy4.service core: warn when merged units have conflicting dependencies 2014-08-07 20:46:49 -04:00
loopy.service core: do not add dependencies to self 2014-08-07 20:42:58 -04:00
Makefile test: introduce a basic testsuite framework 2012-05-22 16:54:54 +02:00
networkd-test.py test: retry checking for transient hostname in hostnamectl (#4769) 2016-11-30 08:02:49 +01:00
parent-deep.slice test: add missing test units 2014-02-18 23:55:41 +01:00
parent.slice core: translate between IO and BlockIO settings to ease transition 2016-05-18 17:35:12 -07:00
README.testsuite tests: fix initrd searching on Debian/Ubuntu 2015-11-20 12:10:12 +00:00
rule-syntax-check.py Use python3 explicitly in all python scripts 2016-11-28 15:00:20 -03:00
sched_idle_bad.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_idle_ok.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_rr_bad.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_rr_change.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_rr_ok.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
shutdown.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
sleep.service test: add test for jobs 2013-01-25 22:29:56 +01:00
sockets.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
son.service cgroups: Cache controller masks and optimize queues. 2013-11-22 11:22:47 +10:00
splash.bmp sd-boot: add EFI boot manager and stub loader 2015-02-17 14:36:59 +01:00
sys.tar.xz tests: don't rely on the underlying fs in test-udev (v2) 2016-04-06 04:08:39 +00:00
sysinit.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
sysv-generator-test.py Use python3 explicitly in all python scripts 2016-11-28 15:00:20 -03:00
test-efi-create-disk.sh bootctl: Always use upper case for "/EFI/BOOT" and "/EFI/BOOT/BOOT*.EFI". 2016-07-21 03:02:15 +02:00
test-functions test-functions: also add qemu define for ppc64 2016-11-19 22:45:23 -05:00
testsuite.target test: factor out testsuite.target, end.service 2013-01-25 22:29:56 +01:00
timers.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
udev-test.pl tests: let's stick to 8ch indenting, in perl code too 2016-08-19 16:01:17 +02:00
unstoppable.service tests: fix unstoppable service 2015-11-12 03:24:10 +00: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:

$ make all
$ cd test
$ sudo make clean check
...
make[1]: Entering directory `/mnt/data/harald/git/systemd/test/TEST-01-BASIC'
Making all in .
Making all in po
TEST: Basic systemd setup [OK]
make[1]: Leaving directory `/mnt/data/harald/git/systemd/test/TEST-01-BASIC'
...

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

To debug a special testcase of the testsuite do:

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

QEMU
====

If you want to log in the testsuite virtual machine, you can specify
additional kernel command line parameter with $KERNEL_APPEND.

$ sudo make KERNEL_APPEND="systemd.unit=multi-user.target" clean setup run

you can even skip the "clean" and "setup" if you want to run the machine again.

$ sudo make KERNEL_APPEND="systemd.unit=multi-user.target" run

You can specify a different kernel and initramfs with $KERNEL_BIN and $INITRD.
(Fedora's or Debian's default kernel path and initramfs are used by default)

$ sudo make KERNEL_BIN=/boot/vmlinuz-foo INITRD=/boot/initramfs-bar clean check

A script will try to find your QEMU binary. If you want to specify a different
one you can use $QEMU_BIN.

$ sudo make QEMU_BIN=/path/to/qemu/qemu-kvm clean check