connectedhomeip
[HVAC] Make Thermostat Preset tests generic
#35290
Merged

[HVAC] Make Thermostat Preset tests generic #35290

hasty
hasty222 days ago

This alters the Thermostat test script TC_TSTAT_4_2.py to not have foreknowledge of the server's state before testing.

hasty [HVAC] Alter Thermostat Preset tests to not rely on knowledge of the …
98aa3280
semanticdiff-com
semanticdiff-com222 days ago (edited 222 days ago)

Review changes with SemanticDiff.

Analyzed 1 of 1 files.

Overall, the semantic diff is 38% smaller than the GitHub diff.

Filename Status
✔️ src/python_testing/TC_TSTAT_4_2.py 37.94% smaller
github-actions github-actions added tests
github-actions github-actions added matter-1.4-te2-script-change
pullapprove pullapprove requested a review from andy31415 andy31415 222 days ago
pullapprove pullapprove requested a review from andyg-apple andyg-apple 222 days ago
pullapprove pullapprove requested a review from anush-apple anush-apple 222 days ago
pullapprove pullapprove requested a review from arkq arkq 222 days ago
pullapprove pullapprove requested a review from axelnxp axelnxp 222 days ago
pullapprove pullapprove requested a review from bauerschwan bauerschwan 222 days ago
pullapprove pullapprove requested a review from bzbarsky-apple bzbarsky-apple 222 days ago
pullapprove pullapprove requested a review from carol-apple carol-apple 222 days ago
pullapprove pullapprove requested a review from cecille cecille 222 days ago
pullapprove pullapprove requested a review from chapongatien chapongatien 222 days ago
pullapprove pullapprove requested a review from chrisdecenzo chrisdecenzo 222 days ago
pullapprove pullapprove requested a review from chshu chshu 222 days ago
pullapprove pullapprove requested a review from chulspro chulspro 222 days ago
pullapprove pullapprove requested a review from cliffamzn cliffamzn 222 days ago
pullapprove pullapprove requested a review from Damian-Nordic Damian-Nordic 222 days ago
pullapprove pullapprove requested a review from dhrishi dhrishi 222 days ago
pullapprove pullapprove requested a review from doru91 doru91 222 days ago
pullapprove pullapprove requested a review from fessehaeve fessehaeve 222 days ago
pullapprove pullapprove requested a review from harimau-qirex harimau-qirex 222 days ago
pullapprove pullapprove requested a review from harsha-rajendran harsha-rajendran 222 days ago
pullapprove pullapprove requested a review from hawk248 hawk248 222 days ago
pullapprove pullapprove requested a review from hicklin hicklin 222 days ago
pullapprove pullapprove requested a review from jepenven-silabs jepenven-silabs 222 days ago
pullapprove pullapprove requested a review from jmartinez-silabs jmartinez-silabs 222 days ago
pullapprove pullapprove requested a review from jmeg-sfy jmeg-sfy 222 days ago
pullapprove pullapprove requested a review from joonhaengHeo joonhaengHeo 222 days ago
pullapprove pullapprove requested a review from jtung-apple jtung-apple 222 days ago
pullapprove pullapprove requested a review from kiel-apple kiel-apple 222 days ago
pullapprove pullapprove requested a review from kkasperczyk-no kkasperczyk-no 222 days ago
pullapprove pullapprove requested a review from ksperling-apple ksperling-apple 222 days ago
pullapprove pullapprove requested a review from lazarkov lazarkov 222 days ago
pullapprove pullapprove requested a review from lpbeliveau-silabs lpbeliveau-silabs 222 days ago
pullapprove pullapprove requested a review from LuDuda LuDuda 222 days ago
pullapprove pullapprove requested a review from mhazley mhazley 222 days ago
pullapprove pullapprove requested a review from mkardous-silabs mkardous-silabs 222 days ago
pullapprove pullapprove requested a review from mspang mspang 222 days ago
pullapprove pullapprove requested a review from nivi-apple nivi-apple 222 days ago
pullapprove pullapprove requested a review from p0fi p0fi 222 days ago
pullapprove pullapprove requested a review from plauric plauric 222 days ago
pullapprove pullapprove requested a review from rcasallas-silabs rcasallas-silabs 222 days ago
pullapprove pullapprove requested a review from ReneJosefsen ReneJosefsen 222 days ago
pullapprove pullapprove requested a review from robszewczyk robszewczyk 222 days ago
pullapprove pullapprove requested a review from saurabhst saurabhst 222 days ago
pullapprove pullapprove requested a review from selissia selissia 222 days ago
pullapprove pullapprove requested a review from sharadb-amazon sharadb-amazon 222 days ago
pullapprove pullapprove requested a review from tcarmelveilleux tcarmelveilleux 222 days ago
pullapprove pullapprove requested a review from tecimovic tecimovic 222 days ago
pullapprove pullapprove requested a review from tehampson tehampson 222 days ago
pullapprove pullapprove requested a review from tima-q tima-q 222 days ago
pullapprove pullapprove requested a review from tobiasgraf tobiasgraf 222 days ago
pullapprove pullapprove requested a review from turon turon 222 days ago
pullapprove pullapprove requested a review from vivien-apple vivien-apple 222 days ago
pullapprove pullapprove requested a review from wiba-nordic wiba-nordic 222 days ago
pullapprove pullapprove requested a review from woody-apple woody-apple 222 days ago
pullapprove pullapprove requested a review from younghak-hwang younghak-hwang 222 days ago
pullapprove pullapprove requested a review from yufengwangca yufengwangca 222 days ago
pullapprove pullapprove requested a review from yunhanw-google yunhanw-google 222 days ago
pullapprove pullapprove added review - pending
hasty Pick midpoint setpoints for new presets
abf02704
github-actions
github-actions222 days ago (edited 222 days ago)

