Skip to content

Commit 70d8478

Browse files
Adjust back2back test case
1 parent d3e4d20 commit 70d8478

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

test/back2back_test.py

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import unittest
2+
import time
23

34
import can
45

@@ -30,22 +31,43 @@ def tearDown(self):
3031
self.bus1.shutdown()
3132
self.bus2.shutdown()
3233

34+
def _check_received_message(self, recv_msg, sent_msg):
35+
self.assertIsNotNone(recv_msg,
36+
"No message was received on %s" % INTERFACE_2)
37+
self.assertEqual(recv_msg.arbitration_id, sent_msg.arbitration_id)
38+
self.assertEqual(recv_msg.id_type, sent_msg.id_type)
39+
self.assertEqual(recv_msg.is_remote_frame, sent_msg.is_remote_frame)
40+
self.assertEqual(recv_msg.is_error_frame, sent_msg.is_error_frame)
41+
self.assertEqual(recv_msg.dlc, sent_msg.dlc)
42+
if not sent_msg.is_remote_frame:
43+
self.assertSequenceEqual(recv_msg.data, sent_msg.data)
44+
3345
def _send_and_receive(self, msg):
3446
# Send with bus 1, receive with bus 2
3547
self.bus1.send(msg)
3648
recv_msg = self.bus2.recv(TIMEOUT)
37-
self.assertIsNotNone(recv_msg,
38-
"No message was received on %s" % INTERFACE_2)
39-
self.assertEqual(recv_msg, msg)
49+
self._check_received_message(recv_msg, msg)
50+
# Some buses may receive their own messages. Remove it from the queue
51+
self.bus1.recv(0)
4052

4153
# Send with bus 2, receive with bus 1
4254
# Add 1 to arbitration ID to make it a different message
4355
msg.arbitration_id += 1
4456
self.bus2.send(msg)
4557
recv_msg = self.bus1.recv(TIMEOUT)
46-
self.assertIsNotNone(recv_msg,
47-
"No message was received on %s" % INTERFACE_1)
48-
self.assertEqual(recv_msg, msg)
58+
self._check_received_message(recv_msg, msg)
59+
60+
def test_no_message(self):
61+
self.assertIsNone(self.bus1.recv(0.1))
62+
63+
def test_timestamp(self):
64+
self.bus2.send(can.Message())
65+
recv_msg1 = self.bus1.recv(TIMEOUT)
66+
time.sleep(1)
67+
self.bus2.send(can.Message())
68+
recv_msg2 = self.bus1.recv(TIMEOUT)
69+
delta_time = recv_msg2.timestamp - recv_msg1.timestamp
70+
self.assertTrue(0.95 < delta_time < 1.05)
4971

5072
def test_standard_message(self):
5173
msg = can.Message(extended_id=False,

0 commit comments

Comments
 (0)