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