Skip to content

fix(tests): Fix performance test result generation

Sign in for the full log view
GitHub Actions / Test Results failed Nov 19, 2025 in 0s

8 errors, 9 fail, 36 pass in 1h 0m 52s

152 files  152 suites   1h 0m 52s ⏱️
 53 tests  36 ✅ 0 💤  9 ❌  8 🔥
392 runs  335 ✅ 0 💤 21 ❌ 36 🔥

Results for commit 8669f1c.

Annotations

Check warning on line 0 in validation.hello_world.test_hello_world

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 11 runs failed: test_hello_world (validation.hello_world.test_hello_world)

./artifacts/test-results-hw/validation/hello_world/esp32p4/hello_world.xml [took 49s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Hello Arduino!"
Bytes in current buffer (color code eliminated): 000 0x00000000
Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-30-20-246811/test_hello_world/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x78e0079d9fd0>
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): 000 0x00000000\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-30-20-246811/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 0x78e007c3c260>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x78e0079d8f80>\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 0x78e0079d8f80>
E           searcher: searcher_string:
E               0: b'Hello Arduino!'
E           <pytest_embedded.log.PexpectProcess object at 0x78e0079d8f80>
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 0x78e0079d9fd0>

    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 0x78e0079d9fd0>
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): 000 0x00000000\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-30-20-246811/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): 000 0x00000000
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-30-20-246811/test_hello_world/dut.log

/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT

Check failure on line 0 in validation.nvs

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 8 runs with error: missing-run (validation.nvs)

./test_errors/test-results-hardware/tests/validation/nvs/esp32/nvs_missing_0.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32/nvs_missing_1.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32c5/nvs_missing_0.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32s2/nvs_missing_0.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32s2/nvs_missing_1.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32s3/nvs_missing_0.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32s3/nvs_missing_1.xml
./test_errors/test-results-hardware/tests/validation/nvs/esp32s3/nvs_missing_2.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check warning on line 0 in validation.wifi.test_wifi

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 9 runs failed: test_wifi (validation.wifi.test_wifi)

