From 23e350e7c5f193edd5944239f5a2e12af401c228 Mon Sep 17 00:00:00 2001 From: Arthur Guyader Date: Fri, 13 Dec 2019 13:47:05 +0100 Subject: tests: Test the value of signals decoded This commit adds test to check if the value of signals is well decoded. Change-Id: I64f489d6428bf593dfda08dc6aacbdacd9d18d73 Signed-off-by: Arthur Guyader Signed-off-by: Romain Forlot --- test/afb-test/tests/low-can_ValueJ1939Test.lua | 137 +++++++++++++++++++++++++ test/afb-test/tests/low-can_ValueTestCan.lua | 120 ++++++++++++++++++++++ 2 files changed, 257 insertions(+) create mode 100644 test/afb-test/tests/low-can_ValueJ1939Test.lua create mode 100644 test/afb-test/tests/low-can_ValueTestCan.lua (limited to 'test/afb-test/tests') diff --git a/test/afb-test/tests/low-can_ValueJ1939Test.lua b/test/afb-test/tests/low-can_ValueJ1939Test.lua new file mode 100644 index 00000000..7fd6da67 --- /dev/null +++ b/test/afb-test/tests/low-can_ValueJ1939Test.lua @@ -0,0 +1,137 @@ + +--[[ + Copyright (C) 2019 "IoT.bzh" + Author Arthur Guyader + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + NOTE: strict mode: every global variables should be prefixed by '_' +--]] + + + +_AFT.setBeforeAll(function() + local can = io.open("/sys/class/net/can2") + if can == nil then + print("# You do not have 'can2' device set. Please run the following command:\n### sudo modprobe vcan; sudo ip link add can2 type vcan; sudo ip link set can2 up ") + return -1 + end + return 0 +end) + +_AFT.setBeforeEach(function() print("~~~~~ Begin Test ~~~~~") end) + +_AFT.setAfterEach(function() + os.execute("pkill canplayer") + os.execute("pkill linuxcan-canpla") + print("~~~~~ End Test ~~~~~") +end) + +_AFT.setAfterAll( function() + os.execute("pkill canplayer") + os.execute("pkill linuxcan-canpla") + return 0 +end) + + +--[[ +################################################################## +####################### VALUES J1939 TESTS ####################### +################################################################## +]] + +print("\n########################################################################") +print("####################### BEGIN VALUES J1939 TESTS #######################") +print("########################################################################\n") + +--[[ +++++++++++++++++ +Tests n2k values +++++++++++++++++ +]] + +local api = "low-can" +local evt1 = "messages.Wind.Data.Reference" +local evt2 = "messages.Wind.Data.Sid" +local evt3 = "messages.Wind.Data.Wind.Angle" +local evt4 = "messages.Wind.Data.Wind.Speed" + + +_AFT.describe("Value_Test_N2K_1", function() + _AFT.addEventToMonitor(api .. "/" ..evt1, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt1) + _AFT.assertIsTrue(data.value == "Apparent") + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt1 }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueJ1939_1.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt1, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt1 }) +end) + +_AFT.describe("Value_Test_N2K_2", function() + _AFT.addEventToMonitor(api .. "/" ..evt2, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt2) + _AFT.assertIsTrue(data.value == 236) + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt2 }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueJ1939_1.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt2, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt2 }) +end) + +_AFT.describe("Value_Test_N2K_3", function() + _AFT.addEventToMonitor(api .. "/" ..evt3, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt3) + _AFT.assertIsTrue(math.abs(data.value - 4.9798998832703) < 0.00000001) + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt3 }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueJ1939_1.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt3, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt3 }) +end) + +_AFT.describe("Value_Test_N2K_4", function() + _AFT.addEventToMonitor(api .. "/" ..evt4, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt4) + _AFT.assertIsTrue(math.abs(data.value - 0.93000000715256) < 0.00000001) + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt4 }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueJ1939_1.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt4, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt4 }) +end) \ No newline at end of file diff --git a/test/afb-test/tests/low-can_ValueTestCan.lua b/test/afb-test/tests/low-can_ValueTestCan.lua new file mode 100644 index 00000000..093ccf95 --- /dev/null +++ b/test/afb-test/tests/low-can_ValueTestCan.lua @@ -0,0 +1,120 @@ + +--[[ + Copyright (C) 2019 "IoT.bzh" + Author Arthur Guyader + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + NOTE: strict mode: every global variables should be prefixed by '_' +--]] + + + +_AFT.setBeforeAll(function() + local can = io.open("/sys/class/net/can2") + if can == nil then + print("# You do not have 'can2' device set. Please run the following command:\n### sudo modprobe vcan; sudo ip link add can2 type vcan; sudo ip link set can2 up ") + return -1 + end + return 0 +end) + +_AFT.setBeforeEach(function() print("~~~~~ Begin Test ~~~~~") end) + +_AFT.setAfterEach(function() + os.execute("pkill canplayer") + os.execute("pkill linuxcan-canpla") + print("~~~~~ End Test ~~~~~") +end) + +_AFT.setAfterAll( function() + os.execute("pkill canplayer") + os.execute("pkill linuxcan-canpla") + return 0 +end) + + +--[[ +################################################################ +####################### VALUES CAN TESTS ####################### +################################################################ +]] + +print("\n######################################################################") +print("####################### BEGIN VALUES CAN TESTS #######################") +print("######################################################################\n") + +--[[ +++++++++++++++++++++++ +Tests basic can values +++++++++++++++++++++++ +]] + +local api = "low-can" +local evt = "messages.vehicle.average.speed" +local evt2 = "diagnostic_messages.engine.speed" +local evt3 = "diagnostic_messages.engine.load" + +_AFT.describe("Value_Test_Can", function() + _AFT.addEventToMonitor(api .. "/" ..evt, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt) + _AFT.assertIsTrue(data.value == 8) + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueCAN_1.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt }) +end) + + +_AFT.describe("Value_Test_Can2", function() + _AFT.addEventToMonitor(api .. "/" ..evt2, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt2) + _AFT.assertIsTrue(math.abs(data.value - 2045.25) < 0.00000001) + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt2 }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueCAN_2.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt2, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt2 }) +end) + + +_AFT.describe("Value_Test_Can3", function() + _AFT.addEventToMonitor(api .. "/" ..evt3, function(eventname, data) + _AFT.assertEquals(eventname, api.."/"..evt3) + _AFT.assertIsTrue(math.abs(data.value - 54.901962280273438) < 0.00000001) + end) + + _AFT.assertVerbStatusSuccess(api ,"subscribe", { event = evt3 }) + local ret = os.execute("bash ".._AFT.bindingRootDir.."/var/replay_launcher.sh ".._AFT.bindingRootDir.."/var/testValueCAN_3.canreplay"); + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(api .. "/" ..evt3, 1000000) +end, +nil, +function() + _AFT.callVerb(api, "unsubscribe", { event = evt3 }) +end) -- cgit 1.2.3-korg