mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 17:51:22 +03:00
bb11271068
A service that only sets the scheduling policy to round-robin fails to be started. This is because the cpu_sched_priority is initialized to 0 and is not adjusted when the policy is changed. Clamp the cpu_sched_priority when the scheduler policy is set. Use the current policy to validate the new priority. Change the manual page to state that the given range only applies to the real-time scheduling policies. Add a testcase that verifies this change: $ make test-sched-prio; ./test-sched-prio [test/sched_idle_bad.service:6] CPU scheduling priority is out of range, ignoring: 1 [test/sched_rr_bad.service:7] CPU scheduling priority is out of range, ignoring: 0 [test/sched_rr_bad.service:8] CPU scheduling priority is out of range, ignoring: 100 |
||
---|---|---|
.. | ||
TEST-01-BASIC | ||
TEST-02-CRYPTSETUP | ||
.gitignore | ||
a.service | ||
b.service | ||
c.service | ||
d.service | ||
e.service | ||
f.service | ||
g.service | ||
h.service | ||
Makefile | ||
README.testsuite | ||
rule-syntax-check.py | ||
rules-test.sh | ||
sched_idle_bad.service | ||
sched_idle_ok.service | ||
sched_rr_bad.service | ||
sched_rr_change.service | ||
sched_rr_ok.service | ||
sys.tar.xz | ||
test-functions | ||
udev-test.pl |
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 Making all in docs/libudev Making all in docs/gudev 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 If you want to log in the testsuite virtual machine, you can specify additional kernel command line parameter with $DEBUGFAIL. $ sudo sh -c 'DEBUGFAIL="systemd.unit=multi-user.target" make clean setup run' you can even skip the "clean" and "setup" if you want to run the machine again. $ sudo sh -c 'DEBUGFAIL="systemd.unit=multi-user.target" make run'