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

Fix running async functions without event loop during testing #36859

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

arkq
Copy link
Contributor

@arkq arkq commented Dec 16, 2024

Problem

Python testing uses mobly which is not async-oriented. To "fix" that the "asyncio.run" decorator is used for async functions. However, this provides async event loop only for the time of the test function execution, not for the entire mobly runtime lifetime. This fireback on us when the CHIP stack returns some future object after wrapped async test function returns:

Exception ignored on calling ctypes callback function: <function _OnReadDoneCallback at 0x799104ffdda0>
Traceback (most recent call last):
  File ".../lib/python3.12/site-packages/chip/clusters/Attribute.py", line 939, in _OnReadDoneCallback
    closure.handleDone()
  File ".../lib/python3.12/site-packages/chip/clusters/Attribute.py", line 817, in handleDone
    self._event_loop.call_soon_threadsafe(self._handleDone)
  File "/usr/lib/python3.12/asyncio/base_events.py", line 840, in call_soon_threadsafe
    self._check_closed()
  File "/usr/lib/python3.12/asyncio/base_events.py", line 541, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

Changes

Run mobly in the asyncio.run which provides event loop during whole mobly runtime. However, this requires to run another async event loop from the non-async mobly function... To fix that, the previous "asyncio.run" decorator was modified, so that it runs the event loop in a new thread and blocks the top-level event loop until the "nested" event loop terminates - the wrapped function returns.

Testing

Tested locally that there are no exceptions like before. CI will verify for potential breaks.

Copy link

semanticdiff-com bot commented Dec 16, 2024

@github-actions github-actions bot added tests matter-1.4-te2-script-change Script changes before end of Matter 1.4 TE2 labels Dec 16, 2024
Copy link

github-actions bot commented Dec 16, 2024

