Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(zigbee): Add Analog endpoint device (input, output, value clusters) #10950

Merged
merged 8 commits into from
Feb 20, 2025

fix(example): Fix comment typo

21a840f
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

feat(zigbee): Add Analog endpoint device (input, output, value clusters) #10950

fix(example): Fix comment typo
21a840f
Select commit
Loading
Failed to load commit list.
GitHub Actions / Test Results failed Feb 20, 2025 in 0s

2 fail, 35 pass in 12m 54s

 80 files   80 suites   12m 54s ⏱️
 37 tests  35 ✅ 0 💤 2 ❌
215 runs  212 ✅ 0 💤 3 ❌

Results for commit 21a840f.

Annotations

Check warning on line 0 in validation.gpio.test_gpio

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 7 runs failed: test_gpio (validation.gpio.test_gpio)

./artifacts/tests-results-wokwi-esp32-validation/validation/gpio/esp32/gpio.xml [took 33s]
Raw output
pexpect.exceptions.TIMEOUT: Not found "Button pressed 2 times"
Bytes in current buffer (color code eliminated): 
Please check the full log here: /tmp/pytest-embedded/2025-02-20_08-30-46-888477/test_gpio/dut.log
self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f9f8a885be0>
pattern = 'Button pressed 2 times', expect_all = False, not_matching = ()
args = (), kwargs = {}, patterns = ['Button pressed 2 times'], res = []
debug_str = 'Not found "Button pressed 2 times"\nBytes in current buffer (color code eliminated): \nPlease check the full log here: /tmp/pytest-embedded/2025-02-20_08-30-46-888477/test_gpio/dut.log'

    @functools.wraps(func)
    def wrapper(
        self, pattern, *args, expect_all: bool = False, not_matching: List[Union[str, re.Pattern]] = (), **kwargs
    ) -> Union[Union[Match, AnyStr], List[Union[Match, AnyStr]]]:
        patterns = to_list(pattern)
        res = []
        while patterns:
            try:
>               index = func(self, pattern, *args, **kwargs)

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

self = <pexpect.expect.Expecter object at 0x7f9f8a813ed0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7f9f8a885160>\nsearcher: searcher_string:\n    0: b'Button pressed 2 times'")

    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 0x7f9f8a885160>
E           searcher: searcher_string:
E               0: b'Button pressed 2 times'
E           <pytest_embedded.log.PexpectProcess object at 0x7f9f8a885160>
E           searcher: searcher_string:
E               0: b'Button pressed 2 times'

/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/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 0x7f9f8a885be0>

    def test_gpio(dut):
        LOGGER = logging.getLogger(__name__)
    
        dut.expect_exact("Button test")
    
        LOGGER.info("Expecting button press 1")
        dut.expect_exact("Button pressed 1 times")
    
        LOGGER.info("Expecting button press 2")
>       dut.expect_exact("Button pressed 2 times")

tests/validation/gpio/test_gpio.py:13: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f9f8a885be0>
pattern = 'Button pressed 2 times', expect_all = False, not_matching = ()
args = (), kwargs = {}, patterns = ['Button pressed 2 times'], res = []
debug_str = 'Not found "Button pressed 2 times"\nBytes in current buffer (color code eliminated): \nPlease check the full log here: /tmp/pytest-embedded/2025-02-20_08-30-46-888477/test_gpio/dut.log'

    @functools.wraps(func)
    def wrapper(
        self, pattern, *args, expect_all: bool = False, not_matching: List[Union[str, re.Pattern]] = (), **kwargs
    ) -> Union[Union[Match, AnyStr], List[Union[Match, AnyStr]]]:
        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 "Button pressed 2 times"
E               Bytes in current buffer (color code eliminated): 
E               Please check the full log here: /tmp/pytest-embedded/2025-02-20_08-30-46-888477/test_gpio/dut.log

/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pytest_embedded/dut.py:83: TIMEOUT

