Test infrastructure almost ready
[can-benchmark.git] / tests / lib.sh
1
2 while [ $# -gt 0 ]; do
3     case "$1" in
4         -p) OPT_PLOT_ONLY=1; shift;;
5     esac
6 done
7
8 set -x
9 set -e
10
11 PATH=$PWD/../_compiled/bin/:$PATH
12
13 rmmod_can() {
14     modprobe -r lincan
15     modprobe -r kvaser_pci
16     modprobe -r vcan
17 }
18
19 prepare_lincan_hw() {
20     rmmod_can
21     modprobe -C /dev/null lincan hw=pcican-q io=1 baudrate=1000,1000,1000,1000 processlocal=0
22     CAN0=/dev/can0
23     CAN1=/dev/can1
24     DRIVER=lincan
25     sleep 0.1
26 }
27
28 prepare_lincan_virtual() {
29     rmmod_can
30     modprobe -C /dev/null lincan hw=virtual io=0 baudrate=0
31     CAN0=/dev/can0
32     DRIVER=lincan-virtual
33     sleep 0.1
34 }
35
36 prepare_socketcan_hw() {
37     rmmod_can
38     modprobe kvaser_pci
39     echo 1000000 > /sys/class/net/can0/can_bittiming/bitrate
40     ip link set up dev can0
41     echo 1000000 > /sys/class/net/can1/can_bittiming/bitrate
42     ip link set up dev can1
43     echo 1000000 > /sys/class/net/can2/can_bittiming/bitrate
44     ip link set up dev can2
45     echo 1000000 > /sys/class/net/can3/can_bittiming/bitrate
46     ip link set up dev can3
47     CAN0=socketcan:can0
48     CAN1=socketcan:can1
49     DRIVER=socketcan
50 }
51
52 prepare_socketcan_virtual() {
53     rmmod_can
54     modprobe vcan
55     ip link add dev vcan0 type vcan
56     ip link set up dev vcan0
57     CAN0=socketcan:vcan0
58     DRIVER=socketcan-virtual
59 }
60
61 run_tests() {
62     [ "$OPT_PLOT_ONLY" -eq 1 ] && return
63         
64     tests=${TESTS:-lincan_hw socketcan_hw}
65     for i in $tests; do
66         prepare_$i
67         t
68     done
69 }
70
71 plot() {
72     if [ -n "$PLOT_CMD" ]; then
73         echo "set terminal postscript color eps enhanced;
74               set output '`basename $0 .sh`.eps'; $PLOT_CMD" | gnuplot
75         echo "set terminal x11 enhanced; $PLOT_CMD" | gnuplot -persist
76     fi
77 }
78
79 trap 'run_tests && plot' EXIT