]> rtime.felk.cvut.cz Git - can-benchmark.git/blob - tests/_lib.sh
47facb0603d5755fbb8e4cb0ec073e1fff531169
[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         cpufreq-set -f 2400MHz
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               $PLOT_CMD" | gnuplot | epstopdf --filter > `basename $0 .sh`.pdf
75         if [ -z "$OPT_PDF_ONLY" ]; then
76             echo "set terminal x11 enhanced; $PLOT_CMD" | gnuplot -persist
77         fi
78     fi
79 }
80
81 go() {
82     d=results/`basename $0 .sh`/`uname -r`
83     mkdir -p $d
84     cd $d
85     
86     [ -n "$OPT_PLOT_ONLY" ] || run_tests
87     plot
88
89 }
90
91 trap 'go' EXIT