30 lines
1 KiB
Python
30 lines
1 KiB
Python
|
# SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||
|
# SPDX-License-Identifier: CC0-1.0
|
||
|
from time import sleep
|
||
|
|
||
|
import pytest
|
||
|
from pytest_embedded import Dut
|
||
|
from serial import Serial
|
||
|
from serial.tools.list_ports import comports
|
||
|
|
||
|
|
||
|
@pytest.mark.esp32s2
|
||
|
@pytest.mark.usb_device
|
||
|
def test_usb_composite_device_serial_example(dut: Dut) -> None:
|
||
|
dut.expect_exact('Hello World!')
|
||
|
dut.expect_exact('USB Composite initialization')
|
||
|
dut.expect_exact('USB Composite initialization DONE')
|
||
|
sleep(2) # Some time for the OS to enumerate our USB device
|
||
|
|
||
|
# Find device with Espressif TinyUSB VID/PID
|
||
|
ports = comports()
|
||
|
for port, _, hwid in ports:
|
||
|
if '303A:4001' in hwid:
|
||
|
with Serial(port) as s:
|
||
|
s.write('text\r\n'.encode()) # Write dummy text to COM port
|
||
|
dut.expect_exact('Data from channel 0:') # Check ESP log
|
||
|
dut.expect_exact('|text..|')
|
||
|
res = s.readline() # Check COM echo
|
||
|
assert b'text\r\n' in res
|
||
|
return
|