diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml index 55526db1ccfc4b..2d7443f9e9758c 100644 --- a/.github/workflows/darwin.yaml +++ b/.github/workflows/darwin.yaml @@ -123,6 +123,13 @@ jobs: run: | xcodebuild -target "MatterTvCastingBridge" -sdk iphoneos working-directory: examples/tv-casting-app/darwin/MatterTvCastingBridge + - name: Uploading .ips files in Xcode derived data to debug the failure + uses: actions/upload-artifact@v4 + if: ${{ failure() && !env.ACT }} + with: + name: darwin-framework-derived-data + path: ~/Library/Developer/Xcode/DerivedData/**/*.ips + retention-days: 5 - name: Uploading log files uses: actions/upload-artifact@v4 if: ${{ failure() && !env.ACT }} diff --git a/src/app/BUILD.gn b/src/app/BUILD.gn index 52f14d9f308f7f..84540e97892e6a 100644 --- a/src/app/BUILD.gn +++ b/src/app/BUILD.gn @@ -110,93 +110,6 @@ source_set("subscription-manager") { public_deps = [ "${chip_root}/src/lib/core" ] } -source_set("message-def") { - sources = [ - "MessageDef/ArrayBuilder.cpp", - "MessageDef/ArrayParser.cpp", - "MessageDef/AttributeDataIB.cpp", - "MessageDef/AttributeDataIB.h", - "MessageDef/AttributeDataIBs.cpp", - "MessageDef/AttributeDataIBs.h", - "MessageDef/AttributePathIB.cpp", - "MessageDef/AttributePathIB.h", - "MessageDef/AttributePathIBs.cpp", - "MessageDef/AttributePathIBs.h", - "MessageDef/AttributeReportIB.cpp", - "MessageDef/AttributeReportIB.h", - "MessageDef/AttributeReportIBs.cpp", - "MessageDef/AttributeReportIBs.h", - "MessageDef/AttributeStatusIB.cpp", - "MessageDef/AttributeStatusIB.h", - "MessageDef/AttributeStatusIBs.cpp", - "MessageDef/AttributeStatusIBs.h", - "MessageDef/Builder.cpp", - "MessageDef/Builder.h", - "MessageDef/ClusterPathIB.cpp", - "MessageDef/ClusterPathIB.h", - "MessageDef/CommandDataIB.cpp", - "MessageDef/CommandPathIB.cpp", - "MessageDef/CommandStatusIB.cpp", - "MessageDef/DataVersionFilterIB.cpp", - "MessageDef/DataVersionFilterIB.h", - "MessageDef/DataVersionFilterIBs.cpp", - "MessageDef/DataVersionFilterIBs.h", - "MessageDef/EventDataIB.cpp", - "MessageDef/EventDataIB.h", - "MessageDef/EventFilterIB.cpp", - "MessageDef/EventFilterIBs.cpp", - "MessageDef/EventPathIB.cpp", - "MessageDef/EventPathIB.h", - "MessageDef/EventPathIBs.cpp", - "MessageDef/EventPathIBs.h", - "MessageDef/EventReportIB.cpp", - "MessageDef/EventReportIB.h", - "MessageDef/EventReportIBs.cpp", - "MessageDef/EventReportIBs.h", - "MessageDef/EventStatusIB.cpp", - "MessageDef/EventStatusIB.h", - "MessageDef/InvokeRequestMessage.cpp", - "MessageDef/InvokeRequests.cpp", - "MessageDef/InvokeResponseIB.cpp", - "MessageDef/InvokeResponseIBs.cpp", - "MessageDef/InvokeResponseMessage.cpp", - "MessageDef/ListBuilder.cpp", - "MessageDef/ListParser.cpp", - "MessageDef/MessageBuilder.cpp", - "MessageDef/MessageBuilder.h", - "MessageDef/MessageDefHelper.cpp", - "MessageDef/MessageDefHelper.h", - "MessageDef/MessageParser.cpp", - "MessageDef/MessageParser.h", - "MessageDef/Parser.cpp", - "MessageDef/Parser.h", - "MessageDef/ReadRequestMessage.cpp", - "MessageDef/ReadRequestMessage.h", - "MessageDef/ReportDataMessage.cpp", - "MessageDef/ReportDataMessage.h", - "MessageDef/StatusIB.cpp", - "MessageDef/StatusIB.h", - "MessageDef/StatusResponseMessage.cpp", - "MessageDef/StructBuilder.cpp", - "MessageDef/StructParser.cpp", - "MessageDef/SubscribeRequestMessage.cpp", - "MessageDef/SubscribeResponseMessage.cpp", - "MessageDef/TimedRequestMessage.cpp", - "MessageDef/WriteRequestMessage.cpp", - "MessageDef/WriteResponseMessage.cpp", - ] - - deps = [ - ":app_config", - ":paths", - ":revision_info", - "${chip_root}/src/lib/core", - "${chip_root}/src/lib/support", - "${chip_root}/src/protocols/interaction_model", - "${chip_root}/src/protocols/secure_channel", - ] -} - config("config-controller-dynamic-server") { defines = [ "CHIP_CONFIG_SKIP_APP_SPECIFIC_GENERATED_HEADER_INCLUDES=1", @@ -241,9 +154,9 @@ static_library("interaction-model") { public_deps = [ ":app_config", - ":message-def", ":paths", ":subscription-manager", + "${chip_root}/src/app/MessageDef", "${chip_root}/src/app/icd/server:icd-server-config", "${chip_root}/src/app/icd/server:observer", "${chip_root}/src/lib/address_resolve", diff --git a/src/app/MessageDef/BUILD.gn b/src/app/MessageDef/BUILD.gn new file mode 100644 index 00000000000000..4880a9a8b126e4 --- /dev/null +++ b/src/app/MessageDef/BUILD.gn @@ -0,0 +1,123 @@ +# Copyright (c) 2024 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import("//build_overrides/chip.gni") + +source_set("MessageDef") { + sources = [ + "ArrayBuilder.cpp", + "ArrayBuilder.h", + "ArrayParser.cpp", + "ArrayParser.h", + "AttributeDataIB.cpp", + "AttributeDataIB.h", + "AttributeDataIBs.cpp", + "AttributeDataIBs.h", + "AttributePathIB.cpp", + "AttributePathIB.h", + "AttributePathIBs.cpp", + "AttributePathIBs.h", + "AttributeReportIB.cpp", + "AttributeReportIB.h", + "AttributeReportIBs.cpp", + "AttributeReportIBs.h", + "AttributeStatusIB.cpp", + "AttributeStatusIB.h", + "AttributeStatusIBs.cpp", + "AttributeStatusIBs.h", + "Builder.cpp", + "Builder.h", + "ClusterPathIB.cpp", + "ClusterPathIB.h", + "CommandDataIB.cpp", + "CommandDataIB.h", + "CommandPathIB.cpp", + "CommandPathIB.h", + "CommandStatusIB.cpp", + "CommandStatusIB.h", + "DataVersionFilterIB.cpp", + "DataVersionFilterIB.h", + "DataVersionFilterIBs.cpp", + "DataVersionFilterIBs.h", + "EventDataIB.cpp", + "EventDataIB.h", + "EventFilterIB.cpp", + "EventFilterIB.h", + "EventFilterIBs.cpp", + "EventFilterIBs.h", + "EventPathIB.cpp", + "EventPathIB.h", + "EventPathIBs.cpp", + "EventPathIBs.h", + "EventReportIB.cpp", + "EventReportIB.h", + "EventReportIBs.cpp", + "EventReportIBs.h", + "EventStatusIB.cpp", + "EventStatusIB.h", + "InvokeRequestMessage.cpp", + "InvokeRequestMessage.h", + "InvokeRequests.cpp", + "InvokeRequests.h", + "InvokeResponseIB.cpp", + "InvokeResponseIB.h", + "InvokeResponseIBs.cpp", + "InvokeResponseIBs.h", + "InvokeResponseMessage.cpp", + "InvokeResponseMessage.h", + "ListBuilder.cpp", + "ListBuilder.h", + "ListParser.cpp", + "ListParser.h", + "MessageBuilder.cpp", + "MessageBuilder.h", + "MessageDefHelper.cpp", + "MessageDefHelper.h", + "MessageParser.cpp", + "MessageParser.h", + "Parser.cpp", + "Parser.h", + "ReadRequestMessage.cpp", + "ReadRequestMessage.h", + "ReportDataMessage.cpp", + "ReportDataMessage.h", + "StatusIB.cpp", + "StatusIB.h", + "StatusResponseMessage.cpp", + "StatusResponseMessage.h", + "StructBuilder.cpp", + "StructBuilder.h", + "StructParser.cpp", + "StructParser.h", + "SubscribeRequestMessage.cpp", + "SubscribeRequestMessage.h", + "SubscribeResponseMessage.cpp", + "SubscribeResponseMessage.h", + "TimedRequestMessage.cpp", + "TimedRequestMessage.h", + "WriteRequestMessage.cpp", + "WriteRequestMessage.h", + "WriteResponseMessage.cpp", + "WriteResponseMessage.h", + ] + + deps = [ + "${chip_root}/src/app:app_config", + "${chip_root}/src/app:paths", + "${chip_root}/src/app:revision_info", + "${chip_root}/src/lib/core", + "${chip_root}/src/lib/support", + "${chip_root}/src/protocols/interaction_model", + "${chip_root}/src/protocols/secure_channel", + ] +} diff --git a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml index 60d94f67442310..21549a843b29ac 100644 --- a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml @@ -86,8 +86,8 @@ tests: GroupKeySet fields are as follows: 1)GroupKeySetID: 0x01a1 2)GroupKeySecurityPolicy: TrustFirst (0) 3)EpochKey0: a0a1a2a3a4a5a6a7a8a9aaabacadaeaf 4)EpochStartTime0: 1110000 - 5)EpochKey1: a1a1a2a3a4a5a6a7a8a9aaabacadaeaf 6)EpochStartTime1: - 1110001 7)EpochKey2: a2a1a2a3a4a5a6a7a8a9aaabacadaeaf + 5)EpochKey1: b0b1b2b3b4b5b6b7b8b9babbbcbdbebf 6)EpochStartTime1: + 1110001 7)EpochKey2: c0c1c2c3c4c5c6c7c8c9cacbcccdcecf 8)EpochStartTime2: 1110002" cluster: "Group Key Management" endpoint: 0 @@ -113,8 +113,8 @@ tests: GroupKeySet fields are as follows: 1)GroupKeySetID: 0x01a2 2)GroupKeySecurityPolicy: TrustFirst (0) 3)EpochKey0: d0d1d2d3d4d5d6d7d8d9dadbdcdddedf 4)EpochStartTime0: 2220000 - 5)EpochKey1: d1d1d2d3d4d5d6d7d8d9dadbdcdddedf 6)EpochStartTime1: - 2220001 7)EpochKey2: d2d1d2d3d4d5d6d7d8d9dadbdcdddedf + 5)EpochKey1: e0e1e2e3e4e5e6e7e8e9eaebecedeeef 6)EpochStartTime1: + 2220001 7)EpochKey2: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 8)EpochStartTime2: 2220002" cluster: "Group Key Management" endpoint: 0 @@ -130,12 +130,12 @@ tests: EpochStartTime0: 2220000, EpochKey1: "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef", EpochStartTime1: 2220001, - EpochKey2: "\xf2\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", + EpochKey2: "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", EpochStartTime2: 2220002, } - label: - "Step 0b: TH binds GroupId G1 with GroupKeySetID 0x01a1 in the + "Step 0c: TH binds GroupId G1 with GroupKeySetID 0x01a1 in the GroupKeyMap attribute list on GroupKeyManagement cluster by writing the GroupKeyMap attribute with one entry as follows: List item 1: 1)FabricIndex: 1 2)GroupId :_G1_ 3)GroupKeySetId: 0x01a1" @@ -188,7 +188,7 @@ tests: - name: "GroupID" value: G2 - - label: "Install ACLs" + - label: "Step 1c: Install ACLs" cluster: "Access Control" endpoint: 0 command: "writeAttribute" @@ -214,7 +214,7 @@ tests: ] - label: - "Step 1c: TH sends a RemoveAllScenes command to DUT with the GroupID + "Step 1d: TH sends a RemoveAllScenes command to DUT with the GroupID field set to G1." PICS: S.S.C03.Rsp command: "RemoveAllScenes" @@ -230,7 +230,7 @@ tests: value: G1 - label: - "Step 1d: TH sends a RemoveAllScenes command to DUT with the GroupID + "Step 1e: TH sends a RemoveAllScenes command to DUT with the GroupID field set to G2." PICS: S.S.C03.Rsp command: "RemoveAllScenes" @@ -246,7 +246,7 @@ tests: value: G2 - label: - "Step 1e: TH sends a GetSceneMembership command to DUT with the + "Step 1f: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1." PICS: S.S.C06.Rsp command: "GetSceneMembership" diff --git a/src/app/tests/suites/certification/Test_TC_S_2_4.yaml b/src/app/tests/suites/certification/Test_TC_S_2_4.yaml index 0bbf762c414925..eac34fdea1fee6 100644 --- a/src/app/tests/suites/certification/Test_TC_S_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_2_4.yaml @@ -42,10 +42,10 @@ tests: cluster to DUT using a key that is pre-installed on the TH. GroupKeySet fields are as follows: 1)GroupKeySetID: 0x01a1 2)GroupKeySecurityPolicy: TrustFirst (0) 3)EpochKey0: - d0d1d2d3d4d5d6d7d8d9dadbdcdddedf 4)EpochStartTime0: 2220000 - 5)EpochKey1: d1d1d2d3d4d5d6d7d8d9dadbdcdddedf 6)EpochStartTime1: - 2220001 7)EpochKey2: d2d1d2d3d4d5d6d7d8d9dadbdcdddedf - 8)EpochStartTime2: 2220002" + a0a1a2a3a4a5a6a7a8a9aaabacadaeaf 4)EpochStartTime0: 1110000 + 5)EpochKey1: b0b1b2b3b4b5b6b7b8b9babbbcbdbebf 6)EpochStartTime1: + 1110001 7)EpochKey2: c0c1c2c3c4c5c6c7c8c9cacbcccdcecf + 8)EpochStartTime2: 1110002" cluster: "Group Key Management" endpoint: 0 command: "KeySetWrite" diff --git a/src/app/tests/suites/certification/Test_TC_S_2_5.yaml b/src/app/tests/suites/certification/Test_TC_S_2_5.yaml index b8ffd365877d53..31ed8b17a2bcdb 100644 --- a/src/app/tests/suites/certification/Test_TC_S_2_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_2_5.yaml @@ -37,15 +37,15 @@ tests: cluster to DUT using a key that is pre-installed on the TH. GroupKeySet fields are as follows: GroupKeySetID: 0x01a1 GroupKeySecurityPolicy: TrustFirst (0) EpochKey0: - d0d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime0: 2220000 EpochKey1: - d1d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime1: 2220001 EpochKey2: - d2d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime2: 2220002" + a0a1a2a3a4a5a6a7a8a9aaabacadaeaf EpochStartTime0: 1110000 EpochKey1: + b0b1b2b3b4b5b6b7b8b9babbbcbdbebf EpochStartTime1: 1110001 EpochKey2: + c0c1c2c3c4c5c6c7c8c9cacbcccdcecf EpochStartTime2: 1110002" verification: | ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, "groupKeySecurityPolicy": 0, "epochKey0": - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": - "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 + "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf", "epochStartTime0": 1110000,"epochKey1": + "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf", "epochStartTime1": 1110001,"epochKey2": + "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf", "epochStartTime2": 1110002 }' 1 0 Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: