Fix the CAN bus tests
[src/qa-testdefinitions.git] / common / scripts / test_can_loopback_mode.sh
1 #!/bin/sh
2
3 if [ ! -e /sys/class/net/can0 ];then
4         lava-test-case canconfig_can0 --result skip
5         lava-test-case start_can0 --result skip
6         lava-test-case send_frames_through_can0 --result skip
7         lava-test-case receive_frames_through_can0 --result skip
8         lava-test-case stop_can0 --result skip
9         exit 0
10 fi
11 sleep 2
12 #config the can interfaces
13 ip link set can0 type can bitrate 50000 loopback on
14 sleep 2
15 if [ $? -eq 0 ];then
16         lava-test-case canconfig_can0 --result pass
17 else
18         lava-test-case canconfig_can0 --result fail
19 fi
20 sleep 3
21
22 #bring up the devices
23 ip link set can0 up
24 if [ $? -eq 0 ];then
25         lava-test-case start_can0 --result pass
26 else
27         lava-test-case start_can0 --result fail
28 fi
29 sleep 4
30
31 #send frames
32 cangen can0 &
33 x=$?
34 sleep 5
35 if [ $x -eq 0 ];then
36         lava-test-case send_frames_through_can0 --result pass
37 else
38         lava-test-case send_frames_through_can0 --result fail
39 fi
40 sleep 3
41 file_can=$(mktemp)
42
43 #receive frames
44 candump can0 > $file_can &
45 sleep 4
46 if [ -s $file_can ];then
47         lava-test-case receive_frames_through_can0 --result pass
48 else
49         lava-test-case receive_frames_through_can0 --result fail
50 fi
51 rm $file_can
52
53 sleep 3
54 ip link set can0 down
55 if [ $? -eq 0 ];then
56         lava-test-case stop_can0 --result pass
57 else
58         lava-test-case stop_can0 --result fail
59 fi
60
61 sleep 5