PR #36859: Size comparison from d162e3a to c308ab0

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section d162e3a c308ab0 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1353340 1353340 0 0.0
RAM 104112 104112 0 0.0
bl702 lighting-app bl702+eth FLASH 651826 651826 0 0.0
RAM 25353 25353 0 0.0
bl702+wifi FLASH 829154 829154 0 0.0
RAM 14093 14093 0 0.0
bl706+mfd+rpc+littlefs FLASH 1057626 1057626 0 0.0
RAM 23933 23933 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 979000 979000 0 0.0
RAM 16596 16596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 839760 839760 0 0.0
RAM 123664 123664 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825308 825308 0 0.0
RAM 125552 125552 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772096 772096 0 0.0
RAM 114020 114020 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756300 756300 0 0.0
RAM 114228 114228 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 539605 539605 0 0.0
RAM 205760 205760 0 0.0
lock CC3235SF_LAUNCHXL FLASH 573885 573885 0 0.0
RAM 205904 205904 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 681513 681513 0 0.0
RAM 78724 78724 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 701357 701357 0 0.0
RAM 81364 81364 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 701357 701357 0 0.0
RAM 81364 81364 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 658301 658301 0 0.0
RAM 73792 73792 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618073 618073 0 0.0
RAM 71708 71708 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 637701 637701 0 0.0
RAM 74252 74252 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 637701 637701 0 0.0
RAM 74252 74252 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 637473 637473 0 0.0
RAM 74724 74724 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 657181 657181 0 0.0
RAM 77268 77268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 657181 657181 0 0.0
RAM 77268 77268 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 613933 613933 0 0.0
RAM 68812 68812 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 633785 633785 0 0.0
RAM 71444 71444 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 633785 633785 0 0.0
RAM 71444 71444 0 0.0
efr32 lock-app BRD4187C FLASH 932340 932340 0 0.0
RAM 160192 160192 0 0.0
BRD4338a FLASH 746256 746248 -8 -0.0
RAM 233320 233320 0 0.0
window-app BRD4187C FLASH 1024912 1024912 0 0.0
RAM 128296 128296 0 0.0
esp32 all-clusters-app c3devkit DRAM 95360 95360 0 0.0
FLASH 1543380 1543380 0 0.0
IRAM 82542 82542 0 0.0
m5stack DRAM 116312 116312 0 0.0
FLASH 1549950 1549950 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2715629 2715629 0 0.0
RAM 129800 129800 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 6009314 6009314 0 0.0
RAM 523544 523544 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5345370 5345370 0 0.0
RAM 242600 242600 0 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4684938 4684938 0 0.0
RAM 218416 218416 0 0.0
chip-tool debug unknown 5992 5992 0 0.0
FLASH 12849310 12849310 0 0.0
RAM 582506 582506 0 0.0
chip-tool-ipv6only arm64 unknown 21352 21352 0 0.0
FLASH 10983936 10983936 0 0.0
RAM 633424 633424 0 0.0
fabric-admin debug unknown 5816 5816 0 0.0
FLASH 11255859 11255859 0 0.0
RAM 582850 582850 0 0.0
fabric-bridge-app debug unknown 4696 4696 0 0.0
FLASH 4510514 4510514 0 0.0
RAM 205600 205600 0 0.0
fabric-sync debug unknown 4936 4936 0 0.0
FLASH 5610549 5610549 0 0.0
RAM 472584 472584 0 0.0
lighting-app debug+rpc+ui unknown 6104 6104 0 0.0
FLASH 5621633 5621633 0 0.0
RAM 228792 228792 0 0.0
lock-app debug unknown 5376 5376 0 0.0
FLASH 4734178 4734178 0 0.0
RAM 204776 204776 0 0.0
ota-provider-app debug unknown 4752 4752 0 0.0
FLASH 4359916 4359916 0 0.0
RAM 198448 198448 0 0.0
ota-requestor-app debug unknown 4688 4688 0 0.0
FLASH 4498908 4498908 0 0.0
RAM 203032 203032 0 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3032765 3032765 0 0.0
RAM 160424 160424 0 0.0
thermostat-no-ble arm64 unknown 9536 9536 0 0.0
FLASH 4104176 4104176 0 0.0
RAM 243040 243040 0 0.0
tv-app debug unknown 5704 5704 0 0.0
FLASH 5959461 5959461 0 0.0
RAM 596016 596016 0 0.0
tv-casting-app debug unknown 5288 5288 0 0.0
FLASH 11055165 11055165 0 0.0
RAM 692184 692184 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 917880 917880 0 0.0
RAM 143292 143292 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890360 890360 0 0.0
RAM 141487 141487 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 851772 851772 0 0.0
RAM 142200 142200 0 0.0
nxp contact k32w0+release FLASH 585440 585440 0 0.0
RAM 71080 71080 0 0.0
mcxw71+release FLASH 600048 600048 0 0.0
RAM 63176 63176 0 0.0
light k32w0+release FLASH 612412 612412 0 0.0
RAM 70472 70472 0 0.0
k32w1+release FLASH 686592 686592 0 0.0
RAM 48808 48808 0 0.0
lock mcxw71+release FLASH 762928 762928 0 0.0
RAM 70844 70844 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646812 1646812 0 0.0
RAM 212104 212104 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1554236 1554236 0 0.0
RAM 208904 208904 0 0.0
light cy8ckit_062s2_43012 FLASH 1469564 1469564 0 0.0
RAM 200880 200880 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467292 1467292 0 0.0
RAM 225240 225240 0 0.0
qpg lighting-app qpg6105+debug FLASH 664024 664024 0 0.0
RAM 105424 105424 0 0.0
lock-app qpg6105+debug FLASH 621812 621812 0 0.0
RAM 99868 99868 0 0.0
stm32 light STM32WB5MM-DK FLASH 484728 484728 0 0.0
RAM 144880 144880 0 0.0
telink bridge-app tlsr9258a FLASH 682916 682916 0 0.0
RAM 91208 91208 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623346 623346 0 0.0
RAM 31440 31440 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 772176 772176 0 0.0
RAM 49300 49300 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 710770 710770 0 0.0
RAM 73504 73504 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 627790 627790 0 0.0
RAM 142140 142140 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 813804 813804 0 0.0
RAM 99684 99684 0 0.0
tizen all-clusters-app arm unknown 4988 4988 0 0.0
FLASH 1734440 1734440 0 0.0
RAM 90744 90744 0 0.0
chip-tool-ubsan arm unknown 10804 10804 0 0.0
FLASH 17973406 17973406 0 0.0
RAM 7842608 7842608 0 0.0

