From f48f8fed096c534b65a428c5c0618261ed1a04af Mon Sep 17 00:00:00 2001
From: khouloud touil <ktouil@baylibre.com>
Date: Thu, 12 Jul 2018 10:36:46 +0200
Subject: Fix the CAN bus tests

At first to be able to configure the can interfaces, we had to use the libsocketcan,
but this lib should be used with canutils utilities, but a conflict happened between
the canutils and the can-utils, so I had to fix the tests to be able to use only
the can-utils utilities.
This link for a LAVA test job for these tests:
http://lava.baylibre.com:10080/scheduler/job/10883

Change-Id: I7b988496d6977d6d9d82f8f82b58520444dbc7d6
Signed-off-by: khouloud touil <ktouil@baylibre.com>
---
 common/scripts/test_can_bitrate.sh       | 67 ++++++++++++++++----------------
 common/scripts/test_can_loopback_mode.sh |  8 ++--
 common/scripts/test_can_modules.sh       |  8 ++--
 common/scripts/test_can_send_receive.sh  | 14 +++----
 test-suites/short-smoke/test_can.yaml    | 32 +++++++--------
 5 files changed, 64 insertions(+), 65 deletions(-)

diff --git a/common/scripts/test_can_bitrate.sh b/common/scripts/test_can_bitrate.sh
index 6802714..0a34fc0 100755
--- a/common/scripts/test_can_bitrate.sh
+++ b/common/scripts/test_can_bitrate.sh
@@ -17,14 +17,14 @@ fi
 
 #This is the first part of the test, that tests if the bitrate inserted belongs to the domain and if
 #this first bitrate afford frames transmission or not
-canconfig can0 stop
+ip link set can0 down
 if [ $? -eq 0 ];then
         lava-test-case stop_can0 --result pass
 else
         lava-test-case stop_can0 --result fail
 fi
 sleep 2
-canconfig can1 stop
+ip link set can1 down
 if [ $? -eq 0 ];then
         lava-test-case stop_can1 --result pass
 else
@@ -36,27 +36,27 @@ sleep 2
 
 found_bitrate=0
 for b in `seq 778 790`;do
-	canconfig can0 bitrate $b
+	ip link set can0 type can bitrate $b
 	x=$?
 	if [ $x -eq 0 ];then
 		lava-test-case can0_bitrate --result pass --measurement $b --units bit/s
 		echo "$b is the first bitrate in the domain"
 		found_bitrate=1
-		canconfig can1 bitrate $b
+		ip link set can1 type can bitrate $b
 		if [ $? -eq 0 ];then
 			lava-test-case can1_bitrate --result pass --measurement $b --units bit/s
 		else
 			lava-test-case can1_bitrate --result fail --measurement $b --units bit/s
 		fi
 		sleep 2
-		canconfig can0 start
+		ip link set can0 up
 		if [ $? -eq 0 ];then
 			lava-test-case start_can0 --result pass
 		else
 			lava-test-case start_can0 --result fail
 		fi
 		sleep 2
-		canconfig can1 start
+		ip link set can1 up
 		if [ $? -eq 0 ];then
 			lava-test-case start_can1 --result pass
 		else
@@ -64,7 +64,7 @@ for b in `seq 778 790`;do
 		fi
 		sleep 2
 		file_can=$(mktemp)
-		cansequence -p can0 &
+		cangen can0 &
 		candump can1 > $file_can &
 		sleep 3
 		if [ -s $file_can ];then
@@ -84,22 +84,22 @@ if [ $found_bitrate -eq 0 ];then
 	sleep 2
 	echo "There is no supportable bitrate in this interval"
 fi
-canconfig can0 stop
-canconfig can1 stop
+ip link set can0 down
+ip link set can1 down
 sleep 2
 #This is the second part of the test, it tests the first bitrate to provide frames transmission
 
-canconfig can0 stop
-canconfig can1 stop
+ip link set can0 down
+ip link set can1 down
 found_bitrate_for_transmisson=0
 for b in `seq 10790 10800`;do
-        canconfig can0 bitrate $b
-        canconfig can1 bitrate $b
-        canconfig can0 start
-        canconfig can1 start
+        ip link set can0 type can bitrate $b
+        ip link set can1 type can bitrate $b
+        ip link set can0 up
+        ip link set can1 up
         sleep 3
         file_can=$(mktemp)
