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

Delay the commissioning window ended check by one second #37352

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Apollon77
Copy link
Contributor

@Apollon77 Apollon77 commented Feb 2, 2025

The test plan states that the test should wait till the time is over. The current test waits exactly as long as the window is. If there are cases where on the DUT the timers are not that accurate this "very exact check" could lead to false positives.

We had such cases with matter.js in the CI here and there because Node.js Timers are not 100% accurate and depending on other tasks in the event loop closing the window could be slightly delayed.

One CI example can be seen in https://github.com/project-chip/matter.js/actions/runs/12964616630/job/36163527843#step:4:3695

The analysis of a comparable showed this:

  • 10:17:46.984 matter.js enables the timer for 180s
  • 10:17:46.987 matter.js send InvokeResponse
  • 10:17:46.989 till 10:20:46.989 test-runner wait, so exactly 180s
  • 10:20:46.992 we get the read and we are still on "window opened"
  • 10:20:46.994 we close the window - 10:20:46.996 trx is unlocked so done

So the test did the read 4ms too early.

This proposal could make this test a bit more false positive secure also for production certifications. The test and the exact timers in the test runner are "too exact" in my eyes and giving the DUT one second more time should not bring any harm but reduce false positives.

Testing

This is a test itself. It is not executed in CI. I tested it manually locally

The test plan states that the test should wait till the time is over. The current test waits exactly as long as the window is. If there are cases where on the DUT the timers are not that accurate this "very exact check" could lead to false positives.

We had such cases with matter.js in the CI here and there because Node.js Timers are not 100% accurate and depending on other tasks in the event loop closing the window could be slightly delayed.

One CI example can be seen in https://github.com/project-chip/matter.js/actions/runs/12964616630/job/36163527843#step:4:3695

The analysis of a comparable showed this:

* 10:17:46.984 matter.js enables the timer for 180s
* 10:17:46.987 matter.js send InvokeResponse
* 10:17:46.989 till 10:20:46.989 test-runner wait, so exactly 180s
* 10:20:46.992 we get the read and we are still on "window opened"
* 10:20:46.994 we close the window - 10:20:46.996 trx is unlocked so done

So the test did the read 4ms too early.

This proposal could make this test a bit more false positive secure also for prodiction certifications.
Copy link

Review changes with  SemanticDiff

Copy link

github-actions bot commented Feb 2, 2025

