From 229b04132080be91d228d8e0d61a9072d32cbfcb Mon Sep 17 00:00:00 2001 From: Ken Sato Date: Fri, 29 Jun 2018 15:53:45 +0900 Subject: [PATCH] test: Add testcase for #1122 Refs: #1122 Change-Id: Ieafee7469d1397461abf05552ffad0bfea1dd6cd --- test/issues/1122/C1122.sh | 107 ++++++++++++++++++++++++++++++++++++ test/issues/1122/Makefile | 14 +++++ test/issues/1122/README | 34 ++++++++++++ test/issues/1122/result.log | 37 +++++++++++++ 4 files changed, 192 insertions(+) create mode 100644 test/issues/1122/C1122.sh create mode 100644 test/issues/1122/Makefile create mode 100644 test/issues/1122/README create mode 100644 test/issues/1122/result.log diff --git a/test/issues/1122/C1122.sh b/test/issues/1122/C1122.sh new file mode 100644 index 00000000..71985606 --- /dev/null +++ b/test/issues/1122/C1122.sh @@ -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 "" diff --git a/test/issues/1122/Makefile b/test/issues/1122/Makefile new file mode 100644 index 00000000..1246e9f4 --- /dev/null +++ b/test/issues/1122/Makefile @@ -0,0 +1,14 @@ +CC = gcc +TARGET= + +CPPFLAGS = +LDFLAGS = + +all: $(TARGET) + +test: all + @sh ./C1122.sh + +clean: + rm -f $(TARGET) *.o + diff --git a/test/issues/1122/README b/test/issues/1122/README new file mode 100644 index 00000000..9a2a58be --- /dev/null +++ b/test/issues/1122/README @@ -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していることを確認。 diff --git a/test/issues/1122/result.log b/test/issues/1122/result.log new file mode 100644 index 00000000..71ca41d1 --- /dev/null +++ b/test/issues/1122/result.log @@ -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