aboutsummaryrefslogtreecommitdiffstats
path: root/common/scripts/test_can_loopback_mode.sh
diff options
context:
space:
mode:
authorkhouloud touil <ktouil@baylibre.com>2018-06-22 14:26:49 +0200
committerkhouloud touil <ktouil@baylibre.com>2018-07-02 16:29:01 +0200
commitd69c057664659f8139781c5e3b548d96228b722f (patch)
treecd1f0fb9ee6b6690d235dc091015848ffdb1767f /common/scripts/test_can_loopback_mode.sh
parent11575952ece456be4e07c5f24ead3cf8783ddcba (diff)
CAN bus tests
This commit for testing CAN modules, sending and receiving frames, showing stats and and testing suitable bitrates for transmission. The "test_can_loopback_mode" test can be run on a board with one interface. This test will fail gracfully if the board dosen't have any CAN interface. The other tests needs to be run on a board with two CAN interfaces (e.g. dra7 with external transceiver.) These tests requires two interfaces on the same board to send frames with the first interface and to receive them with the other one These tests will fail gracfully by skiping all test cases if the board doesn't have two interfaces. This link for the DRA7xx-EVM job : http://lava.baylibre.com:10080/scheduler/job/2860 This link for the AM335X-BONEBLACK (no CAN interface) : http://lava.baylibre.com:10080/scheduler/job/2862 Change-Id: I7d4c69f7817adbea8281d264cbbb7fa55571584e Signed-off-by: khouloud touil <ktouil@baylibre.com>
Diffstat (limited to 'common/scripts/test_can_loopback_mode.sh')
-rwxr-xr-xcommon/scripts/test_can_loopback_mode.sh61
1 files changed, 61 insertions, 0 deletions
diff --git a/common/scripts/test_can_loopback_mode.sh b/common/scripts/test_can_loopback_mode.sh
new file mode 100755
index 0000000..bd96c6b
--- /dev/null
+++ b/common/scripts/test_can_loopback_mode.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+if [ ! -e /sys/class/net/can0 ];then
+ lava-test-case canconfig_can0 --result skip
+ lava-test-case start_can0 --result skip
+ lava-test-case send_frames_through_can0 --result skip
+ lava-test-case receive_frames_through_can0 --result skip
+ lava-test-case stop_can0 --result skip
+ exit 0
+fi
+sleep 2
+#config the can interfaces
+canconfig can0 bitrate 50000 ctrlmode loopback on
+sleep 2
+if [ $? -eq 0 ];then
+ lava-test-case canconfig_can0 --result pass
+else
+ lava-test-case canconfig_can0 --result fail
+fi
+sleep 3
+
+#bring up the devices
+canconfig can0 start
+if [ $? -eq 0 ];then
+ lava-test-case start_can0 --result pass
+else
+ lava-test-case start_can0 --result fail
+fi
+sleep 4
+
+#send frames
+cansequence -p can0 &
+x=$?
+sleep 5
+if [ $x -eq 0 ];then
+ lava-test-case send_frames_through_can0 --result pass
+else
+ lava-test-case send_frames_through_can0 --result fail
+fi
+sleep 3
+file_can=$(mktemp)
+
+#receive frames
+candump can0 > $file_can &
+sleep 4
+if [ -s $file_can ];then
+ lava-test-case receive_frames_through_can0 --result pass
+else
+ lava-test-case receive_frames_through_can0 --result fail
+fi
+rm $file_can
+
+sleep 3
+canconfig can0 stop
+if [ $? -eq 0 ];then
+ lava-test-case stop_can0 --result pass
+else
+ lava-test-case stop_can0 --result fail
+fi
+
+sleep 5