#!/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-non-user"

. $TS_TOPDIR/functions.sh
ts_init "$*"

ts_check_test_command "$TS_CMD_CHRT"

# TODO: drone.io does not like FIFO and RR (container restriction?)
TS_KNOWN_FAIL="yes"

function do_chrt {
	$TS_CMD_CHRT $* $TS_CMD_CHRT --pid 0 | sed 's/.* policy: //; s/.* priority: //' >> $TS_OUTPUT 2>&1
}

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
	sed -i -e 's/[0-9]* (process/<removed> (process/' $TS_OUTPUT
}

ts_init_subtest "batch-vs-nice"
skip_policy SCHED_BATCH
if [ $? == 0 ]; then
	renice -n 5 -p $$ >> $TS_OUTPUT 2>&1
	do_chrt --batch 0
	cleanup_output
	ts_finalize_subtest
fi

# failed -- let's report kernel limits
#
if [ $TS_NSUBFAILED -ne 0 ]; then
	echo "Supported policies:"
	$TS_CMD_CHRT --max
fi

ts_finalize
