4425c5dc6766205f616e3ceb9bc81ecb8d14a79c
[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
13 #Make sure always that the can interface is down before
14 #starting the config step.
15 ip link set can0 down
16
17 #config the can interfaces
18 ip link set can0 type can bitrate 50000 loopback on
19 sleep 2
20 if [ $? -eq 0 ];then
21         lava-test-case canconfig_can0 --result pass
22 else
23         lava-test-case canconfig_can0 --result fail
24 fi
25 sleep 3
26
27 #bring up the devices
28 ip link set can0 up
29 if [ $? -eq 0 ];then
30         lava-test-case start_can0 --result pass
31 else
32         lava-test-case start_can0 --result fail
33 fi
34 sleep 4
35
36 #send frames
37 cangen can0 &
38 x=$?
39 sleep 5
40 if [ $x -eq 0 ];then
41         lava-test-case send_frames_through_can0 --result pass
42 else
43         lava-test-case send_frames_through_can0 --result fail
44 fi
45 sleep 3
46 file_can=$(mktemp)
47
48 #receive frames
49 candump can0 > $file_can &
50 sleep 4
51 if [ -s $file_can ];then
52         lava-test-case receive_frames_through_can0 --result pass
53 else
54         lava-test-case receive_frames_through_can0 --result fail
55 fi
56 rm $file_can
57
58 sleep 3
59 ip link set can0 down
60 if [ $? -eq 0 ];then
61         lava-test-case stop_can0 --result pass
62 else
63         lava-test-case stop_can0 --result fail
64 fi
65
66 sleep 5