From: Michal Sojka Date: Sat, 13 Jun 2009 23:08:02 +0000 (+0200) Subject: Test infrastructure almost ready X-Git-Tag: fix-allnoconfig~387 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/can-benchmark.git/commitdiff_plain/ef13bcae14794256b4b632f8e7c440a7e93ba62a?ds=sidebyside Test infrastructure almost ready --- diff --git a/canping b/canping index c2d88b9..6725562 160000 --- a/canping +++ b/canping @@ -1 +1 @@ -Subproject commit c2d88b9017e8a92eb34a3b6ceeccf66c9091c2e9 +Subproject commit 6725562ff467c19d16284576bf5aa4a6ed8ab6c5 diff --git a/tests/lib.sh b/tests/lib.sh index 4fc9fc2..984af0a 100644 --- a/tests/lib.sh +++ b/tests/lib.sh @@ -1,3 +1,10 @@ + +while [ $# -gt 0 ]; do + case "$1" in + -p) OPT_PLOT_ONLY=1; shift;; + esac +done + set -x set -e @@ -5,20 +12,68 @@ PATH=$PWD/../_compiled/bin/:$PATH rmmod_can() { modprobe -r lincan + modprobe -r kvaser_pci + modprobe -r vcan } -load_lincan_hw() { +prepare_lincan_hw() { rmmod_can modprobe -C /dev/null lincan hw=pcican-q io=1 baudrate=1000,1000,1000,1000 processlocal=0 + CAN0=/dev/can0 + CAN1=/dev/can1 + DRIVER=lincan sleep 0.1 } -load_lincan_virtual() { +prepare_lincan_virtual() { rmmod_can modprobe -C /dev/null lincan hw=virtual io=0 baudrate=0 + CAN0=/dev/can0 + DRIVER=lincan-virtual sleep 0.1 } -load_socketcan() { +prepare_socketcan_hw() { + rmmod_can + modprobe kvaser_pci + echo 1000000 > /sys/class/net/can0/can_bittiming/bitrate + ip link set up dev can0 + echo 1000000 > /sys/class/net/can1/can_bittiming/bitrate + ip link set up dev can1 + echo 1000000 > /sys/class/net/can2/can_bittiming/bitrate + ip link set up dev can2 + echo 1000000 > /sys/class/net/can3/can_bittiming/bitrate + ip link set up dev can3 + CAN0=socketcan:can0 + CAN1=socketcan:can1 + DRIVER=socketcan +} + +prepare_socketcan_virtual() { rmmod_can + modprobe vcan + ip link add dev vcan0 type vcan + ip link set up dev vcan0 + CAN0=socketcan:vcan0 + DRIVER=socketcan-virtual } + +run_tests() { + [ "$OPT_PLOT_ONLY" -eq 1 ] && return + + tests=${TESTS:-lincan_hw socketcan_hw} + for i in $tests; do + prepare_$i + t + done +} + +plot() { + if [ -n "$PLOT_CMD" ]; then + echo "set terminal postscript color eps enhanced; + set output '`basename $0 .sh`.eps'; $PLOT_CMD" | gnuplot + echo "set terminal x11 enhanced; $PLOT_CMD" | gnuplot -persist + fi +} + +trap 'run_tests && plot' EXIT diff --git a/tests/t01-simple.sh b/tests/t01-simple.sh index 103630d..e6e92df 100755 --- a/tests/t01-simple.sh +++ b/tests/t01-simple.sh @@ -2,11 +2,19 @@ . lib.sh -load_lincan_hw +t() { + PID_S=`vca_canping -s 1 -b -r -d $CAN1` + vca_canping -m 1 -r -v -g $DRIVER -t 1 -d $CAN0 -w 5 -c 1000 + kill $PID_S +} -PID_S=`vca_canping -s 1 -b -r -d /dev/can1` +PLOT_CMD=' +set logscale y +set grid +set title "Round-trip time measurement (`uname -r`)" +set xlabel "Time [{/Symbol m}s]" +set ylabel "Latency profile [messages]" +plot [0:] "socketcan-1000.dat" with lp title "Socketcan",\ + "lincan-1000.dat" with lp title "Lincan" +' -vca_canping -m 1 -r -v -t 1 -d /dev/can0 -w 5 -c 1000 - -kill $PID_S -#killall -9 vca_canping diff --git a/tests/t02-virtual.sh b/tests/t02-virtual.sh new file mode 100755 index 0000000..9cc67b8 --- /dev/null +++ b/tests/t02-virtual.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +. lib.sh + +t() { + PID_S=`vca_canping -s 1 -b -r -d $CAN0` + vca_canping -m 1 -r -v -g $DRIVER -t 1 -d $CAN0 -w 1 -c 10000 + kill $PID_S +} + +TESTS="lincan_virtual socketcan_virtual" + +PLOT_CMD=' +set logscale y +set grid +set title "Round-trip time measurement - virtual CAN (`uname -r`)" +set xlabel "Time [{/Symbol m}s]" +set ylabel "Latency profile [messages]" +plot [0:] "socketcan-virtual-1000.dat" with lp title "Socketcan",\ + "lincan-virtual-1000.dat" with lp title "Lincan" +' +