9a7acf62839c2e4c6db43833129c572d4e7e1a46
[src/qa-testdefinitions.git] / common / scripts / test_can_loopback_mode.sh
1 #!/bin/sh
2
3 skip_tests() {
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 }
11
12 if [ ! -e /sys/class/net/can0 ];then
13         skip_tests
14 fi
15
16 sleep 2
17
18 ip -V |grep -q BusyBox
19 if [ $? -eq 0 ];then
20         echo "WARN: busybox ip is not handled"
21         # busybox ip does not handle bitrate option
22         skip_tests
23 fi
24
25 #Make sure always that the can interface is down before
26 #starting the config step.
27 ip link set can0 down
28
29 #config the can interfaces
30 ip link set can0 type can bitrate 50000 loopback on
31 sleep 2
32 if [ $? -eq 0 ];then
33         lava-test-case canconfig_can0 --result pass
34 else
35         lava-test-case canconfig_can0 --result fail
36 fi
37 sleep 3
38
39 #bring up the devices
40 ip link set can0 up
41 if [ $? -eq 0 ];then
42         lava-test-case start_can0 --result pass
43 else
44         lava-test-case start_can0 --result fail
45 fi
46 sleep 4
47
48 #send frames
49 cangen can0 &
50 x=$?
51 sleep 5
52 if [ $x -eq 0 ];then
53         lava-test-case send_frames_through_can0 --result pass
54 else
55         lava-test-case send_frames_through_can0 --result fail
56 fi
57 sleep 3
58 file_can=$(mktemp)
59
60 #receive frames
61 candump can0 > $file_can &
62 sleep 4
63 if [ -s $file_can ];then
64         lava-test-case receive_frames_through_can0 --result pass
65 else
66         lava-test-case receive_frames_through_can0 --result fail
67 fi
68 rm $file_can
69
70 sleep 3
71 ip link set can0 down
72 if [ $? -eq 0 ];then
73         lava-test-case stop_can0 --result pass
74 else
75         lava-test-case stop_can0 --result fail
76 fi
77
78 sleep 5