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