Valve cluster: refactor to make unit-testable
Refactor of Valve to enable unit testing of the cluster logic per the proposal in https://project-chip.github.io/connectedhomeip-doc/cluster_and_device_type_dev/unit_testing_clusters.html.
Unit tests are in TestValveConfigurationAndControl
General outline
-
Server implementation receives TLV, calls into the cluster logic for all read/write/command operations. Server is only responsible for encode / decode, error translation and installing itself into the registry. Uses AttributeAccessInterface and CommandHandlerInterface
-
Cluster logic
- handles all reads / writes and commands
- no TLV parsing (handled by server)
- no interaction with the ember layer (handled by the matter context)
- no interaction with the hardware (handled by the delegate)
- Uses a subclass for all attribute reads / writes that handles storage and attribute reporting. Data members are private to force the logic to go through the setters to properly trigger reporting and storage
-
Matter context handles attribute reporting (and will handle event logging once I implement it). This can be mocked for testing.
-
Timers and clocks are injected by the test at the system layer (not the matter context) because there is a single clock for the entire system.
-
App owns all the resources - delegate, matter context, logic and server and initializes them as part of the app startup
-
one of each is instantiated once for each endpoint
Open questions on the general design:
- should the cluster logic return IM layer errors directly
- should the cluster logic use the codegen'd data types for the attributes
- is there a way to get rid of some of the boilerplate?
- should the cluster logic handle the global attributes or some of the global attributes?
- Should Setter calls on the cluster logic (ex SetValveFault) be piped through the delegate or should we let the app report these to the logic directly?
- One server per endpoint? Or pooled?
Open questions for the valve:
- should the cluster logic periodically reach out to the delegate to get updates on state / level for async opens? Should it allow the delegate to also report back? Both?
Remaining:
-
event generation
-
AutoCloseTime handling
-
handling of async opens / closes
-
set functions for things like valve fault
-
command handling for > EP1 seems to be broken, still need to fix that.
Changed Files
PR #35631: Size comparison from 85b2fd3d1810bafdbe461df1a3271d3fb1911a66 to 83d5b798526757a4029ab80208bcc9766ead0ad7
Full report (82 builds for bl602, bl702, bl702l, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
| platform | target | config | section | 85b2fd3d | 83d5b798 | change | % change |
|---|---|---|---|---|---|---|---|
| bl602 | lighting-app | bl602 | FLASH | 1278192 | 1278192 | 0 | 0.0 |
| RAM | 95824 | 95824 | 0 | 0.0 | |||
| bl602+mfd | FLASH | 1292302 | 1292302 | 0 | 0.0 | ||
| RAM | 95968 | 95968 | 0 | 0.0 | |||
| bl602+rpc | FLASH | 1317156 | 1317156 | 0 | 0.0 | ||
| RAM | 104248 | 104248 | 0 | 0.0 | |||
| bl702 | lighting-app | bl702 | FLASH | 943868 | 943868 | 0 | 0.0 |
| RAM | 15145 | 15145 | 0 | 0.0 | |||
| bl702+mfd | FLASH | 946268 | 946268 | 0 | 0.0 | ||
| RAM | 15305 | 15305 | 0 | 0.0 | |||
| bl702+rpc | FLASH | 1039188 | 1039188 | 0 | 0.0 | ||
| RAM | 24173 | 24173 | 0 | 0.0 | |||
| bl706-eth | FLASH | 646064 | 646064 | 0 | 0.0 | ||
| RAM | 25233 | 25233 | 0 | 0.0 | |||
| bl706-wifi | FLASH | 894076 | 894076 | 0 | 0.0 | ||
| RAM | 14477 | 14477 | 0 | 0.0 | |||
| bl702l | lighting-app | bl702l | FLASH | 960528 | 960528 | 0 | 0.0 |
| RAM | 16804 | 16804 | 0 | 0.0 | |||
| bl702l+mfd | FLASH | 963150 | 963150 | 0 | 0.0 | ||
| RAM | 16964 | 16964 | 0 | 0.0 | |||
| cyw30739 | light | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 |
| FLASH | 677269 | 677269 | 0 | 0.0 | |||
| RAM | 78492 | 78492 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 697121 | 697121 | 0 | 0.0 | |||
| RAM | 81124 | 81124 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 697121 | 697121 | 0 | 0.0 | |||
| RAM | 81124 | 81124 | 0 | 0.0 | |||
| CYW930739M2EVB-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 654049 | 654049 | 0 | 0.0 | |||
| RAM | 73560 | 73560 | 0 | 0.0 | |||
| light-switch | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 | |
| FLASH | 613461 | 613461 | 0 | 0.0 | |||
| RAM | 71452 | 71452 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 633089 | 633089 | 0 | 0.0 | |||
| RAM | 74004 | 74004 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 633089 | 633089 | 0 | 0.0 | |||
| RAM | 74004 | 74004 | 0 | 0.0 | |||
| lock | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 | |
| FLASH | 632589 | 632589 | 0 | 0.0 | |||
| RAM | 74500 | 74500 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 652297 | 652297 | 0 | 0.0 | |||
| RAM | 77052 | 77052 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 652297 | 652297 | 0 | 0.0 | |||
| RAM | 77052 | 77052 | 0 | 0.0 | |||
| thermostat | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 | |
| FLASH | 608005 | 608005 | 0 | 0.0 | |||
| RAM | 68588 | 68588 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 627857 | 627857 | 0 | 0.0 | |||
| RAM | 71220 | 71220 | 0 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 627857 | 627857 | 0 | 0.0 | |||
| RAM | 71220 | 71220 | 0 | 0.0 | |||
| efr32 | lighting-app | BRD4187C | FLASH | 932500 | 932500 | 0 | 0.0 |
| RAM | 135056 | 135056 | 0 | 0.0 | |||
| lock-app | BRD2605a | FLASH | 739960 | 739952 | -8 | -0.0 | |
| RAM | 231212 | 231212 | 0 | 0.0 | |||
| BRD4338a | FLASH | 740608 | 740600 | -8 | -0.0 | ||
| RAM | 231244 | 231244 | 0 | 0.0 | |||
| window-app | BRD4187C | FLASH | 1015544 | 1015536 | -8 | -0.0 | |
| RAM | 126996 | 126996 | 0 | 0.0 | |||
| esp32 | all-clusters-app | c3devkit | DRAM | 94152 | 94152 | 0 | 0.0 |
| FLASH | 1539520 | 1539498 | -22 | -0.0 | |||
| IRAM | 82538 | 82538 | 0 | 0.0 | |||
| m5stack | DRAM | 115096 | 115096 | 0 | 0.0 | ||
| FLASH | 1549862 | 1549862 | 0 | 0.0 | |||
| IRAM | 117039 | 117039 | 0 | 0.0 | |||
| linux | air-purifier-app | debug | unknown | 4688 | 4688 | 0 | 0.0 |
| FLASH | 2771259 | 2771259 | 0 | 0.0 | |||
| RAM | 128944 | 128944 | 0 | 0.0 | |||
| all-clusters-app | debug | unknown | 5456 | 5456 | 0 | 0.0 | |
| FLASH | 6082752 | 6083014 | 262 | 0.0 | |||
| RAM | 514288 | 514288 | 0 | 0.0 | |||
| all-clusters-minimal-app | debug | unknown | 5352 | 5352 | 0 | 0.0 | |
| FLASH | 5406808 | 5406808 | 0 | 0.0 | |||
| RAM | 240640 | 240640 | 0 | 0.0 | |||
| bridge-app | debug | unknown | 5336 | 5336 | 0 | 0.0 | |
| FLASH | 4740320 | 4740320 | 0 | 0.0 | |||
| RAM | 217840 | 217840 | 0 | 0.0 | |||
| chip-tool | debug | unknown | 5888 | 5888 | 0 | 0.0 | |
| FLASH | 12676380 | 12676380 | 0 | 0.0 | |||
| RAM | 562282 | 562282 | 0 | 0.0 | |||
| chip-tool-ipv6only | arm64 | unknown | 20384 | 20384 | 0 | 0.0 | |
| FLASH | 11341636 | 11341636 | 0 | 0.0 | |||
| RAM | 612384 | 612384 | 0 | 0.0 | |||
| fabric-admin | debug | unknown | 5720 | 5720 | 0 | 0.0 | |
| FLASH | 10979263 | 10979263 | 0 | 0.0 | |||
| RAM | 561322 | 561322 | 0 | 0.0 | |||
| fabric-bridge-app | debug | unknown | 4568 | 4568 | 0 | 0.0 | |
| FLASH | 4563058 | 4563058 | 0 | 0.0 | |||
| RAM | 204456 | 204456 | 0 | 0.0 | |||
| lighting-app | debug+rpc+ui | unknown | 5984 | 5984 | 0 | 0.0 | |
| FLASH | 5676641 | 5676641 | 0 | 0.0 | |||
| RAM | 228128 | 228128 | 0 | 0.0 | |||
| lock-app | debug | unknown | 5272 | 5272 | 0 | 0.0 | |
| FLASH | 4789600 | 4789600 | 0 | 0.0 | |||
| RAM | 203928 | 203928 | 0 | 0.0 | |||
| ota-provider-app | debug | unknown | 4648 | 4648 | 0 | 0.0 | |
| FLASH | 4422786 | 4422786 | 0 | 0.0 | |||
| RAM | 197632 | 197632 | 0 | 0.0 | |||
| ota-requestor-app | debug | unknown | 4584 | 4584 | 0 | 0.0 | |
| FLASH | 4561532 | 4561532 | 0 | 0.0 | |||
| RAM | 202200 | 202200 | 0 | 0.0 | |||
| shell | debug | unknown | 4216 | 4216 | 0 | 0.0 | |
| FLASH | 3107917 | 3108173 | 256 | 0.0 | |||
| RAM | 159448 | 159448 | 0 | 0.0 | |||
| thermostat-no-ble | arm64 | unknown | 9336 | 9336 | 0 | 0.0 | |
| FLASH | 4333292 | 4333292 | 0 | 0.0 | |||
| RAM | 242256 | 242256 | 0 | 0.0 | |||
| tv-app | debug | unknown | 5552 | 5552 | 0 | 0.0 | |
| FLASH | 6022277 | 6022277 | 0 | 0.0 | |||
| RAM | 587088 | 587088 | 0 | 0.0 | |||
| tv-casting-app | debug | unknown | 5208 | 5208 | 0 | 0.0 | |
| FLASH | 10883837 | 10883837 | 0 | 0.0 | |||
| RAM | 650256 | 650256 | 0 | 0.0 | |||
| nrfconnect | all-clusters-app | nrf52840dk_nrf52840 | FLASH | 915128 | 915112 | -16 | -0.0 |
| RAM | 142259 | 142259 | 0 | 0.0 | |||
| nrf7002dk_nrf5340_cpuapp | FLASH | 886444 | 886420 | -24 | -0.0 | ||
| RAM | 140398 | 140398 | 0 | 0.0 | |||
| all-clusters-minimal-app | nrf52840dk_nrf52840 | FLASH | 846476 | 846476 | 0 | 0.0 | |
| RAM | 141077 | 141077 | 0 | 0.0 | |||
| nxp | contact | k32w0+release | FLASH | 580520 | 580520 | 0 | 0.0 |
| RAM | 70720 | 70720 | 0 | 0.0 | |||
| k32w1+release | FLASH | 593352 | 593352 | 0 | 0.0 | ||
| RAM | 62896 | 62896 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 593104 | 593104 | 0 | 0.0 | ||
| RAM | 62896 | 62896 | 0 | 0.0 | |||
| light | k32w0+release | FLASH | 616332 | 616332 | 0 | 0.0 | |
| RAM | 70184 | 70184 | 0 | 0.0 | |||
| k32w1+release | FLASH | 679608 | 679608 | 0 | 0.0 | ||
| RAM | 48512 | 48512 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 679608 | 679608 | 0 | 0.0 | ||
| RAM | 48512 | 48512 | 0 | 0.0 | |||
| lock | k32w1+release | FLASH | 701904 | 701904 | 0 | 0.0 | |
| RAM | 67036 | 67036 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 701928 | 701928 | 0 | 0.0 | ||
| RAM | 67036 | 67036 | 0 | 0.0 | |||
| psoc6 | all-clusters | cy8ckit_062s2_43012 | FLASH | 1646932 | 1646916 | -16 | -0.0 |
| RAM | 210952 | 210952 | 0 | 0.0 | |||
| all-clusters-minimal | cy8ckit_062s2_43012 | FLASH | 1550556 | 1550556 | 0 | 0.0 | |
| RAM | 207664 | 207664 | 0 | 0.0 | |||
| light | cy8ckit_062s2_43012 | FLASH | 1466484 | 1466484 | 0 | 0.0 | |
| RAM | 200672 | 200672 | 0 | 0.0 | |||
| lock | cy8ckit_062s2_43012 | FLASH | 1462988 | 1462988 | 0 | 0.0 | |
| RAM | 225024 | 225024 | 0 | 0.0 | |||
| qpg | lighting-app | qpg6105+debug | FLASH | 659104 | 659104 | 0 | 0.0 |
| RAM | 105212 | 105212 | 0 | 0.0 | |||
| lock-app | qpg6105+debug | FLASH | 616996 | 616996 | 0 | 0.0 | |
| RAM | 99688 | 99688 | 0 | 0.0 | |||
| stm32 | light | STM32WB5MM-DK | FLASH | 480576 | 480576 | 0 | 0.0 |
| RAM | 144668 | 144668 | 0 | 0.0 | |||
| telink | air-quality-sensor-app | tlsr9528a_retention | FLASH | 621702 | 621702 | 0 | 0.0 |
| RAM | 50964 | 50964 | 0 | 0.0 | |||
| all-clusters-app | tlsr9118bdk40d | FLASH | 688204 | 688182 | -22 | -0.0 | |
| RAM | 148388 | 148388 | 0 | 0.0 | |||
| all-clusters-minimal-app | tlsr9528a | FLASH | 779886 | 779886 | 0 | 0.0 | |
| RAM | 110756 | 110756 | 0 | 0.0 | |||
| bridge-app | tlsr9258a | FLASH | 680722 | 680722 | 0 | 0.0 | |
| RAM | 91620 | 91620 | 0 | 0.0 | |||
| contact-sensor-app | tlsr9528a_retention | FLASH | 621466 | 621466 | 0 | 0.0 | |
| RAM | 50916 | 50916 | 0 | 0.0 | |||
| light-switch-app-ota-shell-factory-data | tlsr9528a | FLASH | 707398 | 707398 | 0 | 0.0 | |
| RAM | 74256 | 74256 | 0 | 0.0 | |||
| lighting-app-ota-factory-data | tlsr9118bdk40d | FLASH | 624620 | 624620 | 0 | 0.0 | |
| RAM | 144292 | 144292 | 0 | 0.0 | |||
| lighting-app-ota-rpc-factory-data-4mb | tlsr9518adk80d | FLASH | 810028 | 810028 | 0 | 0.0 | |
| RAM | 99424 | 99424 | 0 | 0.0 | |||
| lock-app-dfu | tlsr9528a | FLASH | 655218 | 655218 | 0 | 0.0 | |
| RAM | 66976 | 66976 | 0 | 0.0 | |||
| ota-requestor-app | tlsr9258a | FLASH | 696698 | 696698 | 0 | 0.0 | |
| RAM | 91212 | 91212 | 0 | 0.0 | |||
| pump-app-usb | tlsr9518adk80d | FLASH | 633054 | 633054 | 0 | 0.0 | |
| RAM | 55792 | 55792 | 0 | 0.0 | |||
| pump-controller-app | tlsr9518adk80d | FLASH | 610244 | 610244 | 0 | 0.0 | |
| RAM | 53036 | 53036 | 0 | 0.0 | |||
| shell | tlsr9518adk80d | FLASH | 467170 | 467170 | 0 | 0.0 | |
| RAM | 68668 | 68668 | 0 | 0.0 | |||
| smoke_co_alarm-app | tlsr9528a_retention | FLASH | 628430 | 628430 | 0 | 0.0 | |
| RAM | 52636 | 52636 | 0 | 0.0 | |||
| temperature-measurement-app-mars-ota | tlsr9518adk80d | FLASH | 652380 | 652380 | 0 | 0.0 | |
| RAM | 56584 | 56584 | 0 | 0.0 | |||
| thermostat | tlsr9518adk80d | FLASH | 636974 | 636974 | 0 | 0.0 | |
| RAM | 53428 | 53428 | 0 | 0.0 | |||
| window-covering | tlsr9118bdk40d | FLASH | 523150 | 523150 | 0 | 0.0 | |
| RAM | 97268 | 97268 | 0 | 0.0 | |||
| tizen | all-clusters-app | arm | unknown | 4852 | 4852 | 0 | 0.0 |
| FLASH | 1724856 | 1724836 | -20 | -0.0 | |||
| RAM | 89524 | 89524 | 0 | 0.0 | |||
| chip-tool-ubsan | arm | unknown | 10284 | 10284 | 0 | 0.0 | |
| FLASH | 17532082 | 17532082 | 0 | 0.0 | |||
| RAM | 7609764 | 7609764 | 0 | 0.0 |
PR #35631: Size comparison from 85b2fd3d1810bafdbe461df1a3271d3fb1911a66 to 100a9676cb15d2ef89e26c4d441ad171a14d59c4
Increases above 0.2%:
| platform | target | config | section | 85b2fd3d | 100a9676 | change | % change |
|---|---|---|---|---|---|---|---|
| linux | air-purifier-app | debug | RAM | 128944 | 129424 | 480 | 0.4 |
| all-clusters-minimal-app | debug | RAM | 240640 | 241136 | 496 | 0.2 | |
| bridge-app | debug | RAM | 217840 | 218304 | 464 | 0.2 | |
| fabric-bridge-app | debug | RAM | 204456 | 204888 | 432 | 0.2 | |
| lock-app | debug | RAM | 203928 | 204376 | 448 | 0.2 | |
| ota-provider-app | debug | RAM | 197632 | 198112 | 480 | 0.2 | |
| ota-requestor-app | debug | RAM | 202200 | 202680 | 480 | 0.2 | |
| thermostat-no-ble | arm64 | unknown | 9336 | 9392 | 56 | 0.6 | |
| tizen | all-clusters-app | arm | unknown | 4852 | 4876 | 24 | 0.5 |
Full report (82 builds for bl602, bl702, bl702l, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
| platform | target | config | section | 85b2fd3d | 100a9676 | change | % change |
|---|---|---|---|---|---|---|---|
| bl602 | lighting-app | bl602 | FLASH | 1278192 | 1280006 | 1814 | 0.1 |
| RAM | 95824 | 95848 | 24 | 0.0 | |||
| bl602+mfd | FLASH | 1292302 | 1294128 | 1826 | 0.1 | ||
| RAM | 95968 | 95992 | 24 | 0.0 | |||
| bl602+rpc | FLASH | 1317156 | 1319218 | 2062 | 0.2 | ||
| RAM | 104248 | 104272 | 24 | 0.0 | |||
| bl702 | lighting-app | bl702 | FLASH | 943868 | 944122 | 254 | 0.0 |
| RAM | 15145 | 15145 | 0 | 0.0 | |||
| bl702+mfd | FLASH | 946268 | 946522 | 254 | 0.0 | ||
| RAM | 15305 | 15305 | 0 | 0.0 | |||
| bl702+rpc | FLASH | 1039188 | 1039442 | 254 | 0.0 | ||
| RAM | 24173 | 24173 | 0 | 0.0 | |||
| bl706-eth | FLASH | 646064 | 646318 | 254 | 0.0 | ||
| RAM | 25233 | 25233 | 0 | 0.0 | |||
| bl706-wifi | FLASH | 894076 | 894398 | 322 | 0.0 | ||
| RAM | 14477 | 14477 | 0 | 0.0 | |||
| bl702l | lighting-app | bl702l | FLASH | 960528 | 960782 | 254 | 0.0 |
| RAM | 16804 | 16804 | 0 | 0.0 | |||
| bl702l+mfd | FLASH | 963150 | 963404 | 254 | 0.0 | ||
| RAM | 16964 | 16964 | 0 | 0.0 | |||
| cyw30739 | light | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 |
| FLASH | 677269 | 677629 | 360 | 0.1 | |||
| RAM | 78492 | 78516 | 24 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 697121 | 697481 | 360 | 0.1 | |||
| RAM | 81124 | 81148 | 24 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 697121 | 697481 | 360 | 0.1 | |||
| RAM | 81124 | 81148 | 24 | 0.0 | |||
| CYW930739M2EVB-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 654049 | 654409 | 360 | 0.1 | |||
| RAM | 73560 | 73584 | 24 | 0.0 | |||
| light-switch | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 | |
| FLASH | 613461 | 613669 | 208 | 0.0 | |||
| RAM | 71452 | 71468 | 16 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 633089 | 633297 | 208 | 0.0 | |||
| RAM | 74004 | 74020 | 16 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 633089 | 633297 | 208 | 0.0 | |||
| RAM | 74004 | 74020 | 16 | 0.0 | |||
| lock | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 | |
| FLASH | 632589 | 632925 | 336 | 0.1 | |||
| RAM | 74500 | 74516 | 16 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 652297 | 652633 | 336 | 0.1 | |||
| RAM | 77052 | 77068 | 16 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 652297 | 652633 | 336 | 0.1 | |||
| RAM | 77052 | 77068 | 16 | 0.0 | |||
| thermostat | CYW30739B2-P5-EVK-01 | unknown | 2040 | 2040 | 0 | 0.0 | |
| FLASH | 608005 | 608333 | 328 | 0.1 | |||
| RAM | 68588 | 68604 | 16 | 0.0 | |||
| CYW30739B2-P5-EVK-02 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 627857 | 628193 | 336 | 0.1 | |||
| RAM | 71220 | 71236 | 16 | 0.0 | |||
| CYW30739B2-P5-EVK-03 | unknown | 2040 | 2040 | 0 | 0.0 | ||
| FLASH | 627857 | 628193 | 336 | 0.1 | |||
| RAM | 71220 | 71236 | 16 | 0.0 | |||
| efr32 | lighting-app | BRD4187C | FLASH | 932500 | 932732 | 232 | 0.0 |
| RAM | 135056 | 135080 | 24 | 0.0 | |||
| lock-app | BRD2605a | FLASH | 739960 | 740512 | 552 | 0.1 | |
| RAM | 231212 | 231220 | 8 | 0.0 | |||
| BRD4338a | FLASH | 740608 | 741160 | 552 | 0.1 | ||
| RAM | 231244 | 231252 | 8 | 0.0 | |||
| window-app | BRD4187C | FLASH | 1015544 | 1016072 | 528 | 0.1 | |
| RAM | 126996 | 127004 | 8 | 0.0 | |||
| esp32 | all-clusters-app | c3devkit | DRAM | 94152 | 94080 | -72 | -0.1 |
| FLASH | 1539520 | 1537360 | -2160 | -0.1 | |||
| IRAM | 82538 | 82538 | 0 | 0.0 | |||
| m5stack | DRAM | 115096 | 115032 | -64 | -0.1 | ||
| FLASH | 1549862 | 1547818 | -2044 | -0.1 | |||
| IRAM | 117039 | 117039 | 0 | 0.0 | |||
| linux | air-purifier-app | debug | unknown | 4688 | 4688 | 0 | 0.0 |
| FLASH | 2771259 | 2764229 | -7030 | -0.3 | |||
| RAM | 128944 | 129424 | 480 | 0.4 | |||
| all-clusters-app | debug | unknown | 5456 | 5456 | 0 | 0.0 | |
| FLASH | 6082752 | 6066630 | -16122 | -0.3 | |||
| RAM | 514288 | 507360 | -6928 | -1.3 | |||
| all-clusters-minimal-app | debug | unknown | 5352 | 5352 | 0 | 0.0 | |
| FLASH | 5406808 | 5399700 | -7108 | -0.1 | |||
| RAM | 240640 | 241136 | 496 | 0.2 | |||
| bridge-app | debug | unknown | 5336 | 5336 | 0 | 0.0 | |
| FLASH | 4740320 | 4733256 | -7064 | -0.1 | |||
| RAM | 217840 | 218304 | 464 | 0.2 | |||
| chip-tool | debug | unknown | 5888 | 5888 | 0 | 0.0 | |
| FLASH | 12676380 | 12544588 | -131792 | -1.0 | |||
| RAM | 562282 | 555058 | -7224 | -1.3 | |||
| chip-tool-ipv6only | arm64 | unknown | 20384 | 20400 | 16 | 0.1 | |
| FLASH | 11341636 | 11243028 | -98608 | -0.9 | |||
| RAM | 612384 | 605144 | -7240 | -1.2 | |||
| fabric-admin | debug | unknown | 5720 | 5720 | 0 | 0.0 | |
| FLASH | 10979263 | 10903033 | -76230 | -0.7 | |||
| RAM | 561322 | 554234 | -7088 | -1.3 | |||
| fabric-bridge-app | debug | unknown | 4568 | 4568 | 0 | 0.0 | |
| FLASH | 4563058 | 4555916 | -7142 | -0.2 | |||
| RAM | 204456 | 204888 | 432 | 0.2 | |||
| lighting-app | debug+rpc+ui | unknown | 5984 | 5984 | 0 | 0.0 | |
| FLASH | 5676641 | 5669489 | -7152 | -0.1 | |||
| RAM | 228128 | 228560 | 432 | 0.2 | |||
| lock-app | debug | unknown | 5272 | 5272 | 0 | 0.0 | |
| FLASH | 4789600 | 4782460 | -7140 | -0.1 | |||
| RAM | 203928 | 204376 | 448 | 0.2 | |||
| ota-provider-app | debug | unknown | 4648 | 4648 | 0 | 0.0 | |
| FLASH | 4422786 | 4415644 | -7142 | -0.2 | |||
| RAM | 197632 | 198112 | 480 | 0.2 | |||
| ota-requestor-app | debug | unknown | 4584 | 4584 | 0 | 0.0 | |
| FLASH | 4561532 | 4554392 | -7140 | -0.2 | |||
| RAM | 202200 | 202680 | 480 | 0.2 | |||
| shell | debug | unknown | 4216 | 4216 | 0 | 0.0 | |
| FLASH | 3107917 | 3095181 | -12736 | -0.4 | |||
| RAM | 159448 | 159184 | -264 | -0.2 | |||
| thermostat-no-ble | arm64 | unknown | 9336 | 9392 | 56 | 0.6 | |
| FLASH | 4333292 | 4326868 | -6424 | -0.1 | |||
| RAM | 242256 | 242664 | 408 | 0.2 | |||
| tv-app | debug | unknown | 5552 | 5552 | 0 | 0.0 | |
| FLASH | 6022277 | 6011589 | -10688 | -0.2 | |||
| RAM | 587088 | 580896 | -6192 | -1.1 | |||
| tv-casting-app | debug | unknown | 5208 | 5208 | 0 | 0.0 | |
| FLASH | 10883837 | 10739453 | -144384 | -1.3 | |||
| RAM | 650256 | 642976 | -7280 | -1.1 | |||
| nrfconnect | all-clusters-app | nrf52840dk_nrf52840 | FLASH | 915128 | 913292 | -1836 | -0.2 |
| RAM | 142259 | 142199 | -60 | -0.0 | |||
| nrf7002dk_nrf5340_cpuapp | FLASH | 886444 | 884964 | -1480 | -0.2 | ||
| RAM | 140398 | 140338 | -60 | -0.0 | |||
| all-clusters-minimal-app | nrf52840dk_nrf52840 | FLASH | 846476 | 846820 | 344 | 0.0 | |
| RAM | 141077 | 141093 | 16 | 0.0 | |||
| nxp | contact | k32w0+release | FLASH | 580520 | 581760 | 1240 | 0.2 |
| RAM | 70720 | 70776 | 56 | 0.1 | |||
| k32w1+release | FLASH | 593352 | 594240 | 888 | 0.1 | ||
| RAM | 62896 | 62952 | 56 | 0.1 | |||
| mcxw71+release | FLASH | 593104 | 593992 | 888 | 0.1 | ||
| RAM | 62896 | 62952 | 56 | 0.1 | |||
| light | k32w0+release | FLASH | 616332 | 617652 | 1320 | 0.2 | |
| RAM | 70184 | 70248 | 64 | 0.1 | |||
| k32w1+release | FLASH | 679608 | 680880 | 1272 | 0.2 | ||
| RAM | 48512 | 48584 | 72 | 0.1 | |||
| mcxw71+release | FLASH | 679608 | 680896 | 1288 | 0.2 | ||
| RAM | 48512 | 48584 | 72 | 0.1 | |||
| lock | k32w1+release | FLASH | 701904 | 702856 | 952 | 0.1 | |
| RAM | 67036 | 67084 | 48 | 0.1 | |||
| mcxw71+release | FLASH | 701928 | 702880 | 952 | 0.1 | ||
| RAM | 67036 | 67084 | 48 | 0.1 | |||
| psoc6 | all-clusters | cy8ckit_062s2_43012 | FLASH | 1646932 | 1645108 | -1824 | -0.1 |
| RAM | 210952 | 210888 | -64 | -0.0 | |||
| all-clusters-minimal | cy8ckit_062s2_43012 | FLASH | 1550556 | 1551124 | 568 | 0.0 | |
| RAM | 207664 | 207688 | 24 | 0.0 | |||
| light | cy8ckit_062s2_43012 | FLASH | 1466484 | 1466940 | 456 | 0.0 | |
| RAM | 200672 | 200696 | 24 | 0.0 | |||
| lock | cy8ckit_062s2_43012 | FLASH | 1462988 | 1463572 | 584 | 0.0 | |
| RAM | 225024 | 225048 | 24 | 0.0 | |||
| qpg | lighting-app | qpg6105+debug | FLASH | 659104 | 659384 | 280 | 0.0 |
| RAM | 105212 | 105236 | 24 | 0.0 | |||
| lock-app | qpg6105+debug | FLASH | 616996 | 617268 | 272 | 0.0 | |
| RAM | 99688 | 99704 | 16 | 0.0 | |||
| stm32 | light | STM32WB5MM-DK | FLASH | 480576 | 480920 | 344 | 0.1 |
| RAM | 144668 | 144692 | 24 | 0.0 | |||
| telink | air-quality-sensor-app | tlsr9528a_retention | FLASH | 621702 | 621958 | 256 | 0.0 |
| RAM | 50964 | 50988 | 24 | 0.0 | |||
| all-clusters-app | tlsr9118bdk40d | FLASH | 688204 | 687178 | -1026 | -0.1 | |
| RAM | 148388 | 148328 | -60 | -0.0 | |||
| all-clusters-minimal-app | tlsr9528a | FLASH | 779886 | 780144 | 258 | 0.0 | |
| RAM | 110756 | 110780 | 24 | 0.0 | |||
| bridge-app | tlsr9258a | FLASH | 680722 | 680980 | 258 | 0.0 | |
| RAM | 91620 | 91644 | 24 | 0.0 | |||
| contact-sensor-app | tlsr9528a_retention | FLASH | 621466 | 621722 | 256 | 0.0 | |
| RAM | 50916 | 50940 | 24 | 0.0 | |||
| light-switch-app-ota-shell-factory-data | tlsr9528a | FLASH | 707398 | 707630 | 232 | 0.0 | |
| RAM | 74256 | 74280 | 24 | 0.0 | |||
| lighting-app-ota-factory-data | tlsr9118bdk40d | FLASH | 624620 | 624878 | 258 | 0.0 | |
| RAM | 144292 | 144316 | 24 | 0.0 | |||
| lighting-app-ota-rpc-factory-data-4mb | tlsr9518adk80d | FLASH | 810028 | 810286 | 258 | 0.0 | |
| RAM | 99424 | 99448 | 24 | 0.0 | |||
| lock-app-dfu | tlsr9528a | FLASH | 655218 | 655476 | 258 | 0.0 | |
| RAM | 66976 | 67000 | 24 | 0.0 | |||
| ota-requestor-app | tlsr9258a | FLASH | 696698 | 696956 | 258 | 0.0 | |
| RAM | 91212 | 91236 | 24 | 0.0 | |||
| pump-app-usb | tlsr9518adk80d | FLASH | 633054 | 633312 | 258 | 0.0 | |
| RAM | 55792 | 55816 | 24 | 0.0 | |||
| pump-controller-app | tlsr9518adk80d | FLASH | 610244 | 610502 | 258 | 0.0 | |
| RAM | 53036 | 53060 | 24 | 0.0 | |||
| shell | tlsr9518adk80d | FLASH | 467170 | 467192 | 22 | 0.0 | |
| RAM | 68668 | 68668 | 0 | 0.0 | |||
| smoke_co_alarm-app | tlsr9528a_retention | FLASH | 628430 | 628688 | 258 | 0.0 | |
| RAM | 52636 | 52660 | 24 | 0.0 | |||
| temperature-measurement-app-mars-ota | tlsr9518adk80d | FLASH | 652380 | 652638 | 258 | 0.0 | |
| RAM | 56584 | 56608 | 24 | 0.0 | |||
| thermostat | tlsr9518adk80d | FLASH | 636974 | 637232 | 258 | 0.0 | |
| RAM | 53428 | 53452 | 24 | 0.0 | |||
| window-covering | tlsr9118bdk40d | FLASH | 523150 | 523408 | 258 | 0.0 | |
| RAM | 97268 | 97284 | 16 | 0.0 | |||
| tizen | all-clusters-app | arm | unknown | 4852 | 4876 | 24 | 0.5 |
| FLASH | 1724856 | 1721852 | -3004 | -0.2 | |||
| RAM | 89524 | 89084 | -440 | -0.5 | |||
| chip-tool-ubsan | arm | unknown | 10284 | 10276 | -8 | -0.1 | |
| FLASH | 17532082 | 17345394 | -186688 | -1.1 | |||
| RAM | 7609764 | 7556552 | -53212 | -0.7 |
PR #35631: Size comparison from f509f67551b19789aeabf16c40b0bf8b0ecfaebf to eb2dcbf8d245d1a3950432581db79594427ea533
Full report (22 builds for cc13x4_26x4, cc32xx, nrfconnect, nxp, qpg, stm32, tizen)
| platform | target | config | section | f509f675 | eb2dcbf8 | change | % change |
|---|---|---|---|---|---|---|---|
| cc13x4_26x4 | lighting-app | LP_EM_CC1354P10_6 | FLASH | 829380 | 829452 | 72 | 0.0 |
| RAM | 123300 | 123300 | 0 | 0.0 | |||
| lock-ftd | LP_EM_CC1354P10_6 | FLASH | 814424 | 814480 | 56 | 0.0 | |
| RAM | 125172 | 125172 | 0 | 0.0 | |||
| pump-app | LP_EM_CC1354P10_6 | FLASH | 760420 | 760964 | 544 | 0.1 | |
| RAM | 113664 | 113664 | 0 | 0.0 | |||
| pump-controller-app | LP_EM_CC1354P10_6 | FLASH | 744656 | 745200 | 544 | 0.1 | |
| RAM | 113856 | 113856 | 0 | 0.0 | |||
| cc32xx | air-purifier | CC3235SF_LAUNCHXL | FLASH | 616202 | 616682 | 480 | 0.1 |
| RAM | 205396 | 205396 | 0 | 0.0 | |||
| lock | CC3235SF_LAUNCHXL | FLASH | 656258 | 656730 | 472 | 0.1 | |
| RAM | 205548 | 205548 | 0 | 0.0 | |||
| nrfconnect | all-clusters-app | nrf52840dk_nrf52840 | FLASH | 913440 | 913936 | 496 | 0.1 |
| RAM | 142199 | 142199 | 0 | 0.0 | |||
| nrf7002dk_nrf5340_cpuapp | FLASH | 885020 | 884960 | -60 | -0.0 | ||
| RAM | 140338 | 140338 | 0 | 0.0 | |||
| all-clusters-minimal-app | nrf52840dk_nrf52840 | FLASH | 846948 | 847468 | 520 | 0.1 | |
| RAM | 141093 | 141093 | 0 | 0.0 | |||
| nxp | contact | k32w0+release | FLASH | 581760 | 581864 | 104 | 0.0 |
| RAM | 70776 | 70784 | 8 | 0.0 | |||
| k32w1+release | FLASH | 595664 | 596144 | 480 | 0.1 | ||
| RAM | 62992 | 62992 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 595416 | 595904 | 488 | 0.1 | ||
| RAM | 62992 | 62992 | 0 | 0.0 | |||
| light | k32w0+release | FLASH | 617812 | 618372 | 560 | 0.1 | |
| RAM | 70248 | 70256 | 8 | 0.0 | |||
| k32w1+release | FLASH | 681624 | 682160 | 536 | 0.1 | ||
| RAM | 48632 | 48632 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 681640 | 682176 | 536 | 0.1 | ||
| RAM | 48632 | 48632 | 0 | 0.0 | |||
| lock | k32w1+release | FLASH | 703944 | 704488 | 544 | 0.1 | |
| RAM | 67132 | 67132 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 703968 | 704512 | 544 | 0.1 | ||
| RAM | 67132 | 67132 | 0 | 0.0 | |||
| qpg | lighting-app | qpg6105+debug | FLASH | 659512 | 660048 | 536 | 0.1 |
| RAM | 105236 | 105236 | 0 | 0.0 | |||
| lock-app | qpg6105+debug | FLASH | 617476 | 618020 | 544 | 0.1 | |
| RAM | 99704 | 99704 | 0 | 0.0 | |||
| stm32 | light | STM32WB5MM-DK | FLASH | 481072 | 481608 | 536 | 0.1 |
| RAM | 144692 | 144692 | 0 | 0.0 | |||
| tizen | all-clusters-app | arm | unknown | 4904 | 4904 | 0 | 0.0 |
| FLASH | 1724244 | 1725152 | 908 | 0.1 | |||
| RAM | 89076 | 89076 | 0 | 0.0 | |||
| chip-tool-ubsan | arm | unknown | 10344 | 10348 | 4 | 0.0 | |
| FLASH | 17357954 | 17362010 | 4056 | 0.0 | |||
| RAM | 7562996 | 7564628 | 1632 | 0.0 |
PR #35631: Size comparison from f509f67551b19789aeabf16c40b0bf8b0ecfaebf to 3e30568638ed54db071c2f997173d1d85721f056
Full report (20 builds for cc13x4_26x4, cc32xx, nrfconnect, nxp, qpg, stm32, tizen)
| platform | target | config | section | f509f675 | 3e305686 | change | % change |
|---|---|---|---|---|---|---|---|
| cc13x4_26x4 | lighting-app | LP_EM_CC1354P10_6 | FLASH | 829380 | 829452 | 72 | 0.0 |
| RAM | 123300 | 123300 | 0 | 0.0 | |||
| lock-ftd | LP_EM_CC1354P10_6 | FLASH | 814424 | 814480 | 56 | 0.0 | |
| RAM | 125172 | 125172 | 0 | 0.0 | |||
| pump-app | LP_EM_CC1354P10_6 | FLASH | 760420 | 760964 | 544 | 0.1 | |
| RAM | 113664 | 113664 | 0 | 0.0 | |||
| pump-controller-app | LP_EM_CC1354P10_6 | FLASH | 744656 | 745200 | 544 | 0.1 | |
| RAM | 113856 | 113856 | 0 | 0.0 | |||
| cc32xx | air-purifier | CC3235SF_LAUNCHXL | FLASH | 616202 | 616682 | 480 | 0.1 |
| RAM | 205396 | 205396 | 0 | 0.0 | |||
| lock | CC3235SF_LAUNCHXL | FLASH | 656258 | 656730 | 472 | 0.1 | |
| RAM | 205548 | 205548 | 0 | 0.0 | |||
| nrfconnect | all-clusters-app | nrf52840dk_nrf52840 | FLASH | 913440 | 913936 | 496 | 0.1 |
| RAM | 142199 | 142199 | 0 | 0.0 | |||
| nrf7002dk_nrf5340_cpuapp | FLASH | 885020 | 884960 | -60 | -0.0 | ||
| RAM | 140338 | 140338 | 0 | 0.0 | |||
| all-clusters-minimal-app | nrf52840dk_nrf52840 | FLASH | 846948 | 847468 | 520 | 0.1 | |
| RAM | 141093 | 141093 | 0 | 0.0 | |||
| nxp | contact | k32w1+release | FLASH | 595664 | 596144 | 480 | 0.1 |
| RAM | 62992 | 62992 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 595416 | 595904 | 488 | 0.1 | ||
| RAM | 62992 | 62992 | 0 | 0.0 | |||
| light | k32w1+release | FLASH | 681624 | 682160 | 536 | 0.1 | |
| RAM | 48632 | 48632 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 681640 | 682176 | 536 | 0.1 | ||
| RAM | 48632 | 48632 | 0 | 0.0 | |||
| lock | k32w1+release | FLASH | 703944 | 704488 | 544 | 0.1 | |
| RAM | 67132 | 67132 | 0 | 0.0 | |||
| mcxw71+release | FLASH | 703968 | 704512 | 544 | 0.1 | ||
| RAM | 67132 | 67132 | 0 | 0.0 | |||
| qpg | lighting-app | qpg6105+debug | FLASH | 659512 | 660048 | 536 | 0.1 |
| RAM | 105236 | 105236 | 0 | 0.0 | |||
| lock-app | qpg6105+debug | FLASH | 617476 | 618020 | 544 | 0.1 | |
| RAM | 99704 | 99704 | 0 | 0.0 | |||
| stm32 | light | STM32WB5MM-DK | FLASH | 481072 | 481608 | 536 | 0.1 |
| RAM | 144692 | 144692 | 0 | 0.0 | |||
| tizen | all-clusters-app | arm | unknown | 4904 | 4904 | 0 | 0.0 |
| FLASH | 1724244 | 1725152 | 908 | 0.1 | |||
| RAM | 89076 | 89076 | 0 | 0.0 | |||
| chip-tool-ubsan | arm | unknown | 10344 | 10348 | 4 | 0.0 | |
| FLASH | 17357954 | 17362010 | 4056 | 0.0 | |||
| RAM | 7562996 | 7564628 | 1632 | 0.0 |
Do you expect to finish soon?
I'm going to close this PR for now - this design pattern was considered and the unit testing and readme requirements were taken into the ongoing work for code driven clusters. IMO, this proof of concept has served its purpose, and this PR will need a pretty significant re-write to work with the new cluster API for code driven clusters. Future authors can use this as a reference, but the changes here are significant enough that this warrants a new PR.