coredump: Exclude special areas
Fujitsu: POSTK_DEBUG_TEMP_FIX_38 Refs: #1005 Change-Id: I8934d2aecf06a09469afe131347e42b48b6f67f6
This commit is contained in:
committed by
Masamichi Takagi
parent
2910818f06
commit
a269d96978
112
test/issues/1005/C1005.sh
Normal file
112
test/issues/1005/C1005.sh
Normal file
@ -0,0 +1,112 @@
|
||||
#!/bin/sh
|
||||
|
||||
USELTP=0
|
||||
USEOSTEST=0
|
||||
|
||||
. ../../common.sh
|
||||
|
||||
sudo /bin/sh ${OSTESTDIR}/util/insmod_test_drv.sh
|
||||
|
||||
ulimit_c_bk=`ulimit -Sc`
|
||||
# set ulimit -c unlimited to dump core
|
||||
ulimit -Sc unlimited
|
||||
|
||||
$BINDIR/mcexec ./devmap_and_segv | tee ./maps.txt
|
||||
|
||||
# restore ulimit -c
|
||||
ulimit -c ${ulimit_c_bk}
|
||||
|
||||
sudo /bin/sh ${OSTESTDIR}/util/rmmod_test_drv.sh
|
||||
|
||||
tid=001
|
||||
echo "*** CT_$tid start *******************************"
|
||||
echo "** check file type by readelf"
|
||||
readelf -h ./core | grep -e "Type:.*CORE"
|
||||
if [ $? == 0 ]; then
|
||||
echo "*** CT_$tid PASSED ******************************"
|
||||
else
|
||||
echo "*** CT_$tid FAILED ******************************"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# check by gdb
|
||||
VDSO_ADDR=`grep "\[vdso\]" ./maps.txt | cut -f 1 -d "-"`
|
||||
DEVMAP_ADDR=`grep "mmap_dev2$" ./maps.txt | cut -f 1 -d "-"`
|
||||
GDB_OUT="./gdb_out.txt"
|
||||
|
||||
expect -c "
|
||||
set timeout 3
|
||||
log_file -noappend ${GDB_OUT}
|
||||
|
||||
spawn gdb --quiet -c ./core ./devmap_and_segv
|
||||
# check vdso addr
|
||||
expect \"(gdb)\"
|
||||
send \"x 0x${VDSO_ADDR}\n\"
|
||||
|
||||
#check devmap addr
|
||||
expect \"(gdb)\"
|
||||
send \"x 0x${DEVMAP_ADDR}\n\"
|
||||
|
||||
#check backtrace
|
||||
expect \"(gdb)\"
|
||||
send \"bt\n\"
|
||||
|
||||
#check info registers
|
||||
expect \"(gdb)\"
|
||||
send \"info registers\n\"
|
||||
|
||||
# quit gdb_test
|
||||
expect \"(gdb)\"
|
||||
send \"quit\n\"
|
||||
|
||||
log_file
|
||||
interact
|
||||
" > /dev/null
|
||||
|
||||
tid=002
|
||||
echo "*** CT_$tid start *******************************"
|
||||
echo "** check that core contains vdso data"
|
||||
grep -A 1 "(gdb) x 0x${VDSO_ADDR}" ${GDB_OUT}
|
||||
grep -A 1 "(gdb) x 0x${VDSO_ADDR}" ${GDB_OUT} | tail -1 | grep -q "0x${VDSO_ADDR}:\s*0x[0-9a-f]\+"
|
||||
if [ $? == 0 ]; then
|
||||
echo "*** CT_$tid PASSED ******************************"
|
||||
else
|
||||
echo "*** CT_$tid FAILED ******************************"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
tid=003
|
||||
echo "*** CT_$tid start *******************************"
|
||||
echo "** check that core dose NOT contain devmap data"
|
||||
grep -A 1 "(gdb) x 0x${DEVMAP_ADDR}" ${GDB_OUT}
|
||||
grep -A 1 "(gdb) x 0x${DEVMAP_ADDR}" ${GDB_OUT} | tail -1 | grep -q "0x${VDSO_ADDR}:\s*0x[0-9a-f]\+"
|
||||
if [ $? == 1 ]; then
|
||||
echo "*** CT_$tid PASSED ******************************"
|
||||
else
|
||||
echo "*** CT_$tid FAILED ******************************"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
tid=004
|
||||
echo "*** CT_$tid start *******************************"
|
||||
echo "** check that core can be backtraced"
|
||||
grep -A 1 "(gdb) bt" ${GDB_OUT}
|
||||
grep -A 1 "(gdb) bt" ${GDB_OUT} | tail -1 | grep -q "^#0.*in main"
|
||||
if [ $? == 0 ]; then
|
||||
echo "*** CT_$tid PASSED ******************************"
|
||||
else
|
||||
echo "*** CT_$tid FAILED ******************************"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
tid=005
|
||||
echo "*** CT_$tid start *******************************"
|
||||
echo "** check that core can be got info registers"
|
||||
grep -A 30 "(gdb) info registers" ${GDB_OUT}
|
||||
grep -A 30 "(gdb) info registers" ${GDB_OUT} | grep -q "^rip\s*0x.*main"
|
||||
if [ $? == 0 ]; then
|
||||
echo "*** CT_$tid PASSED ******************************"
|
||||
else
|
||||
echo "*** CT_$tid FAILED ******************************"
|
||||
fi
|
||||
echo ""
|
||||
Reference in New Issue
Block a user