76 lines
2.2 KiB
Bash
76 lines
2.2 KiB
Bash
#!/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
|