Skip to content

Commit

Permalink
Physical device tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
jfjlaros committed Apr 10, 2022
1 parent fff7f98 commit 891eaf1
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 4 deletions.
7 changes: 4 additions & 3 deletions docs/usage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Start the serial multiplexer on a serial device, e.g., ``/dev/ttyUSB0``.
Virtual serial device 1: /dev/pts/8
Virtual serial device 2: /dev/pts/9

Press Ctrl+C to exit.

Usage
-----
Expand All @@ -44,9 +45,9 @@ second virtual serial device.
::

$ picocom -q /dev/pts/9
System time: 3432
System time: 6860
System time: 10290
time: 3432
time: 6860
time: 10290


.. _sketch: https://github.com/jfjlaros/serialMux/blob/master/examples/demo/demo.ino
Expand Down
2 changes: 1 addition & 1 deletion serial_mux/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def serial_mux(
"""
mux = SerialMux(device, baudrate, wait, log_handle)
threads = [Thread(target=mux.update, daemon=True)]
threads[-1].start()
threads[0].start()

handle.write('Detected {} virtual serial ports.\n'.format(
len(mux.devices)))
Expand Down
33 changes: 33 additions & 0 deletions tests/test_device.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from os.path import exists
from pytest import mark
from serial import Serial
from time import sleep

from serial_mux import SerialMux
from sys import stderr


_device = '/dev/ttyUSB0'


@mark.skipif(not exists(_device), reason='device not connected')
class TestDevice(object):
if exists(_device):
_mux = SerialMux(_device)

def test_ports(self: object) -> None:
assert len(self._mux.devices) == 2

def test_device1(self: object) -> None:
serial = Serial(self._mux.devices[0].name)
serial.write(b'\x01')
self._mux.devices[0]._update()
for _ in range(64):
self._mux._update()

assert serial.read(11) == b'received: 1'

def test_device2(self: object) -> None:
in_handle = open(self._mux.devices[1].name, 'rb')
self._mux._update()
assert in_handle.read(6) == b'time: '

0 comments on commit 891eaf1

Please sign in to comment.