mirror of
https://github.com/systemd/systemd.git
synced 2024-11-24 18:53:33 +08:00
00f69504a2
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 |
||
---|---|---|
.. | ||
bus-policy | ||
loopy.service.d | ||
mocks | ||
TEST-01-BASIC | ||
TEST-02-CRYPTSETUP | ||
TEST-03-JOBS | ||
TEST-04-JOURNAL | ||
TEST-05-RLIMITS | ||
TEST-06-SELINUX | ||
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-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 | ||
parent-deep.slice | ||
parent.slice | ||
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 | ||
test-functions | ||
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