PR #35290: Size comparison from cfdbba9 to abf0270

Full report (3 builds for nxp, stm32)
platform target config section cfdbba9 abf0270 change % change
nxp contact k32w1+release FLASH 590352 590352 0 0.0
RAM 62488 62488 0 0.0
light k32w1+release FLASH 675024 675024 0 0.0
RAM 71472 71472 0 0.0
stm32 light STM32WB5MM-DK FLASH 478640 478640 0 0.0
RAM 144716 144716 0 0.0
hasty Lint fixes
35ab2940
github-actions
github-actions222 days ago (edited 222 days ago)

PR #35290: Size comparison from cfdbba9 to 35ab294

Full report (77 builds for bl602, bl702, bl702l, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section cfdbba9 35ab294 change % change
bl602 lighting-app bl602 FLASH 1279022 1279022 0 0.0
RAM 95880 95880 0 0.0
bl602+mfd FLASH 1292876 1292876 0 0.0
RAM 96024 96024 0 0.0
bl602+rpc FLASH 1317986 1317986 0 0.0
RAM 104304 104304 0 0.0
bl702 lighting-app bl702 FLASH 944636 944636 0 0.0
RAM 15209 15209 0 0.0
bl702+mfd FLASH 947036 947036 0 0.0
RAM 15353 15353 0 0.0
bl702+rpc FLASH 1039692 1039692 0 0.0
RAM 24221 24221 0 0.0
bl706-eth FLASH 647452 647452 0 0.0
RAM 25305 25305 0 0.0
bl706-wifi FLASH 894866 894866 0 0.0
RAM 14525 14525 0 0.0
bl702l lighting-app bl702l FLASH 961040 961040 0 0.0
RAM 16868 16868 0 0.0
bl702l+mfd FLASH 963662 963662 0 0.0
RAM 17012 17012 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 672673 672673 0 0.0
RAM 78300 78300 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 692533 692533 0 0.0
RAM 80932 80932 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 692533 692533 0 0.0
RAM 80932 80932 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 649469 649469 0 0.0
RAM 73368 73368 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611113 611113 0 0.0
RAM 71292 71292 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 630749 630749 0 0.0
RAM 73844 73844 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 630749 630749 0 0.0
RAM 73844 73844 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 629153 629153 0 0.0
RAM 74308 74308 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 648861 648861 0 0.0
RAM 76860 76860 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 648861 648861 0 0.0
RAM 76860 76860 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 603093 603093 0 0.0
RAM 68348 68348 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 622953 622953 0 0.0
RAM 70980 70980 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 622953 622953 0 0.0
RAM 70980 70980 0 0.0
efr32 lighting-app BRD4187C FLASH 930748 930740 -8 -0.0
RAM 135096 135096 0 0.0
lock-app BRD4338a FLASH 740732 740724 -8 -0.0
RAM 209516 209516 0 0.0
window-app BRD4187C FLASH 1015808 1015800 -8 -0.0
RAM 127036 127036 0 0.0
esp32 all-clusters-app c3devkit DRAM 94200 94200 0 0.0
FLASH 1534426 1534426 0 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115136 115136 0 0.0
FLASH 1544454 1544454 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4624 4624 0 0.0
FLASH 2760195 2760195 0 0.0
RAM 128520 128520 0 0.0
all-clusters-app debug unknown 5408 5408 0 0.0
FLASH 6053690 6053690 0 0.0
RAM 510312 510312 0 0.0
all-clusters-minimal-app debug unknown 5304 5304 0 0.0
FLASH 5383170 5383170 0 0.0
RAM 240232 240232 0 0.0
bridge-app debug unknown 5288 5288 0 0.0
FLASH 4730458 4730458 0 0.0
RAM 216952 216952 0 0.0
chip-tool debug unknown 5832 5832 0 0.0
FLASH 12648630 12648630 0 0.0
RAM 558354 558354 0 0.0
chip-tool-ipv6only arm64 unknown 20352 20352 0 0.0
FLASH 11320764 11320764 0 0.0
RAM 608424 608424 0 0.0
fabric-admin debug unknown 5664 5664 0 0.0
FLASH 10928223 10928223 0 0.0
RAM 556602 556602 0 0.0
fabric-bridge-app debug unknown 4520 4520 0 0.0
FLASH 4553270 4553270 0 0.0
RAM 203984 203984 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5666705 5666705 0 0.0
RAM 228056 228056 0 0.0
lock-app debug unknown 5224 5224 0 0.0
FLASH 4785804 4785804 0 0.0
RAM 203768 203768 0 0.0
ota-provider-app debug unknown 4600 4600 0 0.0
FLASH 4425278 4425278 0 0.0
RAM 197752 197752 0 0.0
ota-requestor-app debug unknown 4536 4536 0 0.0
FLASH 4563896 4563896 0 0.0
RAM 202288 202288 0 0.0
shell debug unknown 4176 4176 0 0.0
FLASH 3085661 3085661 0 0.0
RAM 159040 159040 0 0.0
thermostat-no-ble arm64 unknown 9296 9296 0 0.0
FLASH 4323356 4323356 0 0.0
RAM 241888 241888 0 0.0
tv-app debug unknown 5504 5504 0 0.0
FLASH 6010325 6010325 0 0.0
RAM 583192 583192 0 0.0
tv-casting-app debug unknown 5168 5168 0 0.0
FLASH 10853421 10853421 0 0.0
RAM 645768 645768 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 910676 910676 0 0.0
RAM 142219 142219 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 882632 882632 0 0.0
RAM 140358 140358 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 841616 841616 0 0.0
RAM 141038 141038 0 0.0
nxp contact k32w0+release FLASH 577732 577732 0 0.0
RAM 70444 70444 0 0.0
k32w1+release FLASH 590352 590352 0 0.0
RAM 62488 62488 0 0.0
light k32w0+release FLASH 613160 613160 0 0.0
RAM 69916 69916 0 0.0
k32w1+release FLASH 675024 675024 0 0.0
RAM 71472 71472 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1641596 1641596 0 0.0
RAM 210920 210920 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1545132 1545132 0 0.0
RAM 207632 207632 0 0.0
light cy8ckit_062s2_43012 FLASH 1464636 1464636 0 0.0
RAM 200728 200728 0 0.0
lock cy8ckit_062s2_43012 FLASH 1463524 1463524 0 0.0
RAM 225064 225064 0 0.0
qpg lighting-app qpg6105+debug FLASH 656300 656300 0 0.0
RAM 105128 105128 0 0.0
lock-app qpg6105+debug FLASH 614144 614144 0 0.0
RAM 99612 99612 0 0.0
stm32 light STM32WB5MM-DK FLASH 478640 478640 0 0.0
RAM 144716 144716 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620414 620414 0 0.0
RAM 50932 50932 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 682574 682574 0 0.0
RAM 149552 149552 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 774652 774652 0 0.0
RAM 110712 110712 0 0.0
bridge-app tlsr9258a FLASH 679144 679144 0 0.0
RAM 91588 91588 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622006 622006 0 0.0
RAM 50972 50972 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708016 708016 0 0.0
RAM 74312 74312 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 620950 620950 0 0.0
RAM 145532 145532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 807082 807082 0 0.0
RAM 99456 99456 0 0.0
lock-app-dfu tlsr9528a FLASH 654988 654988 0 0.0
RAM 67008 67008 0 0.0
ota-requestor-app tlsr9258a FLASH 697272 697272 0 0.0
RAM 91272 91272 0 0.0
pump-app-usb tlsr9518adk80d FLASH 631452 631452 0 0.0
RAM 55752 55752 0 0.0
pump-controller-app tlsr9518adk80d FLASH 608962 608962 0 0.0
RAM 52996 52996 0 0.0
shell tlsr9518adk80d FLASH 466890 466890 0 0.0
RAM 68660 68660 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 628792 628792 0 0.0
RAM 52692 52692 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 652944 652944 0 0.0
RAM 56632 56632 0 0.0
thermostat tlsr9518adk80d FLASH 635450 635450 0 0.0
RAM 53400 53400 0 0.0
window-covering tlsr9118bdk40d FLASH 522948 522948 0 0.0
RAM 98532 98532 0 0.0
tizen all-clusters-app arm unknown 4848 4848 0 0.0
FLASH 1710388 1710388 0 0.0
RAM 89376 89376 0 0.0
chip-tool-ubsan arm unknown 10272 10272 0 0.0
FLASH 17507350 17507350 0 0.0
RAM 7600020 7600020 0 0.0
bzbarsky-apple
bzbarsky-apple commented on 2024-08-29
Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
317 presets = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=cluster.Attributes.Presets)
318 asserts.assert_equal(presets, current_presets, "Presets were updated which is not expected")
319 else:
320
logger.info(
321
"Couldn't run test step 3 since there was no available preset scenario to append")
bzbarsky-apple222 days ago