./artifacts/test-results-wokwi-esp32-validation/validation/wifi/esp32/wifi0.xml [took 31s]
./artifacts/test-results-wokwi-esp32-validation/validation/wifi/esp32/wifi1.xml [took 34s]
./artifacts/test-results-wokwi-esp32c3-validation/validation/wifi/esp32c3/wifi.xml [took 33s]
./artifacts/test-results-wokwi-esp32c6-validation/validation/wifi/esp32c6/wifi.xml [took 32s]
./artifacts/test-results-wokwi-esp32s2-validation/validation/wifi/esp32s2/wifi0.xml [took 31s]
./artifacts/test-results-wokwi-esp32s2-validation/validation/wifi/esp32s2/wifi1.xml [took 32s]
./artifacts/test-results-wokwi-esp32s3-validation/validation/wifi/esp32s3/wifi0.xml [took 33s]
./artifacts/test-results-wokwi-esp32s3-validation/validation/wifi/esp32s3/wifi1.xml [took 35s]
./artifacts/test-results-wokwi-esp32s3-validation/validation/wifi/esp32s3/wifi2.xml [took 31s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Scan start"
Bytes in current buffer (color code eliminated): nd SSID:
Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-19-20-505114/test_wifi/dut.log
self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f38fdca0980>
pattern = 'Scan start', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {}
patterns = ['Scan start'], res = []
debug_str = 'Not found "Scan start"\nBytes in current buffer (color code eliminated): nd SSID:\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-19-20-505114/test_wifi/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)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:86: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:170: in expect_exact
    return self.pexpect_proc.expect_exact(pattern, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
    return exp.expect_loop(timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/expect.py:181: in expect_loop
    return self.timeout(e)
           ^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pexpect.expect.Expecter object at 0x7f38fd18b620>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7f38fd188590>\nsearcher: searcher_string:\n    0: b'Scan start'")

    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 0x7f38fd188590>
E           searcher: searcher_string:
E               0: b'Scan start'
E           <pytest_embedded.log.PexpectProcess object at 0x7f38fd188590>
E           searcher: searcher_string:
E               0: b'Scan start'

/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pexpect/expect.py:144: TIMEOUT

The above exception was the direct cause of the following exception:

dut = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f38fdca0980>

    def test_wifi(dut):
        LOGGER = logging.getLogger(__name__)
    
        LOGGER.info("Starting WiFi Scan")
>       dut.expect_exact("Scan start")

tests/validation/wifi/test_wifi.py:8: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f38fdca0980>
pattern = 'Scan start', expect_all = False, not_matching = ()
return_what_before_match = False, args = (), kwargs = {}
patterns = ['Scan start'], res = []
debug_str = 'Not found "Scan start"\nBytes in current buffer (color code eliminated): nd SSID:\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-19-20-505114/test_wifi/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 "Scan start"
E               Bytes in current buffer (color code eliminated): nd SSID:
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-19-20-505114/test_wifi/dut.log

/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pytest_embedded/dut.py:93: TIMEOUT

Check warning on line 0 in validation.nvs.test_nvs

See this annotation in the file changed.

@github-actions github-actions / Test Results

5 out of 35 runs failed: test_nvs (validation.nvs.test_nvs)

./artifacts/test-results-hw/validation/nvs/esp32p4/nvs0.xml [took 49s]
./artifacts/test-results-hw/validation/nvs/esp32p4/nvs1.xml [took 49s]
./artifacts/test-results-hw/validation/nvs/esp32p4/nvs2.xml [took 50s]
./artifacts/test-results-hw/validation/nvs/esp32p4/nvs3.xml [took 50s]
./artifacts/test-results-wokwi-esp32-validation/validation/nvs/esp32/nvs0.xml [took 51s]
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): 09 0x00000000 0x00000000 0x00000000 0x000000bd 0x7000009f 0x7000009f 4ffbccd0: 0x00000000 0x00000000 0x00000000 0x4ffc0000 0x00006f1c 0x4fc1de00 0x0000ffff 0x4ffc0000 4ffbccf0:... (total 229 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-32-03-514755/test_nvs/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x739392e34e30>
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-11-19_15-32-03-514755/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 0x739391f706e0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x739391a5ea20>\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 0x739391a5ea20>
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 0x739391a5ea20>
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 0x739392e34e30>

    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 0x739392e34e30>
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-11-19_15-32-03-514755/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): 09 0x00000000 0x00000000 0x00000000 0x000000bd 0x7000009f 0x7000009f 4ffbccd0: 0x00000000 0x00000000 0x00000000 0x4ffc0000 0x00006f1c 0x4fc1de00 0x0000ffff 0x4ffc0000 4ffbccf0:... (total 229 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-32-03-514755/test_nvs/dut.log

/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT

Check failure on line 0 in validation.touch

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 3 runs with error: missing-run (validation.touch)

./test_errors/test-results-hardware/tests/validation/touch/esp32/touch_missing_0.xml
./test_errors/test-results-hardware/tests/validation/touch/esp32s2/touch_missing_0.xml
./test_errors/test-results-hardware/tests/validation/touch/esp32s3/touch_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check failure on line 0 in validation.timer

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 4 runs with error: missing-run (validation.timer)

./test_errors/test-results-hardware/tests/validation/timer/esp32/timer_missing_0.xml
./test_errors/test-results-hardware/tests/validation/timer/esp32c5/timer_missing_0.xml
./test_errors/test-results-hardware/tests/validation/timer/esp32s2/timer_missing_0.xml
./test_errors/test-results-hardware/tests/validation/timer/esp32s3/timer_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check warning on line 193 in /home/runner/work/arduino-esp32/arduino-esp32/tests/validation/i2c_master/i2c_master.ino

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 7 runs failed: change_clock

./artifacts/test-results-wokwi-esp32s3-validation/validation/i2c_master/esp32s3/i2c_master.xml
Raw output
Expected 1 Was 2

Check failure on line 0 in validation.hello_world

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 4 runs with error: missing-run (validation.hello_world)

./test_errors/test-results-hardware/tests/validation/hello_world/esp32/hello_world_missing_0.xml
./test_errors/test-results-hardware/tests/validation/hello_world/esp32c5/hello_world_missing_0.xml
./test_errors/test-results-hardware/tests/validation/hello_world/esp32s2/hello_world_missing_0.xml
./test_errors/test-results-hardware/tests/validation/hello_world/esp32s3/hello_world_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check failure on line 0 in validation.uart

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 4 runs with error: missing-run (validation.uart)

./test_errors/test-results-hardware/tests/validation/uart/esp32/uart_missing_0.xml
./test_errors/test-results-hardware/tests/validation/uart/esp32c5/uart_missing_0.xml
./test_errors/test-results-hardware/tests/validation/uart/esp32s2/uart_missing_0.xml
./test_errors/test-results-hardware/tests/validation/uart/esp32s3/uart_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check failure on line 0 in validation.periman

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 4 runs with error: missing-run (validation.periman)

./test_errors/test-results-hardware/tests/validation/periman/esp32/periman_missing_0.xml
./test_errors/test-results-hardware/tests/validation/periman/esp32c5/periman_missing_0.xml
./test_errors/test-results-hardware/tests/validation/periman/esp32s2/periman_missing_0.xml
./test_errors/test-results-hardware/tests/validation/periman/esp32s3/periman_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check failure on line 0 in validation.democfg

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 5 runs with error: missing-run (validation.democfg)

./test_errors/test-results-hardware/tests/validation/democfg/esp32/democfg_missing_0.xml
./test_errors/test-results-hardware/tests/validation/democfg/esp32/democfg_missing_1.xml
./test_errors/test-results-hardware/tests/validation/democfg/esp32c5/democfg_missing_0.xml
./test_errors/test-results-hardware/tests/validation/democfg/esp32s2/democfg_missing_0.xml
./test_errors/test-results-hardware/tests/validation/democfg/esp32s3/democfg_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check warning on line 0 in validation.touch.test_touch

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_touch (validation.touch.test_touch) failed

./artifacts/test-results-hw/validation/touch/esp32p4/touch.xml [took 4m 20s]
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/ttyUSB0: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 1604927 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-55-57-252200/test_touch/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x772ec8529fa0>
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....tal 1604927 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-55-57-252200/test_touch/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 0x772ec8773f20>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x772ec9a3a630>\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 0x772ec9a3a630>
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 0x772ec9a3a630>
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 0x772ec8529fa0>

    def test_touch(dut):
>       dut.expect_unity_test_output(timeout=240)

tests/validation/touch/test_touch.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 0x772ec8529fa0>
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....tal 1604927 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-55-57-252200/test_touch/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/ttyUSB0: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 1604927 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-55-57-252200/test_touch/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

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_timer (validation.timer.test_timer) failed

./artifacts/test-results-hw/validation/timer/esp32p4/timer.xml [took 4m 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/ttyUSB0: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 1603760 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-47-12-595732/test_timer/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x78077fc47770>
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....tal 1603760 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-47-12-595732/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 0x78077fcbbce0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x78077feb5910>\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 0x78077feb5910>
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 0x78077feb5910>
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 0x78077fc47770>

    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 0x78077fc47770>
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....tal 1603760 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-47-12-595732/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/ttyUSB0: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 1603760 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-47-12-595732/test_timer/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

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_psram (validation.psram.test_psram) failed

./artifacts/test-results-hw/validation/psram/esp32p4/psram.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/ttyUSB0: Connecting.... Connecting... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 802870 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-40-29-780919/test_psram/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7f6d0a1af200>
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....otal 802870 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-40-29-780919/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 0x7f6d0a3f7e30>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7f6d0a417e30>\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 0x7f6d0a417e30>
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 0x7f6d0a417e30>
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 0x7f6d0a1af200>

    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 0x7f6d0a1af200>
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....otal 802870 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_15-40-29-780919/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/ttyUSB0: Connecting.... Connecting... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 802870 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_15-40-29-780919/test_psram/dut.log

/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT

Check failure on line 0 in validation.unity

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 4 runs with error: missing-run (validation.unity)

./test_errors/test-results-hardware/tests/validation/unity/esp32/unity_missing_0.xml
./test_errors/test-results-hardware/tests/validation/unity/esp32c5/unity_missing_0.xml
./test_errors/test-results-hardware/tests/validation/unity/esp32s2/unity_missing_0.xml
./test_errors/test-results-hardware/tests/validation/unity/esp32s3/unity_missing_0.xml
Raw output
Expected test run missing
This placeholder indicates an expected test run did not execute.

Check warning on line 0 in validation.uart.test_uart

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_uart (validation.uart.test_uart) failed

./artifacts/test-results-hw/validation/uart/esp32p4/uart.xml [took 2m 21s]
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/ttyUSB0: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 804051 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-11-19_16-02-43-516313/test_uart/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x76e1f1bf9df0>
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 804051 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_16-02-43-516313/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 0x76e1f1e46810>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x76e1f1bf8d70>\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 0x76e1f1bf8d70>
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 0x76e1f1bf8d70>
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 0x76e1f1bf9df0>

    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 0x76e1f1bf9df0>
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 804051 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_16-02-43-516313/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/ttyUSB0: Connecting.... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 804051 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_16-02-43-516313/test_uart/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

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_unity (validation.unity.test_unity) failed

./artifacts/test-results-hw/validation/unity/esp32p4/unity.xml [took 4m 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/ttyUSB0: Connecting... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 1604042 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-11-19_16-09-28-598880/test_unity/dut.log
self = <pytest_embedded_serial.dut.SerialDut object at 0x7b5bf6d01f70>
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....tal 1604042 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_16-09-28-598880/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 0x7b5bf6f4bec0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7b5bf6da6810>\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 0x7b5bf6da6810>
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 0x7b5bf6da6810>
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 0x7b5bf6d01f70>

    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 0x7b5bf6d01f70>
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....tal 1604042 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-11-19_16-09-28-598880/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/ttyUSB0: Connecting... Connecting.... Warning: Deprecated: Option '--flash_mode' is deprecated. Use '--flash-mode' instead. Warning: Deprecated: Option '--... (total 1604042 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-11-19_16-09-28-598880/test_unity/dut.log

/usr/local/lib/python3.12/site-packages/pytest_embedded/dut.py:93: TIMEOUT

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results

53 tests found

There are 53 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
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
timer_clock_select_test
timer_divider_test
timer_interrupt_test
timer_read_test
validation.democfg ‑ missing-run
validation.democfg.test_democfg ‑ test_cfg
validation.gpio.test_gpio ‑ test_gpio
validation.hello_world ‑ missing-run
validation.hello_world.test_hello_world ‑ test_hello_world
validation.nvs ‑ missing-run
validation.nvs.test_nvs ‑ test_nvs
validation.periman ‑ missing-run
validation.periman.test_periman ‑ test_periman
validation.psram.test_psram ‑ test_psram
validation.timer ‑ missing-run
validation.timer.test_timer ‑ test_timer
validation.touch ‑ missing-run
validation.touch.test_touch ‑ test_touch
validation.uart ‑ missing-run
validation.uart.test_uart ‑ test_uart
validation.unity ‑ missing-run
validation.unity.test_unity ‑ test_unity
validation.wifi.test_wifi ‑ test_wifi