1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-26 14:04:03 +03:00
Evgeny Vereshchagin 23cabb68ac tests: mount proc before exec valgrind (#4044)
Fixes:
$ sudo make run QEMU_BIN=/usr/bin/qemu-system-x86_64  KERNEL_APPEND=systemd.unit=multi-user.target SKIP_INITRD=yes
TEST RUN: Basic systemd setup
+ /usr/bin/qemu-system-x86_64 -smp 1 -net none -m 512M -nographic -kernel /boot/vmlinuz-4.6.7-200.fc23.x86_64 -drive format=raw,cache=unsafe,file=/var/tmp/systemd-test.izx99J/rootdisk.img -append 'root=/dev/sda1 raid=noautodetect loglevel=2 init=/usr/lib/systemd/systemd-under-valgrind rw console=ttyS0 selinux=0 systemd.unified_cgroup_hierarchy=no systemd.unit=multi-user.target '
valgrind: warning (non-fatal): readlink("/proc/self/exe") failed.
valgrind: continuing, however --trace-children=yes will not work.
--1:0: aspacem Valgrind: FATAL: can't open /proc/self/maps
--1:0: aspacem Exiting now.
[    3.152367] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[    3.152367]
[    3.152367] CPU: 0 PID: 1 Comm: memcheck-amd64- Not tainted 4.6.7-200.fc23.x86_64 #1
[    3.152367] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.2-20150714_191134- 04/01/2014
[    3.152367]  0000000000000086 0000000047ca1666 ffff88001ea43e00 ffffffff813d954e
[    3.152367]  ffffffff81a205a0 ffff88001ea43e98 ffff88001ea43e88 ffffffff811b5557
[    3.152367]  ffffffff00000010 ffff88001ea43e98 ffff88001ea43e30 0000000047ca1666
[    3.152367] Call Trace:
[    3.152367]  [<ffffffff813d954e>] dump_stack+0x63/0x85
[    3.152367]  [<ffffffff811b5557>] panic+0xde/0x220
[    3.152367]  [<ffffffff810ab9c3>] do_exit+0xb43/0xb50
[    3.152367]  [<ffffffff810aba57>] do_group_exit+0x47/0xb0
[    3.152367]  [<ffffffff810abad4>] SyS_exit_group+0x14/0x20
[    3.152367]  [<ffffffff817dae72>] entry_SYSCALL_64_fastpath+0x1a/0xa4
[    3.152367] Kernel Offset: disabled
[    3.152367] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[    3.152367]
QEMU: Terminated
2016-08-26 17:49:56 +02:00
..
2015-02-18 16:33:46 +01:00
2013-01-28 03:54:49 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2015-11-10 18:01:15 +00:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2011-12-31 18:06:56 +01:00
2013-01-25 22:29:56 +01:00
2014-02-18 23:55:41 +01:00
2015-06-30 19:57:40 +02:00
2013-01-25 22:29:56 +01: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