blob: 56498f62f2e0c4d4f72794562cf2cbf6a7722b0e [file] [log] [blame]
#!/bin/sh
################################################################################
# #
# Copyright (c) 2009 FUJITSU LIMITED #
# #
# This program 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 program 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. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
# Author: Miao Xie <miaox@cn.fujitsu.com> #
# #
################################################################################
cd $LTPROOT/testcases/bin
. ./cpuset_funcs.sh
export TCID="cpuset03"
export TST_TOTAL=18
export TST_COUNT=1
exit_status=0
# Case 1-9 test cpus
test1()
{
echo 0 > "$CPUSET/father/cpu_exclusive" || return 1
echo 0 > "$CPUSET/father/child/cpu_exclusive" || return 1
test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
}
test2()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo 0 > "$CPUSET/father/child/cpu_exclusive" || return 1
test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
}
test3()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
test 1 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
}
test4()
{
echo 0 > "$CPUSET/father/cpu_exclusive" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" 2> /dev/null && return 1
test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
}
test5()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
echo 0 > "$CPUSET/father/cpu_exclusive" 2> /dev/null && return 1
test 1 = $(cat "$CPUSET/father/cpu_exclusive") || return 1
}
test6()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
echo "0-1" > "$CPUSET/father/cpus" || return 1
echo 0 > "$CPUSET/father/child/cpus" || return 1
mkdir "$CPUSET/father/other" || return 1
echo 1 > "$CPUSET/father/other/cpus" || return 1
test 0 = $(cat "$CPUSET/father/child/cpus") || return 1
test 1 = $(cat "$CPUSET/father/other/cpus") || return 1
}
test7()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
echo "0-1" > "$CPUSET/father/cpus" || return 1
echo 0 > "$CPUSET/father/child/cpus" || return 1
mkdir "$CPUSET/father/other" || return 1
echo "0-1" > "$CPUSET/father/other/cpus" 2> /dev/null && return 1
test 0 = $(cat "$CPUSET/father/child/cpus") || return 1
test -z $(cat "$CPUSET/father/other/cpus") || return 1
}
test8()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo "0-1" > "$CPUSET/father/cpus" || return 1
echo 0 > "$CPUSET/father/child/cpus" || return 1
mkdir "$CPUSET/father/other" || return 1
echo 1 > "$CPUSET/father/other/cpus" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
test 1 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
}
test9()
{
echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
echo "0-1" > "$CPUSET/father/cpus" || return 1
echo 0 > "$CPUSET/father/child/cpus" || return 1
mkdir "$CPUSET/father/other" || return 1
echo "0-1" > "$CPUSET/father/other/cpus" || return 1
echo 1 > "$CPUSET/father/child/cpu_exclusive" 2> /dev/null && return 1
test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
}
# The following cases test mems
test10()
{
echo 0 > "$CPUSET/father/mem_exclusive" || return 1
echo 0 > "$CPUSET/father/child/mem_exclusive" || return 1
test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
}
test11()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo 0 > "$CPUSET/father/child/mem_exclusive" || return 1
test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
}
test12()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
test 1 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
}
test13()
{
echo 0 > "$CPUSET/father/mem_exclusive" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" 2> /dev/null && return 1
test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
}
test14()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
echo 0 > "$CPUSET/father/mem_exclusive" 2> /dev/null && return 1
test 1 = $(cat "$CPUSET/father/mem_exclusive") || return 1
}
test15()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
echo "0-1" > "$CPUSET/father/mems" || return 1
echo 0 > "$CPUSET/father/child/mems" || return 1
mkdir "$CPUSET/father/other" || return 1
echo 1 > "$CPUSET/father/other/mems" || return 1
test 0 = $(cat "$CPUSET/father/child/mems") || return 1
test 1 = $(cat "$CPUSET/father/other/mems") || return 1
}
test16()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
echo "0-1" > "$CPUSET/father/mems" || return 1
echo 0 > "$CPUSET/father/child/mems" || return 1
mkdir "$CPUSET/father/other" || return 1
echo "0-1" > "$CPUSET/father/other/mems" 2> /dev/null && return 1
test 0 = $(cat "$CPUSET/father/child/mems") || return 1
test -z $(cat "$CPUSET/father/other/mems") || return 1
}
test17()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo "0-1" > "$CPUSET/father/mems" || return 1
echo 0 > "$CPUSET/father/child/mems" || return 1
mkdir "$CPUSET/father/other" || return 1
echo 1 > "$CPUSET/father/other/mems" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
test 1 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
}
test18()
{
echo 1 > "$CPUSET/father/mem_exclusive" || return 1
echo "0-1" > "$CPUSET/father/mems" || return 1
echo 0 > "$CPUSET/father/child/mems" || return 1
mkdir "$CPUSET/father/other" || return 1
echo "0-1" > "$CPUSET/father/other/mems" || return 1
echo 1 > "$CPUSET/father/child/mem_exclusive" 2> /dev/null && return 1
test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
}
for i in $(seq 1 $TST_TOTAL)
do
setup
if [ $? -ne 0 ]; then
exit_status=1
else
mkdir "$CPUSET/father"
mkdir "$CPUSET/father/child"
test$i
if [ $? -ne 0 ]; then
tst_resm TFAIL "Break the exclusive feature."
exit_status=1
else
tst_resm TPASS "Exclusive test succeeded."
fi
cleanup
if [ $? -ne 0 ]; then
exit_status=1
fi
fi
: $((TST_COUNT++))
done
exit $exit_status