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