fork: memory leak detection test.
Change-Id: I9c64f8fdaee15642b3d1d2d7d869927b0bcd6511
This commit is contained in:
committed by
Masamichi Takagi
parent
f2460695c4
commit
299d47abf5
75
test/signalonfork+wait/run_error_injection.sh
Normal file
75
test/signalonfork+wait/run_error_injection.sh
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
# run_error_injection.sh COPYRIGHT FUJITSU LIMITED 2019
|
||||
test_dir=$(dirname "${BASH_SOURCE[0]}")
|
||||
|
||||
#
|
||||
# read config
|
||||
#
|
||||
. "${test_dir}/../common.sh"
|
||||
|
||||
#
|
||||
# init
|
||||
#
|
||||
echo "@@@ initialize:"
|
||||
seed="$RANDOM"
|
||||
RANDOM=$seed
|
||||
echo "seed for \$RANDOM=$seed"
|
||||
|
||||
meminfo="/sys/devices/virtual/mcos/mcos0/sys/devices/system/node/node0/meminfo"
|
||||
"${MCEXEC}" 0 ./signalonfork_wait -nt 1 -t $((1000*5)) >/dev/null
|
||||
sleep 1
|
||||
exp_free_mem=`cat "$meminfo" | grep MemFree:`
|
||||
injection="/sys/devices/virtual/mcos/mcos0/sys/kernel/debug/signalonfork_test"
|
||||
|
||||
#
|
||||
# run
|
||||
#
|
||||
while read label eq val
|
||||
do
|
||||
if [ -z "$label" ]; then
|
||||
continue
|
||||
fi
|
||||
val=`echo "$val" | sed 's|,.*$||g'`
|
||||
|
||||
msec=$((1000 + $RANDOM % 500))
|
||||
echo "$val" > "$injection"
|
||||
echo "@@@ run signalonfork_wait($label, $val) wait=$msec"
|
||||
"${MCEXEC}" 0 ./signalonfork_wait -nt 2 -t $msec > /dev/null
|
||||
sleep 1
|
||||
free_mem=`cat "$meminfo" | grep MemFree:`
|
||||
if [ "$exp_free_mem" != "$free_mem" ]; then
|
||||
echo "NG: detected memory leak."
|
||||
echo "before:"
|
||||
echo " ${exp_free_mem}"
|
||||
echo "after:"
|
||||
echo " ${free_mem}"
|
||||
exit -1
|
||||
fi
|
||||
done <<__EOL__
|
||||
do_fork_release_cpuid_0 = 0x010000,
|
||||
do_fork_destroy_thread_0 = 0x010100,
|
||||
do_fork_destroy_thread_1 = 0x010101,
|
||||
do_fork_destroy_thread_2 = 0x010102,
|
||||
do_fork_release_ids_0 = 0x010200,
|
||||
do_fork_release_ids_1 = 0x010201,
|
||||
do_fork_free_mod_clone_arg_0 = 0x010300,
|
||||
do_fork_free_mod_clone_arg_1 = 0x010301,
|
||||
|
||||
clone_thread_free_thread_0 = 0x020000,
|
||||
clone_thread_free_thread_1 = 0x020001,
|
||||
clone_thread_free_fp_regs_0 = 0x020100,
|
||||
clone_thread_free_fp_regs_1 = 0x020101,
|
||||
clone_thread_free_fork_process_proc_0 = 0x020200,
|
||||
clone_thread_free_fork_process_proc_1 = 0x020201,
|
||||
clone_thread_free_fork_process_asp_0 = 0x020300,
|
||||
clone_thread_free_fork_process_vm_0 = 0x020400,
|
||||
clone_thread_free_fork_process_cmdline_0 = 0x020500,
|
||||
clone_thread_free_fork_process_cmdline_1 = 0x020501,
|
||||
clone_thread_free_fork_process_mckfd_0 = 0x020600,
|
||||
clone_thread_free_fork_clone_process_0 = 0x020700,
|
||||
clone_thread_free_copy_user_ranges_0 = 0x020800,
|
||||
|
||||
copy_user_ranges_err_rollback_0 = 0x030000,
|
||||
__EOL__
|
||||
echo "OK"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user