]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - tests/_lib.sh
HTML report + many modifications
[can-benchmark.git] / tests / _lib.sh
index 281ddf90e87e08f2cfb253d6f721e96f52dd95f1..16618148f00504c48bd24e62fe0b041d29e69fdc 100644 (file)
@@ -2,7 +2,7 @@
 while [ $# -gt 0 ]; do
     case "$1" in
        -p) OPT_PLOT_ONLY=1; shift;;
-       --pdf-only) OPT_PDF_ONLY=1; shift;;
+       -X|--no-x11-plot) OPT_NO_X11=1; shift;;
     esac
 done
 
@@ -12,14 +12,19 @@ set -e
 PATH=$PWD/../_compiled/bin/:$PATH
 
 RTPRIO=60
+COUNT=10000
 
 boost_irq_prio() {
     local PRIO=${1:-50}
     CAN_IRQ=`sed -ne '/can/ s/:.*//p' /proc/interrupts`
     if [ -n "$CAN_IRQ" ]; then
        IRQ_PID=`pidof IRQ-${CAN_IRQ/ /}` || true
-       [ -z "$IRQ_PID" ] || schedtool -F -p $PRIO $IRQ_PID 
+       if [ -n "$IRQ_PID" ]; then
+           schedtool -F -p $PRIO $IRQ_PID
+           return 0
+       fi
     fi
+    return 1
 }
 
 rmmod_can() {
@@ -70,33 +75,65 @@ prepare_socketcan_virtual() {
 
 run_tests() {
     tests=${TESTS:-socketcan_hw lincan_hw}
-    for i in $tests; do
-       cpufreq-set -f 2400MHz
-       boost_irq_prio 50
-       prepare_$i
+    for tst in $tests; do
+       boost_irq_prio 50 || true
+       prepare_$tst
        t
     done
 }
 
 plot() {
     for i in "${!PLOT_CMD[@]}"; do
-       if [ -z "$OPT_PDF_ONLY" ]; then
-           echo "set terminal x11 enhanced; ${PLOT_CMD[$i]}" | gnuplot -persist
+       cmd="${PLOT_CMD[$i]}";
+       cmd=$(echo "$cmd" | sed -e "/set title/ s/[\"']\(.*\)[\"']/'\1 ($(uname -r), CPU\\\\@${clk}Mhz)'/")
+       if [ -z "$OPT_NO_X11" ]; then
+           echo "set terminal x11 enhanced; ${cmd}" | gnuplot -persist
        fi
        I=${i/0/}
        echo "set terminal postscript color eps enhanced;
-             ${PLOT_CMD[$i]}" | gnuplot | epstopdf --filter > `basename $0 .sh`$I.pdf
+             ${cmd}" | gnuplot | epstopdf --filter > `basename $0 .sh`$I.pdf
+       mkdir -p thumb
+       convert -geometry 1000x100 -gamma 0.3 `basename $0 .sh`$I.pdf thumb/`basename $0 .sh`$I.png
+       convert -density 200 -gamma 0.7 -geometry 1000x500 `basename $0 .sh`$I.pdf `basename $0 .sh`$I.png
     done
 }
 
-go() {
-    d=results/`basename $0 .sh`/`uname -r`
-    set -x
+create_dirs_and_links() {
+    local test=$1
+    local kver=$2
+    local clck=$3
+
+    local  d=results/by-test/$test/$kver/$clck
     mkdir -p $d
-    cd $d
-    
-    [ -n "$OPT_PLOT_ONLY" ] || run_tests
-    plot
+    mkdir -p results/by-test/$test/$clck # 1
+    mkdir -p results/by-kern/$kver/$clck # 2
+    mkdir -p results/by-kern/$kver/$test # 3
+    mkdir -p results/by-clck/$clck/$kver # 4
+    mkdir -p results/by-clck/$clck/$test # 5
+    ln -sfT ../../../${d#results/} results/by-test/$test/$clck/$kver # 1
+    ln -sfT ../../../${d#results/} results/by-kern/$kver/$clck/$test # 2
+    ln -sfT ../../../${d#results/} results/by-kern/$kver/$test/$clck # 3
+    ln -sfT ../../../${d#results/} results/by-clck/$clck/$kver/$test # 4
+    ln -sfT ../../../${d#results/} results/by-clck/$clck/$test/$kver # 5
+    echo $d
+}
+
+go() {
+    mhz=${MHZ:-2400 300}
+    for clk in $mhz; do
+       dir=$(create_dirs_and_links `basename $0 .sh` `uname -r` $clk)
+       set -x
+       pushd $dir
+
+       if [ ! -n "$OPT_PLOT_ONLY" ]; then
+           cpufreq-set -f ${clk}MHz
+           run_tests
+           cpufreq-set -f 2400MHz
+       fi
+       plot
+       popd
+       set +x
+    done
 
 }