diff --git a/test/issues/998+999/C998+999.sh b/test/issues/998+999/C998+999.sh new file mode 100644 index 00000000..351693d4 --- /dev/null +++ b/test/issues/998+999/C998+999.sh @@ -0,0 +1,70 @@ +#!/bin/sh +BIN= +SBIN= +OSTEST= +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/ostest/bin/test_mck ]; then + OSTESTDIR=$HOME/ostest/ +fi +if [ "x$OSTESTDIR" = x ]; then + OSTESTDIR="$OSTEST" +fi +if [ ! -x "$OSTESTDIR"/bin/test_mck ]; then + echo no ostest found $OSTEST >&2 + exit 1 +fi +TESTMCK="$OSTESTDIR/bin/test_mck" + +if [ ! -x $SBINDIR/mcstop+release.sh ]; then + echo mcstop+release: 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 + +for i in {1..10}; do + for j in {1..100}; do + $BINDIR/mcexec "$TESTMCK" -s wait4 -n 3 > testmck.log 2>&1 + if [ $? != 0 ]; then + echo "****** ERROR ******" + cat testmck.log + exit 1 + fi + echo -n . + done + echo + echo "*** $i"00" ****************************" +done + +echo "*** C998+999 OK ****************************" diff --git a/test/issues/998+999/C998+999.txt b/test/issues/998+999/C998+999.txt new file mode 100644 index 00000000..1fdc4420 --- /dev/null +++ b/test/issues/998+999/C998+999.txt @@ -0,0 +1,29 @@ +Script started on Wed Aug 1 15:08:25 2018 +bash-4.2$ make test +mcstop+release.sh ... done +mcreboot.sh -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 ... done +.................................................................................................... +*** 100 **************************** +.................................................................................................... +*** 200 **************************** +.................................................................................................... +*** 300 **************************** +.................................................................................................... +*** 400 **************************** +.................................................................................................... +*** 500 **************************** +.................................................................................................... +*** 600 **************************** +.................................................................................................... +*** 700 **************************** +.................................................................................................... +*** 800 **************************** +.................................................................................................... +*** 900 **************************** +.................................................................................................... +*** 1000 **************************** +*** C998+999 OK **************************** +bash-4.2$ exit +exit + +Script done on Wed Aug 1 15:48:56 2018 diff --git a/test/issues/998+999/Makefile b/test/issues/998+999/Makefile new file mode 100644 index 00000000..769e211b --- /dev/null +++ b/test/issues/998+999/Makefile @@ -0,0 +1,14 @@ +CC = gcc +TARGET= + +CPPFLAGS = +LDFLAGS = + +all: + +test: all + @sh ./C998+999.sh + +clean: + rm -f $(TARGET) *.o + diff --git a/test/issues/998+999/README b/test/issues/998+999/README new file mode 100644 index 00000000..15e07df9 --- /dev/null +++ b/test/issues/998+999/README @@ -0,0 +1,32 @@ +【Issue#998 Issue#999 動作確認】 +□ テスト内容 +Issue#998 で指摘された現象は、既に解消している。 +これは、IKC3のサポートによりシステムコールデリゲーションの実装が変更され、 +システムコール要求がキューによって管理されるようになったため取りこぼしが +発生しないようになっているためである。 + +Issue#999 で指摘された現象は、既に解消されている。 +これは、シグナルをMcKernelからmcexecに通知するスレッドをシグナル送信元から +シグナル受信先に変更されたことによって、シグナルの通知とシステムコール要求の +順序が入れ替わることが無くなったためである。 + +以上により、Issue#998とIssue#999に対するプログラム修正は不要であるが、 +現象が本当に解消されていることを指摘プログラムを用いて確認する。 + +C998+999 mcexec test_mck -s wait4 -n 3 を 1000 回(※)連続実行し、プログラムが + 正常終了することを確認する。 + +※ McKernelの動作タイミングによって Issue#998 と Issue#999 の現象が発生したり + しなかったりしていたため、十分な繰り返しを行い、再発しない確認とする。 + +□ 実行手順 +$ make test + +実行できない場合は、C998+999.sh の以下の行を適切に書き換えた後に実行。 +BIN= mcexec が存在するパス +SBIN= mcreboot.sh が存在するパス +OSTEST= OSTEST が存在するパス + +□ 実行結果 +C998+999.txt 参照。 +すべての項目をPASSしていることを確認。