Files
mckernel/test/user_space/swapout/swapout_normal.sh
Masamichi Takagi 502463ed9e test: Fix user_space, testing use of copy_from_user / copy_to_user
Change-Id: I2caef1ba6597f693dc4f773ef8fedbd837c45ce6
2018-11-29 19:32:04 +09:00

91 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# Functions
function reboot() {
count=`pgrep -c -f 'mcexec '`
if [ ${count} -gt 0 ]
then
echo "kill process :" ${count}
pgrep -l -f 'mcexec '
pgrep -f 'mcexec ' | xargs sudo kill -9
fi
# echo -n "mckernel stopping... "
sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done."
#sleep 1
echo -n "mckernel booting... " 1>&2
sudo ${MCK_DIR}/sbin/mcreboot.sh $BOOTPARAM
echo "done." 1>&2
}
function ok_out() {
echo "[OK] ${TEST_PREFIX}`printf %03d ${TEST_NUM}` $1"
(( TEST_NUM++ ))
TEST_CODE=`printf %03d ${TEST_NUM}`
}
function ng_out() {
echo "[NG] ${TEST_PREFIX}`printf %03d ${TEST_NUM}` $1"
exit 1
}
TEST_PARAM_FILE=$1
TEST_NUM=23
TEST_CODE=001
TEST_PREFIX=so_
ME=`whoami`
# read config
source ./config
mkdir -p result
reboot
make
#programを実行 logを保存
${MCK_DIR}/bin/mcexec ./swaptest 2 >./result/swapout_normal.log
#kmsgを保存
sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/swapout_normal.kmsg
#swapout023 execute swaptest(return code)
grep "^swapout returns: 0$" ./result/swapout_normal.log
ret=$?
if [ ${ret} -eq 0 ]; then
ok_out "swaptest program is nomrmal exit."
else
ng_out "swaptest pogram is abnormal exit."
fi
#swapout024 execute swaptest (restore data)
grep "^data = hello$" ./result/swapout_normal.log
ret=$?
if [ ${ret} -eq 0 ]; then
ok_out "confirmed restoration of data."
else
ng_out "did not restore the data."
fi
#wapout025 execute swapout (restore user space)
rc=1
for str in `sed -n -e /"^.*: SWAP:.*$"/,/"^.*: MLOCK:.*$"/p ./result/swapout_normal.kmsg |sed -n s/"^\[ 0\]: \t\([0-9a-f]*\) -- \([0-9a-f]*\)$"/"\1:\2"/p`
do
grep ${str} ./result/swapout_normal.kmsg >/dev/null
rtn=$?
if [ ${rtn} -eq 0 ]; then
echo ${str} is matched.
rc=0
else
echo ${str} is not matched.
rc=1
break
fi
done
if [ ${rc} -eq 0 ]; then
ok_out "pageout areas and pagein areas are matched."
else
ng_out "pagein areas is not matched."
fi