#!/bin/sh TIMES=$1 INTERVAL=$2 LATENCY=$3 DURATION=$4 if [ ! -f "/usr/bin/cyclictest" ]; then echo "Error! the command 'cyclictest' doesn't exist!" lava-test-case cyclictest-basic --result fail exit 1 fi for t in $(seq 1 ${TIMES}); do threads=$(($t * 2)); log_file="${threads}-cyc.log"; echo "Running \"cyclictest -q -t ${threads} -i ${INTERVAL} --latency=${LATENCY} -D ${DURATION}\"" | tee ${log_file}; for i in $(seq 0 5); do cyclictest -q -t ${threads} -i ${INTERVAL} --latency=${LATENCY} -D ${DURATION} | tee result.log; cat result.log >> ${log_file}; done; lava-test-run-attach ${log_file}; Max=0 Min=0 Avg=0 n=0 while read l; do max=$(echo ${l}|grep -o "Max:[[:space:]]*[0-9]*"|grep -o "[0-9]*") min=$(echo ${l}|grep -o "Min:[[:space:]]*[0-9]*"|grep -o "[0-9]*") avg=$(echo ${l}|grep -o "Avg:[[:space:]]*[0-9]*"|grep -o "[0-9]*") if [ ${max} -a ${min} -a ${avg} ]; then [ ${max} -gt ${Max} ] && Max=${max} [ ${Min} -eq 0 -o ${min} -lt ${Min} ] && Min=${min} Avg=$((${Avg}+${avg})) n=$((${n}+1)) fi done < ${log_file} Avg=$((${Avg}/${n})) lava-test-case ${threads}-threads-Max --result pass --units us --measurement ${Max} lava-test-case ${threads}-threads-Min --result pass --units us --measurement ${Min} lava-test-case ${threads}-threads-Avg --result pass --units us --measurement ${Avg} done