Copy link

github-actions bot commented Dec 17, 2024

PR #36859: Size comparison from d162e3a to 59f57f9

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section d162e3a 59f57f9 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1353340 1353616 276 0.0
RAM 104112 104136 24 0.0
bl702 lighting-app bl702+eth FLASH 651826 651842 16 0.0
RAM 25353 25353 0 0.0
bl702+wifi FLASH 829154 829426 272 0.0
RAM 14093 14093 0 0.0
bl706+mfd+rpc+littlefs FLASH 1057626 1057898 272 0.0
RAM 23933 23933 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 979000 979272 272 0.0
RAM 16596 16596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 839760 839828 68 0.0
RAM 123664 123672 8 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825308 825368 60 0.0
RAM 125552 125560 8 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772096 772244 148 0.0
RAM 114020 114036 16 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756300 756440 140 0.0
RAM 114228 114236 8 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 539605 539753 148 0.0
RAM 205760 205776 16 0.0
lock CC3235SF_LAUNCHXL FLASH 573885 574033 148 0.0
RAM 205904 205920 16 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 681513 681673 160 0.0
RAM 78724 78732 8 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 701357 701517 160 0.0
RAM 81364 81372 8 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 701357 701517 160 0.0
RAM 81364 81372 8 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 658301 658461 160 0.0
RAM 73792 73800 8 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618073 618217 144 0.0
RAM 71708 71724 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 637701 637853 152 0.0
RAM 74252 74268 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 637701 637853 152 0.0
RAM 74252 74268 16 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 637473 637625 152 0.0
RAM 74724 74732 8 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 657181 657341 160 0.0
RAM 77268 77276 8 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 657181 657341 160 0.0
RAM 77268 77276 8 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 613933 614085 152 0.0
RAM 68812 68820 8 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 633785 633945 160 0.0
RAM 71444 71452 8 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 633785 633945 160 0.0
RAM 71444 71452 8 0.0
efr32 lock-app BRD4187C FLASH 932340 932492 152 0.0
RAM 160192 160204 12 0.0
BRD4338a FLASH 746256 746464 208 0.0
RAM 233320 233332 12 0.0
window-app BRD4187C FLASH 1024912 1025128 216 0.0
RAM 128296 128308 12 0.0
esp32 all-clusters-app c3devkit DRAM 95360 95376 16 0.0
FLASH 1543380 1543430 50 0.0
IRAM 82542 82542 0 0.0
m5stack DRAM 116312 116320 8 0.0
FLASH 1549950 1550006 56 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2715629 2716107 478 0.0
RAM 129800 129896 96 0.1
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 6009314 6009352 38 0.0
RAM 523544 523640 96 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5345370 5345924 554 0.0
RAM 242600 242696 96 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4684938 4685460 522 0.0
RAM 218416 218512 96 0.0
chip-tool debug unknown 5992 5992 0 0.0
FLASH 12849310 12849310 0 0.0
RAM 582506 582506 0 0.0
chip-tool-ipv6only arm64 unknown 21352 21352 0 0.0
FLASH 10983936 10983936 0 0.0
RAM 633424 633424 0 0.0
fabric-admin debug unknown 5816 5816 0 0.0
FLASH 11255859 11255859 0 0.0
RAM 582850 582850 0 0.0
fabric-bridge-app debug unknown 4696 4696 0 0.0
FLASH 4510514 4510992 478 0.0
RAM 205600 205696 96 0.0
fabric-sync debug unknown 4936 4936 0 0.0
FLASH 5610549 5611061 512 0.0
RAM 472584 472680 96 0.0
lighting-app debug+rpc+ui unknown 6104 6104 0 0.0
FLASH 5621633 5622193 560 0.0
RAM 228792 228888 96 0.0
lock-app debug unknown 5376 5376 0 0.0
FLASH 4734178 4734732 554 0.0
RAM 204776 204872 96 0.0
ota-provider-app debug unknown 4752 4752 0 0.0
FLASH 4359916 4360438 522 0.0
RAM 198448 198544 96 0.0
ota-requestor-app debug unknown 4688 4688 0 0.0
FLASH 4498908 4499462 554 0.0
RAM 203032 203128 96 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3032765 3033277 512 0.0
RAM 160424 160520 96 0.1
thermostat-no-ble arm64 unknown 9536 9552 16 0.2
FLASH 4104176 4104720 544 0.0
RAM 243040 243160 120 0.0
tv-app debug unknown 5704 5704 0 0.0
FLASH 5959461 5959989 528 0.0
RAM 596016 596112 96 0.0
tv-casting-app debug unknown 5288 5288 0 0.0
FLASH 11055165 11055693 528 0.0
RAM 692184 692328 144 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 917880 918036 156 0.0
RAM 143292 143308 16 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890360 890460 100 0.0
RAM 141487 141495 8 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 851772 851924 152 0.0
RAM 142200 142220 20 0.0
nxp contact k32w0+release FLASH 585440 585472 32 0.0
RAM 71080 71088 8 0.0
mcxw71+release FLASH 600048 600184 136 0.0
RAM 63176 63184 8 0.0
light k32w0+release FLASH 612412 612476 64 0.0
RAM 70472 70480 8 0.0
k32w1+release FLASH 686592 686736 144 0.0
RAM 48808 48816 8 0.0
lock mcxw71+release FLASH 762928 763072 144 0.0
RAM 70844 70852 8 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646812 1646996 184 0.0
RAM 212104 212104 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1554236 1554436 200 0.0
RAM 208904 208920 16 0.0
light cy8ckit_062s2_43012 FLASH 1469564 1469764 200 0.0
RAM 200880 200888 8 0.0
lock cy8ckit_062s2_43012 FLASH 1467292 1467492 200 0.0
RAM 225240 225248 8 0.0
qpg lighting-app qpg6105+debug FLASH 664024 664168 144 0.0
RAM 105424 105432 8 0.0
lock-app qpg6105+debug FLASH 621812 621964 152 0.0
RAM 99868 99884 16 0.0
stm32 light STM32WB5MM-DK FLASH 484728 484884 156 0.0
RAM 144880 144888 8 0.0
telink bridge-app tlsr9258a FLASH 682916 683080 164 0.0
RAM 91208 91224 16 0.0
contact-sensor-app tlsr9528a_retention FLASH 623346 623494 148 0.0
RAM 31440 31456 16 0.1
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 772176 772312 136 0.0
RAM 49300 49316 16 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 710770 710934 164 0.0
RAM 73504 73520 16 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 627790 627950 160 0.0
RAM 142140 142156 16 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 813804 813968 164 0.0
RAM 99684 99700 16 0.0
tizen all-clusters-app arm unknown 4988 4996 8 0.2
FLASH 1734440 1734844 404 0.0
RAM 90744 90784 40 0.0
chip-tool-ubsan arm unknown 10804 10804 0 0.0
FLASH 17973406 17973406 0 0.0
RAM 7842608 7842608 0 0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
matter-1.4-te2-script-change Script changes before end of Matter 1.4 TE2 review - pending tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants