1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-01 17:51:22 +03:00
systemd/test
Holger Hans Peter Freyther bb11271068 sched: Only setting CPUSchedulingPriority=rr doesn't work
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
2012-11-15 16:16:45 +01:00
..
TEST-01-BASIC test: split of cryptsetup into its own test 2012-09-13 23:19:05 +02:00
TEST-02-CRYPTSETUP test: split of cryptsetup into its own test 2012-09-13 23:19:05 +02:00
.gitignore test: split of cryptsetup into its own test 2012-09-13 23:19:05 +02:00
a.service test: rename test directory 2011-12-31 18:06:56 +01:00
b.service test: rename test directory 2011-12-31 18:06:56 +01:00
c.service test: rename test directory 2011-12-31 18:06:56 +01:00
d.service test: rename test directory 2011-12-31 18:06:56 +01:00
e.service test: rename test directory 2011-12-31 18:06:56 +01:00
f.service test: rename test directory 2011-12-31 18:06:56 +01:00
g.service test: rename test directory 2011-12-31 18:06:56 +01:00
h.service test: rename test directory 2011-12-31 18:06:56 +01:00
Makefile test: introduce a basic testsuite framework 2012-05-22 16:54:54 +02:00
README.testsuite test/README.testsuite: add documentation for the testsuite 2012-05-29 09:23:37 +02:00
rule-syntax-check.py udev: fix rule-syntax-check.py 2012-10-09 00:49:15 +02:00
rules-test.sh udev: test - move test/ and src/test/ 2012-04-14 19:36:47 +02:00
sched_idle_bad.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_idle_ok.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_rr_bad.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_rr_change.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sched_rr_ok.service sched: Only setting CPUSchedulingPriority=rr doesn't work 2012-11-15 16:16:45 +01:00
sys.tar.xz udev: test - move test/ and src/test/ 2012-04-14 19:36:47 +02:00
test-functions man: fix a bunch of typos in docs 2012-09-13 19:34:24 +02:00
udev-test.pl use the same email address everywhere 2012-11-12 19:47:43 +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
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'