wait: Delay wake-up parent within switch context
Fujitsu: POSTK_DEBUG_TEMP_FIX_41 Refs: #1006 Change-Id: Ia98e896505ad0f6549766604ade84550eee8bd2d
This commit is contained in:
committed by
Masamichi Takagi
parent
0fdeb254b3
commit
f57b0c5d4f
106
test/issues/1006/C1006.sh
Normal file
106
test/issues/1006/C1006.sh
Normal file
@ -0,0 +1,106 @@
|
||||
#!/bin/sh
|
||||
if [ -f $HOME/mck_test_config ]; then
|
||||
. $HOME/mck_test_config
|
||||
else
|
||||
BIN=
|
||||
SBIN=
|
||||
OSTEST=
|
||||
LTP=
|
||||
fi
|
||||
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 [ "x$BINDIR" = x ];then
|
||||
BINDIR="$BIN"
|
||||
fi
|
||||
|
||||
if [ "x$SBINDIR" = x ];then
|
||||
SBINDIR="$SBIN"
|
||||
fi
|
||||
|
||||
if [ "x$OSTESTDIR" = x ]; then
|
||||
OSTESTDIR="$OSTEST"
|
||||
fi
|
||||
|
||||
if [ "x$LTPDIR" = x ]; then
|
||||
LTPDIR="$LTP"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
tid=001
|
||||
echo "*** RT_$tid start *******************************"
|
||||
sudo $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s ptrace -n 8 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=001
|
||||
echo "*** LT_$tid start *******************************"
|
||||
sudo PATH=$LTPDIR/bin:${PATH} $BINDIR/mcexec $LTPDIR/bin/ptrace01 2>&1 | tee ./LT_${tid}.txt
|
||||
ok=`grep TPASS LT_${tid}.txt | wc -l`
|
||||
ng=`grep TFAIL LT_${tid}.txt | wc -l`
|
||||
if [ $ng = 0 ]; then
|
||||
echo "*** LT_$tid: PASSED (ok:$ok)"
|
||||
else
|
||||
echo "*** LT_$tid: FAILED (ok:$ok, ng:$ng)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
tid=002
|
||||
echo "*** LT_$tid start *******************************"
|
||||
sudo PATH=$LTPDIR/bin:${PATH} $BINDIR/mcexec $LTPDIR/bin/ptrace02 2>&1 | tee ./LT_${tid}.txt
|
||||
ok=`grep TPASS LT_${tid}.txt | wc -l`
|
||||
ng=`grep TFAIL LT_${tid}.txt | wc -l`
|
||||
if [ $ng = 0 ]; then
|
||||
echo "*** LT_$tid: PASSED (ok:$ok)"
|
||||
else
|
||||
echo "*** LT_$tid: FAILED (ok:$ok, ng:$ng)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
tid=003
|
||||
echo "*** LT_$tid start *******************************"
|
||||
sudo PATH=$LTPDIR/bin:${PATH} $BINDIR/mcexec $LTPDIR/bin/ptrace03 2>&1 | tee ./LT_${tid}.txt
|
||||
ok=`grep TPASS LT_${tid}.txt | wc -l`
|
||||
ng=`grep TFAIL LT_${tid}.txt | wc -l`
|
||||
if [ $ng = 0 ]; then
|
||||
echo "*** LT_$tid: PASSED (ok:$ok)"
|
||||
else
|
||||
echo "*** LT_$tid: FAILED (ok:$ok, ng:$ng)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
tid=004
|
||||
echo "*** LT_$tid start *******************************"
|
||||
sudo PATH=$LTPDIR/bin:${PATH} $BINDIR/mcexec $LTPDIR/bin/ptrace05 2>&1 | tee ./LT_${tid}.txt
|
||||
ok=`grep TPASS LT_${tid}.txt | wc -l`
|
||||
ng=`grep TFAIL LT_${tid}.txt | wc -l`
|
||||
if [ $ng = 0 ]; then
|
||||
echo "*** LT_$tid: PASSED (ok:$ok)"
|
||||
else
|
||||
echo "*** LT_$tid: FAILED (ok:$ok, ng:$ng)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
14
test/issues/1006/Makefile
Normal file
14
test/issues/1006/Makefile
Normal file
@ -0,0 +1,14 @@
|
||||
CC = gcc
|
||||
TARGET=
|
||||
|
||||
CPPFLAGS =
|
||||
LDFLAGS =
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
test: all
|
||||
@sh ./C1006.sh
|
||||
|
||||
clean:
|
||||
rm -f $(TARGET) *.o
|
||||
|
||||
37
test/issues/1006/README
Normal file
37
test/issues/1006/README
Normal file
@ -0,0 +1,37 @@
|
||||
【Issue#1006 動作確認】
|
||||
□ テスト内容
|
||||
1. Issueで報告された再現プログラムでの確認
|
||||
RT_001: ostest-ptrace.008 での確認
|
||||
wait()で待っている親プロセスを起動した直後の子プロセスから、
|
||||
ptrace(GETFPREGS)で正しい値が取得できることを確認
|
||||
|
||||
2. 既存のptrace機能に影響がないことをLTPを用いて確認
|
||||
LT_001: ltp-ptrace01
|
||||
PTRACE_TRACEME と PTRACE_KILL の動作を確認 (TPASS 2件)
|
||||
|
||||
LT_002: ltp-ptrace02
|
||||
PTRACE_TRACEME と PTRACE_CONT の動作を確認 (TPASS 2件)
|
||||
|
||||
LT_003: ltp-ptrace03
|
||||
ptrace()に不正なpidを指定した場合の動作を確認 (TCONF 1件、TPASS 2件)
|
||||
|
||||
LT_004: ltp-ptrace05
|
||||
TRACE状態での各シグナル受信時の動作を確認 (TPASS 65件)
|
||||
|
||||
□ 実行手順
|
||||
McKernelのインストール先や、OSTEST, LTPの配置場所は、
|
||||
$HOME/mck_test_config を参照している
|
||||
mck_test_config は、McKernelをビルドした際に生成される
|
||||
mck_test_config.sample ファイルを$HOMEにコピーし、適宜編集する
|
||||
|
||||
$ make test
|
||||
|
||||
実行できない場合は、C976.shの以下の行を適切に書き換えた後に実行。
|
||||
BIN= mcexec が存在するパス
|
||||
SBIN= mcreboot.sh が存在するパス
|
||||
OSTEST= OSTESTが存在するパス
|
||||
LTP= LTPが存在するパス
|
||||
|
||||
□ 実行結果
|
||||
result.log 参照。
|
||||
すべての項目をPASSしていることを確認。
|
||||
95
test/issues/1006/result.log
Normal file
95
test/issues/1006/result.log
Normal file
@ -0,0 +1,95 @@
|
||||
*** RT_001 start *******************************
|
||||
TEST_SUITE: ptrace
|
||||
TEST_NUMBER: 8
|
||||
ARGS:
|
||||
TEST_SUITE: ptrace
|
||||
TEST_NUMBER: 8
|
||||
ARGS:
|
||||
child's fpregs.swd is 0x38 (expected NOT ZERO)
|
||||
RESULT: ok
|
||||
*** RT_001: PASSED
|
||||
|
||||
*** LT_001 start *******************************
|
||||
ptrace01 1 TPASS : Test Passed
|
||||
ptrace01 2 TPASS : Test Passed
|
||||
*** LT_001: PASSED (ok:2)
|
||||
|
||||
*** LT_002 start *******************************
|
||||
ptrace02 1 TPASS : Test Passed
|
||||
ptrace02 2 TPASS : Test Passed
|
||||
*** LT_002: PASSED (ok:2)
|
||||
|
||||
*** LT_003 start *******************************
|
||||
ptrace03 1 TCONF : ptrace03.c:137: this kernel allows to trace init
|
||||
ptrace03 2 TPASS : Test Passed
|
||||
ptrace03 3 TPASS : Test Passed
|
||||
*** LT_003: PASSED (ok:2)
|
||||
|
||||
*** LT_004 start *******************************
|
||||
ptrace05 0 TINFO : [child] Sending kill(.., 0)
|
||||
ptrace05 1 TPASS : kill(.., 0) exited with 0, as expected.
|
||||
ptrace05 2 TPASS : Stopped as expected
|
||||
ptrace05 3 TPASS : Stopped as expected
|
||||
ptrace05 4 TPASS : Stopped as expected
|
||||
ptrace05 5 TPASS : Stopped as expected
|
||||
ptrace05 6 TPASS : Stopped as expected
|
||||
ptrace05 7 TPASS : Stopped as expected
|
||||
ptrace05 8 TPASS : Stopped as expected
|
||||
ptrace05 9 TPASS : Stopped as expected
|
||||
ptrace05 10 TPASS : Killed with SIGKILL, as expected.
|
||||
ptrace05 11 TPASS : Stopped as expected
|
||||
ptrace05 12 TPASS : Stopped as expected
|
||||
ptrace05 13 TPASS : Stopped as expected
|
||||
ptrace05 14 TPASS : Stopped as expected
|
||||
ptrace05 15 TPASS : Stopped as expected
|
||||
ptrace05 16 TPASS : Stopped as expected
|
||||
ptrace05 17 TPASS : Stopped as expected
|
||||
ptrace05 18 TPASS : Stopped as expected
|
||||
ptrace05 19 TPASS : Stopped as expected
|
||||
ptrace05 20 TPASS : Stopped as expected
|
||||
ptrace05 21 TPASS : Stopped as expected
|
||||
ptrace05 22 TPASS : Stopped as expected
|
||||
ptrace05 23 TPASS : Stopped as expected
|
||||
ptrace05 24 TPASS : Stopped as expected
|
||||
ptrace05 25 TPASS : Stopped as expected
|
||||
ptrace05 26 TPASS : Stopped as expected
|
||||
ptrace05 27 TPASS : Stopped as expected
|
||||
ptrace05 28 TPASS : Stopped as expected
|
||||
ptrace05 29 TPASS : Stopped as expected
|
||||
ptrace05 30 TPASS : Stopped as expected
|
||||
ptrace05 31 TPASS : Stopped as expected
|
||||
ptrace05 32 TPASS : Stopped as expected
|
||||
ptrace05 33 TPASS : Stopped as expected
|
||||
ptrace05 34 TPASS : Stopped as expected
|
||||
ptrace05 35 TPASS : Stopped as expected
|
||||
ptrace05 36 TPASS : Stopped as expected
|
||||
ptrace05 37 TPASS : Stopped as expected
|
||||
ptrace05 38 TPASS : Stopped as expected
|
||||
ptrace05 39 TPASS : Stopped as expected
|
||||
ptrace05 40 TPASS : Stopped as expected
|
||||
ptrace05 41 TPASS : Stopped as expected
|
||||
ptrace05 42 TPASS : Stopped as expected
|
||||
ptrace05 43 TPASS : Stopped as expected
|
||||
ptrace05 44 TPASS : Stopped as expected
|
||||
ptrace05 45 TPASS : Stopped as expected
|
||||
ptrace05 46 TPASS : Stopped as expected
|
||||
ptrace05 47 TPASS : Stopped as expected
|
||||
ptrace05 48 TPASS : Stopped as expected
|
||||
ptrace05 49 TPASS : Stopped as expected
|
||||
ptrace05 50 TPASS : Stopped as expected
|
||||
ptrace05 51 TPASS : Stopped as expected
|
||||
ptrace05 52 TPASS : Stopped as expected
|
||||
ptrace05 53 TPASS : Stopped as expected
|
||||
ptrace05 54 TPASS : Stopped as expected
|
||||
ptrace05 55 TPASS : Stopped as expected
|
||||
ptrace05 56 TPASS : Stopped as expected
|
||||
ptrace05 57 TPASS : Stopped as expected
|
||||
ptrace05 58 TPASS : Stopped as expected
|
||||
ptrace05 59 TPASS : Stopped as expected
|
||||
ptrace05 60 TPASS : Stopped as expected
|
||||
ptrace05 61 TPASS : Stopped as expected
|
||||
ptrace05 62 TPASS : Stopped as expected
|
||||
ptrace05 63 TPASS : Stopped as expected
|
||||
ptrace05 64 TPASS : Stopped as expected
|
||||
ptrace05 65 TPASS : Stopped as expected
|
||||
*** LT_004: PASSED (ok:65)
|
||||
Reference in New Issue
Block a user