Step 3 doesn't require appending a preset. It just requires changing the presets. For example, you could change one of the setpoints on one of the existing presets?

hasty222 days ago

Step 3 in the existing script appended a preset, because it saved a copy new_presets instead of a copy of initial_presets. That new preset is needed for later tests.

bzbarsky-apple222 days ago

OK. How about followup to fix step 3 to not append a preset so it can be tested in more cases. Later tests that need the new preset should handle ensuring it exists themselves. But for now, fine. Just make sure this is tracked, please.

hasty222 days ago

Noted in #35298

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
8773 "Schedules attribute should have the right status")
8874 asserts.assert_true(found_preset_status, "Preset attribute should have a status")
8975
76
def check_saved_presets(self, sent_presets: list, returned_presets: list):
bzbarsky-apple222 days ago

Probably better to call this check_returned_presets?

hasty222 days ago

OK, renamed.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
333 if availableScenario is not None and len(builtInPresets) > 0:
334 builtInPresets[0].builtIn = NullValue
282335
283 # Write to the presets attribute after calling AtomicRequest command
284 await self.write_presets(endpoint=endpoint, presets=test_presets)
336
test_presets.append(cluster.Structs.PresetStruct(presetHandle=NullValue, presetScenario=availableScenario,
337
coolingSetpoint=2700, heatingSetpoint=1900, builtIn=False))
bzbarsky-apple222 days ago

This can run into the same "what if we are at max length?" issue step 3 is trying to work around. Again, modifying setpoints seems like a better idea.

hasty222 days ago

As above, this is duplicating the functionality of the existing script, which appends a new preset because it's using new_presets

bzbarsky-apple222 days ago

I understand that. Again, followup is best, but we should fix this to have our test applicable to as many thermostats as possible.

bzbarsky-apple222 days ago

