diff options
author | khouloud touil <ktouil@baylibre.com> | 2018-06-22 14:26:49 +0200 |
---|---|---|
committer | khouloud touil <ktouil@baylibre.com> | 2018-07-02 16:29:01 +0200 |
commit | d69c057664659f8139781c5e3b548d96228b722f (patch) | |
tree | cd1f0fb9ee6b6690d235dc091015848ffdb1767f /common/scripts/test_can_send_receive.sh | |
parent | 11575952ece456be4e07c5f24ead3cf8783ddcba (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_send_receive.sh')
-rwxr-xr-x | common/scripts/test_can_send_receive.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/common/scripts/test_can_send_receive.sh b/common/scripts/test_can_send_receive.sh new file mode 100755 index 0000000..d5d155c --- /dev/null +++ b/common/scripts/test_can_send_receive.sh @@ -0,0 +1,79 @@ +#!/bin/sh + + +if [ ! -e /sys/class/net/can1 ];then + lava-test-case canconfig_can0 --result skip + lava-test-case canconfig_can1 --result skip + lava-test-case start_can0 --result skip + lava-test-case start_can1 --result skip + lava-test-case send_frames_through_can0 --result skip + lava-test-case receive_frames_through_can1 --result skip + lava-test-case stop_can0 --result skip + lava-test-case stop_can1 --result skip + exit 0 +fi + +#config the can interfaces +canconfig can0 bitrate 50000 +if [ $? -eq 0 ];then + lava-test-case canconfig_can0 --result pass +else + lava-test-case canconfig_can0 --result fail +fi +sleep 3 +canconfig can1 bitrate 50000 +if [ $? -eq 0 ];then + lava-test-case canconfig_can1 --result pass +else + lava-test-case canconfig_can1 --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 3 +canconfig can1 start +if [ $? -eq 0 ];then + lava-test-case start_can1 --result pass +else + lava-test-case start_can1 --result fail +fi +sleep 3 +#send frames +cansequence -p can0 & +if [ $? -eq 0 ];then + lava-test-case send_frames_through_can0 --result pass +else + lava-test-case send_frames_through_can0 --result fail +fi + +#receive frames +file_can=$(mktemp) +candump can1 > $file_can & +sleep 3 +if [ -s $file_can ];then + lava-test-case receive_frames_through_can1 --result pass +else + lava-test-case receive_frames_through_can1 --result fail +fi +rm $file_can + +sleep 10 +canconfig can0 stop +if [ $? -eq 0 ];then + lava-test-case stop_can0 --result pass +else + lava-test-case stop_can0 --result fail +fi +sleep 3 +canconfig can1 stop +if [ $? -eq 0 ];then + lava-test-case stop_can1 --result pass +else + lava-test-case stop_can1 --result fail +fi +sleep 5 |