summaryrefslogtreecommitdiff
path: root/common/scripts/cyclictest-basic.sh
blob: 9856975e3900f550301a1a5f5673d426bebd6c25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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