PR #37352: Size comparison from 95d5de5 to 521c19e

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 95d5de5 521c19e change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1093546 1093544 -2 -0.0
RAM 103298 103298 0 0.0
bl702 lighting-app bl702+eth FLASH 650158 650158 0 0.0
RAM 25265 25265 0 0.0
bl702+wifi FLASH 828066 828066 0 0.0
RAM 13981 13981 0 0.0
bl706+mfd+rpc+littlefs FLASH 1056626 1056624 -2 -0.0
RAM 23861 23861 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 888060 888058 -2 -0.0
RAM 18504 18504 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 971046 971044 -2 -0.0
RAM 16368 16368 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 838032 838032 0 0.0
RAM 123464 123464 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823436 823436 0 0.0
RAM 125344 125344 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770676 770676 0 0.0
RAM 113804 113804 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 754920 754920 0 0.0
RAM 114012 114012 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538461 538461 0 0.0
RAM 205192 205192 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572325 572325 0 0.0
RAM 205344 205344 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 679433 679433 0 0.0
RAM 78532 78532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 699285 699285 0 0.0
RAM 81172 81172 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 699285 699285 0 0.0
RAM 81172 81172 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 656213 656213 0 0.0
RAM 73600 73600 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 615817 615817 0 0.0
RAM 71516 71516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635445 635445 0 0.0
RAM 74060 74060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635445 635445 0 0.0
RAM 74060 74060 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635289 635289 0 0.0
RAM 74524 74524 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 654997 654997 0 0.0
RAM 77068 77068 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 654997 654997 0 0.0
RAM 77068 77068 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611725 611725 0 0.0
RAM 68612 68612 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631585 631585 0 0.0
RAM 71252 71252 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631585 631585 0 0.0
RAM 71252 71252 0 0.0
efr32 lock-app BRD4187C FLASH 936232 936232 0 0.0
RAM 159872 159872 0 0.0
BRD4338a FLASH 729884 729876 -8 -0.0
RAM 234700 234700 0 0.0
window-app BRD4187C FLASH 1029256 1029248 -8 -0.0
RAM 127976 127976 0 0.0
esp32 all-clusters-app c3devkit DRAM 97296 97296 0 0.0
FLASH 1577062 1577062 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116092 116092 0 0.0
FLASH 1544978 1544978 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4760 4760 0 0.0
FLASH 2708945 2708945 0 0.0
RAM 132816 132816 0 0.0
all-clusters-app debug unknown 5568 5568 0 0.0
FLASH 5974968 5974968 0 0.0
RAM 531632 531632 0 0.0
all-clusters-minimal-app debug unknown 5464 5464 0 0.0
FLASH 5323654 5323654 0 0.0
RAM 242744 242744 0 0.0
bridge-app debug unknown 5480 5480 0 0.0
FLASH 4681842 4681842 0 0.0
RAM 221480 221480 0 0.0
chip-tool debug unknown 6120 6120 0 0.0
FLASH 13098730 13098730 0 0.0
RAM 596770 596770 0 0.0
chip-tool-ipv6only arm64 unknown 21848 21848 0 0.0
FLASH 11164208 11164208 0 0.0
RAM 648496 648496 0 0.0
fabric-admin debug unknown 5808 5808 0 0.0
FLASH 11388203 11388203 0 0.0
RAM 596554 596554 0 0.0
fabric-bridge-app debug unknown 4736 4736 0 0.0
FLASH 4506440 4506440 0 0.0
RAM 208664 208664 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5612821 5612821 0 0.0
RAM 483536 483536 0 0.0
lighting-app debug+rpc+ui unknown 6144 6144 0 0.0
FLASH 5624593 5624593 0 0.0
RAM 231760 231760 0 0.0
lock-app debug unknown 5416 5416 0 0.0
FLASH 4730956 4730956 0 0.0
RAM 207728 207728 0 0.0
ota-provider-app debug unknown 4776 4776 0 0.0
FLASH 4359500 4359500 0 0.0
RAM 201368 201368 0 0.0
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4496972 4496972 0 0.0
RAM 205952 205952 0 0.0
shell debug unknown 4256 4256 0 0.0
FLASH 3004877 3004877 0 0.0
RAM 160504 160504 0 0.0
thermostat-no-ble arm64 unknown 9536 9536 0 0.0
FLASH 4098768 4098768 0 0.0
RAM 246144 246144 0 0.0
tv-app debug unknown 5744 5744 0 0.0
FLASH 5952421 5952421 0 0.0
RAM 606936 606936 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11272333 11272333 0 0.0
RAM 710896 710896 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 906992 906992 0 0.0
RAM 142395 142395 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901532 901532 0 0.0
RAM 124739 124739 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 845716 845716 0 0.0
RAM 141323 141323 0 0.0
nxp contact k32w0+release FLASH 584304 584304 0 0.0
RAM 70860 70860 0 0.0
mcxw71+release FLASH 599664 599664 0 0.0
RAM 63080 63080 0 0.0
light k32w0+release FLASH 610748 610748 0 0.0
RAM 70252 70252 0 0.0
k32w1+release FLASH 685208 685208 0 0.0
RAM 48664 48664 0 0.0
lock mcxw71+release FLASH 748680 748680 0 0.0
RAM 67476 67476 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646356 1646356 0 0.0
RAM 211560 211560 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553148 1553148 0 0.0
RAM 208376 208376 0 0.0
light cy8ckit_062s2_43012 FLASH 1468828 1468828 0 0.0
RAM 200352 200352 0 0.0
lock cy8ckit_062s2_43012 FLASH 1466860 1466860 0 0.0
RAM 224688 224688 0 0.0
qpg lighting-app qpg6105+debug FLASH 662016 662016 0 0.0
RAM 105204 105204 0 0.0
lock-app qpg6105+debug FLASH 619804 619804 0 0.0
RAM 99648 99648 0 0.0
stm32 light STM32WB5MM-DK FLASH 482624 482624 0 0.0
RAM 144672 144672 0 0.0
telink bridge-app tl7218x FLASH 664774 664774 0 0.0
RAM 90812 90812 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621532 621532 0 0.0
RAM 31484 31484 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 770284 770284 0 0.0
RAM 43552 43552 0 0.0
tl7218x FLASH 778816 778816 0 0.0
RAM 98688 98688 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680150 680150 0 0.0
RAM 52176 52176 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 708704 708704 0 0.0
RAM 73384 73384 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625618 625618 0 0.0
RAM 142016 142016 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 813000 813000 0 0.0
RAM 99560 99560 0 0.0
tizen all-clusters-app arm unknown 5116 5116 0 0.0
FLASH 1751916 1751916 0 0.0
RAM 93524 93524 0 0.0
chip-tool-ubsan arm unknown 11408 11408 0 0.0
FLASH 18698198 18698198 0 0.0
RAM 8183840 8183840 0 0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant