test: Add testcase for #1122

Refs: #1122
Change-Id: Ieafee7469d1397461abf05552ffad0bfea1dd6cd
This commit is contained in:
Ken Sato
2018-06-29 15:53:45 +09:00
committed by Masamichi Takagi
parent e1f204de4a
commit 229b041320
4 changed files with 192 additions and 0 deletions

107
test/issues/1122/C1122.sh Normal file
View File

@ -0,0 +1,107 @@
#!/bin/sh
BIN=
SBIN=
OSTEST=
LTP=
BOOTPARAM="-c 1-7,9-15,17-23,25-31 -m 10G@0,10G@1 -r 1-7:0+9-15:8+17-23:16+25-31:24"
if [ -f ../../../config.h ]; then
str=`grep "^#define BINDIR " ../../../config.h | head -1 | sed 's/^#define BINDIR /BINDIR=/'`
eval $str
fi
if [ "x$BINDIR" = x ];then
BINDIR="$BIN"
fi
if [ -f ../../../Makefile ]; then
str=`grep ^SBINDIR ../../../Makefile | head -1 | sed 's/ //g'`
eval $str
fi
if [ "x$SBINDIR" = x ];then
SBINDIR="$SBIN"
fi
if [ -f $HOME/ltp/testcases/bin/sched_setaffinity01 ]; then
LTPDIR=$HOME/ltp/testcases
fi
if [ "x$LTPDIR" = x ]; then
LTPDIR="$LTP"
fi
if [ -f $HOME/ostest/bin/test_mck ]; then
OSTESTDIR=$HOME/ostest/
fi
if [ "x$OSTESTDIR" = x ]; then
OSTESTDIR="$OSTEST"
fi
if [ ! -x $SBINDIR/mcstop+release.sh ]; then
echo mcstop+releas: not found >&2
exit 1
fi
echo -n "mcstop+release.sh ... "
sudo $SBINDIR/mcstop+release.sh
echo "done"
if [ ! -x $SBINDIR/mcreboot.sh ]; then
echo mcreboot: not found >&2
exit 1
fi
echo -n "mcreboot.sh $BOOTPARAM ... "
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
echo "done"
if [ ! -x $BINDIR/mcexec ]; then
echo mcexec: not found >&2
exit 1
fi
tid=001
echo "*** RT_$tid start *******************************"
sudo $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s sched_getaffinity -n 1 2>&1 | tee ./RT_${tid}.txt
if grep "RESULT: ok" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=002
echo "*** RT_$tid start *******************************"
sudo $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s sched_getaffinity -n 0 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep "RESULT: ok" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=003
echo "*** RT_$tid start *******************************"
sudo $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s sched_getaffinity -n 2 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep "RESULT: ok" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=004
echo "*** RT_$tid start *******************************"
sudo $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s sched_getaffinity -n 3 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep "RESULT: ok" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=005
echo "*** RT_$tid start *******************************"
sudo $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s sched_getaffinity -n 5 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep "RESULT: ok" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""

14
test/issues/1122/Makefile Normal file
View File

@ -0,0 +1,14 @@
CC = gcc
TARGET=
CPPFLAGS =
LDFLAGS =
all: $(TARGET)
test: all
@sh ./C1122.sh
clean:
rm -f $(TARGET) *.o

34
test/issues/1122/README Normal file
View File

@ -0,0 +1,34 @@
【Issue#1122 動作確認】
□ テスト内容
1. Issueで報告された再現プログラムでの確認
RT_001: ostest-sched_getaffinity.001
affinityマスクの情報を受け取る第3引数に不正なアドレスを指定した場合、
-1が返り、errnoにEFAULTが設定されることを確認
2. 既存のsched_setaffinity機能に影響がないことをOSTESTを用いて確認
RT_002: ostest_schedgetaffinity.000
自プロセスのaffinityマスクを取得し、実行中のCPUがaffinityマスクに
含まれていることを確認
RT_003: ostest_schedgetaffinity.002
cpusetsizeに不正な値(0) を指定した場合、
-1が返り、errnoにEINVALが設定されることを確認
RT_004: ostest_schedgetaffinity.003
pidに存在しないプロセスIDを指定した場合、
-1が返り、errnoにESRCHが設定されることを確認
RT_005: ostest_schedgetaffinity.005
子プロセスが親プロセスのaffinityマスクを引き継いでいることを確認
□ 実行手順
$ make test
実行できない場合は、C1122.shの以下の行を適切に書き換えた後に実行。
BIN= mcexec が存在するパス
SBIN= mcreboot.sh が存在するパス
OSTEST= OSTESTが存在するパス
□ 実行結果
result.log 参照。
すべての項目をPASSしていることを確認。

View File

@ -0,0 +1,37 @@
*** RT_001 start *******************************
TEST_SUITE: sched_getaffinity
TEST_NUMBER: 1
ARGS:
sched_getaffinity result:-1, errno:14 (expect error is "EFAULT"=14)
RESULT: ok
*** RT_001: PASSED
*** RT_002 start *******************************
TEST_SUITE: sched_getaffinity
TEST_NUMBER: 0
ARGS: -p 20
RESULT: ok
*** RT_002: PASSED
*** RT_003 start *******************************
TEST_SUITE: sched_getaffinity
TEST_NUMBER: 2
ARGS: -p 20
sched_getaffinity result:-1, errno:22 (expect error is "EINVAL"=22)
RESULT: ok
*** RT_003: PASSED
*** RT_004 start *******************************
TEST_SUITE: sched_getaffinity
TEST_NUMBER: 3
ARGS: -p 20
sched_getaffinity result:-1, errno:3 (expect error is "ESRCH"=3)
RESULT: ok
*** RT_004: PASSED
*** RT_005 start *******************************
TEST_SUITE: sched_getaffinity
TEST_NUMBER: 5
ARGS: -p 20
RESULT: ok
*** RT_005: PASSED