Alright:

  1. Followup for removing the append bit.
  2. In this PR, use our computed valid setpoints above, not the hardcoded values.
hasty222 days ago

Noted in #35298

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
331 builtInPresets = list(preset for preset in test_presets if preset.builtIn)
332
333 if availableScenario is not None and len(builtInPresets) > 0:
334
builtInPresets[0].builtIn = NullValue
bzbarsky-apple222 days ago

Why are we modifying that? We never use it later...

hasty222 days ago

To check to make sure the server handles a null builtIn for an existing preset correctly.

bzbarsky-apple222 days ago

OK, but this test plan step says nothing about built-in presets. Testing that as a ride-along is fine, but disabling this test step altogether if there are no built-in presets, which is what this code does, seems wrong.

The answer to my original question, though, is that the same object is in builtInPresets and test_presets so we are in fact modifying test_presets here. OK.

hasty222 days ago

Moved the built-in check so it runs without any built-ins

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
397 # Send the AtomicRequest begin command
398 await self.send_atomic_request_begin_command()
326399
327 # Send the AtomicRequest commit command and expect InvalidInState for presets.
328 await self.send_atomic_request_commit_command(expected_overall_status=Status.Failure, expected_preset_status=Status.InvalidInState)
400
# Write to the presets attribute after removing the preset that was set as the active preset handle. Remove the last entry with preset handle (b'\x03')
401
test_presets = current_presets.copy()
402
test_presets = list(preset for preset in test_presets if preset.presetHandle is not activePresetHandle)
bzbarsky-apple222 days ago
Suggested change
# Write to the presets attribute after removing the preset that was set as the active preset handle. Remove the last entry with preset handle (b'\x03')
test_presets = current_presets.copy()
test_presets = list(preset for preset in test_presets if preset.presetHandle is not activePresetHandle)
# Write to the presets attribute after removing the preset that was set as the active preset handle.
test_presets = list(preset for preset in current_presets if preset.presetHandle is not activePresetHandle)
Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
330412 self.step("7")
331413 if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):
332414
333 # Send the AtomicRequest begin command
334 await self.send_atomic_request_begin_command()
335
336415
# Write to the presets attribute after setting the builtIn flag to False for preset with handle (b'\x01')
bzbarsky-apple222 days ago
Suggested change
# Write to the presets attribute after setting the builtIn flag to False for preset with handle (b'\x01')
# Write to the presets attribute after setting the builtIn flag to False for a built-in preset.
Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
347436
348 # Send the AtomicRequest begin command
349 await self.send_atomic_request_begin_command()
437 availableScenario = self.get_available_scenario(presetTypes=presetTypes, presetScenarioCounts=presetScenarioCounts)
350438
351 # Write to the presets attribute after adding a preset with builtIn set to True
352 test_presets = copy.deepcopy(new_presets_with_handle)
353 test_presets.append(cluster.Structs.PresetStruct(presetHandle=NullValue, presetScenario=cluster.Enums.PresetScenarioEnum.kWake,
354 name="Wake", coolingSetpoint=2800, heatingSetpoint=1800, builtIn=True))
439
if len(current_presets) > 0 and len(current_presets) < numberOfPresetsSupported and availableScenario is not None:
bzbarsky-apple222 days ago

Why do we need len(current_presets) > 0? I don't think this test relies on that in any way.

hasty222 days ago

Removed.

bzbarsky-apple222 days ago

This still has a len(current_presets) > 0 check....

hasty222 days ago

Removed the other one instead. Fixed.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
453 await self.send_atomic_request_rollback_command()
454 else:
455 logger.info(
456
"Couldn't run test step 8 since there was no available preset scenario to append")
bzbarsky-apple222 days ago

Technically, we could do this step even if len(current_presets) == numberOfPresetsSupported as long as there is a non-built-in preset in the list and we remove it as part of our write. But that should probably be a followup.

hasty222 days ago

