1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-02 02:21:44 +03:00
systemd/test
Alexander Kurtz 00f69504a2 bootctl: Always use upper case for "/EFI/BOOT" and "/EFI/BOOT/BOOT*.EFI".
If the ESP is not mounted with "iocharset=ascii", but with "iocharset=utf8"
(which is for example the default in Debian), the file system becomes case
sensitive. This means that a file created as "FooBarBaz" cannot be accessed as
"foobarbaz" since those are then considered different files.

Moreover, a file created as "FooBar" can then also not be accessed as "foobar",
and it also prevents such a file from being created, as both would use the same
8.3 short name "FOOBAR".

Even though the UEFI specification [0] does give the canonical spelling for
the files mentioned above, not all implementations completely conform to that,
so it's possible that those files would already exist, but with a different
spelling, causing subtle bugs when scanning or modifying the ESP.

While the proper fix would of course be that everybody conformed to the
standard, we can work around this problem by just referencing the files by
their 8.3 short names, i.e. using upper case.

Fixes: #3740

[0] <http://www.uefi.org/specifications>, version 2.6, section 3.5.1.1
2016-07-21 03:02:15 +02:00
..
bus-policy
loopy.service.d
mocks
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 test: merge check_nspawn() into run_nspawn() 2016-06-24 16:23:39 +02:00
TEST-04-JOURNAL test: merge check_nspawn() into run_nspawn() 2016-06-24 16:23:39 +02: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-execute
test-path
.gitignore
a.service
b.service
basic.target
c.service
d.service
daughter.service
e.service
end.service
f.service
g.service
grandchild.service
h.service
hello-after-sleep.target
hello.service
loopy2.service
loopy3.service
loopy4.service
loopy.service
Makefile
networkd-test.py test: check resolved generated resolv.conf in networkd-test (#3628) 2016-06-30 16:44:22 +03: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
rule-syntax-check.py
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.tar.xz
sysinit.target
sysv-generator-test.py
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 tests: Install missing libraries for things installed in /usr too 2016-07-03 18:56:54 -04:00
testsuite.target
timers.target
udev-test.pl
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
$ 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