Merge branch 'ci/fixes' #766
15 fail, 39 pass in 2h 18m 45s
199 files 199 suites 2h 18m 45s ⏱️
54 tests 39 ✅ 0 💤 15 ❌
498 runs 483 ✅ 0 💤 15 ❌
Results for commit 69a2397.
Annotations
Check warning on line 0 in performance.superpi.test_superpi
github-actions / Test Results
1 out of 7 runs failed: test_superpi (performance.superpi.test_superpi)
./artifacts/test-results-hw/performance/superpi/esp32c5/superpi.xml [took 1m 24s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35428 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-35-04-852962/test_superpi/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7ba3233378c0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...tal 35428 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-35-04-852962/test_superpi/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7ba3235706e0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7ba323350440>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7ba323350440>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x7ba323350440>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7ba3233378c0>
request = <FixtureRequest for <Function test_superpi>>
def test_superpi(dut, request):
LOGGER = logging.getLogger(__name__)
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/superpi/test_superpi.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7ba3233378c0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...tal 35428 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-35-04-852962/test_superpi/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35428 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-35-04-852962/test_superpi/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.hello_world.test_hello_world
github-actions / Test Results
1 out of 15 runs failed: test_hello_world (validation.hello_world.test_hello_world)
./artifacts/test-results-hw/validation/hello_world/esp32c5/hello_world.xml [took 47s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Hello Arduino!"
Bytes in current buffer (color code eliminated): s_flash_boot
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-22-018628/test_hello_world/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7829c58e0290>
pattern = 'Hello Arduino!', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {}
patterns = ['Hello Arduino!'], res = []
debug_str = 'Not found "Hello Arduino!"\nBytes in current buffer (color code eliminated): s_flash_boot\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-22-018628/test_hello_world/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:170: in expect_exact
return self.pexpect_proc.expect_exact(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:432: in expect_exact
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7829c58e3e60>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7829c5629490>\nsearcher: searcher_string:\n 0: b'Hello Arduino!'")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7829c5629490>
E searcher: searcher_string:
E 0: b'Hello Arduino!'
E <pytest_embedded.log.PexpectProcess object at 0x7829c5629490>
E searcher: searcher_string:
E 0: b'Hello Arduino!'
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7829c58e0290>
def test_hello_world(dut):
> dut.expect_exact("Hello Arduino!")
tests/validation/hello_world/test_hello_world.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7829c58e0290>
pattern = 'Hello Arduino!', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {}
patterns = ['Hello Arduino!'], res = []
debug_str = 'Not found "Hello Arduino!"\nBytes in current buffer (color code eliminated): s_flash_boot\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-22-018628/test_hello_world/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Hello Arduino!"
E Bytes in current buffer (color code eliminated): s_flash_boot
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-22-018628/test_hello_world/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.nvs.test_nvs
github-actions / Test Results
1 out of 43 runs failed: test_nvs (validation.nvs.test_nvs)
./artifacts/test-results-hw/validation/nvs/esp32c5/nvs.xml [took 48s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}"
Bytes in current buffer (color code eliminated): :0x10 (RTC_WDT_SYS),boot:0x18 (SPI_FAST_FLASH_BOOT) invalid header: 0x40857637 invalid header: 0x40857637 invalid header: 0x40857637 assertion "result == ETS_OK" failed: file... (total 229 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-59-784046/test_nvs/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7c61902f1730>
pattern = 'Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}'
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {}
patterns = ['Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}']
res = []
debug_str = 'Not found "Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0..... (total 229 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-59-784046/test_nvs/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:170: in expect_exact
return self.pexpect_proc.expect_exact(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:432: in expect_exact
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7c6190564ad0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7c61915d69f0>\nsearcher: searcher_string:\n 0: b'Values fr...64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}'")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7c61915d69f0>
E searcher: searcher_string:
E 0: b'Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}'
E <pytest_embedded.log.PexpectProcess object at 0x7c61915d69f0>
E searcher: searcher_string:
E 0: b'Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}'
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7c61902f1730>
def test_nvs(dut):
LOGGER = logging.getLogger(__name__)
LOGGER.info("Expecting default values from Preferences")
> dut.expect_exact(
"Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | "
"long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | "
"struct: {id:1,val:100}"
)
tests/validation/nvs/test_nvs.py:8:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7c61902f1730>
pattern = 'Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}'
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {}
patterns = ['Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}']
res = []
debug_str = 'Not found "Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0..... (total 229 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-59-784046/test_nvs/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Values from Preferences: char: A | uchar: 0 | short: 0 | ushort: 0 | int: 0 | uint: 0 | long: 0 | ulong: 0 | long64: 0 | ulong64: 0 | float: 0.00 | double: 0.00 | bool: false | str: str0 | strLen: strLen0 | struct: {id:1,val:100}"
E Bytes in current buffer (color code eliminated): :0x10 (RTC_WDT_SYS),boot:0x18 (SPI_FAST_FLASH_BOOT) invalid header: 0x40857637 invalid header: 0x40857637 invalid header: 0x40857637 assertion "result == ETS_OK" failed: file... (total 229 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-59-784046/test_nvs/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in performance.coremark.test_coremark
github-actions / Test Results
1 out of 7 runs failed: test_coremark (performance.coremark.test_coremark)
./artifacts/test-results-hw/performance/coremark/esp32c5/coremark.xml [took 1m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-49-226812/test_coremark/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x735915b0bef0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...al 35303 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-49-226812/test_coremark/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x735915f441d0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x735915f456d0>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x735915f456d0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x735915f456d0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x735915b0bef0>
request = <FixtureRequest for <Function test_coremark>>
def test_coremark(dut, request):
LOGGER = logging.getLogger(__name__)
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/coremark/test_coremark.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x735915b0bef0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...al 35303 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-49-226812/test_coremark/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-49-226812/test_coremark/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.democfg.test_democfg
github-actions / Test Results
1 out of 6 runs failed: test_cfg (validation.democfg.test_democfg)
./artifacts/test-results-hw/validation/democfg/esp32c5/democfg.xml [took 47s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Hello cfg!"
Bytes in current buffer (color code eliminated): ash_boot
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-45-256312/test_cfg/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x76c39311f8c0>
pattern = 'Hello cfg!', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {}
patterns = ['Hello cfg!'], res = []
debug_str = 'Not found "Hello cfg!"\nBytes in current buffer (color code eliminated): ash_boot\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-45-256312/test_cfg/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:170: in expect_exact
return self.pexpect_proc.expect_exact(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:432: in expect_exact
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x76c39309c710>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x76c3930a84a0>\nsearcher: searcher_string:\n 0: b'Hello cfg!'")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x76c3930a84a0>
E searcher: searcher_string:
E 0: b'Hello cfg!'
E <pytest_embedded.log.PexpectProcess object at 0x76c3930a84a0>
E searcher: searcher_string:
E 0: b'Hello cfg!'
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x76c39311f8c0>
def test_cfg(dut):
> dut.expect_exact("Hello cfg!")
tests/validation/democfg/test_democfg.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x76c39311f8c0>
pattern = 'Hello cfg!', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {}
patterns = ['Hello cfg!'], res = []
debug_str = 'Not found "Hello cfg!"\nBytes in current buffer (color code eliminated): ash_boot\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-45-256312/test_cfg/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Hello cfg!"
E Bytes in current buffer (color code eliminated): ash_boot
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-45-256312/test_cfg/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in performance.ramspeed.test_ramspeed
github-actions / Test Results
1 out of 7 runs failed: test_ramspeed (performance.ramspeed.test_ramspeed)
./artifacts/test-results-hw/performance/ramspeed/esp32c5/ramspeed.xml [took 1m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-32-20-516443/test_ramspeed/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7861bf36f590>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...al 35303 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-32-20-516443/test_ramspeed/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7861c01ef290>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7861c01f2cf0>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7861c01f2cf0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x7861c01f2cf0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7861bf36f590>
request = <FixtureRequest for <Function test_ramspeed>>
def test_ramspeed(dut, request):
LOGGER = logging.getLogger(__name__)
runs_results = []
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/ramspeed/test_ramspeed.py:14:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7861bf36f590>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...al 35303 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-32-20-516443/test_ramspeed/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-32-20-516443/test_ramspeed/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in performance.linpack_float.test_linpack_float
github-actions / Test Results
1 out of 7 runs failed: test_linpack_float (performance.linpack_float.test_linpack_float)
./artifacts/test-results-hw/performance/linpack_float/esp32c5/linpack_float.xml [took 1m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 34993 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-29-43-056432/test_linpack_float/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x750b112ad8b0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...993 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-29-43-056432/test_linpack_float/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x750b106f2840>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x750b1063fc50>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x750b1063fc50>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x750b1063fc50>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x750b112ad8b0>
request = <FixtureRequest for <Function test_linpack_float>>
def test_linpack_float(dut, request):
LOGGER = logging.getLogger(__name__)
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/linpack_float/test_linpack_float.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x750b112ad8b0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...993 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-29-43-056432/test_linpack_float/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 34993 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-29-43-056432/test_linpack_float/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.periman.test_periman
github-actions / Test Results
1 out of 7 runs failed: test_periman (validation.periman.test_periman)
./artifacts/test-results-hw/validation/periman/esp32c5/periman.xml [took 33s]
Raw output
AssertionError: Could not detect end of test
assert False
self = <pytest_embedded_serial.dut.SerialDut object at 0x758ab5a24530>
pattern = b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)'
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 10}
patterns = [b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)']
res = []
debug_str = 'Not found "b\'(?:\\\\b\\\\w+\\\\b test: This should(?: not)? be printed|Peripheral Manager test done)\'"\nBytes in cu...otal 8776 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-26-23-378782/test_periman/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x758ab5e17b00>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x758ab5e3d6d0>\nsearcher: searcher_re:\n 0: re.compile(b'(?:\\\\b\\\\w+\\\\b test: This should(?: not)? be printed|Peripheral Manager test done)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x758ab5e3d6d0>
E searcher: searcher_re:
E 0: re.compile(b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)')
E <pytest_embedded.log.PexpectProcess object at 0x758ab5e3d6d0>
E searcher: searcher_re:
E 0: re.compile(b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x758ab5a24530>
def test_periman(dut):
LOGGER = logging.getLogger(__name__)
peripherals = [
"GPIO",
"SigmaDelta",
"LEDC",
"RMT",
"I2S",
"I2C",
"SPI",
"ADC_Oneshot",
"ADC_Continuous",
"DAC",
"Touch",
]
pattern = rb"(?:\b\w+\b test: This should(?: not)? be printed|Peripheral Manager test done)"
while True:
try:
> res = dut.expect(pattern, timeout=10)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/validation/periman/test_periman.py:24:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x758ab5a24530>
pattern = b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)'
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 10}
patterns = [b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)']
res = []
debug_str = 'Not found "b\'(?:\\\\b\\\\w+\\\\b test: This should(?: not)? be printed|Peripheral Manager test done)\'"\nBytes in cu...otal 8776 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-26-23-378782/test_periman/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "b'(?:\\b\\w+\\b test: This should(?: not)? be printed|Peripheral Manager test done)'"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 8776 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-26-23-378782/test_periman/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
During handling of the above exception, another exception occurred:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x758ab5a24530>
def test_periman(dut):
LOGGER = logging.getLogger(__name__)
peripherals = [
"GPIO",
"SigmaDelta",
"LEDC",
"RMT",
"I2S",
"I2C",
"SPI",
"ADC_Oneshot",
"ADC_Continuous",
"DAC",
"Touch",
]
pattern = rb"(?:\b\w+\b test: This should(?: not)? be printed|Peripheral Manager test done)"
while True:
try:
res = dut.expect(pattern, timeout=10)
except Exception as e: # noqa: F841
> assert False, "Could not detect end of test"
E AssertionError: Could not detect end of test
E assert False
tests/validation/periman/test_periman.py:26: AssertionError
Check warning on line 0 in performance.linpack_double.test_linpack_double
github-actions / Test Results
1 out of 7 runs failed: test_linpack_double (performance.linpack_double.test_linpack_double)
./artifacts/test-results-hw/performance/linpack_double/esp32c5/linpack_double.xml [took 1m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-27-05-077430/test_linpack_double/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7b98f1db0e30>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...03 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-27-05-077430/test_linpack_double/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7b98f1daf290>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7b98f0f2e9f0>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7b98f0f2e9f0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x7b98f0f2e9f0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7b98f1db0e30>
request = <FixtureRequest for <Function test_linpack_double>>
def test_linpack_double(dut, request):
LOGGER = logging.getLogger(__name__)
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/linpack_double/test_linpack_double.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7b98f1db0e30>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...03 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-27-05-077430/test_linpack_double/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-27-05-077430/test_linpack_double/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in performance.fibonacci.test_fibonacci
github-actions / Test Results
1 out of 7 runs failed: test_fibonacci (performance.fibonacci.test_fibonacci)
./artifacts/test-results-hw/performance/fibonacci/esp32c5/fibonacci.xml [took 1m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-27-275698/test_fibonacci/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7551a993f8c0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...l 35303 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-27-275698/test_fibonacci/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7551a9434e90>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7551a9207dd0>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7551a9207dd0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x7551a9207dd0>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7551a993f8c0>
request = <FixtureRequest for <Function test_fibonacci>>
def test_fibonacci(dut, request):
LOGGER = logging.getLogger(__name__)
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/fibonacci/test_fibonacci.py:22:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7551a993f8c0>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... C...l 35303 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-27-275698/test_fibonacci/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB8: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35303 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-24-27-275698/test_fibonacci/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.timer.test_timer
github-actions / Test Results
test_timer (validation.timer.test_timer) failed
./artifacts/test-results-hw/validation/timer/esp32c5/timer.xml [took 4m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 135018 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-31-16-691793/test_timer/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7d42cd5afc20>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 240}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....otal 135018 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-31-16-691793/test_timer/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7d42cd5af410>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7d42cd39adb0>\nsearcher: searcher_re:\n 0: re.compile(b'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7d42cd39adb0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
E <pytest_embedded.log.PexpectProcess object at 0x7d42cd39adb0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7d42cd5afc20>
def test_timer(dut):
> dut.expect_unity_test_output(timeout=240)
tests/validation/timer/test_timer.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:197: in expect_unity_test_output
self.expect(UNITY_SUMMARY_LINE_REGEX, timeout=timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7d42cd5afc20>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 240}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....otal 135018 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-31-16-691793/test_timer/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 135018 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-31-16-691793/test_timer/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.uart.test_uart
github-actions / Test Results
test_uart (validation.uart.test_uart) failed
./artifacts/test-results-hw/validation/uart/esp32c5/uart.xml [took 2m 19s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 69230 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-37-56-272730/test_uart/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7a9e7a7a4d70>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 120}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....(total 69230 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-37-56-272730/test_uart/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x7a9e7aa28230>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7a9e7aa077a0>\nsearcher: searcher_re:\n 0: re.compile(b'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x7a9e7aa077a0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
E <pytest_embedded.log.PexpectProcess object at 0x7a9e7aa077a0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x7a9e7a7a4d70>
def test_uart(dut):
> dut.expect_unity_test_output(timeout=120)
tests/validation/uart/test_uart.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:197: in expect_unity_test_output
self.expect(UNITY_SUMMARY_LINE_REGEX, timeout=timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x7a9e7a7a4d70>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 120}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....(total 69230 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-37-56-272730/test_uart/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 69230 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-37-56-272730/test_uart/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in performance.psramspeed.test_psramspeed
github-actions / Test Results
1 out of 5 runs failed: test_psramspeed (performance.psramspeed.test_psramspeed)
./artifacts/test-results-hw/performance/psramspeed/esp32c5/psramspeed.xml [took 1m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB15: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35615 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-30-866573/test_psramspeed/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x71dc803e8d10>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB15: Connecting.... ... 35615 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-30-866573/test_psramspeed/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x71dc80a3a420>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x71dc80597f20>\nsearcher: searcher_re:\n 0: re.compile(b'Runs: (\\\\d+)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x71dc80597f20>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
E <pytest_embedded.log.PexpectProcess object at 0x71dc80597f20>
E searcher: searcher_re:
E 0: re.compile(b'Runs: (\\d+)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x71dc803e8d10>
request = <FixtureRequest for <Function test_psramspeed>>
def test_psramspeed(dut, request):
LOGGER = logging.getLogger(__name__)
runs_results = []
# Match "Runs: %d"
> res = dut.expect(r"Runs: (\d+)", timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/performance/psramspeed/test_psramspeed.py:14:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x71dc803e8d10>
pattern = 'Runs: (\\d+)', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {'timeout': 60}
patterns = ['Runs: (\\d+)'], res = []
debug_str = 'Not found "Runs: (\\d+)"\nBytes in current buffer (color code eliminated): Serial port /dev/ttyUSB15: Connecting.... ... 35615 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-30-866573/test_psramspeed/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "Runs: (\d+)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB15: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 35615 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-21-30-866573/test_psramspeed/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.psram.test_psram
github-actions / Test Results
test_psram (validation.psram.test_psram) failed
./artifacts/test-results-hw/validation/psram/esp32c5/psram.xml [took 2m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB5: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 77540 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-17-412061/test_psram/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x743d6635be60>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 120}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....total 77540 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-17-412061/test_psram/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x743d652dea80>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x743d652e84a0>\nsearcher: searcher_re:\n 0: re.compile(b'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x743d652e84a0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
E <pytest_embedded.log.PexpectProcess object at 0x743d652e84a0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x743d6635be60>
def test_psram(dut):
> dut.expect_unity_test_output(timeout=120)
tests/validation/psram/test_psram.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:197: in expect_unity_test_output
self.expect(UNITY_SUMMARY_LINE_REGEX, timeout=timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x743d6635be60>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 120}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....total 77540 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-17-412061/test_psram/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB5: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 77540 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-23-17-412061/test_psram/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check warning on line 0 in validation.unity.test_unity
github-actions / Test Results
test_unity (validation.unity.test_unity) failed
./artifacts/test-results-hw/validation/unity/esp32c5/unity.xml [took 4m 17s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 135018 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-44-35-231891/test_unity/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x79f62195d190>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 240}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....otal 135018 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-44-35-231891/test_unity/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
> index = func(self, pattern, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:146: in expect
return self.pexpect_proc.expect(pattern, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect
return self.expect_list(compiled_pattern_list,
/usr/local/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop
return self.timeout(e)
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pexpect.expect.Expecter object at 0x79f621952db0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x79f6219504a0>\nsearcher: searcher_re:\n 0: re.compile(b'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)')")
def timeout(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn.after = TIMEOUT
index = self.searcher.timeout_index
if index >= 0:
spawn.match = TIMEOUT
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = TIMEOUT(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
> raise exc
E pexpect.exceptions.TIMEOUT: <pytest_embedded.log.PexpectProcess object at 0x79f6219504a0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
E <pytest_embedded.log.PexpectProcess object at 0x79f6219504a0>
E searcher: searcher_re:
E 0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')
/usr/local/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT
The above exception was the direct cause of the following exception:
dut = <pytest_embedded_serial.dut.SerialDut object at 0x79f62195d190>
def test_unity(dut):
> dut.expect_unity_test_output(timeout=240)
tests/validation/unity/test_unity.py:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:197: in expect_unity_test_output
self.expect(UNITY_SUMMARY_LINE_REGEX, timeout=timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_embedded_serial.dut.SerialDut object at 0x79f62195d190>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), return_what_before_match = False
args = (), kwargs = {'timeout': 240}
patterns = [re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)]
res = []
debug_str = 'Not found "re.compile(b\'^[-]+\\\\s*(\\\\d+) Tests (\\\\d+) Failures (\\\\d+) Ignored\\\\s*(?P<result>OK|FAIL)\', re....otal 135018 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-10-15_16-44-35-231891/test_unity/dut.log'
@functools.wraps(func)
def wrapper(
self,
pattern,
*args,
expect_all: bool = False,
not_matching: list[str | re.Pattern] = (),
return_what_before_match: bool = False,
**kwargs,
) -> Match | AnyStr | list[Match | AnyStr]:
if return_what_before_match and expect_all:
raise ValueError('`return_what_before_match` and `expect_all` cannot be `True` at the same time.')
patterns = to_list(pattern)
res = []
while patterns:
try:
index = func(self, pattern, *args, **kwargs)
except (pexpect.EOF, pexpect.TIMEOUT) as e:
debug_str = (
f'Not found "{pattern!s}"\n'
f'Bytes in current buffer (color code eliminated): {self.pexpect_proc.buffer_debug_str}\n'
f'Please check the full log here: {self.logfile}'
)
> raise e.__class__(debug_str) from e
E pexpect.exceptions.TIMEOUT: Not found "re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)"
E Bytes in current buffer (color code eliminated): Serial port /dev/ttyUSB1: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 135018 bytes)
E Please check the full log here: /tmp/pytest-embedded/2025-10-15_16-44-35-231891/test_unity/dut.log
/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT
Check notice on line 0 in .github
github-actions / Test Results
54 tests found
There are 54 tests, see "Raw output" for the full list of tests.
Raw output
auto_baudrate_test
basic_transmission_test
begin_when_running_test
change_baudrate_test
change_clock
change_cpu_frequency_test
change_pins_test
disabled_uart_calls_test
enabled_uart_calls_test
end_when_stopped_test
performance.coremark.test_coremark ‑ test_coremark
performance.fibonacci.test_fibonacci ‑ test_fibonacci
performance.linpack_double.test_linpack_double ‑ test_linpack_double
performance.linpack_float.test_linpack_float ‑ test_linpack_float
performance.psramspeed.test_psramspeed ‑ test_psramspeed
performance.ramspeed.test_ramspeed ‑ test_ramspeed
performance.superpi.test_superpi ‑ test_superpi
periman_test
psram_found
resize_buffers_test
rtc_run_clock
rtc_set_time
scan_bus
scan_bus_with_wifi
swap_pins
test_api
test_calloc_success
test_fail
test_malloc_fail
test_malloc_success
test_memcpy
test_memset_all_ones
test_memset_all_zeroes
test_memset_alternating
test_memset_random
test_pass
test_realloc_success
test_touch_errors
test_touch_interrtupt
test_touch_read
timer_clock_select_test
timer_divider_test
timer_interrupt_test
timer_read_test
validation.democfg.test_democfg ‑ test_cfg
validation.gpio.test_gpio ‑ test_gpio
validation.hello_world.test_hello_world ‑ test_hello_world
validation.nvs.test_nvs ‑ test_nvs
validation.periman.test_periman ‑ test_periman
validation.psram.test_psram ‑ test_psram
validation.timer.test_timer ‑ test_timer
validation.uart.test_uart ‑ test_uart
validation.unity.test_unity ‑ test_unity
validation.wifi.test_wifi ‑ test_wifi