Systemd/test
Martin Pitt f4f01ec146 sysv-generator: Skip init scripts for existing native services
This avoids taking the SysV init script enablement state into account if we
have native units. Otherwise systemctl disable on native unit would not
be respected in the presence of an enabled SysV script.

Also, there's no need to do all the parsing and creation of service files if we
already have a native systemd unit for the processed SysV init script.
2015-02-11 13:02:01 +01:00
..
TEST-01-BASIC tests: do not use systemctl status --failed 2014-06-10 19:04:18 +02:00
TEST-02-CRYPTSETUP tests: do not use systemctl status --failed 2014-06-10 19:04:18 +02:00
TEST-03-JOBS test: add test for crash when adding a JOB_NOP 2014-11-26 16:33:40 +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
.gitignore update .gitignore 2013-01-28 03:54:49 +01:00
Makefile test: introduce a basic testsuite framework 2012-05-22 16:54:54 +02:00
README.testsuite test: rework run_qemu 2013-12-10 07:46:21 -05: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.in tests: don't hardcode systemctl path 2015-02-03 09:50:45 +01:00
exec-environment-empty.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-environment-multiple.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-environment.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-group.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-ignoresigpipe-no.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-ignoresigpipe-yes.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-personality-x86-64.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-personality-x86.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-privatedevices-no.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-privatedevices-yes.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-privatetmp-no.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-privatetmp-yes.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-systemcallerrornumber.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-systemcallfilter-failing.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-systemcallfilter-failing2.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-systemcallfilter-not-failing.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-systemcallfilter-not-failing2.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-umask-0177.service test-execute: add tests for UMask directive 2014-12-11 18:32:57 +01:00
exec-umask-default.service test-execute: add tests for UMask directive 2014-12-11 18:32:57 +01:00
exec-user.service tests: add test-execute 2014-11-13 10:39:51 +01:00
exec-workingdirectory.service tests: add test-execute 2014-11-13 10:39:51 +01: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
loopy.service core: do not add dependencies to self 2014-08-07 20:42:58 -04: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
parent-deep.slice test: add missing test units 2014-02-18 23:55:41 +01:00
parent.slice cgroups: Cache controller masks and optimize queues. 2013-11-22 11:22:47 +10:00
path-changed.path tests: add test-path 2014-11-08 22:45:56 +01:00
path-changed.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-directorynotempty.path tests: add test-path 2014-11-08 22:45:56 +01:00
path-directorynotempty.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-exists.path tests: add test-path 2014-11-08 22:45:56 +01:00
path-exists.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-existsglob.path tests: add test-path 2014-11-08 22:45:56 +01:00
path-existsglob.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-makedirectory.path tests: add test-path 2014-11-08 22:45:56 +01:00
path-makedirectory.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-modified.path tests: add test-path 2014-11-08 22:45:56 +01:00
path-modified.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-mycustomunit.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-service.service tests: add test-path 2014-11-08 22:45:56 +01:00
path-unit.path tests: add test-path 2014-11-08 22:45:56 +01:00
paths.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
rule-syntax-check.py test: simplify rules-test.sh wrapper 2015-01-20 20:52:25 +01: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
sys.tar.xz udev: test - move test/ and src/test/ 2012-04-14 19:36:47 +02:00
sysinit.target test-engine: fix access to unit load path 2014-07-20 19:48:16 -04:00
sysv-generator-test.py sysv-generator: Skip init scripts for existing native services 2015-02-11 13:02:01 +01:00
test-functions test-functions: search for the initrd and kernel according to the BLS 2015-02-03 10:51:29 +01: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: udev - assume /etc/machine-id rather than /etc/hosts 2014-12-11 14:17:35 +01:00
unstoppable.service test: test irreversible jobs 2013-02-23 14:18:17 +01:00

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:

$ 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
Making all in docs/libudev
Making all in docs/gudev
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 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