blob: 91c80542acdc6484835b3ddca58f0d8ce2394df0 [file] [log] [blame]
#!/bin/sh
#
# Test Case 4
#
HOTPLUG04_LOOPS=${HOTPLUG04_LOOPS:-${LOOPS}}
export TCID="hotplug04"
export TST_COUNT=1
export TST_TOTAL=${HOTPLUG04_LOOPS:-1}
# Includes:
LHCS_PATH=${LHCS_PATH:-${LTPROOT:+$LTPROOT/testcases/bin/cpu_hotplug}}
. $LHCS_PATH/include/testsuite.fns
. $LHCS_PATH/include/hotplug.fns
cat <<EOF
Name: $TCID
Date: `date`
Desc: Does it prevent us from offlining the last CPU?
EOF
cpu=0
until [ $TST_COUNT -gt $TST_TOTAL ]; do
cpustate=1
# Online all the CPUs' keep track of which were already on
for i in $(get_all_cpus); do
online_cpu $i
RC=$?
if [ $RC -ne 0 ]; then
: $(( cpu += 1 ))
eval "on_${cpu}=$i"
echo $i
fi
if [ $RC -eq 0 -a "$i" = "cpu0" ]; then
cpustate=0
fi
done
# Now offline all the CPUs
for i in $(get_all_cpus); do
offline_cpu $i
RC=$?
if [ $RC -eq 1 ]; then
if [ "x$i" != "xcpu0" ]; then
tst_resm TFAIL "Did not offline first CPU (offlined $i instead)"
else
tst_resm TPASS "Successfully offlined first CPU, $i"
fi
fi
done
# Online the ones that were on initially
until [ $cpu -eq 0 ]; do
online_cpu $(eval "echo \$on_${cpu}")
: $(( cpu -= 1 ))
done
# Return CPU 0 to its initial state
if [ $cpustate = 1 ]; then
online_cpu 0
else
offline_cpu 0
fi
: $(( TST_COUNT += 1 ))
done
exit_clean