From a7b0eeb9c6a03ce2b0fd4ccaced42a3e9aab3de7 Mon Sep 17 00:00:00 2001 From: Christopher Peplin Date: Thu, 9 Oct 2014 22:53:08 -0400 Subject: [PATCH] Add functional test for a messages with many signals. See #306 - still can't get it to fail. Is it UART? --- script/functional_test.py | 26 +++++++++++++++++++++++++- src/tests/functional_test_config.json | 26 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/script/functional_test.py b/script/functional_test.py index 40f93fd35..d8b62817f 100644 --- a/script/functional_test.py +++ b/script/functional_test.py @@ -157,7 +157,6 @@ class SimpleVehicleMessageTests(object): def setUp(self): self.message1_data = "0x0000000000000dac" - self.data = "0x1234" self.expected_signal_value = 0xdac def test_receive_simple_vehicle_message_bus1(self): @@ -439,3 +438,28 @@ class SignalDecoderTestsJson(JsonBaseTests, SignalDecoderTests): class SignalDecoderTestsProtobuf(ProtobufBaseTests, SignalDecoderTests): pass + + +class ManySignalsPerMessageTests(JsonBaseTests): + """See https://github.com/openxc/vi-firmware/issues/306 + """ + + def setUp(self): + super(ManySignalsPerMessageTests, self).setUp() + self.vi.set_acceptance_filter_bypass(1, True) + self.message1_data = "0x3901A40351033204" + self.message2_data = "0xB3033403CA01E001" + + def test_receive_all_16_signals(self): + ok_(self.vi.write(bus=1, id=0x663, data=self.message1_data)) + ok_(self.vi.write(bus=1, id=0x664, data=self.message2_data)) + keys = set() + while True: + try: + message = self.simple_vehicle_message_queue.get(timeout=.5) + keys.add(message['name']) + self.simple_vehicle_message_queue.task_done() + except Empty: + break + for i in range(1, 16): + ok_("signal%d" % i in keys, "Missing signal %d" % i) diff --git a/src/tests/functional_test_config.json b/src/tests/functional_test_config.json index 831043f67..a77a7023a 100644 --- a/src/tests/functional_test_config.json +++ b/src/tests/functional_test_config.json @@ -49,6 +49,32 @@ "bit_size": 8 } } + }, + "0x663": { + "bus": "unfiltered_bus", + "signals": { + "signal1": {"bit_position": 0,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal2": {"bit_position": 8,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal3": {"bit_position": 16,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal4": {"bit_position": 24,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal5": {"bit_position": 32,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal6": {"bit_position": 40,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal7": {"bit_position": 48,"bit_size": 8,"factor": 0.1,"offset": 0}, + "signal8": {"bit_position": 56,"bit_size": 8,"factor": 0.1,"offset": 0} + } + }, + "0x664": { + "bus": "unfiltered_bus", + "signals": { + "signal9":{"bit_position": 0,"bit_size":8,"factor":0.1,"offset":0}, + "signal10":{"bit_position": 8,"bit_size":8,"factor":0.1,"offset":0}, + "signal11":{"bit_position":16,"bit_size":8,"factor":0.1,"offset":0}, + "signal12":{"bit_position":24,"bit_size":8,"factor":0.1,"offset":0}, + "signal13":{"bit_position":32,"bit_size":8,"factor":0.1,"offset":0}, + "signal14":{"bit_position":40,"bit_size":8,"factor":0.1,"offset":0}, + "signal15":{"bit_position":48,"bit_size":8,"factor":0.1,"offset":0}, + "signal16":{"bit_position":56,"bit_size":8,"factor":0.1,"offset":0} + } } } }