coredump: Support signal number
Change-Id: If220bcd0865569a566e08aa53cae748fdc6317d0 Refs: #1340
This commit is contained in:
committed by
Masamichi Takagi
parent
11ef2f8092
commit
0c1cae45fe
223
test/issues/1340/C1340.sh
Executable file
223
test/issues/1340/C1340.sh
Executable file
@ -0,0 +1,223 @@
|
||||
#!/bin/sh
|
||||
|
||||
USELTP=0
|
||||
USEOSTEST=0
|
||||
|
||||
. ../../common.sh
|
||||
|
||||
arch=`uname -p`
|
||||
if [ -f "./${arch}_config" ]; then
|
||||
. ./${arch}_config
|
||||
else
|
||||
echo "$1 is unexpected arch"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
|
||||
ulimit_c_bk=`ulimit -Sc`
|
||||
# set ulimit -c unlimited to dump core
|
||||
ulimit -c unlimited
|
||||
|
||||
|
||||
issue=1340
|
||||
|
||||
tid=01
|
||||
tname=`printf "C${issue}T%02d" ${tid}`
|
||||
echo "*** ${tname} start *******************************"
|
||||
signum=11
|
||||
if [ "${arch}" = "x86_64" ]; then
|
||||
signame=11
|
||||
elif [ "${arch}" = "aarch_64" ]; then
|
||||
signame=SEGV
|
||||
fi
|
||||
|
||||
echo "** Check signal in coredump. GPE"
|
||||
${MCEXEC} ./segv
|
||||
|
||||
# Find mccore*
|
||||
CORE=`ls -1 | grep "^mccore"`
|
||||
|
||||
if [ ! -z $CORE ]; then
|
||||
echo "[ OK ] core for McKernel process found"
|
||||
else
|
||||
echo "[ NG ] core for McKernel process not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gdb ./segv --core=./${CORE} -x ./cmd/C${issue}.cmd 2>/dev/null \
|
||||
| tee ./${tname}.txt
|
||||
|
||||
num=`grep "Program terminated with signal ${signame}" ./${tname}.txt | wc -l`
|
||||
|
||||
if [ ${num} -eq 1 ]; then
|
||||
echo "*** ${tname} PASSED ******************************"
|
||||
else
|
||||
echo "*** ${tname} FAILED ******************************"
|
||||
fi
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
let tid++
|
||||
echo ""
|
||||
|
||||
idx=0
|
||||
for signum in ${SIG_LIST[@]}
|
||||
do
|
||||
tname=`printf "C${issue}T%02d" ${tid}`
|
||||
echo "*** ${tname} start *******************************"
|
||||
echo "** Check signal in coredump. raise ${signum}"
|
||||
${MCEXEC} ./raise_sig ${signum}
|
||||
|
||||
# Find mccore*
|
||||
CORE=`ls -1 | grep "^mccore"`
|
||||
|
||||
if [ ! -z $CORE ]; then
|
||||
echo "[ OK ] core for McKernel process found"
|
||||
else
|
||||
echo "[ NG ] core for McKernel process not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gdb ./segv --core=./${CORE} -x ./cmd/C${issue}.cmd 2>/dev/null \
|
||||
| tee ./${tname}.txt
|
||||
|
||||
num=`grep "Program terminated with signal ${NAME_LIST[${idx}]}" ./${tname}.txt | wc -l`
|
||||
|
||||
if [ ${num} -eq 1 ]; then
|
||||
echo "*** ${tname} PASSED ******************************"
|
||||
else
|
||||
echo "*** ${tname} FAILED ******************************"
|
||||
fi
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
let tid++
|
||||
echo ""
|
||||
let idx++
|
||||
done
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
tid=03
|
||||
echo "*** C${issue}T${tid} start *******************************"
|
||||
echo "** Check signal in coredump. raise SIGILL"
|
||||
signum=4
|
||||
${MCEXEC} ./raise_sig ${signum}
|
||||
|
||||
# Find mccore*
|
||||
CORE=`ls -1 | grep "^mccore"`
|
||||
|
||||
if [ ! -z $CORE ]; then
|
||||
echo "[ OK ] core for McKernel process found"
|
||||
else
|
||||
echo "[ NG ] core for McKernel process not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gdb ./segv --core=./${CORE} -x ./cmd/C${issue}.cmd 2>/dev/null \
|
||||
| tee ./C${issue}T${tid}.txt
|
||||
|
||||
num=`grep "Program terminated with signal ${signum}" ./C${issue}T${tid}.txt | wc -l`
|
||||
|
||||
if [ ${num} -eq 1 ]; then
|
||||
echo "*** C${issue}T${tid} PASSED ******************************"
|
||||
else
|
||||
echo "*** C${issue}T${tid} FAILED ******************************"
|
||||
fi
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
echo ""
|
||||
|
||||
tid=04
|
||||
echo "*** C${issue}T${tid} start *******************************"
|
||||
echo "** Check signal in coredump. raise SIGABRT"
|
||||
signum=6
|
||||
${MCEXEC} ./raise_sig ${signum}
|
||||
|
||||
# Find mccore*
|
||||
CORE=`ls -1 | grep "^mccore"`
|
||||
|
||||
if [ ! -z $CORE ]; then
|
||||
echo "[ OK ] core for McKernel process found"
|
||||
else
|
||||
echo "[ NG ] core for McKernel process not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gdb ./segv --core=./${CORE} -x ./cmd/C${issue}.cmd 2>/dev/null \
|
||||
| tee ./C${issue}T${tid}.txt
|
||||
|
||||
num=`grep "Program terminated with signal ${signum}" ./C${issue}T${tid}.txt | wc -l`
|
||||
|
||||
if [ ${num} -eq 1 ]; then
|
||||
echo "*** C${issue}T${tid} PASSED ******************************"
|
||||
else
|
||||
echo "*** C${issue}T${tid} FAILED ******************************"
|
||||
fi
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
echo ""
|
||||
|
||||
tid=05
|
||||
echo "*** C${issue}T${tid} start *******************************"
|
||||
echo "** Check signal in coredump. raise SIGFPE"
|
||||
signum=8
|
||||
${MCEXEC} ./raise_sig ${signum}
|
||||
|
||||
# Find mccore*
|
||||
CORE=`ls -1 | grep "^mccore"`
|
||||
|
||||
if [ ! -z $CORE ]; then
|
||||
echo "[ OK ] core for McKernel process found"
|
||||
else
|
||||
echo "[ NG ] core for McKernel process not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gdb ./segv --core=./${CORE} -x ./cmd/C${issue}.cmd 2>/dev/null \
|
||||
| tee ./C${issue}T${tid}.txt
|
||||
|
||||
num=`grep "Program terminated with signal ${signum}" ./C${issue}T${tid}.txt | wc -l`
|
||||
|
||||
if [ ${num} -eq 1 ]; then
|
||||
echo "*** C${issue}T${tid} PASSED ******************************"
|
||||
else
|
||||
echo "*** C${issue}T${tid} FAILED ******************************"
|
||||
fi
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
echo ""
|
||||
|
||||
tid=06
|
||||
echo "*** C${issue}T${tid} start *******************************"
|
||||
echo "** Check signal in coredump. raise SIGSEGV"
|
||||
signum=11
|
||||
${MCEXEC} ./raise_sig ${signum}
|
||||
|
||||
# Find mccore*
|
||||
CORE=`ls -1 | grep "^mccore"`
|
||||
|
||||
if [ ! -z $CORE ]; then
|
||||
echo "[ OK ] core for McKernel process found"
|
||||
else
|
||||
echo "[ NG ] core for McKernel process not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gdb ./segv --core=./${CORE} -x ./cmd/C${issue}.cmd 2>/dev/null \
|
||||
| tee ./C${issue}T${tid}.txt
|
||||
|
||||
num=`grep "Program terminated with signal ${signum}" ./C${issue}T${tid}.txt | wc -l`
|
||||
|
||||
if [ ${num} -eq 1 ]; then
|
||||
echo "*** C${issue}T${tid} PASSED ******************************"
|
||||
else
|
||||
echo "*** C${issue}T${tid} FAILED ******************************"
|
||||
fi
|
||||
# clean corefils
|
||||
rm ./mccore* ./core.*
|
||||
echo ""
|
||||
|
||||
# restore ulimit -c
|
||||
ulimit -c ${ulimit_c_bk}
|
||||
Reference in New Issue
Block a user