1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-31 07:51:21 +03:00
systemd/test
Zbigniew Jędrzejewski-Szmek 7f0cc63771 sysv-generator: use generator_add_symlink()
generator_add_symlink() is extended to ignore EEXIST. This should be fine
for all existing callers.

There's a small difference in behaviour when adding symlinks in sysv-generator:
the message is more generic and does not include ", ignored". But creation of
symlinks shouldn't ever fail except if things are very wrong, so in practice
this shouldn't matter.

Test needed updating: os.path.exists(os.readlink(link)) only works if the link
is absolute (or if we are in the right directory). Let's just use
os.path.exists(link), which properly tests that the symlink target exists.
2017-07-13 18:56:36 -04:00
..
bus-policy bus-policy: also add in other bus policy tests from dbus1 2014-11-26 20:58:34 +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 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/TEST-12-ISSUE-3171: specify -w1 option to netcat due to default change. (#5722) 2017-04-11 22:34:29 +03:00
TEST-13-NSPAWN-SMOKE tests: check that we can write to /run/systemd/nspawn/notify 2017-01-17 08:40:19 +00:00
TEST-14-MACHINE-ID test: check that we can boot with broken machine-id 2016-12-13 13:03:14 +00:00
TEST-15-DROPIN tests: add dropin dependency tests 2017-02-07 21:32:10 -05:00
test-execute test: ensure 'InaccessiblePaths=/proc' option works (#6017) 2017-05-25 07:47:08 +03:00
test-path test-path: move all related test files to a specific directory 2015-10-31 15:07:19 +01:00
test-resolve test: move resolved test data into test/ 2017-02-13 22:23:48 +01:00
.gitignore
a.service
b.service
basic.target
c.service
create-sys-script.py more portable python shebangs (#5816) 2017-04-30 20:26:56 -04:00
d.service
daughter.service
e.service
end.service tests: various fixes 2015-11-10 18:01:15 +00:00
f.service
g.service
grandchild.service
h.service
hello-after-sleep.target
hello.service
hwdb-test.sh hwdb: improve and test syntax error messages 2016-12-01 11:56:50 -05:00
loopy2.service
loopy3.service
loopy4.service
loopy.service
Makefile
meson.build test: ensure 'InaccessiblePaths=/proc' option works (#6017) 2017-05-25 07:47:08 +03:00
networkd-test.py networkd: Add bridge port priority setting (#5545) 2017-04-11 23:17:31 +02:00
parent-deep.slice
parent.slice core: translate between IO and BlockIO settings to ease transition 2016-05-18 17:35:12 -07:00
README.testsuite test: explain why we explicitly make all despite test/Makefile's check target calling it (#5830) 2017-04-29 08:23:13 +02:00
rule-syntax-check.py more portable python shebangs (#5816) 2017-04-30 20:26:56 -04: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 sd-boot: add EFI boot manager and stub loader 2015-02-17 14:36:59 +01:00
sys-script.py more portable python shebangs (#5816) 2017-04-30 20:26:56 -04:00
sysinit.target
sysv-generator-test.py sysv-generator: use generator_add_symlink() 2017-07-13 18:56:36 -04: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 more portable python shebangs (#5816) 2017-04-30 20:26:56 -04:00
test-functions tests: adapt test-functions to run tests on SUSE (#6270) 2017-07-06 14:30:14 -04:00
testsuite.target
timers.target
udev-test.pl tests: add tests for SYMLINK containing whitespace in variable (#5158) 2017-01-25 20:24:52 -05: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  # Avoid the "sudo make" below building anything as root
$ 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