|
5 | 5 | This module tests two virtual busses attached to each other. |
6 | 6 | """ |
7 | 7 |
|
8 | | -from __future__ import absolute_import |
| 8 | +from __future__ import absolute_import, print_function |
9 | 9 |
|
| 10 | +import sys |
10 | 11 | import unittest |
11 | | -import time |
| 12 | +from time import sleep |
12 | 13 |
|
13 | 14 | import can |
14 | 15 |
|
15 | 16 | from .config import * |
| 17 | +from .data.example_data import generate_message |
16 | 18 |
|
17 | 19 | BITRATE = 500000 |
18 | 20 | TIMEOUT = 0.1 |
@@ -80,12 +82,12 @@ def test_no_message(self): |
80 | 82 | def test_timestamp(self): |
81 | 83 | self.bus2.send(can.Message()) |
82 | 84 | recv_msg1 = self.bus1.recv(TIMEOUT) |
83 | | - time.sleep(5) |
| 85 | + sleep(2.0) |
84 | 86 | self.bus2.send(can.Message()) |
85 | 87 | recv_msg2 = self.bus1.recv(TIMEOUT) |
86 | 88 | delta_time = recv_msg2.timestamp - recv_msg1.timestamp |
87 | | - self.assertTrue(4.8 < delta_time < 5.2, |
88 | | - 'Time difference should have been 5s +/- 200ms.' |
| 89 | + self.assertTrue(1.75 <= delta_time <= 2.25, |
| 90 | + 'Time difference should have been 2s +/- 250ms.' |
89 | 91 | 'But measured {}'.format(delta_time)) |
90 | 92 |
|
91 | 93 | def test_standard_message(self): |
@@ -130,6 +132,39 @@ def test_fd_message_with_brs(self): |
130 | 132 | data=[0xff] * 48) |
131 | 133 | self._send_and_receive(msg) |
132 | 134 |
|
| 135 | +# FIXME |
| 136 | +@unittest.skip("skip until CAN FD support is fixed, see issue #274") |
| 137 | +#@unittest.skipUnless(TEST_INTERFACE_SOCKETCAN, "skip testing of socketcan") |
| 138 | +class BasicTestSocketCan(unittest.TestCase): |
| 139 | + |
| 140 | + def setUp(self): |
| 141 | + socketcan_version = can.util.choose_socketcan_implementation() |
| 142 | + print("testing python-can's socketcan version:", |
| 143 | + socketcan_version) |
| 144 | + |
| 145 | + self.bus1 = can.interface.Bus(channel="vcan0", |
| 146 | + bustype=socketcan_version, |
| 147 | + bitrate=250000, |
| 148 | + fd=TEST_CAN_FD) |
| 149 | + self.bus2 = can.interface.Bus(channel="vcan0", |
| 150 | + bustype=socketcan_version, |
| 151 | + bitrate=250000, |
| 152 | + fd=TEST_CAN_FD) |
| 153 | + |
| 154 | + def tearDown(self): |
| 155 | + self.bus1.shutdown() |
| 156 | + self.bus2.shutdown() |
| 157 | + |
| 158 | + def test_basics(self): |
| 159 | + reader = can.BufferedReader() |
| 160 | + notifier = can.Notifier(self.bus2, [reader]) |
| 161 | + |
| 162 | + message = can.Message(arbitration_id=0x4321, data=[1, 2, 3], extended_id=True) |
| 163 | + self.bus1.send(message) |
| 164 | + |
| 165 | + self.assertEqual(message, reader.get_message(timeout=2.0)) |
| 166 | + notifier.stop() |
| 167 | + |
133 | 168 |
|
134 | 169 | if __name__ == '__main__': |
135 | 170 | unittest.main() |
0 commit comments