Check warning on line 0 in validation.psram.test_psram

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 2 runs failed: test_psram (validation.psram.test_psram)

./artifacts/tests-results-wokwi-esp32p4-validation/validation/psram/esp32p4/psram.xml [took 2m 0s]
./artifacts/tests-results-wokwi-esp32s3-validation/validation/psram/esp32s3/psram.xml [took 2m 0s]
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): Wokwi CLI v0.15.3 (d85c2346ef21) Connected to Wokwi Simulation API 1.0.0-20250219-g1e3dc2ab Starting simulation... ESP-ROM:esp32p4-eco1-20240205 Build:Feb 5 2024 rst:0x1... (total 1103 bytes)
Please check the full log here: /tmp/pytest-embedded/2025-02-20_08-32-50-981859/test_psram/dut.log
self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f59d7d6dbe0>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), 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 1103 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-02-20_08-32-50-981859/test_psram/dut.log'

    @functools.wraps(func)
    def wrapper(
        self, pattern, *args, expect_all: bool = False, not_matching: List[Union[str, re.Pattern]] = (), **kwargs
    ) -> Union[Union[Match, AnyStr], List[Union[Match, AnyStr]]]:
        patterns = to_list(pattern)
        res = []
        while patterns:
            try:
>               index = func(self, pattern, *args, **kwargs)

/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pytest_embedded/dut.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pytest_embedded/dut.py:131: in expect
    return self.pexpect_proc.expect(pattern, **kwargs)
/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pexpect/spawnbase.py:354: in expect
    return self.expect_list(compiled_pattern_list,
/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pexpect/spawnbase.py:383: in expect_list
    return exp.expect_loop(timeout)
/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pexpect/expect.py:181: in expect_loop
    return self.timeout(e)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pexpect.expect.Expecter object at 0x7f59d7d6dfd0>
err = TIMEOUT("<pytest_embedded.log.PexpectProcess object at 0x7f59d7d6d160>\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 0x7f59d7d6d160>
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 0x7f59d7d6d160>
E           searcher: searcher_re:
E               0: re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)')

/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/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 0x7f59d7d6dbe0>

    def test_psram(dut):
>       dut.expect_unity_test_output(timeout=120)

tests/validation/psram/test_psram.py:2: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pytest_embedded/dut.py:180: in expect_unity_test_output
    self.expect(UNITY_SUMMARY_LINE_REGEX, timeout=timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_embedded_wokwi.dut.WokwiDut object at 0x7f59d7d6dbe0>
pattern = re.compile(b'^[-]+\\s*(\\d+) Tests (\\d+) Failures (\\d+) Ignored\\s*(?P<result>OK|FAIL)', re.MULTILINE)
expect_all = False, not_matching = (), 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 1103 bytes)\nPlease check the full log here: /tmp/pytest-embedded/2025-02-20_08-32-50-981859/test_psram/dut.log'

    @functools.wraps(func)
    def wrapper(
        self, pattern, *args, expect_all: bool = False, not_matching: List[Union[str, re.Pattern]] = (), **kwargs
    ) -> Union[Union[Match, AnyStr], List[Union[Match, AnyStr]]]:
        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): Wokwi CLI v0.15.3 (d85c2346ef21) Connected to Wokwi Simulation API 1.0.0-20250219-g1e3dc2ab Starting simulation... ESP-ROM:esp32p4-eco1-20240205 Build:Feb 5 2024 rst:0x1... (total 1103 bytes)
E               Please check the full log here: /tmp/pytest-embedded/2025-02-20_08-32-50-981859/test_psram/dut.log

/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/pytest_embedded/dut.py:83: TIMEOUT

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results

37 tests found

There are 37 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
resize_buffers_test
rtc_run_clock
rtc_set_time
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.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.psram.test_psram ‑ test_psram
validation.wifi.test_wifi ‑ test_wifi