]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - gw-tests/lib.sh
Merge branch 'master' of rtime.felk.cvut.cz:/can-benchmark
[can-benchmark.git] / gw-tests / lib.sh
index cacde470a1f440d1df93b0078f7720938384c8d3..c6bf93fac8ac2e3cd5ba2229c2954392ffb8187b 100644 (file)
@@ -5,6 +5,7 @@ while [ $# -gt 0 ]; do
        -P) OPT_PLOT_DISABLE=1; shift;;
        -p) OPT_PLOT_ONLY=1; shift;;
        -X|--no-x11-plot) OPT_NO_X11=1; shift;;
+       -t) OPT_TRAFFIC=$2; shift 2;;
     esac
 done
 
@@ -30,8 +31,6 @@ sshgw() {
 }
 
 cleanupgw() {
-    # Set can interfaces up
-    sshgw 'for i in 0 1; do ip link show dev can$i|grep -q UP || ip link set can$i up type can bitrate 1000000; done'
     sshgw 'cangw -F'
 }
 
@@ -72,6 +71,17 @@ echo_plot() {
     echo -n "    " $plot
 }
 
+traffic_and_length() {
+    local opts
+    case $OPT_TRAFFIC in
+       all) error "Bug in the test script - traffic cannot be 'all' here.";;
+       flood|100) opts='';;
+       50)        opts="-p $((2*(44+$1*8)))";;
+       *)         opts="-o";;
+    esac
+    echo $opts -l $1
+}
+
 _run() {
     if [[ ! "$OPT_PLOT_ONLY" ]]; then
        kernel_versions=$(sshgw uname -r)
@@ -84,12 +94,25 @@ _run() {
        cd $dir
        echo "Working directory: $dir"
        if [[ ! "$OPT_PLOT_ONLY" ]]; then
+           # Remove data from the last measurement
            rm -rf *
+            # Set can interfaces up
+           sshgw 'for i in 0 1; do ip link show dev can$i|grep -q UP || ip link set can$i up type can bitrate 1000000; done'
+            # Delete all vcan interfaces
+           sshgw 'for dev in $(ip l|grep -o vcan[^:]\\+); do ip link del dev $dev; done'
+           # Reset priorities
+           sshgw 'chrt -p -f 50 `pidof irq/145-can0` > /dev/null || :'
+           sshgw 'chrt -p -f 50 `pidof irq/146-can1` > /dev/null || :'
+           sshgw 'chrt -p -f 49 `pidof sirq-net-rx/0` > /dev/null || :'
+           sshgw 'chrt -p -f 49 `pidof sirq-net-tx/0` > /dev/null || :'
            cleanupgw
+           
            main
            cp $script .
        fi
-       _plot
+       if [[ ! "$OPT_PLOT_DISABLE" ]]; then
+           _plot
+       fi
     done
 }
 
@@ -108,7 +131,7 @@ _myexit() {
        error "bug in the test script: No test_end called"
     fi
     if ! test -n "$exit_ok"; then
-       error "FATAL: Command '$cmd' exited with code $code"
+       error "FATAL: Command '$cmd' exit with code $code"
     fi
 }