-	cansequence -p can0 &
+	cangen can0 &
 	candump can1 > $file_can &
 	sleep 4
         if [ -s $file_can ];then
@@ -109,8 +109,8 @@ for b in `seq 10790 10800`;do
 		echo "$b is the first supportable bitrate to provide transmission"
 		break
 	fi
-	canconfig can0 stop
-	canconfig can1 stop
+	ip link set can0 down
+	ip link set can1 down
 	rm $file_can
 done
 
@@ -123,49 +123,48 @@ fi
 
 #This is the third part of the test, it tests the last bitrate to provide frames transmission
 
-canconfig can0 stop
-canconfig can1 stop
+ip link set can0 down
+ip link set can1 down
 bitrate_no_transmission=0
 for b in `seq 1909088 1909092`;do
-        canconfig can0 bitrate $b
-        canconfig can1 bitrate $b
-        canconfig can0 start
-        canconfig can1 start
+        ip link set can0 type can bitrate $b
+        ip link set can1 type can bitrate $b
+        ip link set can0 up
+        ip link set can1 up
         sleep 2
         file_can=$(mktemp)
-        cansequence -p can0 &
+        cangen can0 &
         candump can1 > $file_can &
         sleep 3
 	size=$(stat -c %s $file_can)
 	if [ $size -eq 0 ];then
 		bitrate_no_transmission=1
-		B=($b-1)
-		lava-test-case Receive_can1 --result pass --measurement $B --units bit/s
+		lava-test-case Receive_can1 --result pass --measurement $(($b-1)) --units bit/s
 		lava-test-case Receive_can1 --result fail --measurement $b --units bit/s
 		sleep 2
 		echo "This bitrate $b doesn't provide frames transmission"
 		echo "The last bitrate to provide frames transmission is $(($b-1))"
 		break
 	fi
-	canconfig can0 stop
-	canconfig can1 stop
+	ip link set can0 down
+	ip link set can1 down
         rm $file_can
 done
 
 if [ $bitrate_no_transmission -eq 0 ];then
 	lava-test-case Receive_can1 --result pass --measurement $b --units bit/s
 	echo "All bitrates in this interval provide frames transmission"
-	canconfig can0 stop
-	canconfig can1 stop
+	ip link set can0 down
+	ip link set can1 down
 fi
 
 #This is the last part of the test, it tests the last bitrate that belongs to the domain
 sleep 3
-canconfig can0 stop
-canconfig can1 stop
+ip link set can0 down
+ip link set can1 down
 out_of_domain=0
 for b in `seq 5290999 5291000`;do
-	canconfig can0 bitrate $b
+	ip link set can0 type can bitrate $b
 	x=$?
 	sleep 2
 	if [ $x -ne 0 ];then
diff --git a/common/scripts/test_can_loopback_mode.sh b/common/scripts/test_can_loopback_mode.sh
index bd96c6b..7f86ef9 100755
--- a/common/scripts/test_can_loopback_mode.sh
+++ b/common/scripts/test_can_loopback_mode.sh
@@ -10,7 +10,7 @@ if [ ! -e /sys/class/net/can0 ];then
 fi
 sleep 2
 #config the can interfaces
-canconfig can0 bitrate 50000 ctrlmode loopback on
+ip link set can0 type can bitrate 50000 loopback on
 sleep 2
 if [ $? -eq 0 ];then
         lava-test-case canconfig_can0 --result pass
@@ -20,7 +20,7 @@ fi
 sleep 3
 
 #bring up the devices
-canconfig can0 start
+ip link set can0 up
 if [ $? -eq 0 ];then
         lava-test-case start_can0 --result pass
 else
@@ -29,7 +29,7 @@ fi
 sleep 4
 
 #send frames
-cansequence -p can0 &
+cangen can0 &
 x=$?
 sleep 5
 if [ $x -eq 0 ];then
@@ -51,7 +51,7 @@ fi
 rm $file_can
 
 sleep 3
-canconfig can0 stop
+ip link set can0 down
 if [ $? -eq 0 ];then
         lava-test-case stop_can0 --result pass
 else
diff --git a/common/scripts/test_can_modules.sh b/common/scripts/test_can_modules.sh
index d7966b4..d6caf54 100755
--- a/common/scripts/test_can_modules.sh
+++ b/common/scripts/test_can_modules.sh
@@ -63,7 +63,7 @@ fi
 
 sleep 5
 
