197 lines
5.0 KiB
Bash
Executable File
197 lines
5.0 KiB
Bash
Executable File
#!/bin/sh
|
|
## run.sh COPYRIGHT FUJITSU LIMITED 2018 ##
|
|
|
|
USELTP=0
|
|
USEOSTEST=1
|
|
MCREBOOT=0
|
|
|
|
. ../../common.sh
|
|
|
|
MCSTAT="${BIN}/mcstat"
|
|
BOOTPARAM="-c 4-7 -m 512M@0"
|
|
|
|
mcreboot
|
|
|
|
sleep 1
|
|
|
|
${MCEXEC} ${TESTMCK} -s mem_limits -n 0 -- -s $((64*1024*1024)) -c 1 -f mmap > /dev/null 2>&1
|
|
|
|
sleep 1
|
|
|
|
result=0
|
|
|
|
#################
|
|
## mcstat test ##
|
|
#################
|
|
|
|
output=`${MCSTAT} | sed -n -e 3p`
|
|
mck_mem_total=$(awk '{print $1}' <<< ${output})
|
|
mem_current=$(awk '{print $2}' <<< ${output})
|
|
mem_max=$(awk '{print $3}' <<< ${output})
|
|
tsc_system=$(awk '{print $4}' <<< ${output})
|
|
tsc_user=$(awk '{print $5}' <<< ${output})
|
|
thread_current=$(awk '{print $6}' <<< ${output})
|
|
thread_max=$(awk '{print $7}' <<< ${output})
|
|
|
|
output=`./get_rusage 0`
|
|
exp_kmem_current=`echo "${output}" | grep "memory_kmem_usage" | cut -c 21-`
|
|
exp_umem_current=`echo "${output}" | grep "memory_numa_stat\[0\]" | cut -c 23-`
|
|
exp_mem_current=$((${exp_kmem_current}+${exp_umem_current}))
|
|
|
|
exp_kmem_max=`echo "${output}" | grep "memory_kmem_max_usage" | cut -c 25-`
|
|
exp_umem_max=`echo "${output}" | grep "memory_max_usage" | cut -c 20-`
|
|
exp_mem_max=$((${exp_kmem_max}+${exp_umem_max}))
|
|
|
|
exp_tsc_system=`echo "${output}" | grep "cpuacct_stat_system" | cut -c 23-`
|
|
exp_tsc_user=`echo "${output}" | grep "cpuacct_stat_user" | cut -c 21-`
|
|
exp_thread_current=`echo "${output}" | grep "num_threads" | head -1 | cut -c 15-`
|
|
exp_thread_max=`echo "${output}" | grep "max_num_threads" | cut -c 19-`
|
|
|
|
mck_mem_total=`echo "scale=3; ${mck_mem_total} - ${mem_current}" | bc`
|
|
mck_mem_total=${mck_mem_total%.*}
|
|
if [ 502 -le ${mck_mem_total} -a ${mck_mem_total} -lt 512 ]; then
|
|
echo "TEST001: OK"
|
|
else
|
|
echo "TEST001: NG, memory total value (exp:near512MiB val:${mck_mem_total}MiB)."
|
|
result=-1
|
|
fi
|
|
|
|
exp_mem_current=$((${exp_mem_current} / 1024 / 1024))
|
|
mem_current=${mem_current%.*}
|
|
if [ ${mem_current} == ${exp_mem_current} ]; then
|
|
echo "TEST002: OK"
|
|
else
|
|
echo "TEST002: NG, memory current value (exp:${exp_mem_current}MiB val:${mem_current}MiB)"
|
|
result=-1
|
|
fi
|
|
|
|
exp_mem_max=$((${exp_mem_max} / 1024 / 1024))
|
|
mem_max=${mem_max%.*}
|
|
if [ ${mem_max} == ${exp_mem_max} ]; then
|
|
echo "TEST003: OK"
|
|
else
|
|
echo "TEST003: NG, memory max value (exp:${exp_mem_max}MiB val:${mem_current}MiB)"
|
|
result=-1
|
|
fi
|
|
|
|
exp_tsc_system=$((${exp_tsc_system}))
|
|
if [ ${tsc_system} == ${exp_tsc_system} ]; then
|
|
echo "TEST004: OK"
|
|
else
|
|
echo "TEST004: NG, tsc system value (exp:${exp_tsc_system} val:${tsc_system})"
|
|
result=-1
|
|
fi
|
|
|
|
exp_tsc_user=$((${exp_tsc_user}))
|
|
if [ ${tsc_user} == ${exp_tsc_user} ]; then
|
|
echo "TEST005: OK"
|
|
else
|
|
echo "TEST005: NG, tsc user value (exp:${exp_tsc_system} val:${tsc_system})"
|
|
result=-1
|
|
fi
|
|
|
|
exp_thread_current=$((${exp_thread_current}))
|
|
if [ ${thread_current} == ${exp_thread_current} ]; then
|
|
echo "TEST006: OK"
|
|
else
|
|
echo "TEST006: NG, current thread value (exp:${exp_thread_current} val:${thread_current})"
|
|
result=-1
|
|
fi
|
|
|
|
exp_thread_max=$((${exp_thread_max}))
|
|
if [ ${thread_max} == ${exp_thread_max} ]; then
|
|
echo "TEST007: OK"
|
|
else
|
|
echo "TEST007: NG, max thread value (exp:${exp_thread_max} val:${thread_max})"
|
|
result=-1
|
|
fi
|
|
|
|
output=`${MCSTAT} -n 1 20 | grep -c "\-\-\-\-\-\-\- memory"`
|
|
if [ ${output} == 1 ]; then
|
|
echo "TEST008: OK"
|
|
else
|
|
echo "TEST008: NG, header output frequency -n option setting."
|
|
result=-1
|
|
fi
|
|
|
|
output=`${MCSTAT} 1 20 | grep -c "\-\-\-\-\-\-\- memory"`
|
|
if [ ${output} == 2 ]; then
|
|
echo "TEST009: OK"
|
|
else
|
|
echo "TEST009: NG, header output frequency -n option not setting."
|
|
result=-1
|
|
fi
|
|
|
|
output=`${MCSTAT} -s | awk '{print toupper($0)}'`
|
|
output=`echo ${output} | cut -c 18-`
|
|
exp_status=`${IHKOSCTL} 0 get status`
|
|
if [ ${output} == ${exp_status} ]; then
|
|
echo "TEST010: OK"
|
|
else
|
|
echo "TEST010: NG, -s option get status.(exp:${exp_status} status:${output})"
|
|
result=-1
|
|
fi
|
|
|
|
${MCSTAT} -h 2>&1 | grep -q "Usage"
|
|
if [ $? == 0 ]; then
|
|
echo "TEST011: OK"
|
|
else
|
|
echo "TEST011: NG, -h option setting."
|
|
result=-1
|
|
fi
|
|
|
|
${MCSTAT} -s -h 2>&1 | grep -q "Usage"
|
|
if [ $? == 0 ]; then
|
|
echo "TEST012: OK"
|
|
else
|
|
echo "TEST012: NG, -h and other option setting."
|
|
result=-1
|
|
fi
|
|
|
|
(time ${MCSTAT} 5 2) > ./tmp.log 2>&1
|
|
output=`cat ./tmp.log | tac | sed -n -e 3p | cut -c 8-12`
|
|
output=${output%.*}
|
|
if [ ${output} == 5 ]; then
|
|
output=`cat ./tmp.log | sort | uniq -c | sort -nr | head -1 | cut -c 7-8`
|
|
|
|
if [ ${output} == 2 ]; then
|
|
echo "TEST013: OK"
|
|
else
|
|
echo "TEST013: NG, delay/count option setting. (lines mismatch)"
|
|
result=-1
|
|
fi
|
|
else
|
|
echo "TEST013: NG, delay/count option setting. (times mismatch)"
|
|
result=-1
|
|
fi
|
|
|
|
stdbuf -i0 -o0 -e0 ${MCSTAT} 1 > ./tmp.log 2>&1 &
|
|
sleep 10
|
|
kill `pidof mcstat`
|
|
output=`cat ./tmp.log | sort | uniq -c | sort -nr | head -1 | cut -c 6-7`
|
|
if [ ${output} == 11 ]; then
|
|
echo "TEST014: OK"
|
|
else
|
|
echo "TEST014: NG, delay option only setting."
|
|
result=-1
|
|
fi
|
|
|
|
${MCSTAT} -k > ./tmp.log 2>&1
|
|
if [ $? == 0 ]; then
|
|
cat ./tmp.log | grep -q "invalid option"
|
|
|
|
if [ $? == 0 ]; then
|
|
echo "TEST015: OK"
|
|
else
|
|
echo "TEST015: NG, invalid option setting. (log mismatch)"
|
|
result=-1
|
|
fi
|
|
else
|
|
echo "TEST015: NG, invalid option setting. (result mismatch)"
|
|
result=-1
|
|
fi
|
|
|
|
rm -f ./tmp.log
|
|
|
|
exit ${result}
|