tests: add chrt test

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2016-07-11 10:25:13 +02:00
parent 6e51ab0c5c
commit 078720a76f
10 changed files with 125 additions and 2 deletions

View File

@ -308,10 +308,10 @@ static void show_min_max(void)
int min = sched_get_priority_min(plc);
if (max >= 0 && min >= 0)
printf(_("SCHED_%s min/max priority\t: %d/%d\n"),
printf(_("%s min/max priority\t: %d/%d\n"),
get_policy_name(plc), min, max);
else
printf(_("SCHED_%s not supported?\n"), get_policy_name(plc));
printf(_("%s not supported?\n"), get_policy_name(plc));
}
}

View File

@ -89,3 +89,4 @@ TS_CMD_UUIDD=${TS_CMD_UUIDD-"$top_builddir/uuidd"}
TS_CMD_UUIDGEN=${TS_CMD_UUIDGEN-"$top_builddir/uuidgen"}
TS_CMD_WHEREIS=${TS_CMD_WHEREIS-"$top_builddir/whereis"}
TS_CMD_WIPEFS=${TS_CMD_WIPEFS-"$top_builddir/wipefs"}
TS_CMD_CHRT=${TS_CMD_CHRT-"$top_builddir/chrt"}

View File

View File

@ -0,0 +1,2 @@
SCHED_BATCH
0

View File

@ -0,0 +1,9 @@
SCHED_DEADLINE
0
<removed>'s current runtime/deadline/period parameters: 13000/13000/13000
SCHED_DEADLINE
0
<removed>'s current runtime/deadline/period parameters: 12000/12000/13000
SCHED_DEADLINE
0
<removed>'s current runtime/deadline/period parameters: 10000/12000/13000

View File

@ -0,0 +1,4 @@
SCHED_FIFO
1
SCHED_FIFO
99

View File

@ -0,0 +1,2 @@
SCHED_IDLE
0

View File

@ -0,0 +1,2 @@
SCHED_OTHER
0

View File

@ -0,0 +1,4 @@
SCHED_RR
1
SCHED_RR
99

99
tests/ts/schedutils/chrt Executable file
View File

@ -0,0 +1,99 @@
#!/bin/bash
#
# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
TS_TOPDIR="${0%/*}/../.."
TS_DESC="chrt"
. $TS_TOPDIR/functions.sh
ts_init "$*"
ts_check_test_command "$TS_CMD_CHRT"
function do_chrt {
$TS_CMD_CHRT $* $TS_CMD_CHRT --pid 0 | sed 's/.* policy: //; s/.* priority: //' &>> $TS_OUTPUT
}
function skip_policy {
$TS_CMD_CHRT --max | grep $1 | grep 'priority' &> /dev/null
if [ $? == 1 ]; then
ts_skip_subtest "unsupported"
return 1
fi
return 0
}
function cleanup_output {
sed -i -e 's/pid [0-9]*/<removed>/' $TS_OUTPUT
}
ts_init_subtest "fifo"
skip_policy SCHED_FIFO
if [ $? == 0 ]; then
do_chrt --fifo 1
do_chrt --fifo 99
cleanup_output
fi
ts_finalize_subtest
ts_init_subtest "batch"
skip_policy SCHED_BATCH
if [ $? == 0 ]; then
do_chrt --batch 0
cleanup_output
fi
ts_finalize_subtest
ts_init_subtest "other"
skip_policy SCHED_OTHER
if [ $? == 0 ]; then
do_chrt --other 0
cleanup_output
fi
ts_finalize_subtest
ts_init_subtest "rr"
skip_policy SCHED_RR
if [ $? == 0 ]; then
do_chrt --rr 1
do_chrt --rr 99
cleanup_output
fi
ts_finalize_subtest
ts_init_subtest "idle"
skip_policy SCHED_IDLE
if [ $? == 0 ]; then
do_chrt --idle 0
cleanup_output
fi
ts_finalize_subtest
ts_init_subtest "deadline"
skip_policy SCHED_DEADLINE
if [ $? == 0 ]; then
do_chrt --deadline --sched-period 13000 0
do_chrt --deadline --sched-period 13000 --sched-deadline 12000 0
do_chrt --deadline --sched-period 13000 --sched-deadline 12000 --sched-runtime 10000 0
cleanup_output
fi
ts_finalize_subtest
ts_finalize