Noted in #35298

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
366463
367464 # Write to the presets attribute after adding a preset with a preset handle that doesn't exist in Presets attribute
368 test_presets = copy.deepcopy(new_presets_with_handle)
369 test_presets.append(cluster.Structs.PresetStruct(presetHandle=b'\x08', presetScenario=cluster.Enums.PresetScenarioEnum.kWake,
370 name="Wake", coolingSetpoint=2800, heatingSetpoint=1800, builtIn=True))
465 test_presets = copy.deepcopy(current_presets)
466
test_presets.append(cluster.Structs.PresetStruct(presetHandle=random.randbytes(16), presetScenario=cluster.Enums.PresetScenarioEnum.kWake,
bzbarsky-apple222 days ago

I guess we are assuming that the chance of that preset handle colliding is low enought to be ignored? Probably fair enough... But might be worth an explicit comment saying so clearly.

hasty222 days ago

Assuming we're not patching random to be deterministic or something, a collision in sixteen random bytes is heat-death-of-the-universe unlikely.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
484 # Send the AtomicRequest begin command
485 await self.send_atomic_request_begin_command()
486
487
# Write to the presets attribute after adding a duplicate preset with handle (b'\x03')
bzbarsky-apple222 days ago
Suggested change
# Write to the presets attribute after adding a duplicate preset with handle (b'\x03')
# Write to the presets attribute after adding a duplicate preset
Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
379476
380 # Send the AtomicRequest begin command
381 await self.send_atomic_request_begin_command()
477 availableScenario = self.get_available_scenario(presetTypes=presetTypes, presetScenarioCounts=presetScenarioCounts)
382478
383 # Write to the presets attribute after adding a duplicate preset with handle (b'\x03')
384 test_presets = copy.deepcopy(new_presets_with_handle)
385 test_presets.append(cluster.Structs.PresetStruct(
386 presetHandle=b'\x03', presetScenario=cluster.Enums.PresetScenarioEnum.kSleep, name="Sleep", coolingSetpoint=2700, heatingSetpoint=1900, builtIn=False))
479
if len(current_presets) > 0 and len(current_presets) < numberOfPresetsSupported and availableScenario is not None:
bzbarsky-apple222 days ago

We could do this test even if len(current_presets) == 0: we would just need to add two presets with the same handle to the list.

Similarly, we could do the test when len(current_presets) == numberOfPresetsSupported as long as there is a non-builtin preset we can remove.

In general, it seems like we could have some helper function for "strip out all the non-required stuff from this list, please. so I can add things to it" or something....

Followup for those bits, please; getting this right will be a bit complicated.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
486
487 # Write to the presets attribute after adding a duplicate preset with handle (b'\x03')
488 test_presets.append(cluster.Structs.PresetStruct(
489
presetHandle=duplicatePreset.presetHandle, presetScenario=availableScenario, coolingSetpoint=2700, heatingSetpoint=1900, builtIn=False))
bzbarsky-apple222 days ago

Shouldn't this use our computed setpoint values, not hardcoded ones?

hasty222 days ago

Yeah, not sure why the original script used different setpoints here. Fixed.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
504 notBuiltInPresets = list(preset for preset in test_presets if preset.builtIn is False)
402505
403 await self.write_presets(endpoint=endpoint, presets=test_presets, expected_status=Status.ConstraintError)
506 if len(notBuiltInPresets) > 0:
507
# Write to the presets attribute after setting the builtIn flag to True for preset with handle (b'\x03')
bzbarsky-apple222 days ago
Suggested change
# Write to the presets attribute after setting the builtIn flag to True for preset with handle (b'\x03')
# Write to the presets attribute after setting the builtIn flag to True for a non-built-in preset.
Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
527 test_presets = copy.deepcopy(current_presets)
528 presets_without_name_support = list(preset for preset in test_presets if preset.presetScenario in availableScenarios)
417529
418 await self.write_presets(endpoint=endpoint, presets=test_presets, expected_status=Status.ConstraintError)
530
if len(presets_without_name_support) == 0 and len(availableScenarios) > 0:
bzbarsky-apple222 days ago

I'm not sure I'm following this. availableScenarios was the list of scenarios where the preset types did have name support above, no? So presets_without_name_support all have name support...

Am I missing something? How is this test actually passing?

hasty222 days ago

It's passing because it says it has nothing to do, because the clause above was wrong. Fixed.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
425554
426 # Send the AtomicRequest begin command
427 await self.send_atomic_request_begin_command()
555 availableScenario = self.get_available_scenario(presetTypes=presetTypes, presetScenarioCounts=presetScenarioCounts)
428556
429 # Write to the presets attribute with a new valid preset added
430 test_presets = copy.deepcopy(new_presets_with_handle)
431 test_presets.append(cluster.Structs.PresetStruct(presetHandle=NullValue, presetScenario=cluster.Enums.PresetScenarioEnum.kWake,
432 name="Wake", coolingSetpoint=2800, heatingSetpoint=1800, builtIn=False))
557
if len(current_presets) > 0 and len(current_presets) < numberOfPresetsSupported and availableScenario is not None:
bzbarsky-apple222 days ago

Why do we care whether len(current_presets) > 0?

hasty222 days ago

We don't; fixed.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
566
567 await self.write_presets(endpoint=endpoint, presets=test_presets)
438568
439 # Send the AtomicRequest commit command and expect InvalidInState as the previous edit request was cancelled
440 await self.send_atomic_request_commit_command(expected_status=Status.InvalidInState)
569
# Roll back
bzbarsky-apple222 days ago

Followup: Shouldn't we check that the presets before rollback are test_presets and after rollback are whatever they were at the start of this test?

hasty222 days ago

Noted in #35299

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
483616
484617 # Find a preset scenario not present in PresetTypes to run this test.
485 for scenario in cluster.Enums.PresetScenarioEnum:
486 foundMatchingScenario = False
487 for presetType in presetTypes:
488 if presetType.presetScenario == scenario:
489 foundMatchingScenario = True
490 break
491 if not foundMatchingScenario:
492 scenarioNotPresent = scenario
493 break
494
495 if scenarioNotPresent is None:
496 logger.info(
497 "Couldn't run test step 17 since all preset types in PresetScenarioEnum are supported by this Thermostat")
498 else:
499 test_presets = new_presets_with_handle.copy()
618 scenarioMap = dict(map(lambda presetType: (presetType.presetScenario, presetType), presetTypes))
619
unavailableScenarios = list(preset for preset in test_presets if preset.presetScenario not in scenarioMap)
bzbarsky-apple222 days ago

This doesn't make sense. preset.presetScenario will always be in scenarioMap, since presets must have a valid scenario, no?

What's needed is a value of scenarioNotPresent (which is not getting set at all by this code!) which is a valid enum value but is not in the .presetScenario of anything in presetTypes.

hasty222 days ago

The current example implementation has every preset scenario, so it's skipping this test. Fixed the test, and removed UserDefined from the server.

hasty Apply suggestions from code review
08552092
hasty Fixes from code review
9ba838a7
github-actions github-actions added examples
github-actions
github-actions222 days ago (edited 222 days ago)

PR #35290: Size comparison from cfdbba9 to 9ba838a

Full report (44 builds for bl602, bl702, bl702l, cyw30739, efr32, linux, nrfconnect, nxp, psoc6, qpg, stm32, tizen)
platform target config section cfdbba9 9ba838a change % change
bl602 lighting-app bl602 FLASH 1279022 1279030 8 0.0
RAM 95880 95880 0 0.0
bl602+mfd FLASH 1292876 1292884 8 0.0
RAM 96024 96024 0 0.0
bl602+rpc FLASH 1317986 1317994 8 0.0
RAM 104304 104304 0 0.0
bl702 lighting-app bl702 FLASH 944636 944628 -8 -0.0
RAM 15209 15209 0 0.0
bl702+mfd FLASH 947036 947028 -8 -0.0
RAM 15353 15353 0 0.0
bl702+rpc FLASH 1039692 1039684 -8 -0.0
RAM 24221 24221 0 0.0
bl706-eth FLASH 647452 647444 -8 -0.0
RAM 25305 25305 0 0.0
bl706-wifi FLASH 894866 894858 -8 -0.0
RAM 14525 14525 0 0.0
bl702l lighting-app bl702l FLASH 961040 961032 -8 -0.0
RAM 16868 16868 0 0.0
bl702l+mfd FLASH 963662 963654 -8 -0.0
RAM 17012 17012 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 672673 672657 -16 -0.0
RAM 78300 78300 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 692533 692517 -16 -0.0
RAM 80932 80932 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 692533 692517 -16 -0.0
RAM 80932 80932 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 649469 649453 -16 -0.0
RAM 73368 73368 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611113 611097 -16 -0.0
RAM 71292 71292 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 630749 630733 -16 -0.0
RAM 73844 73844 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 630749 630733 -16 -0.0
RAM 73844 73844 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 629153 629137 -16 -0.0
RAM 74308 74308 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 648861 648845 -16 -0.0
RAM 76860 76860 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 648861 648845 -16 -0.0
RAM 76860 76860 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 603093 603077 -16 -0.0
RAM 68348 68348 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 622953 622937 -16 -0.0
RAM 70980 70980 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 622953 622937 -16 -0.0
RAM 70980 70980 0 0.0
efr32 lighting-app BRD4187C FLASH 930748 930740 -8 -0.0
RAM 135096 135096 0 0.0
lock-app BRD4338a FLASH 740732 740724 -8 -0.0
RAM 209516 209516 0 0.0
window-app BRD4187C FLASH 1015808 1015800 -8 -0.0
RAM 127036 127036 0 0.0
linux chip-tool-ipv6only arm64 unknown 20352 20352 0 0.0
FLASH 11320764 11320828 64 0.0
RAM 608424 608424 0 0.0
thermostat-no-ble arm64 unknown 9296 9296 0 0.0
FLASH 4323356 4323420 64 0.0
RAM 241888 241552 -336 -0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 910676 910660 -16 -0.0
RAM 142219 142219 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 882632 882616 -16 -0.0
RAM 140358 140358 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 841616 841600 -16 -0.0
RAM 141038 141038 0 0.0
nxp contact k32w0+release FLASH 577732 577716 -16 -0.0
RAM 70444 70444 0 0.0
k32w1+release FLASH 590352 590336 -16 -0.0
RAM 62488 62488 0 0.0
light k32w0+release FLASH 613160 613144 -16 -0.0
RAM 69916 69916 0 0.0
k32w1+release FLASH 675024 675008 -16 -0.0
RAM 71472 71472 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1641596 1641596 0 0.0
RAM 210920 210920 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1545132 1545148 16 0.0
RAM 207632 207632 0 0.0
light cy8ckit_062s2_43012 FLASH 1464636 1464652 16 0.0
RAM 200728 200728 0 0.0
lock cy8ckit_062s2_43012 FLASH 1463524 1463524 0 0.0
RAM 225064 225064 0 0.0
qpg lighting-app qpg6105+debug FLASH 656300 656284 -16 -0.0
RAM 105128 105128 0 0.0
lock-app qpg6105+debug FLASH 614144 614128 -16 -0.0
RAM 99612 99612 0 0.0
stm32 light STM32WB5MM-DK FLASH 478640 478624 -16 -0.0
RAM 144716 144716 0 0.0
tizen all-clusters-app arm unknown 4848 4848 0 0.0
FLASH 1710388 1710420 32 0.0
RAM 89376 89376 0 0.0
chip-tool-ubsan arm unknown 10272 10272 0 0.0
FLASH 17507350 17507518 168 0.0
RAM 7600020 7600100 80 0.0
bzbarsky-apple
bzbarsky-apple commented on 2024-08-29
Conversation is marked as resolved
Show resolved
examples/thermostat/thermostat-common/src/thermostat-delegate-impl.cpp
8787 { .presetScenario = PresetScenarioEnum::kVacation,
8888 .numberOfPresets = kMaxNumberOfPresetsOfEachType,
8989 .presetTypeFeatures = to_underlying(PresetTypeFeaturesBitmap::kSupportsNames) },
90
{ .presetScenario = PresetScenarioEnum::kUserDefined,
bzbarsky-apple222 days ago

Why is this being removed? This seems to be due to #35290 (comment), but GoingToSleep is not a PresetScenario value that's implemented here, right? So the test could use that, and I don't see why this change is needed.

hasty222 days ago

Restored.

Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
509629 await self.send_atomic_request_rollback_command()
630 else:
631 logger.info(
632
"Couldn't run test step 17 since all preset types in PresetScenarioEnum are supported by this Thermostat")
bzbarsky-apple222 days ago
Suggested change
"Couldn't run test step 17 since all preset types in PresetScenarioEnum are supported by this Thermostat")
"Couldn't run test step 17 since all preset scenarios in PresetScenarioEnum are supported by this Thermostat")
Conversation is marked as resolved
Show resolved
src/python_testing/TC_TSTAT_4_2.py
477612 if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):
478613
479 # Read the PresetTypes to get the preset scenarios supported by the Thermostat.
480 presetTypes = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=cluster.Attributes.PresetTypes)
481
482 scenarioNotPresent = None
483
484614 # Find a preset scenario not present in PresetTypes to run this test.
485 for scenario in cluster.Enums.PresetScenarioEnum:
486 foundMatchingScenario = False
487 for presetType in presetTypes:
488 if presetType.presetScenario == scenario:
489 foundMatchingScenario = True
490 break
491 if not foundMatchingScenario:
492 scenarioNotPresent = scenario
493 break
494
495 if scenarioNotPresent is None:
496 logger.info(
497 "Couldn't run test step 17 since all preset types in PresetScenarioEnum are supported by this Thermostat")
498 else:
499 test_presets = new_presets_with_handle.copy()
500 test_presets.append(cluster.Structs.PresetStruct(presetHandle=NullValue, presetScenario=scenarioNotPresent,
501 name="Preset", coolingSetpoint=2500, heatingSetpoint=1700, builtIn=False))
615
scenarioMap = dict(map(lambda presetType: (presetType.presetScenario, presetType), presetTypes))
616
unavailableScenarios = list(
617
presetScenario for presetScenario in cluster.Enums.PresetScenarioEnum if presetScenario not in scenarioMap)
bzbarsky-apple222 days ago

