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

Define the unknown enum value for cluster enums. #20907

Merged
merged 1 commit into from
Jul 19, 2022

Conversation

bzbarsky-apple
Copy link
Contributor

And fix various bits of code that did not handle unexpected enum
values.

Problem

We don't have a good way, for enum class enums, to test for the "not a known value" case.

Change overview

Add a way.

Testing

No behavior changes except some error handling bits.

@Morozov-5F Could you please review the door lock changes?

@tlykkeberg-grundfos @ReneJosefsen Could you please review the pump changes?

@tcarmelveilleux Could you please review the OTA and diagnostic logs changes?

@woody-apple woody-apple enabled auto-merge (squash) July 19, 2022 03:04
And fix various bits of code that did not handle unexpected enum
values.
@github-actions
Copy link

github-actions bot commented Jul 19, 2022

PR #20907: Size comparison from 16cae34 to 8e26081

Increases (32 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, linux, nrfconnect, p6, telink)
platform target config section 16cae34 8e26081 change % change
bl602 lighting-app bl602 (read/write) 1383730 1383746 16 0.0
.text 1053776 1053792 16 0.0
bl602+rpc (read/write) 1429138 1429154 16 0.0
.text 1085432 1085448 16 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 668599 668711 112 0.0
.text 579964 580076 112 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 634223 634335 112 0.0
.text 556348 556460 112 0.0
lock-ftd LP_CC2652R7 (read only) 671811 671827 16 0.0
.text 594880 594896 16 0.0
lock-mtd LP_CC2652R7 (read only) 654095 654111 16 0.0
.text 552416 552432 16 0.0
pump-app LP_CC2652R7 (read only) 680795 680827 32 0.0
.text 591500 591532 32 0.0
pump-controller-app LP_CC2652R7 (read only) 666587 666603 16 0.0
.text 581432 581448 16 0.0
shell LP_CC2652R7 (read only) 661098 661210 112 0.0
.text 575684 575796 112 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 582142 582150 8 0.0
.app_xip_area 460704 460712 8 0.0
lock cyw930739m2evb_01 (read/write) 588050 588058 8 0.0
.app_xip_area 461884 461892 8 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 585474 585482 8 0.0
.app_xip_area 464884 464892 8 0.0
efr32 lighting-app BRD4161A (read/write) 1084792 1084808 16 0.0
.text 949680 949696 16 0.0
BRD4161A+rpc (read/write) 1139084 1139100 16 0.0
.text 987076 987092 16 0.0
BRD4161A+rs911x (read/write) 950160 950176 16 0.0
.text 807324 807340 16 0.0
window-app BRD4161A (read/write) 1078284 1078300 16 0.0
.text 941672 941688 16 0.0
esp32 all-clusters-app c3devkit (read only) 1021764 1021808 44 0.0
.flash.text 1021764 1021808 44 0.0
m5stack (read only) 1075507 1075539 32 0.0
.flash.text 1070123 1070155 32 0.0
linux all-clusters-app debug (read only) 2973161 2973353 192 0.0
.rodata 264733 264797 64 0.0
.text 2530834 2530962 128 0.0
all-clusters-minimal-app debug (read only) 2819721 2819897 176 0.0
.rodata 265661 265725 64 0.0
.text 2379122 2379234 112 0.0
chip-tool debug (read only) 10295393 10295425 32 0.0
.text 8331604 8331636 32 0.0
chip-tool-ipv6only arm64 (read only) 10036380 10036412 32 0.0
.text 7976596 7976628 32 0.0
lock-app debug (read only) 2522617 2522649 32 0.0
.text 2128482 2128514 32 0.0
ota-requestor-app debug (read only) 2443817 2443897 80 0.0
.text 2065154 2065234 80 0.0
shell debug (read only) 2560065 2560241 176 0.0
.rodata 228114 228178 64 0.0
.text 2174946 2175058 112 0.0
tv-app debug (read only) 3108121 3108153 32 0.0
.text 2670818 2670850 32 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1176643 1176675 32 0.0
text 812636 812668 32 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1156675 1156723 48 0.0
text 801916 801956 40 0.0
p6 all-clusters-app default (read/write) 1685036 1685100 64 0.0
.text 1525440 1525504 64 0.0
all-clusters-minimal-app default (read/write) 1629180 1629212 32 0.0
.text 1470304 1470336 32 0.0
telink light-switch-app tlsr9518adk80d text 566810 566812 2 0.0
lighting-app tlsr9518adk80d (read/write) 818732 818740 8 0.0
text 583344 583346 2 0.0
Decreases (6 builds for cc13x2_26x2)
platform target config section 16cae34 8e26081 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 182640 182528 -112 -0.1
lock-ftd LP_CC2652R7 (read/write) 169604 169588 -16 -0.0
lock-mtd LP_CC2652R7 (read/write) 183008 182992 -16 -0.0
pump-app LP_CC2652R7 (read/write) 161468 161436 -32 -0.0
pump-controller-app LP_CC2652R7 (read/write) 175796 175780 -16 -0.0
shell LP_CC2652R7 (read/write) 185644 185532 -112 -0.1
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 16cae34 8e26081 change % change
bl602 lighting-app bl602 (read/write) 1383730 1383746 16 0.0
.bss 116978 116978 0 0.0
.data 4480 4480 0 0.0
.text 1053776 1053792 16 0.0
bl602+rpc (read/write) 1429138 1429154 16 0.0
.bss 124418 124418 0 0.0
.data 4600 4600 0 0.0
.text 1085432 1085448 16 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 668599 668711 112 0.0
(read/write) 182640 182528 -112 -0.1
.bss 74132 74132 0 0.0
.data 3356 3356 0 0.0
.rodata 88319 88319 0 0.0
.text 579964 580076 112 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 634223 634335 112 0.0
(read/write) 157700 157700 0 0.0
.bss 73428 73428 0 0.0
.data 3356 3356 0 0.0
.rodata 77551 77551 0 0.0
.text 556348 556460 112 0.0
lock-ftd LP_CC2652R7 (read only) 671811 671827 16 0.0
(read/write) 169604 169588 -16 -0.0
.bss 71196 71196 0 0.0
.data 3280 3280 0 0.0
.rodata 76451 76451 0 0.0
.text 594880 594896 16 0.0
lock-mtd LP_CC2652R7 (read only) 654095 654111 16 0.0
(read/write) 183008 182992 -16 -0.0
.bss 66884 66884 0 0.0
.data 3280 3280 0 0.0
.rodata 101199 101199 0 0.0
.text 552416 552432 16 0.0
pump-app LP_CC2652R7 (read only) 680795 680827 32 0.0
(read/write) 161468 161436 -32 -0.0
.bss 71276 71276 0 0.0
.data 3280 3280 0 0.0
.rodata 88811 88811 0 0.0
.text 591500 591532 32 0.0
pump-controller-app LP_CC2652R7 (read only) 666587 666603 16 0.0
(read/write) 175796 175780 -16 -0.0
.bss 71396 71396 0 0.0
.data 3276 3276 0 0.0
.rodata 84675 84675 0 0.0
.text 581432 581448 16 0.0
shell LP_CC2652R7 (read only) 661098 661210 112 0.0
(read/write) 185644 185532 -112 -0.1
.bss 76436 76436 0 0.0
.data 3360 3360 0 0.0
.rodata 85098 85098 0 0.0
.text 575684 575796 112 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 582142 582150 8 0.0
.app_xip_area 460704 460712 8 0.0
.bss 64232 64232 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 588050 588058 8 0.0
.app_xip_area 461884 461892 8 0.0
.bss 68960 68960 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 585474 585482 8 0.0
.app_xip_area 464884 464892 8 0.0
.bss 63440 63440 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1084792 1084808 16 0.0
.bss 133044 133044 0 0.0
.data 2048 2048 0 0.0
.text 949680 949696 16 0.0
BRD4161A+rpc (read/write) 1139084 1139100 16 0.0
.bss 149724 149724 0 0.0
.data 2260 2260 0 0.0
.text 987076 987092 16 0.0
BRD4161A+rs911x (read/write) 950160 950176 16 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 807324 807340 16 0.0
lock-app BRD4161A+wf200 (read/write) 1128004 1128004 0 0.0
.bss 144136 144136 0 0.0
.data 2056 2056 0 0.0
.text 981792 981792 0 0.0
window-app BRD4161A (read/write) 1078284 1078300 16 0.0
.bss 134516 134516 0 0.0
.data 2076 2076 0 0.0
.text 941672 941688 16 0.0
esp32 all-clusters-app c3devkit (read only) 1021764 1021808 44 0.0
(read/write) 1486026 1486026 0 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215912 215912 0 0.0
.flash.text 1021764 1021808 44 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1075507 1075539 32 0.0
(read/write) 488064 488064 0 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 246324 246324 0 0.0
.flash.text 1070123 1070155 32 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 660924 660924 0 0.0
.bss 69540 69540 0 0.0
.data 1992 1992 0 0.0
.text 583592 583592 0 0.0
lock k32w061+release (read/write) 687908 687908 0 0.0
.bss 70004 70004 0 0.0
.data 2004 2004 0 0.0
.text 610100 610100 0 0.0
linux all-clusters-app debug (read only) 2973161 2973353 192 0.0
(read/write) 155016 155016 0 0.0
.bss 61664 61664 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 85048 85048 0 0.0
.dynamic 608 608 0 0.0
.got 4560 4560 0 0.0
.init 27 27 0 0.0
.init_array 1056 1056 0 0.0
.rodata 264733 264797 64 0.0
.text 2530834 2530962 128 0.0
all-clusters-minimal-app debug (read only) 2819721 2819897 176 0.0
(read/write) 146688 146688 0 0.0
.bss 60864 60864 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 77608 77608 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 1048 1048 0 0.0
.rodata 265661 265725 64 0.0
.text 2379122 2379234 112 0.0
bridge-app debug+rpc (read only) 2320009 2320009 0 0.0
(read/write) 125504 125504 0 0.0
.bss 48928 48928 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 66984 66984 0 0.0
.dynamic 608 608 0 0.0
.got 4384 4384 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 198240 198240 0 0.0
.text 1960130 1960130 0 0.0
chip-tool debug (read only) 10295393 10295425 32 0.0
(read/write) 629504 629504 0 0.0
.bss 24728 24728 0 0.0
.data 3234 3234 0 0.0
.data.rel.ro 595152 595152 0 0.0
.dynamic 608 608 0 0.0
.got 5088 5088 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 515765 515765 0 0.0
.text 8331604 8331636 32 0.0
chip-tool-ipv6only arm64 (read only) 10036380 10036412 32 0.0
(read/write) 694577 694577 0 0.0
.bss 42961 42961 0 0.0
.data 3304 3304 0 0.0
.data.rel.ro 630768 630768 0 0.0
.dynamic 528 528 0 0.0
.got 13624 13624 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 479820 479820 0 0.0
.text 7976596 7976628 32 0.0
lighting-app debug+rpc (read only) 2557785 2557785 0 0.0
(read/write) 129528 129528 0 0.0
.bss 49440 49440 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72136 72136 0 0.0
.dynamic 608 608 0 0.0
.got 4384 4384 0 0.0
.init 27 27 0 0.0
.init_array 816 816 0 0.0
.rodata 214088 214088 0 0.0
.text 2173826 2173826 0 0.0
lock-app debug (read only) 2522617 2522649 32 0.0
(read/write) 124512 124512 0 0.0
.bss 47840 47840 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69096 69096 0 0.0
.dynamic 608 608 0 0.0
.got 4416 4416 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 229064 229064 0 0.0
.text 2128482 2128514 32 0.0
ota-provider-app debug (read only) 2326209 2326209 0 0.0
(read/write) 118312 118312 0 0.0
.bss 47488 47488 0 0.0
.data 1944 1944 0 0.0
.data.rel.ro 63096 63096 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 203832 203832 0 0.0
.text 1959698 1959698 0 0.0
ota-requestor-app debug (read only) 2443817 2443897 80 0.0
(read/write) 125216 125216 0 0.0
.bss 49856 49856 0 0.0
.data 2232 2232 0 0.0
.data.rel.ro 67304 67304 0 0.0
.dynamic 608 608 0 0.0
.got 4472 4472 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 207584 207584 0 0.0
.text 2065154 2065234 80 0.0
shell debug (read only) 2560065 2560241 176 0.0
(read/write) 141104 141104 0 0.0
.bss 57448 57448 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 76688 76688 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 228114 228178 64 0.0
.text 2174946 2175058 112 0.0
thermostat-no-ble arm64 (read only) 2600676 2600676 0 0.0
(read/write) 158257 158257 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83216 83216 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165748 165748 0 0.0
.text 2195184 2195184 0 0.0
tv-app debug (read only) 3108121 3108153 32 0.0
(read/write) 257704 257704 0 0.0
.bss 167016 167016 0 0.0
.data 4848 4848 0 0.0
.data.rel.ro 79392 79392 0 0.0
.dynamic 608 608 0 0.0
.got 4840 4840 0 0.0
.init 27 27 0 0.0
.init_array 952 952 0 0.0
.rodata 249504 249504 0 0.0
.text 2670818 2670850 32 0.0
tv-casting-app debug (read only) 5356241 5356241 0 0.0
(read/write) 157664 157664 0 0.0
.bss 51016 51016 0 0.0
.data 2416 2416 0 0.0
.data.rel.ro 97928 97928 0 0.0
.dynamic 608 608 0 0.0
.got 4736 4736 0 0.0
.init 27 27 0 0.0
.init_array 912 912 0 0.0
.rodata 332841 332841 0 0.0
.text 4758002 4758002 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2449128 2449128 0 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1411772 1411772 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1176643 1176675 32 0.0
bss 142900 142900 0 0.0
rodata 142204 142204 0 0.0
text 812636 812668 32 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1156675 1156723 48 0.0
bss 142136 142136 0 0.0
rodata 133748 133748 0 0.0
text 801916 801956 40 0.0
p6 all-clusters-app default (read only) 882136 882136 0 0.0
(read/write) 1685036 1685100 64 0.0
.bss 148560 148560 0 0.0
.data 2648 2648 0 0.0
.text 1525440 1525504 64 0.0
all-clusters-minimal-app default (read only) 882856 882856 0 0.0
(read/write) 1629180 1629212 32 0.0
.bss 147840 147840 0 0.0
.data 2648 2648 0 0.0
.text 1470304 1470336 32 0.0
light-app default (read only) 891160 891160 0 0.0
(read/write) 1549220 1549220 0 0.0
.bss 139744 139744 0 0.0
.data 2440 2440 0 0.0
.text 1398648 1398648 0 0.0
lock-app default (read only) 891288 891288 0 0.0
(read/write) 1576220 1576220 0 0.0
.bss 139600 139600 0 0.0
.data 2456 2456 0 0.0
.text 1425776 1425776 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 798700 798700 0 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 566810 566812 2 0.0
lighting-app tlsr9518adk80d (read/write) 818732 818740 8 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 583344 583346 2 0.0

@ReneJosefsen
Copy link
Contributor

Good catch with the missing kProportionalPressure value as well, thanks.
Looks good to me.

Copy link
Contributor

@Morozov-5F Morozov-5F left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally approve but there are minor things that could be discussed.

@woody-apple woody-apple merged commit f6cfaaf into project-chip:master Jul 19, 2022
github-actions bot pushed a commit that referenced this pull request Jul 19, 2022
And fix various bits of code that did not handle unexpected enum
values.
@bzbarsky-apple bzbarsky-apple deleted the invalid-enum-value branch July 19, 2022 15:34
woody-apple added a commit that referenced this pull request Jul 19, 2022
And fix various bits of code that did not handle unexpected enum
values.

Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
@mrjerryjohns mrjerryjohns linked an issue Jul 19, 2022 that may be closed by this pull request
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.

Cluster Objects don't handle unknown enum/bitmap values well
5 participants