1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 01:27:11 +03:00
systemd/test
Zbigniew Jędrzejewski-Szmek e2093454a2 shared/specifier: be less extravagant with memory allocations
ubsan times out because we do too many allocations:

$ valgrind build/fuzz-unit-file test/fuzz-regressions/fuzz-unit-file/oss-fuzz-6977-full
...
test/fuzz-regressions/fuzz-unit-file/oss-fuzz-6977-full... ok
==1757==
==1757== HEAP SUMMARY:
==1757==     in use at exit: 0 bytes in 0 blocks
==1757==   total heap usage: 199,997 allocs, 199,997 frees, 90,045,318,585 bytes allocated

...
==3256==   total heap usage: 100,120 allocs, 100,120 frees, 13,097,140 bytes allocated

https://oss-fuzz.com/v2/issue/4651449704251392/6977 should now be really fixed.

e3c3d6761b was the first attempt, but even with this change, e3c3d6761b
still makes sense.
2018-03-28 10:38:45 +02:00
..
fuzz-corpus main: add NoNewPrivileges config option (#8475) 2018-03-21 23:41:19 +01:00
fuzz-regressions shared/specifier: be less extravagant with memory allocations 2018-03-28 10:38:45 +02:00
hwdb
journal-data
loopy.service.d
mocks
TEST-01-BASIC
TEST-02-CRYPTSETUP
TEST-03-JOBS
TEST-04-JOURNAL
TEST-05-RLIMITS
TEST-06-SELINUX test: bypass selinux integration test if selinux policy devel package is not installed 2018-03-23 15:29:35 +01:00
TEST-07-ISSUE-1981
TEST-08-ISSUE-2730
TEST-09-ISSUE-2691
TEST-10-ISSUE-2467
TEST-11-ISSUE-3166
TEST-12-ISSUE-3171
TEST-13-NSPAWN-SMOKE
TEST-14-MACHINE-ID
TEST-15-DROPIN test: masked unit with drop-ins 2018-03-01 21:14:13 -08:00
TEST-16-EXTEND-TIMEOUT
TEST-17-UDEV-WANTS
TEST-18-FAILUREACTION
TEST-19-DELEGATE
TEST-20-MAINPIDGAMES
TEST-21-SYSUSERS test: add a sysusers test with NIS entries 2018-03-17 14:18:26 +01:00
TEST-22-TMPFILES test: add tests for systemd-tmpfiles 2018-03-05 21:49:11 +01:00
test-execute test-execute: skip exec-specifier-interpolation if perl is missing 2018-03-22 15:57:56 +01:00
test-path
test-resolve
test-umount test-umount: add a simple test for swap_list_get() 2018-03-16 10:12:50 +01:00
.gitignore
a.service
b.service
basic.target
c.service
create-sys-script.py
d.service
daughter.service
e.service
end.service
f.service
g.service
grandchild.service
h.service
hello-after-sleep.target
hello.service
hwdb-test.sh
loopy2.service
loopy3.service
loopy4.service
loopy.service
meson.build tests: skip udev-test when perl is not installed 2018-03-22 15:57:56 +01:00
networkd-test.py test: sort imports and use "new" string formatting 2018-02-05 07:28:53 +01:00
parent-deep.slice
parent.slice
README.testsuite
rule-syntax-check.py rule-syntax-check: fix handling of runaway strings in comma splitting (#8298) 2018-02-28 03:11:38 +03:00
run-integration-tests.sh run-integration-tests: show number of tests run 2018-03-23 15:46:11 +01: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
sysinit.target
sysv-generator-test.py test: sort imports and use "new" string formatting 2018-02-05 07:28:53 +01:00
test-efi-create-disk.sh
test-exec-deserialization.py
test-functions test: fix setup_suse() to make it work with an already populated root 2018-03-05 19:24:23 +01:00
testsuite.target
timers.target
udev-test.pl tests: stop using nobody in test-udev.pl (#8239) 2018-02-21 08:34:42 +01: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:

$ 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