-canconfig can0 bitrate 50000
+ip link set can0 type can bitrate 50000
 if [ $? -eq 0 ];then
 	lava-test-case canconfig_can0 --result fail
 else
@@ -72,7 +72,7 @@ fi
 
 sleep 3
 
-canconfig can1 bitrate 50000
+ip link set can1 type can bitrate 50000
 if [ $? -eq 0 ];then
 	lava-test-case canconfig_can1 --result fail
 else
@@ -121,7 +121,7 @@ fi
 
 sleep 5
 
-canconfig can0 bitrate 50000
+ip link set can0 type can bitrate 50000
 if [ $? -eq 0 ];then
 	lava-test-case canconfig_can0 --result pass
 else
@@ -129,7 +129,7 @@ else
 fi
 
 sleep 3
-canconfig can1 bitrate 50000
+ip link set can1 type can bitrate 50000
 if [ $? -eq 0 ];then
 	lava-test-case canconfig_can1 --result pass
 else
diff --git a/common/scripts/test_can_send_receive.sh b/common/scripts/test_can_send_receive.sh
index d5d155c..06bde6f 100755
--- a/common/scripts/test_can_send_receive.sh
+++ b/common/scripts/test_can_send_receive.sh
@@ -14,14 +14,14 @@ if [ ! -e /sys/class/net/can1 ];then
 fi
 
 #config the can interfaces
-canconfig can0 bitrate 50000
+ip link set can0 type can 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
+ip link set can1 type can bitrate 50000
 if [ $? -eq 0 ];then
 	lava-test-case canconfig_can1 --result pass
 else
@@ -29,14 +29,14 @@ else
 fi
 sleep 3
 #bring up the devices
-canconfig can0 start
+ip link set can0 up
 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
+ip link set can1 up
 if [ $? -eq 0 ];then
 	lava-test-case start_can1 --result pass
 else
@@ -44,7 +44,7 @@ else
 fi
 sleep 3
 #send frames
-cansequence -p can0 &
+cangen can0 &
 if [ $? -eq 0 ];then
 	lava-test-case send_frames_through_can0 --result pass
 else
@@ -63,14 +63,14 @@ fi
 rm $file_can
 
 sleep 10
-canconfig can0 stop
+ip link set can0 down
 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
+ip link set can1 down
 if [ $? -eq 0 ];then
 	lava-test-case stop_can1 --result pass
 else
diff --git a/test-suites/short-smoke/test_can.yaml b/test-suites/short-smoke/test_can.yaml
index a55eaab..4472018 100644
--- a/test-suites/short-smoke/test_can.yaml
+++ b/test-suites/short-smoke/test_can.yaml
@@ -8,19 +8,19 @@ metadata:
 
 run:
   steps:
-	- echo "CAN_tests"
-	- lava-test-set start test_can_loopback_mode
-	- ./common/scripts/test_can_loopback_mode.sh
-	- lava-test-set stop
-	- lava-test-set start test_can_send_receive
-	- ./common/scripts/test_can_send_receive.sh
-	- lava-test-set stop
-	- lava-test-set start test_stats
-	- ./common/scripts/test_stats.sh
-	- lava-test-set stop
-	- lava-test-set start test_can_modules
-	- ./common/scripts/test_can_modules.sh
-	- lava-test-set stop
-	- lava-test-set start test_can_bitrate
-	- ./comon/scripts/test_can_bitrate.sh
-	- lava-test-set stop
+        - echo "CAN_tests"
+        - lava-test-set start test_can_loopback_mode
+        - ./common/scripts/test_can_loopback_mode.sh
+        - lava-test-set stop
+        - lava-test-set start test_can_send_receive
+        - ./common/scripts/test_can_send_receive.sh
+        - lava-test-set stop
+        - lava-test-set start test_stats
+        - ./common/scripts/test_stats.sh
+        - lava-test-set stop
+        - lava-test-set start test_can_modules
+        - ./common/scripts/test_can_modules.sh
+        - lava-test-set stop
+        - lava-test-set start test_can_bitrate
+        - ./common/scripts/test_can_bitrate.sh
+        - lava-test-set stop
-- 
cgit