We don't actually use scenarioMap as a map. I think this might be more readable as:

Suggested change
scenarioMap = dict(map(lambda presetType: (presetType.presetScenario, presetType), presetTypes))
unavailableScenarios = list(
presetScenario for presetScenario in cluster.Enums.PresetScenarioEnum if presetScenario not in scenarioMap)
supportedScenarios = set(presetType.presetScenario for presetType in presetTypes)
unavailableScenarios = list(
presetScenario for presetScenario in cluster.Enums.PresetScenarioEnum if presetScenario not in supportedScenarios)
hasty Apply suggestions from code review
a70d4aca
hasty Fix remaining places with hard-coded setpoints
7958a49e
hasty Don't abort test if there are no built-in presets
339d2dc5
hasty Remove unneeded length check
b396c32c
hasty Fix max number of preset types
468cb2e0
github-actions
github-actions222 days ago (edited 222 days ago)

PR #35290: Size comparison from cfdbba9 to 468cb2e

Full report (77 builds for bl602, bl702, bl702l, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section cfdbba9 468cb2e change % change
bl602 lighting-app bl602 FLASH 1279022 1279092 70 0.0
RAM 95880 95880 0 0.0
bl602+mfd FLASH 1292876 1293202 326 0.0
RAM 96024 96024 0 0.0
bl602+rpc FLASH 1317986 1318056 70 0.0
RAM 104304 104304 0 0.0
bl702 lighting-app bl702 FLASH 944636 944678 42 0.0
RAM 15209 15209 0 0.0
bl702+mfd FLASH 947036 947078 42 0.0
RAM 15353 15353 0 0.0
bl702+rpc FLASH 1039692 1039734 42 0.0
RAM 24221 24221 0 0.0
bl706-eth FLASH 647452 647494 42 0.0
RAM 25305 25305 0 0.0
bl706-wifi FLASH 894866 894908 42 0.0
RAM 14525 14525 0 0.0
bl702l lighting-app bl702l FLASH 961040 961082 42 0.0
RAM 16868 16868 0 0.0
bl702l+mfd FLASH 963662 963704 42 0.0
RAM 17012 17012 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 672673 672761 88 0.0
RAM 78300 78300 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 692533 692621 88 0.0
RAM 80932 80932 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 692533 692621 88 0.0
RAM 80932 80932 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 649469 649549 80 0.0
RAM 73368 73368 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611113 611193 80 0.0
RAM 71292 71292 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 630749 630821 72 0.0
RAM 73844 73844 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 630749 630821 72 0.0
RAM 73844 73844 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 629153 629233 80 0.0
RAM 74308 74308 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 648861 648941 80 0.0
RAM 76860 76860 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 648861 648941 80 0.0
RAM 76860 76860 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 603093 603501 408 0.1
RAM 68348 68348 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 622953 623361 408 0.1
RAM 70980 70980 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 622953 623361 408 0.1
RAM 70980 70980 0 0.0
efr32 lighting-app BRD4187C FLASH 930748 930812 64 0.0
RAM 135096 135096 0 0.0
lock-app BRD4338a FLASH 740732 740844 112 0.0
RAM 209516 209516 0 0.0
window-app BRD4187C FLASH 1015808 1015896 88 0.0
RAM 127036 127036 0 0.0
esp32 all-clusters-app c3devkit DRAM 94200 94200 0 0.0
FLASH 1534426 1534846 420 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115136 115136 0 0.0
FLASH 1544454 1544822 368 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4624 4624 0 0.0
FLASH 2760195 2763705 3510 0.1
RAM 128520 128536 16 0.0
all-clusters-app debug unknown 5408 5408 0 0.0
FLASH 6053690 6056222 2532 0.0
RAM 510312 510328 16 0.0
all-clusters-minimal-app debug unknown 5304 5304 0 0.0
FLASH 5383170 5386678 3508 0.1
RAM 240232 240248 16 0.0
bridge-app debug unknown 5288 5288 0 0.0
FLASH 4730458 4731800 1342 0.0
RAM 216952 216952 0 0.0
chip-tool debug unknown 5832 5832 0 0.0
FLASH 12648630 12649906 1276 0.0
RAM 558354 558354 0 0.0
chip-tool-ipv6only arm64 unknown 20352 20352 0 0.0
FLASH 11320764 11321996 1232 0.0
RAM 608424 608424 0 0.0
fabric-admin debug unknown 5664 5664 0 0.0
FLASH 10928223 10929653 1430 0.0
RAM 556602 556602 0 0.0
fabric-bridge-app debug unknown 4520 4520 0 0.0
FLASH 4553270 4554580 1310 0.0
RAM 203984 203984 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5666705 5668049 1344 0.0
RAM 228056 228056 0 0.0
lock-app debug unknown 5224 5224 0 0.0
FLASH 4785804 4787114 1310 0.0
RAM 203768 203768 0 0.0
ota-provider-app debug unknown 4600 4600 0 0.0
FLASH 4425278 4426652 1374 0.0
RAM 197752 197752 0 0.0
ota-requestor-app debug unknown 4536 4536 0 0.0
FLASH 4563896 4565206 1310 0.0
RAM 202288 202288 0 0.0
shell debug unknown 4176 4176 0 0.0
FLASH 3085661 3088189 2528 0.1
RAM 159040 159040 0 0.0
thermostat-no-ble arm64 unknown 9296 9296 0 0.0
FLASH 4323356 4325884 2528 0.1
RAM 241888 241896 8 0.0
tv-app debug unknown 5504 5504 0 0.0
FLASH 6010325 6011605 1280 0.0
RAM 583192 583192 0 0.0
tv-casting-app debug unknown 5168 5168 0 0.0
FLASH 10853421 10854733 1312 0.0
RAM 645768 645768 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 910676 911060 384 0.0
RAM 142219 142219 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 882632 882788 156 0.0
RAM 140358 140358 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 841616 842316 700 0.1
RAM 141038 141038 0 0.0
nxp contact k32w0+release FLASH 577732 577796 64 0.0
RAM 70444 70444 0 0.0
k32w1+release FLASH 590352 590416 64 0.0
RAM 62488 62488 0 0.0
light k32w0+release FLASH 613160 613224 64 0.0
RAM 69916 69916 0 0.0
k32w1+release FLASH 675024 675104 80 0.0
RAM 71472 71472 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1641596 1642020 424 0.0
RAM 210920 210920 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1545132 1545972 840 0.1
RAM 207632 207632 0 0.0
light cy8ckit_062s2_43012 FLASH 1464636 1464764 128 0.0
RAM 200728 200728 0 0.0
lock cy8ckit_062s2_43012 FLASH 1463524 1463652 128 0.0
RAM 225064 225064 0 0.0
qpg lighting-app qpg6105+debug FLASH 656300 656348 48 0.0
RAM 105128 105128 0 0.0
lock-app qpg6105+debug FLASH 614144 614208 64 0.0
RAM 99612 99612 0 0.0
stm32 light STM32WB5MM-DK FLASH 478640 478696 56 0.0
RAM 144716 144716 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620414 620504 90 0.0
RAM 50932 50932 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 682574 682908 334 0.0
RAM 149552 149552 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 774652 775206 554 0.1
RAM 110712 110712 0 0.0
bridge-app tlsr9258a FLASH 679144 679234 90 0.0
RAM 91588 91588 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622006 622096 90 0.0
RAM 50972 50972 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708016 708106 90 0.0
RAM 74312 74312 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 620950 621040 90 0.0
RAM 145532 145532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 807082 807172 90 0.0
RAM 99456 99456 0 0.0
lock-app-dfu tlsr9528a FLASH 654988 655078 90 0.0
RAM 67008 67008 0 0.0
ota-requestor-app tlsr9258a FLASH 697272 697362 90 0.0
RAM 91272 91272 0 0.0
pump-app-usb tlsr9518adk80d FLASH 631452 631542 90 0.0
RAM 55752 55752 0 0.0
pump-controller-app tlsr9518adk80d FLASH 608962 609052 90 0.0
RAM 52996 52996 0 0.0
shell tlsr9518adk80d FLASH 466890 466890 0 0.0
RAM 68660 68660 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 628792 628882 90 0.0
RAM 52692 52692 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 652944 653034 90 0.0
RAM 56632 56632 0 0.0
thermostat tlsr9518adk80d FLASH 635450 635784 334 0.1
RAM 53400 53400 0 0.0
window-covering tlsr9118bdk40d FLASH 522948 523038 90 0.0
RAM 98532 98532 0 0.0
tizen all-clusters-app arm unknown 4848 4848 0 0.0
FLASH 1710388 1712192 1804 0.1
RAM 89376 89380 4 0.0
chip-tool-ubsan arm unknown 10272 10272 0 0.0
FLASH 17507350 17508662 1312 0.0
RAM 7600020 7600300 280 0.0
bzbarsky-apple
bzbarsky-apple approved these changes on 2024-08-29
jmartinez-silabs
jmartinez-silabs approved these changes on 2024-08-30
pullapprove pullapprove removed review - pending
pullapprove pullapprove added review - approved
mergify mergify merged 1a892ed5 into master 222 days ago

Login to write a write a comment.

Login via GitHub