diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index fa1b3bee48f8b8..3259ce2f988cc3 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -1766,13 +1766,13 @@ PICS: id: CADMIN.AudioInterface #server - label: "Does the Device support Enhanced Commissioning Method (ECM)?" - id: CADMIN.S.C0000 + id: CADMIN.S.C00.Rsp - label: "Does the Device support Basic Commissioning Method (BCM)?" - id: CADMIN.S.C0001 + id: CADMIN.S.C01.Rsp - label: "Does the Device support revoking commissioning window?" - id: CADMIN.S.C0002 + id: CADMIN.S.C02.Rsp - label: "Does the Device implement receiving the RemoveFabric command?" id: OPCREDS.S.C0a.Rsp @@ -1788,13 +1788,13 @@ PICS: #client - label: "Does the Device support Enhanced Commissioning Method (ECM)?" - id: CADMIN.C.C0000 + id: CADMIN.C.C00.Tx - label: "Does the Device support Basic Commissioning Method (BCM)?" - id: CADMIN.C.C0001 + id: CADMIN.C.C01.Tx - label: "Does the Device support revoking commissioning window?" - id: CADMIN.C.C0002 + id: CADMIN.C.C02.Tx - label: "Does the Device implement receiving the RemoveFabric command?" id: OPCREDS.C.C0a.Tx @@ -1808,6 +1808,12 @@ PICS: - label: "Does the Device support WindowStatus attribute?" id: CADMIN.C.A0000 + - label: "Does the Device implement the Multi Fabric cluster as a server?" + id: CADMIN.S + + - label: "Does the Device implement the Multi Fabric cluster as a client?" + id: CADMIN.C + #User Label cluster - label: "Does the DUT Server support LabelList attribute?" id: ULABEL.S.A0000 @@ -1890,16 +1896,16 @@ PICS: - label: "Does the DUT support the Channel server cluster ChangeChannel command?" - id: CHANNEL.S.C0000 + id: CHANNEL.S.C00.Rsp - label: "Does the DUT support the Channel server cluster ChangeChannelByNumber command?" - id: CHANNEL.S.C0002 + id: CHANNEL.S.C02.Rsp - label: "Does the DUT support the Channel server cluster SkipChannel command?" - id: CHANNEL.S.C0003 + id: CHANNEL.S.C03.Rsp - label: "Does the DUT support the Media Playback server cluster Advanced Seek @@ -2056,18 +2062,9 @@ PICS: id: CHANNEL.S.A0002 - label: - "Does the DUT support the Channel server cluster ChangeChannel + "Does the DUT support the Channel server cluster ChangeChannelResponse command?" - id: CHANNEL.S.C0000 - - - label: - "Does the DUT support the Channel server cluster ChangeChannelByNumber - command?" - id: CHANNEL.S.C0002 - - - label: - "Does the DUT support the Channel server cluster SkipChannel command?" - id: CHANNEL.S.C0003 + id: CHANNEL.S.C01.Tx - label: "Does the DUT support the Media Playback server cluster Advanced Seek @@ -2129,40 +2126,40 @@ PICS: - label: "Does the DUT support the Media Playback server cluster StartOver command?" - id: MEDIAPLAYBACK.S.C0003 + id: MEDIAPLAYBACK.S.C03.Rsp - label: "Does the DUT support the Media Playback server cluster Previous command?" - id: MEDIAPLAYBACK.S.C0004 + id: MEDIAPLAYBACK.S.C04.Rsp - label: "Does the DUT support the Media Playback server cluster Next command?" - id: MEDIAPLAYBACK.S.C0005 + id: MEDIAPLAYBACK.S.C05.Rsp - label: "Does the DUT support the Media Playback server cluster Rewind command?" - id: MEDIAPLAYBACK.S.C0006 + id: MEDIAPLAYBACK.S.C06.Rsp - label: "Does the DUT support the Media Playback server cluster FastForward command?" - id: MEDIAPLAYBACK.S.C0007 + id: MEDIAPLAYBACK.S.C07.Rsp - label: "Does the DUT support the Media Playback server cluster SkipForward command?" - id: MEDIAPLAYBACK.S.C0008 + id: MEDIAPLAYBACK.S.C08.Rsp - label: "Does the DUT support the Media Playback server cluster SkipBackward command?" - id: MEDIAPLAYBACK.S.C0009 + id: MEDIAPLAYBACK.S.C09.Rsp - label: "Does the DUT support the Media Playback server cluster Seek command?" - id: MEDIAPLAYBACK.S.C000B + id: MEDIAPLAYBACK.S.C0B.Rsp - label: "Does the DUT support the Media Playback client cluster Play command?" @@ -2812,10 +2809,10 @@ PICS: id: MCORE.DD.CONTROLLER - label: "Does the DUT support Discovery Capability over IP Network?" - id: MCORE.DD.DT_IP + id: MCORE.DD.DISCOVERY_IP - label: "Does the DUT support Discovery Capability over SoftAP?" - id: MCORE.DD.DT_SOFTAP + id: MCORE.DD.DISCOVERY_SOFTAP - label: "Does the DUT support Standard Commissioning Flow?" id: MCORE.DD.STANDARD_COMM_FLOW @@ -2857,6 +2854,19 @@ PICS: - label: "Does the device support Wifi or Thread interfaces?" id: MCORE.DD.WIRELESS + - label: + "Does the device support TXT Key 'VP' (Vendor ID / Product ID) in it’s + DNS-SD TXT Records for Commissionable Node Discovery?" + id: MCORE.DD.TXT_KEY_VP + + - label: + "Does the device support TXT Key 'DT' (Device Type) in it’s DNS-SD TXT + Records for Commissionable Node Discovery?" + id: MCORE.DD.TXT_KEY_DT + + - label: "Does the Commissioner support Discovery Capability over BLE?" + id: MCORE.DD.DISCOVERY_BLE + #Ethernet Network Diagnostics Cluster - label: "Does the device implement the ResetCounts command?" id: DGETH.S.C00.Rsp @@ -4338,6 +4348,11 @@ PICS: #Node Operational Credential #Server Attributes + - label: + "Factory Reset DUT (to ensure NOC list is empty at the beginning of + the following steps)" + id: MCORE.FACTORY_RESET + - label: "Does the DUT(server) support the NOC list attribute?" id: OPCREDS.S.A0000 diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml index 9aec071cf8518d..8268d4b403c9da 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 76.2.3. [TC-ACT-3.1] GLobal attributes with client as DUT +name: 77.2.3. [TC-ACT-3.1] GLobal attributes with client as DUT config: nodeId: 0x12344321 @@ -26,28 +26,58 @@ tests: a manufacturer specific order" verification: | ./chip-tool bridgedactions read action-list 1 1 + + Verify in DUT as client side log + [1657608767.991103][57130:57135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 2843363251 + [1657608767.991158][57130:57135] CHIP:TOO: action list: 0 entries + + ./chip-tool bridgedactions read endpoint-list 1 1 + + Verify in DUT as client side log + [1657608786.230461][57139:57144] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2843363251 + [1657608786.230485][57139:57144] CHIP:TOO: endpoint list: 2 entries + [1657608786.230504][57139:57144] CHIP:TOO: [1]: { + [1657608786.230514][57139:57144] CHIP:TOO: EndpointListID: 57345 + [1657608786.230519][57139:57144] CHIP:TOO: Name: Room 1 + [1657608786.230525][57139:57144] CHIP:TOO: Type: 1 + [1657608786.230531][57139:57144] CHIP:TOO: Endpoints: 2 entries + [1657608786.230538][57139:57144] CHIP:TOO: [1]: 10 + [1657608786.230544][57139:57144] CHIP:TOO: [2]: 11 + [1657608786.230549][57139:57144] CHIP:TOO: } + [1657608786.230558][57139:57144] CHIP:TOO: [2]: { + [1657608786.230563][57139:57144] CHIP:TOO: EndpointListID: 57346 + [1657608786.230567][57139:57144] CHIP:TOO: Name: Room 2 + [1657608786.230572][57139:57144] CHIP:TOO: Type: 1 + [1657608786.230578][57139:57144] CHIP:TOO: Endpoints: 2 entries + [1657608786.230583][57139:57144] CHIP:TOO: [1]: 12 + [1657608786.230589][57139:57144] CHIP:TOO: [2]: 13 + [1657608786.230594][57139:57144] CHIP:TOO: } disabled: true - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" verification: | + Optional attibute + Verify in DUT as client side log + ./chip-tool bridgedactions read setup-url 1 1 + Needs an SDK Implementation disabled: true - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" verification: | - No writeable attribute + This cluster doesn't have any writable attributes disabled: true - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" verification: | - No writeable attribute + This cluster doesn't have any writable attributes disabled: true - label: @@ -57,7 +87,33 @@ tests: AttributeList. Commission DUT to TH again" verification: | ./chip-tool bridgedactions read action-list 1 1 + + Verify in DUT as client side log + [1657608767.991103][57130:57135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 2843363251 + [1657608767.991158][57130:57135] CHIP:TOO: action list: 0 entries + + ./chip-tool bridgedactions read endpoint-list 1 1 + + Verify in DUT as client side log + [1657608786.230461][57139:57144] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2843363251 + [1657608786.230485][57139:57144] CHIP:TOO: endpoint list: 2 entries + [1657608786.230504][57139:57144] CHIP:TOO: [1]: { + [1657608786.230514][57139:57144] CHIP:TOO: EndpointListID: 57345 + [1657608786.230519][57139:57144] CHIP:TOO: Name: Room 1 + [1657608786.230525][57139:57144] CHIP:TOO: Type: 1 + [1657608786.230531][57139:57144] CHIP:TOO: Endpoints: 2 entries + [1657608786.230538][57139:57144] CHIP:TOO: [1]: 10 + [1657608786.230544][57139:57144] CHIP:TOO: [2]: 11 + [1657608786.230549][57139:57144] CHIP:TOO: } + [1657608786.230558][57139:57144] CHIP:TOO: [2]: { + [1657608786.230563][57139:57144] CHIP:TOO: EndpointListID: 57346 + [1657608786.230567][57139:57144] CHIP:TOO: Name: Room 2 + [1657608786.230572][57139:57144] CHIP:TOO: Type: 1 + [1657608786.230578][57139:57144] CHIP:TOO: Endpoints: 2 entries + [1657608786.230583][57139:57144] CHIP:TOO: [1]: 12 + [1657608786.230589][57139:57144] CHIP:TOO: [2]: 13 + [1657608786.230594][57139:57144] CHIP:TOO: } disabled: true - label: @@ -66,34 +122,35 @@ tests: verification: | ./chip-tool bridgedactions read setup-url 1 1 + Verify in DUT as client side log [1656480136859] [49753:5741500] CHIP: [DMG] ReportDataMessage = [1656480136859] [49753:5741500] CHIP: [DMG] { - [1656480136859] [49753:5741500] CHIP: [DMG] AttributeReportIBs = - [1656480136859] [49753:5741500] CHIP: [DMG] [ - [1656480136859] [49753:5741500] CHIP: [DMG] AttributeReportIB = - [1656480136859] [49753:5741500] CHIP: [DMG] { - [1656480136859] [49753:5741500] CHIP: [DMG] AttributeStatusIB = - [1656480136859] [49753:5741500] CHIP: [DMG] { - [1656480136859] [49753:5741500] CHIP: [DMG] AttributePathIB = - [1656480136859] [49753:5741500] CHIP: [DMG] { - [1656480136859] [49753:5741500] CHIP: [DMG] Endpoint = 0x1, - [1656480136859] [49753:5741500] CHIP: [DMG] Cluster = 0x25, - [1656480136859] [49753:5741500] CHIP: [DMG] Attribute = 0x0000_0002, - [1656480136859] [49753:5741500] CHIP: [DMG] } + [1656480136859] [49753:5741500] CHIP: [DMG] AttributeReportIBs = + [1656480136859] [49753:5741500] CHIP: [DMG] [ + [1656480136859] [49753:5741500] CHIP: [DMG] AttributeReportIB = + [1656480136859] [49753:5741500] CHIP: [DMG] { + [1656480136859] [49753:5741500] CHIP: [DMG] AttributeStatusIB = + [1656480136859] [49753:5741500] CHIP: [DMG] { + [1656480136859] [49753:5741500] CHIP: [DMG] AttributePathIB = + [1656480136859] [49753:5741500] CHIP: [DMG] { + [1656480136859] [49753:5741500] CHIP: [DMG] Endpoint = 0x1, + [1656480136859] [49753:5741500] CHIP: [DMG] Cluster = 0x25, + [1656480136859] [49753:5741500] CHIP: [DMG] Attribute = 0x0000_0002, + [1656480136859] [49753:5741500] CHIP: [DMG] } [1656480136859] [49753:5741500] CHIP: [DMG] - [1656480136859] [49753:5741500] CHIP: [DMG] StatusIB = - [1656480136859] [49753:5741500] CHIP: [DMG] { - [1656480136859] [49753:5741500] CHIP: [DMG] status = 0x86 (UNSUPPORTED_ATTRIBUTE), - [1656480136859] [49753:5741500] CHIP: [DMG] }, + [1656480136859] [49753:5741500] CHIP: [DMG] StatusIB = + [1656480136859] [49753:5741500] CHIP: [DMG] { + [1656480136859] [49753:5741500] CHIP: [DMG] status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1656480136859] [49753:5741500] CHIP: [DMG] }, [1656480136859] [49753:5741500] CHIP: [DMG] - [1656480136859] [49753:5741500] CHIP: [DMG] }, + [1656480136859] [49753:5741500] CHIP: [DMG] }, [1656480136859] [49753:5741500] CHIP: [DMG] - [1656480136859] [49753:5741500] CHIP: [DMG] }, + [1656480136859] [49753:5741500] CHIP: [DMG] }, [1656480136859] [49753:5741500] CHIP: [DMG] - [1656480136859] [49753:5741500] CHIP: [DMG] ], + [1656480136859] [49753:5741500] CHIP: [DMG] ], [1656480136859] [49753:5741500] CHIP: [DMG] - [1656480136859] [49753:5741500] CHIP: [DMG] SuppressResponse = true, - [1656480136859] [49753:5741500] CHIP: [DMG] InteractionModelRevision = 1 + [1656480136859] [49753:5741500] CHIP: [DMG] SuppressResponse = true, + [1656480136859] [49753:5741500] CHIP: [DMG] InteractionModelRevision = 1 [1656480136859] [49753:5741500] CHIP: [DMG] } [1656480136859] [49753:5741500] CHIP: [TOO] Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true @@ -102,5 +159,5 @@ tests: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" verification: | - No writeable attribute + This cluster doesn't have any writable attributes disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml index c1fded43f574ea..6cb7e4f38a6cbb 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml @@ -38,7 +38,7 @@ tests: constraints: type: uint16 - - label: "Read the optional global attribute: FeatureMap" + - label: "Read the global attribute: FeatureMap" PICS: APPLAUNCHER.S.AP command: "readAttribute" attribute: "FeatureMap" diff --git a/src/app/tests/suites/certification/Test_TC_BR_1.yaml b/src/app/tests/suites/certification/Test_TC_BR_1.yaml index 11c5522188def4..ced5f99d29adf8 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_1.yaml @@ -25,11 +25,10 @@ tests: "Read attribute DeviceTypeList of the Descriptor cluster on endpoint 0" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - - ./chip-tool descriptor read device-list 1 0 + Verify in TH Log + [1657002174.323780][3885:3890] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3573910940 [1657002174.323838][3885:3890] CHIP:TOO: device list: 1 entries [1657002174.323919][3885:3890] CHIP:TOO: [1]: { @@ -41,10 +40,9 @@ tests: - label: "Read attribute PartsList of the Descriptor cluster on endpoint 0" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - ./chip-tool descriptor read parts-list 1 0 + Verify in TH Log [1657002201.045720][3893:3899] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910940 [1657002201.045841][3893:3899] CHIP:TOO: parts list: 12 entries @@ -67,19 +65,22 @@ tests: DeviceTypeList of the Descriptor cluster on that endpoint" PICS: MCORE.BRIDGE verification: | + ./chip-tool descriptor read device-list 1 1 + Verify in TH Log - ./chip-tool descriptor read device-list 1 1 [1657002313.871608][3977:3982] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3021853414 [1657002313.871680][3977:3982] CHIP:TOO: device list: 1 entries [1657002313.871740][3977:3982] CHIP:TOO: [1]: { [1657002313.871788][3977:3982] CHIP:TOO: Type: 14 [1657002313.871821][3977:3982] CHIP:TOO: Revision: 1 - [1657002313.871852][3977:3982] CHIP:TOO: } - + [1657002313.871852][3977:3982] :TOOCHIP: } ./chip-tool descriptor read device-list 1 3 + + Verify in TH Log + [1657002329.438065][3983:3988] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872 [1657002329.438135][3983:3988] CHIP:TOO: device list: 2 entries [1657002329.438193][3983:3988] CHIP:TOO: [1]: { @@ -93,6 +94,9 @@ tests: ./chip-tool descriptor read device-list 1 4 + + Verify in TH Log + [1657002348.693948][3989:3994] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1398882309 [1657002348.694013][3989:3994] CHIP:TOO: device list: 2 entries [1657002348.694063][3989:3994] CHIP:TOO: [1]: { @@ -107,6 +111,9 @@ tests: ./chip-tool descriptor read device-list 1 5 + + Verify in TH Log + [1657002369.589492][3996:4001] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 130458766 [1657002369.589556][3996:4001] CHIP:TOO: device list: 2 entries [1657002369.589610][3996:4001] CHIP:TOO: [1]: { @@ -121,6 +128,10 @@ tests: ./chip-tool descriptor read device-list 1 6 + + Verify in TH Log + + [1657002386.484093][4002:4007] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 295450100 [1657002386.484155][4002:4007] CHIP:TOO: device list: 1 entries [1657002386.484255][4002:4007] CHIP:TOO: [1]: { @@ -131,6 +142,9 @@ tests: ./chip-tool descriptor read device-list 1 7 + + Verify in TH Log + [1657002413.721927][4015:4020] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2117104859 [1657002413.721981][4015:4020] CHIP:TOO: device list: 1 entries [1657002413.722028][4015:4020] CHIP:TOO: [1]: { @@ -141,6 +155,9 @@ tests: ./chip-tool descriptor read device-list 1 8 + + Verify in TH Log + [1657002436.415904][4034:4039] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2026786918 [1657002436.415972][4034:4039] CHIP:TOO: device list: 1 entries [1657002436.416033][4034:4039] CHIP:TOO: [1]: { @@ -151,6 +168,9 @@ tests: ./chip-tool descriptor read device-list 1 9 + + Verify in TH Log + [1657002455.445818][4040:4045] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 913116116 [1657002455.445883][4040:4045] CHIP:TOO: device list: 1 entries [1657002455.445944][4040:4045] CHIP:TOO: [1]: { @@ -161,6 +181,9 @@ tests: ./chip-tool descriptor read device-list 1 10 + + Verify in TH Log + [1657002473.100910][4047:4052] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426 [1657002473.100967][4047:4052] CHIP:TOO: device list: 2 entries [1657002473.101013][4047:4052] CHIP:TOO: [1]: { @@ -173,8 +196,10 @@ tests: [1657002473.101192][4047:4052] CHIP:TOO: } - ./chip-tool descriptor read device-list 1 11 + + Verify in TH Log + [1657002495.856770][4061:4066] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677 [1657002495.856836][4061:4066] CHIP:TOO: device list: 2 entries [1657002495.856893][4061:4066] CHIP:TOO: [1]: { @@ -189,6 +214,9 @@ tests: ./chip-tool descriptor read device-list 1 12 + + Verify in TH Log + [1657002515.862187][4073:4078] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835 [1657002515.862249][4073:4078] CHIP:TOO: device list: 2 entries [1657002515.862302][4073:4078] CHIP:TOO: [1]: { @@ -203,6 +231,9 @@ tests: ./chip-tool descriptor read device-list 1 13 + + Verify in TH Log + [1657002538.134605][4097:4102] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249 [1657002538.134700][4097:4102] CHIP:TOO: device list: 2 entries [1657002538.134784][4097:4102] CHIP:TOO: [1]: { @@ -215,15 +246,25 @@ tests: [1657002538.135166][4097:4102] CHIP:TOO: } disabled: true + - label: + "For each of the endpoints read in step 1b, read attribute + DeviceTypeList of the Descriptor cluster on that endpoint" + PICS: MCORE.BRIDGE + verification: | + Verify in step 1c list of endpoints is printed for aggregator i.e., 0x000e=14 + + Then in this case Endpoint is 1 + disabled: true + - label: "Read attribute PartsList of the Descriptor cluster on endpoint found in step 1c" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - ./chip-tool descriptor read parts-list 1 1 + Verify in TH Log + [1657002810.697118][4121:4126] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853414 [1657002810.697276][4121:4126] CHIP:TOO: parts list: 11 entries [1657002810.697312][4121:4126] CHIP:TOO: [1]: 3 @@ -246,10 +287,9 @@ tests: Bridged Node in their DeviceTypeList" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - Verify device type has either Bridged node (0x0013), i.e., Type=19 + Verify in TH Log ./chip-tool descriptor read device-list 1 3 [1657002843.395988][4135:4140] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872 @@ -264,6 +304,9 @@ tests: [1657002843.396342][4135:4140] CHIP:TOO: } ./chip-tool descriptor read device-list 1 4 + + Verify in TH Log + [1657002927.992247][4143:4148] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1398882309 [1657002927.992309][4143:4148] CHIP:TOO: device list: 2 entries [1657002927.992362][4143:4148] CHIP:TOO: [1]: { @@ -276,6 +319,9 @@ tests: [1657002927.992567][4143:4148] CHIP:TOO: } ./chip-tool descriptor read device-list 1 5 + + Verify in TH Log + [1657002949.332151][4156:4161] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 130458766 [1657002949.332245][4156:4161] CHIP:TOO: device list: 2 entries [1657002949.332294][4156:4161] CHIP:TOO: [1]: { @@ -288,6 +334,10 @@ tests: [1657002949.332470][4156:4161] CHIP:TOO: } ./chip-tool descriptor read device-list 1 6 + + Verify in TH Log + + [1657002965.947096][4163:4168] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 295450100 [1657002965.947150][4163:4168] CHIP:TOO: device list: 1 entries [1657002965.947196][4163:4168] CHIP:TOO: [1]: { @@ -296,6 +346,8 @@ tests: [1657002965.947278][4163:4168] CHIP:TOO: } ./chip-tool descriptor read device-list 1 7 + + Verify in TH Log [1657002981.963307][4176:4181] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2117104859 [1657002981.963371][4176:4181] CHIP:TOO: device list: 1 entries [1657002981.963429][4176:4181] CHIP:TOO: [1]: { @@ -304,6 +356,9 @@ tests: [1657002981.963533][4176:4181] CHIP:TOO: } ./chip-tool descriptor read device-list 1 8 + + Verify in TH Log + [1657003007.476575][4183:4188] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2026786918 [1657003007.476635][4183:4188] CHIP:TOO: device list: 1 entries [1657003007.476689][4183:4188] CHIP:TOO: [1]: { @@ -312,6 +367,9 @@ tests: [1657003007.476786][4183:4188] CHIP:TOO: } ./chip-tool descriptor read device-list 1 9 + + Verify in TH Log + [1657003023.263333][4191:4196] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 913116116 [1657003023.263391][4191:4196] CHIP:TOO: device list: 1 entries [1657003023.263443][4191:4196] CHIP:TOO: [1]: { @@ -320,6 +378,9 @@ tests: [1657003023.263538][4191:4196] CHIP:TOO: } ./chip-tool descriptor read device-list 1 10 + + Verify in TH Log + [1657003044.071972][4204:4209] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426 [1657003044.072037][4204:4209] CHIP:TOO: device list: 2 entries [1657003044.072085][4204:4209] CHIP:TOO: [1]: { @@ -332,6 +393,9 @@ tests: [1657003044.072295][4204:4209] CHIP:TOO: } ./chip-tool descriptor read device-list 1 11 + + Verify in TH Log + [1657003082.358311][4217:4222] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677 [1657003082.358379][4217:4222] CHIP:TOO: device list: 2 entries [1657003082.358432][4217:4222] CHIP:TOO: [1]: { @@ -344,6 +408,9 @@ tests: [1657003082.358646][4217:4222] CHIP:TOO: } ./chip-tool descriptor read device-list 1 12 + + Verify in TH Log + [1657003103.954911][4248:4253] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835 [1657003103.954986][4248:4253] CHIP:TOO: device list: 2 entries [1657003103.955050][4248:4253] CHIP:TOO: [1]: { @@ -356,6 +423,9 @@ tests: [1657003103.955269][4248:4253] CHIP:TOO: } ./chip-tool descriptor read device-list 1 13 + + Verify in TH Log + [1657003125.905572][4261:4266] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249 [1657003125.905638][4261:4266] CHIP:TOO: device list: 2 entries [1657003125.905687][4261:4266] CHIP:TOO: [1]: { @@ -373,15 +443,19 @@ tests: perform the tests for Bridged Device Basic Information cluster" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - ref to test plan for Bridged Device Basic Information cluster(https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/bridged_device_basic_information.adoc) ./chip-tool bridgeddevicebasic read reachable 1 3 + + Verify in TH Log + [1657003614.269096][4564:4569] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1897994097 [1657003614.269155][4564:4569] CHIP:TOO: Reachable: TRUE ./chip-tool bridgeddevicebasic read node-label 1 4 + + Verify in TH Log + [1657003598.573764][4552:4557] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3722118563 [1657003598.573811][4552:4557] CHIP:TOO: NodeLabel: Switch 1 disabled: true @@ -405,12 +479,13 @@ tests: type(s) of the bridged device" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - Verify the Endpoint list has devicetype application 1.e, 0x0100 = 256(actuator), 0x0103=259(sensor) ./chip-tool descriptor read device-list 1 3 + + Verify in TH Log + [1657003925.553294][4664:4669] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872 [1657003925.553368][4664:4669] CHIP:TOO: device list: 2 entries [1657003925.553430][4664:4669] CHIP:TOO: [1]: { @@ -425,6 +500,9 @@ tests: ./chip-tool descriptor read device-list 1 4 + + Verify in TH Log + [1657004014.927308][4678:4683] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1398882309 [1657004014.927387][4678:4683] CHIP:TOO: device list: 2 entries [1657004014.927460][4678:4683] CHIP:TOO: [1]: { @@ -438,6 +516,9 @@ tests: ./chip-tool descriptor read device-list 1 5 + + Verify in TH Log + [1657004035.789404][4690:4695] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 130458766 [1657004035.789470][4690:4695] CHIP:TOO: device list: 2 entries [1657004035.789526][4690:4695] CHIP:TOO: [1]: { @@ -451,6 +532,9 @@ tests: ./chip-tool descriptor read device-list 1 6 + + Verify in TH Log + [1657004053.597061][4698:4703] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 295450100 [1657004053.597116][4698:4703] CHIP:TOO: device list: 1 entries [1657004053.597164][4698:4703] CHIP:TOO: [1]: { @@ -460,6 +544,9 @@ tests: ./chip-tool descriptor read device-list 1 10 + + Verify in TH Log + [1657004074.939061][4704:4709] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426 [1657004074.939126][4704:4709] CHIP:TOO: device list: 2 entries [1657004074.939178][4704:4709] CHIP:TOO: [1]: { @@ -473,6 +560,9 @@ tests: ./chip-tool descriptor read device-list 1 11 + + Verify in TH Log + [1657004114.075998][4725:4730] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677 [1657004114.076073][4725:4730] CHIP:TOO: device list: 2 entries [1657004114.076130][4725:4730] CHIP:TOO: [1]: { @@ -486,6 +576,9 @@ tests: ./chip-tool descriptor read device-list 1 12 + + Verify in TH Log + [1657004134.659723][4737:4742] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835 [1657004134.659785][4737:4742] CHIP:TOO: device list: 2 entries [1657004134.659835][4737:4742] CHIP:TOO: [1]: { @@ -499,6 +592,9 @@ tests: ./chip-tool descriptor read device-list 1 13 + + Verify in TH Log + [1657004152.758221][4749:4754] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249 [1657004152.758277][4749:4754] CHIP:TOO: device list: 2 entries [1657004152.758323][4749:4754] CHIP:TOO: [1]: { @@ -524,10 +620,10 @@ tests: brightness" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - ./chip-tool onoff read on-off 1 3 + Verify in TH Log + [1657004454.213279][4792:4798] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303315 [1657004454.213319][4792:4798] CHIP:TOO: OnOff: FALSE disabled: true @@ -535,7 +631,6 @@ tests: - label: "Change the state of this bridged device (through Matter), e.g. change its brightness or toggle its on/off state" - PICS: MCORE.BRIDGE verification: | ./chip-tool onoff toggle 1 3 On bridge-app @@ -548,6 +643,7 @@ tests: Verify in TH Log + [1657522278.539407][16698:16703] CHIP:DMG: { [1657522278.539447][16698:16703] CHIP:DMG: suppressResponse = false, [1657522278.539495][16698:16703] CHIP:DMG: InvokeResponseIBs = @@ -583,10 +679,9 @@ tests: - label: "Read the state of this bridged device (through Matter), as in 6b" PICS: MCORE.BRIDGE verification: | - Verify in TH Log - ./chip-tool onoff read on-off 1 3 + Verify in TH Log [1657004565.254591][4804:4809] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303316 [1657004565.254635][4804:4809] CHIP:TOO: OnOff: TRUE diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml index e0a2486c4420c2..94f6fdcfc0fcd5 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml @@ -14,8 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.1. [TC-CADMIN-1.1] Administrator Behavior using ECM [DUT - - Commissioner] + 3.1.1. [TC-CADMIN-1.1] Administrator Behavior using ECM [DUT - Commissioner] config: nodeId: 0x12344321 @@ -24,6 +23,7 @@ config: tests: - label: "TH_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | "1. Provision the device using 1st controller chip-tool on the raspi (use above instructions) " @@ -33,7 +33,7 @@ tests: "TH_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM (Enhanced Commissioning Method)" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | On 1st controller using chip tool, open commissioning window using ECM @@ -69,7 +69,8 @@ tests: ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058 + Verify in DUT as client side log + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058 [1649245801.244173][10091:10096] CHIP:TOO: Fabrics: 1 entries [1649245801.244305][10091:10096] CHIP:TOO: [1]: { [1649245801.244348][10091:10096] CHIP:TOO: RootPublicKey: 045541017FCEFD0D83963C9ED7F21380C6B789EB989B5D20DC318FAE92D60D0F685666505E9C4F86C49ADC71AB3A8B9B44FD43214CF9BE2B6D47DE01F28FE1544F @@ -83,12 +84,13 @@ tests: disabled: true - label: "DUT_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On 2nd controller, using chip-tool connect using manual code. Below is the example when using chip tool as controller (considering 35998938564 as the manual code generated by 1st controller) ./chip-tool pairing code 2 35998938564 - Verify whether you got below message in the log of TH + Verify whether you got below message in the log of TH Device commissioning completed with success disabled: true @@ -324,7 +326,7 @@ tests: "DUT_CR2 sends command to TH_CE to open a commissioning window using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM (Enhanced Commissioning Method)" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | 1. Using your DUT controller open commissioning window using ECM @@ -344,7 +346,7 @@ tests: - label: "DUT_CR2 sends command to TH_CE to revoke the commissioning window using the Revoke Commissioning command" - PICS: CADMIN.C.C0002 + PICS: CADMIN.C.C02.Tx verification: | On your DUT controller, run revoke command @@ -388,6 +390,7 @@ tests: - label: "TH_CR3 attempts to execute a PASE to starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On 3rd controller using chip-tool connect using manual code generated from 1st controller. This attempt should fail, i.e ./chip-tool pairing code 1 34995354639 @@ -447,7 +450,7 @@ tests: - label: "DUT_CR2 sends command to TH_CE to open a commissioning window using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | 1. Using your DUT controller open commissioning window using ECM @@ -473,7 +476,7 @@ tests: - label: "DUT_CR2 sends command to TH_CE to open a commissioning window using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | 1. Using your DUT controller open commissioning window using ECM @@ -493,6 +496,7 @@ tests: - label: "TH_CR1 starts a commissioning process with TH_CE before the timeout from step 15" + PICS: CADMIN.C verification: | On 1st controller, using chip-tool connect using manual code. Below is the example when using chip tool as controller (considering 34995354639 as the manual code generated by DUT) diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml index f2d209221b7a1a..6edc60eb000278 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml @@ -43,6 +43,7 @@ tests: - label: "TH_CR1 starts a commissioning process with DUT_CE" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -51,7 +52,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C01.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -64,6 +65,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -79,6 +81,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -94,6 +97,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -109,6 +113,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -124,6 +129,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -139,6 +145,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -154,6 +161,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -169,6 +177,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -184,6 +193,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -214,6 +224,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -229,6 +240,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -244,6 +256,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -259,6 +272,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -274,6 +288,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -289,6 +304,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -304,6 +320,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -319,6 +336,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -334,6 +352,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -349,6 +368,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -359,11 +379,12 @@ tests: error: FAILURE - label: - "TH_CR2 starts a commissioning process with DUT_CE using valid setup - code" + "TH_CR2 attempts to do PASE to DUT_CE using the correct onboarding + payload" identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -372,16 +393,3 @@ tests: value: payload response: error: FAILURE - - - label: "TH_CR3 starts a commissioning process with DUT_CE" - identity: "gamma" - cluster: "CommissionerCommands" - command: "PairWithCode" - arguments: - values: - - name: "nodeId" - value: nodeId3 - - name: "payload" - value: payload - response: - error: FAILURE diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml index 8dc4eb53a8fff6..eb0e711bb0bbac 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml @@ -14,8 +14,8 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.11. [TC-CADMIN-1.11] Open commissioning window on DUT twice using ECM - then BCM [DUT - Commissioner] + 3.1.11. [TC-CADMIN-1.11] Open commissioning window on DUT twice using ECM + then BCM [DUT - Commissionee] config: nodeId: 0x12344321 @@ -23,88 +23,428 @@ config: endpoint: 0 tests: - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "TH_CR1 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | - "1. Provision the device using 2nd controller chip tool on the raspi (use above instructions)" + "1. Provision the device using 1st controller chip tool on the raspi (use above instructions) , + " disabled: true - label: - "TH_CR2 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.S.C00.Rsp verification: | - On the 2nd controller using chip tool, open commissioning window using ECM + On the 1st controller using chip tool, open commissioning window using ECM - ./chip-tool pairing open-commissioning-window 2 1 400 2000 3840 - Controller: + ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 + + [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established + [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! + [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] + [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] + [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. + [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec + [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] + [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] + [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + disabled: true + + - label: "DNS-SD records shows DUT_CE advertising" + verification: | + grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matterc._udp + + wlp5s0 IPv6 C326228BDB082BF4 _matterc._udp local + + wlp5s0 IPv6 7B6545A75C5330BE _matterc._udp local + = wlp5s0 IPv6 7B6545A75C5330BE _matterc._udp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2755] + port = [5540] + txt = ["PI=" "PH=33" "CM=1" "D=3841" "T=1" "CRA=300" "CRI=5000" "VP=65521+32769"] + = wlp5s0 IPv6 C326228BDB082BF4 _matterc._udp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2755] + port = [5540] + txt = ["PI=" "PH=36" "CM=2" "D=3840" "T=1" "CRA=300" "CRI=5000" "VP=65521+32769"] + grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$ + disabled: true + + - label: "TH_CR3 Commissions with DUT_CE" + PICS: CADMIN.S + verification: | + 1. On 3rd controller using chip tool connect using manual code + + ./chip-tool pairing code 3 35484132896 + + Verify you got below message + Device commissioning completed with success + disabled: true + + - label: + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using ECM and TH_CR2 + Commissions with DUT_CE" + PICS: CADMIN.S.C00.Rsp + verification: | + On the 1st controller using chip tool, open commissioning window using ECM + + + ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 + + [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established + [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! + [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] + [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] + [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. + [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec + [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] + [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] + [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + + + 1. On 2nd controller using chip tool connect using manual code + + ./chip-tool pairing code 1 35484132896 + + Verify you got below message + Device commissioning completed with success + disabled: true + + - label: + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.S.C00.Rsp + verification: | + On the 1st controller using chip tool, open commissioning window using ECM + + + ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 + + [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established + [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! + [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] + [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] + [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. + [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec + [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] + [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] + [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + disabled: true + + - label: + "Before the expiration of PIXIT.CADMIN.CwDuration seconds which was + set in step 5, TH_CR1 opens a 2nd commissioning window on DUT_CE using + a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.S.C00.Rsp + verification: | + Before the timer expiry, on the 1st controller using chip tool, open commissioning window using ECM. Verify the General code return error 1 - CHIP:IN: Sending encrypted msg 0xaaaad3464d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 5805157 msec - [1635691999.946536][3822:3827] CHIP:DMG: ICR moving to [CommandSen] - [1635691999.946586][3822:3827] CHIP:CTL: Manual pairing code: [35407541839] - [1635691999.946650][3822:3827] CHIP:CTL: SetupQRCode: [MT:00000CQM00G6V851H10] - [1635691999.946802][3822:3827] CHIP:EM: Sending Standalone Ack for MessageCounter:3234931243 on exchange 35324i - [1635691999.946850][3822:3827] CHIP:IN: Prepared plaintext message 0xffffaa58a960 to 0x0000000000000000 of type 0x10 and protocolId (0, 0) on exchange 35324i with MessageCounter:1726016118. - [1635691999.946895][3822:3827] CHIP:IN: Sending plaintext msg 0xffffaa58a960 with MessageCounter:1726016118 to 0x0000000000000000 at monotonic time: 5805158 msec - [1635691999.946983][3822:3827] CHIP:EM: Flushed pending ack for MessageCounter:3234931243 on exchange 35324i - Device: + ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 + + CHIP:DMG: InvokeResponseMessage = + [1650527291.952055][8566:8571] CHIP:DMG: { + [1650527291.952074][8566:8571] CHIP:DMG: suppressResponse = false, + [1650527291.952091][8566:8571] CHIP:DMG: InvokeResponseIBs = + [1650527291.952116][8566:8571] CHIP:DMG: [ + [1650527291.952134][8566:8571] CHIP:DMG: InvokeResponseIB = + [1650527291.952172][8566:8571] CHIP:DMG: { + [1650527291.952195][8566:8571] CHIP:DMG: CommandStatusIB = + [1650527291.952220][8566:8571] CHIP:DMG: { + [1650527291.952245][8566:8571] CHIP:DMG: CommandPathIB = + [1650527291.952276][8566:8571] CHIP:DMG: { + [1650527291.952303][8566:8571] CHIP:DMG: EndpointId = 0x0, + [1650527291.952334][8566:8571] CHIP:DMG: ClusterId = 0x3c, + [1650527291.952369][8566:8571] CHIP:DMG: CommandId = 0x0, + [1650527291.952394][8566:8571] CHIP:DMG: }, + [1650527291.952431][8566:8571] CHIP:DMG: + [1650527291.952458][8566:8571] CHIP:DMG: StatusIB = + [1650527291.952488][8566:8571] CHIP:DMG: { + [1650527291.952519][8566:8571] CHIP:DMG: status = 0x01 (FAILURE), + [1650527291.952555][8566:8571] CHIP:DMG: cluster-status = 0x1, + [1650527291.952578][8566:8571] CHIP:DMG: }, + [1650527291.952612][8566:8571] CHIP:DMG: + [1650527291.952634][8566:8571] CHIP:DMG: }, + [1650527291.952671][8566:8571] CHIP:DMG: + [1650527291.952694][8566:8571] CHIP:DMG: }, + [1650527291.952731][8566:8571] CHIP:DMG: + [1650527291.952751][8566:8571] CHIP:DMG: ], + [1650527291.952781][8566:8571] CHIP:DMG: + [1650527291.952795][8566:8571] CHIP:DMG: InteractionModelRevision = 1 + [1650527291.952807][8566:8571] CHIP:DMG: }, + [1650527291.952886][8566:8571] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000 Status=0x1 + [1650527291.952931][8566:8571] CHIP:CTL: Failed to open pairing window on the device. Status IM Error 0x00000601: Cluster-specific error: 0x01 + disabled: true - CHIP minimal mDNS started advertising. - [1635687658.683388][3792:3792] CHIP:DIS: Failed to find a valid admin pairing. Node ID unknown - [1635687658.683427][3792:3792] CHIP:DIS: Start dns-sd server - no current nodeId - [1635687658.683456][3792:3792] CHIP:DL: MAC is not known, using a default. - [1635687658.683522][3792:3792] CHIP:DIS: Advertise commission parameter vendorID=9050 productID=65279 discriminator=3840/00 - [1635687658.683597][3792:3792] CHIP:DIS: CHIP minimal mDNS configured as 'Commissionable node device'. - [1635687658.684345][3792:3792] CHIP:DIS: Broadcasting mDns reply for query from 192.168.0.225 - [1635687658.687201][3792:3792] CHIP:DIS: Broadcasting mDns reply for query from 192.168.0.225 + - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + PICS: OPCREDS.S.A0001 + verification: | + On 1st controller using chip tool, read fabrics list + ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 - The setup pin code is extracted from the manual pairing code in the log and that will be used when pairing the 2nd admin controller. + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768 + [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries + [1650527361.426777][15792:15797] CHIP:TOO: [1]: { + [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01 + [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1 + [1650527361.427088][15792:15797] CHIP:TOO: Label: + [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1 + [1650527361.427376][15792:15797] CHIP:TOO: } + [1650527361.427464][15792:15797] CHIP:TOO: [2]: { + [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7 + [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3 + [1650527361.427756][15792:15797] CHIP:TOO: Label: + [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2 + [1650527361.427868][15792:15797] CHIP:TOO: } + [1650527361.427943][15792:15797] CHIP:TOO: [3]: { + [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD + [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2 + [1650527361.428229][15792:15797] CHIP:TOO: Label: + [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3 + [1650527361.428335][15792:15797] CHIP:TOO: } disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration set in step 2, set - up a DUT_CR1 to start attempting to do PASE to TH_CE and failing 20 - times. This can be done using a valid onboarding payload with an - incorrect setupcode" + "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was + set in step 6" verification: | - 1. On 2nd controller using chip-tool connect using wrong manual code. Repeat the step for 20 times. + Wait for the expiration of PIXIT_COMM_WIN seconds + disabled: true - ./chip-tool pairing code 1 36177160938 --timeout 3 (With wrong manual code) + - label: + "TH_CR1 re-opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp + verification: | + On the 1st controller using chip tool, open commissioning window using BCM - verify you got the following message in the TH log - CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33 - CHIP:TOO: Secure Pairing Failed - CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000 + + CHIP:DMG: InvokeResponseMessage = + [1650278416.248379][11064:11069] CHIP:DMG: { + [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, + [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = + [1650278416.248570][11064:11069] CHIP:DMG: [ + [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = + [1650278416.248718][11064:11069] CHIP:DMG: { + [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = + [1650278416.248860][11064:11069] CHIP:DMG: { + [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = + [1650278416.249011][11064:11069] CHIP:DMG: { + [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, + [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, + [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, + [1650278416.249347][11064:11069] CHIP:DMG: }, + [1650278416.249430][11064:11069] CHIP:DMG: + [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = + [1650278416.249581][11064:11069] CHIP:DMG: { + [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), + [1650278416.249738][11064:11069] CHIP:DMG: }, + [1650278416.249823][11064:11069] CHIP:DMG: + [1650278416.249889][11064:11069] CHIP:DMG: }, + [1650278416.249969][11064:11069] CHIP:DMG: + [1650278416.250035][11064:11069] CHIP:DMG: }, + [1650278416.250113][11064:11069] CHIP:DMG: + [1650278416.250169][11064:11069] CHIP:DMG: ], + [1650278416.250241][11064:11069] CHIP:DMG: + [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 + [1650278416.250355][11064:11069] CHIP:DMG: }, + [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 + [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] + disabled: true + + - label: "DNS-SD records shows DUT_CE advertising" + verification: | + ubuntu@ubuntu:~/may16_cntrl/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matterc._udp + + eth0 IPv6 2664ED6939FC373C _matterc._udp local + = eth0 IPv6 2664ED6939FC373C _matterc._udp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2753] + port = [5540] + txt = ["PI=" "PH=36" "CM=1" "D=3840" "T=1" "SAI=300" "SII=5000" "VP=65521+32769"] + ubuntu@ubuntu:~/may16_cntrl/connectedhomeip/examples/chip-tool/out/debug$ disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration set in step 2, - DUT_CR1 attempts to do PASE to DUT_CE using the correct onboarding - payload" + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set + in step 10, TH_CR3 opens a 2nd commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp verification: | - 1. On 2nd controller using chip tool connect using correct passcode. + On the 3rd controller using chip tool, open commissioning window using BCM before the timer expiry of the above step + + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 3 0 --timedInteractionTimeoutMs 1000 + + CHIP:DMG: InvokeResponseMessage = + [1650527565.990404][24618:24623] CHIP:DMG: { + [1650527565.990476][24618:24623] CHIP:DMG: suppressResponse = false, + [1650527565.990528][24618:24623] CHIP:DMG: InvokeResponseIBs = + [1650527565.990615][24618:24623] CHIP:DMG: [ + [1650527565.990667][24618:24623] CHIP:DMG: InvokeResponseIB = + [1650527565.990755][24618:24623] CHIP:DMG: { + [1650527565.990816][24618:24623] CHIP:DMG: CommandStatusIB = + [1650527565.990900][24618:24623] CHIP:DMG: { + [1650527565.990967][24618:24623] CHIP:DMG: CommandPathIB = + [1650527565.991042][24618:24623] CHIP:DMG: { + [1650527565.991112][24618:24623] CHIP:DMG: EndpointId = 0x0, + [1650527565.991186][24618:24623] CHIP:DMG: ClusterId = 0x3c, + [1650527565.991257][24618:24623] CHIP:DMG: CommandId = 0x1, + [1650527565.991332][24618:24623] CHIP:DMG: }, + [1650527565.991441][24618:24623] CHIP:DMG: + [1650527565.991505][24618:24623] CHIP:DMG: StatusIB = + [1650527565.991574][24618:24623] CHIP:DMG: { + [1650527565.991645][24618:24623] CHIP:DMG: status = 0x01 (FAILURE), + [1650527565.991743][24618:24623] CHIP:DMG: cluster-status = 0x1, + [1650527565.991830][24618:24623] CHIP:DMG: }, + [1650527565.991918][24618:24623] CHIP:DMG: + [1650527565.991976][24618:24623] CHIP:DMG: }, + [1650527565.992061][24618:24623] CHIP:DMG: + [1650527565.992116][24618:24623] CHIP:DMG: }, + [1650527565.992202][24618:24623] CHIP:DMG: + [1650527565.992253][24618:24623] CHIP:DMG: ], + [1650527565.992316][24618:24623] CHIP:DMG: + [1650527565.992365][24618:24623] CHIP:DMG: InteractionModelRevision = 1 + [1650527565.992414][24618:24623] CHIP:DMG: }, + [1650527565.992535][24618:24623] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 + [1650527565.992601][24618:24623] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 + disabled: true + + - label: + "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was + set in step 11" + verification: | + Wait for the expiration of PIXIT_COMM_WIN seconds + disabled: true + + - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + PICS: OPCREDS.S.A0001 + verification: | + On 1st controller using chip tool, read fabrics list + + ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768 + [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries + [1650527361.426777][15792:15797] CHIP:TOO: [1]: { + [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01 + [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1 + [1650527361.427088][15792:15797] CHIP:TOO: Label: + [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1 + [1650527361.427376][15792:15797] CHIP:TOO: } + [1650527361.427464][15792:15797] CHIP:TOO: [2]: { + [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7 + [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3 + [1650527361.427756][15792:15797] CHIP:TOO: Label: + [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2 + [1650527361.427868][15792:15797] CHIP:TOO: } + [1650527361.427943][15792:15797] CHIP:TOO: [3]: { + [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD + [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2 + [1650527361.428229][15792:15797] CHIP:TOO: Label: + [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3 + [1650527361.428335][15792:15797] CHIP:TOO: } + disabled: true + + - label: + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp + verification: | + On the 1st controller using chip tool, open commissioning window using BCM + + + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 - ./chip-tool pairing code 1 36177160937 (correct passcode) - verify you got the following message in the TH log - CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33 - CHIP:TOO: Secure Pairing Failed - CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout + CHIP:DMG: InvokeResponseMessage = + [1650278416.248379][11064:11069] CHIP:DMG: { + [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, + [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = + [1650278416.248570][11064:11069] CHIP:DMG: [ + [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = + [1650278416.248718][11064:11069] CHIP:DMG: { + [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = + [1650278416.248860][11064:11069] CHIP:DMG: { + [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = + [1650278416.249011][11064:11069] CHIP:DMG: { + [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, + [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, + [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, + [1650278416.249347][11064:11069] CHIP:DMG: }, + [1650278416.249430][11064:11069] CHIP:DMG: + [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = + [1650278416.249581][11064:11069] CHIP:DMG: { + [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), + [1650278416.249738][11064:11069] CHIP:DMG: }, + [1650278416.249823][11064:11069] CHIP:DMG: + [1650278416.249889][11064:11069] CHIP:DMG: }, + [1650278416.249969][11064:11069] CHIP:DMG: + [1650278416.250035][11064:11069] CHIP:DMG: }, + [1650278416.250113][11064:11069] CHIP:DMG: + [1650278416.250169][11064:11069] CHIP:DMG: ], + [1650278416.250241][11064:11069] CHIP:DMG: + [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 + [1650278416.250355][11064:11069] CHIP:DMG: }, + [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 + [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - label: - "TH_CR3 starts a commissioning process with TH_CE using the correct - PAKEVerifier" - PICS: CADMIN.C.C0000 + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set + in step 14, TH_CR2 opens a second commissioning window on DUT_CE using + a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp verification: | - 1. On 3rdd controller using chip-tool connect using correct passcode + On the 2nd controller using chip tool, open commissioning window using BCM before timer expiry from above step - ./chip-tool pairing code 1 36177160938 (With wrong manual code) + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 - verify you got the following message in the TH log - CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33 - CHIP:TOO: Secure Pairing Failed - CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout + CHIP:DMG: InvokeResponseMessage = + [1650527622.373450][15824:15829] CHIP:DMG: { + [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, + [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = + [1650527622.373734][15824:15829] CHIP:DMG: [ + [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = + [1650527622.373913][15824:15829] CHIP:DMG: { + [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = + [1650527622.374087][15824:15829] CHIP:DMG: { + [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = + [1650527622.374296][15824:15829] CHIP:DMG: { + [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, + [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, + [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, + [1650527622.374682][15824:15829] CHIP:DMG: }, + [1650527622.374799][15824:15829] CHIP:DMG: + [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = + [1650527622.374979][15824:15829] CHIP:DMG: { + [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), + [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, + [1650527622.375320][15824:15829] CHIP:DMG: }, + [1650527622.375426][15824:15829] CHIP:DMG: + [1650527622.375527][15824:15829] CHIP:DMG: }, + [1650527622.375616][15824:15829] CHIP:DMG: + [1650527622.375704][15824:15829] CHIP:DMG: }, + [1650527622.375786][15824:15829] CHIP:DMG: + [1650527622.375864][15824:15829] CHIP:DMG: ], + [1650527622.375940][15824:15829] CHIP:DMG: + [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 + [1650527622.376058][15824:15829] CHIP:DMG: }, + [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 + [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml index e4052ba9353710..0e02604237b626 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.12. [TC-CADMIN-1.12] Open commissioning window on DUT twice using ECM + 25.1.12. [TC-CADMIN-1.12] Open commissioning window on DUT twice using ECM then BCM [DUT - Commissioner] config: @@ -23,19 +23,198 @@ config: endpoint: 0 tests: - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "DUT_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | - "1. Provision the device using 2nd controller chip tool on the raspi (use above instructions) + "1. Provision the device using your DUT controller (use above instructions) , + " disabled: true - label: - "TH_CR2 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and + TH_CR3 Commissions with TH_CE" + PICS: CADMIN.C.C00.Tx verification: | - On the 2nd controller using chip tool, open commissioning window using BCM + On your DUT controller, open commissioning window using ECM + + Below is the example is using chip tool as controller + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + + [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established + [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! + [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] + [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] + [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. + [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec + [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] + [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] + [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + + + + On 3rd controller using chip tool connect using manual code + + ./chip-tool pairing code 1 35484132896 + + Verify you got below message + Device commissioning completed with success + disabled: true + + - label: + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and + TH_CR2 Commissions with TH_CE" + PICS: CADMIN.C.C00.Tx + verification: | + On your DUT controller, open commissioning window using ECM + + Below is the example is using chip tool as controller + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + + [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established + [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! + [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] + [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] + [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. + [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec + [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] + [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] + [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + + + + On 2nd controller using chip tool connect using manual code + + ./chip-tool pairing code 1 35484132896 + + Verify you got below message + Device commissioning completed with success + disabled: true + + - label: + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx + verification: | + On your DUT controller, open commissioning window using ECM + + Below is the example is using chip tool as controller + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + + [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established + [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! + [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] + [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] + [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. + [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec + [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] + [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] + [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + disabled: true + + - label: + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set + in step 4, DUT_CR1 sends command to TH_CE to open a 2nd commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using ECM" + PICS: CADMIN.C.C00.Tx + verification: | + On your DUT controller, open commissioning window using ECM before the timer expiry from the above step + + Below is the example is using chip tool as controller + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + + CHIP:DMG: InvokeResponseMessage = + [1650527622.373450][15824:15829] CHIP:DMG: { + [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, + [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = + [1650527622.373734][15824:15829] CHIP:DMG: [ + [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = + [1650527622.373913][15824:15829] CHIP:DMG: { + [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = + [1650527622.374087][15824:15829] CHIP:DMG: { + [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = + [1650527622.374296][15824:15829] CHIP:DMG: { + [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, + [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, + [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, + [1650527622.374682][15824:15829] CHIP:DMG: }, + [1650527622.374799][15824:15829] CHIP:DMG: + [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = + [1650527622.374979][15824:15829] CHIP:DMG: { + [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), + [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, + [1650527622.375320][15824:15829] CHIP:DMG: }, + [1650527622.375426][15824:15829] CHIP:DMG: + [1650527622.375527][15824:15829] CHIP:DMG: }, + [1650527622.375616][15824:15829] CHIP:DMG: + [1650527622.375704][15824:15829] CHIP:DMG: }, + [1650527622.375786][15824:15829] CHIP:DMG: + [1650527622.375864][15824:15829] CHIP:DMG: ], + [1650527622.375940][15824:15829] CHIP:DMG: + [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 + [1650527622.376058][15824:15829] CHIP:DMG: }, + [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 + [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 + disabled: true + + - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" + PICS: OPCREDS.C.A0001 + verification: | + On 1st controller using chip tool, read fabrics list + + ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768 + [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries + [1650527361.426777][15792:15797] CHIP:TOO: [1]: { + [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01 + [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1 + [1650527361.427088][15792:15797] CHIP:TOO: Label: + [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1 + [1650527361.427376][15792:15797] CHIP:TOO: } + [1650527361.427464][15792:15797] CHIP:TOO: [2]: { + [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7 + [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3 + [1650527361.427756][15792:15797] CHIP:TOO: Label: + [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2 + [1650527361.427868][15792:15797] CHIP:TOO: } + [1650527361.427943][15792:15797] CHIP:TOO: [3]: { + [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD + [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2 + [1650527361.428229][15792:15797] CHIP:TOO: Label: + [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3 + [1650527361.428335][15792:15797] CHIP:TOO: } + disabled: true + + - label: + "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was + set in step 5" + verification: | + Wait for the expiration of PIXIT_COMM_WIN seconds + disabled: true + + - label: + "DUT_CR1 sends command to TH_CE to re-opens a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM" + PICS: CADMIN.C.C01.Tx + verification: | + On your DUT controller, open commissioning window using BCM + + Below is the example when using chip tool as controller + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000 - ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 CHIP:DMG: InvokeResponseMessage = @@ -72,47 +251,182 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration set in step 2, set - up a DUT_CR1 to start attempting to do PASE to TH_CE and failing 20 - times. This can be done using a valid onboarding payload with an - incorrect setupcode" + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set + in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using BCM" + PICS: CADMIN.C.C01.Tx verification: | - On 2nd controller, using chip-tool connect using wrong passcode. Repeat the step for 20 times. + On the 3rd controller using chip tool, open commissioning window using BCM before the timer expiry from above step + + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 + - ./chip-tool pairing onnetwork 1 20202019 --timeout 3 (With wrong passcode) - verify you got the following message in the TH log - CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33 - CHIP:TOO: Secure Pairing Failed - CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout + + CHIP:DMG: InvokeResponseMessage = + [1650527622.373450][15824:15829] CHIP:DMG: { + [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, + [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = + [1650527622.373734][15824:15829] CHIP:DMG: [ + [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = + [1650527622.373913][15824:15829] CHIP:DMG: { + [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = + [1650527622.374087][15824:15829] CHIP:DMG: { + [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = + [1650527622.374296][15824:15829] CHIP:DMG: { + [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, + [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, + [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, + [1650527622.374682][15824:15829] CHIP:DMG: }, + [1650527622.374799][15824:15829] CHIP:DMG: + [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = + [1650527622.374979][15824:15829] CHIP:DMG: { + [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), + [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, + [1650527622.375320][15824:15829] CHIP:DMG: }, + [1650527622.375426][15824:15829] CHIP:DMG: + [1650527622.375527][15824:15829] CHIP:DMG: }, + [1650527622.375616][15824:15829] CHIP:DMG: + [1650527622.375704][15824:15829] CHIP:DMG: }, + [1650527622.375786][15824:15829] CHIP:DMG: + [1650527622.375864][15824:15829] CHIP:DMG: ], + [1650527622.375940][15824:15829] CHIP:DMG: + [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 + [1650527622.376058][15824:15829] CHIP:DMG: }, + [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 + [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration set in step 2, - DUT_CR1 attempts to do PASE to DUT_CE using the correct onboarding - payload" + "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was + set in step 9" verification: | - On 2nd controller, using chip tool connect using correct passcode. + Wait for the expiration of PIXIT_COMM_WIN seconds + disabled: true - ./chip-tool pairing onnetwork 1 20202021 (correct passcode) + - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" + PICS: OPCREDS.C.A0001 + verification: | + On 1st controller using chip tool, read fabrics list - verify you got the following message in the TH log - CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33 - CHIP:TOO: Secure Pairing Failed - CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout + ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768 + [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries + [1650527361.426777][15792:15797] CHIP:TOO: [1]: { + [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01 + [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1 + [1650527361.427088][15792:15797] CHIP:TOO: Label: + [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1 + [1650527361.427376][15792:15797] CHIP:TOO: } + [1650527361.427464][15792:15797] CHIP:TOO: [2]: { + [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7 + [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3 + [1650527361.427756][15792:15797] CHIP:TOO: Label: + [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2 + [1650527361.427868][15792:15797] CHIP:TOO: } + [1650527361.427943][15792:15797] CHIP:TOO: [3]: { + [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD + [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521 + [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1 + [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2 + [1650527361.428229][15792:15797] CHIP:TOO: Label: + [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3 + [1650527361.428335][15792:15797] CHIP:TOO: } disabled: true - label: - "TH_CR3 starts a commissioning process with TH_CE using the correct - PAKEVerifier" - PICS: CADMIN.C.C0001 + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.C.C01.Tx verification: | - 1. On 3rd controller using chip-tool connect using correct passcode + On your DUT controller, open commissioning window using BCM - ./chip-tool pairing onnetwork 1 20202021 + Below is the example when using chip tool as controller + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 - verify you got the following message in the TH log - CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33 - CHIP:TOO: Secure Pairing Failed - CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout + CHIP:DMG: InvokeResponseMessage = + [1650278416.248379][11064:11069] CHIP:DMG: { + [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, + [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = + [1650278416.248570][11064:11069] CHIP:DMG: [ + [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = + [1650278416.248718][11064:11069] CHIP:DMG: { + [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = + [1650278416.248860][11064:11069] CHIP:DMG: { + [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = + [1650278416.249011][11064:11069] CHIP:DMG: { + [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, + [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, + [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, + [1650278416.249347][11064:11069] CHIP:DMG: }, + [1650278416.249430][11064:11069] CHIP:DMG: + [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = + [1650278416.249581][11064:11069] CHIP:DMG: { + [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), + [1650278416.249738][11064:11069] CHIP:DMG: }, + [1650278416.249823][11064:11069] CHIP:DMG: + [1650278416.249889][11064:11069] CHIP:DMG: }, + [1650278416.249969][11064:11069] CHIP:DMG: + [1650278416.250035][11064:11069] CHIP:DMG: }, + [1650278416.250113][11064:11069] CHIP:DMG: + [1650278416.250169][11064:11069] CHIP:DMG: ], + [1650278416.250241][11064:11069] CHIP:DMG: + [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 + [1650278416.250355][11064:11069] CHIP:DMG: }, + [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 + [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] + disabled: true + + - label: + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set + in step 12, TH_CR2 sends command to open a second commissioning window + on TH_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using BCM" + PICS: CADMIN.C.C01.Tx + verification: | + On the 2nd controller using chip tool, open commissioning window using BCM before the timer expiry from above step + + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 + + + + + CHIP:DMG: InvokeResponseMessage = + [1650527622.373450][15824:15829] CHIP:DMG: { + [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, + [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = + [1650527622.373734][15824:15829] CHIP:DMG: [ + [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = + [1650527622.373913][15824:15829] CHIP:DMG: { + [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = + [1650527622.374087][15824:15829] CHIP:DMG: { + [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = + [1650527622.374296][15824:15829] CHIP:DMG: { + [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, + [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, + [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, + [1650527622.374682][15824:15829] CHIP:DMG: }, + [1650527622.374799][15824:15829] CHIP:DMG: + [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = + [1650527622.374979][15824:15829] CHIP:DMG: { + [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), + [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, + [1650527622.375320][15824:15829] CHIP:DMG: }, + [1650527622.375426][15824:15829] CHIP:DMG: + [1650527622.375527][15824:15829] CHIP:DMG: }, + [1650527622.375616][15824:15829] CHIP:DMG: + [1650527622.375704][15824:15829] CHIP:DMG: }, + [1650527622.375786][15824:15829] CHIP:DMG: + [1650527622.375864][15824:15829] CHIP:DMG: ], + [1650527622.375940][15824:15829] CHIP:DMG: + [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 + [1650527622.376058][15824:15829] CHIP:DMG: }, + [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 + [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml index 662ba4083b4fb7..18a7b80de77266 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml @@ -42,6 +42,7 @@ tests: identity: "alpha" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -52,7 +53,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" @@ -73,6 +74,7 @@ tests: identity: "gamma" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -83,7 +85,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" @@ -114,7 +116,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" @@ -125,7 +127,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp arguments: values: - name: "CommissioningTimeout" @@ -171,7 +173,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp arguments: values: - name: "CommissioningTimeout" @@ -190,7 +192,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp arguments: values: - name: "CommissioningTimeout" @@ -236,7 +238,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp arguments: values: - name: "CommissioningTimeout" @@ -255,7 +257,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp arguments: values: - name: "CommissioningTimeout" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml index 23dc545208f5f9..db9aab7da4dcc5 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.14. [TC-CADMIN-1.14] Open commissioning window twice on DUT using BCM + 3.1.14. [TC-CADMIN-1.14] Open commissioning window twice on DUT using BCM then ECM [DUT - Commissioner] config: @@ -24,6 +24,7 @@ config: tests: - label: "DUT_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | "1. Provision the device using your DUT controller (use above instructions) , " @@ -31,13 +32,13 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and TH_CR3 Commissions with TH_CE" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller, open commissioning window using ECM - Below is the example is using chip tool as controller + Below is the example while using chip tool as controller ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established @@ -52,7 +53,6 @@ tests: [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] - On 3rd controller using chip tool connect using manual code ./chip-tool pairing code 1 35484132896 @@ -63,13 +63,13 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and TH_CR2 Commissions with TH_CE" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller, open commissioning window using ECM - Below is the example is using chip tool as controller + Below is the example while using chip tool as controller ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established @@ -83,10 +83,7 @@ tests: [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] - - On 2nd controller using chip tool connect using manual code - ./chip-tool pairing code 1 35484132896 Verify you got below message @@ -95,36 +92,58 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.C.C01.Tx verification: | - On your DUT controller, open commissioning window using ECM + On your DUT controller, open commissioning window using BCM - Below is the example is using chip tool as controller - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + Below is the example while using chip tool as controller + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 - [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established - [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! - [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 - [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] - [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] - [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. - [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec - [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] - [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] - [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] + CHIP:DMG: InvokeResponseMessage = + [1650278416.248379][11064:11069] CHIP:DMG: { + [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, + [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = + [1650278416.248570][11064:11069] CHIP:DMG: [ + [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = + [1650278416.248718][11064:11069] CHIP:DMG: { + [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = + [1650278416.248860][11064:11069] CHIP:DMG: { + [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = + [1650278416.249011][11064:11069] CHIP:DMG: { + [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, + [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, + [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, + [1650278416.249347][11064:11069] CHIP:DMG: }, + [1650278416.249430][11064:11069] CHIP:DMG: + [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = + [1650278416.249581][11064:11069] CHIP:DMG: { + [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), + [1650278416.249738][11064:11069] CHIP:DMG: }, + [1650278416.249823][11064:11069] CHIP:DMG: + [1650278416.249889][11064:11069] CHIP:DMG: }, + [1650278416.249969][11064:11069] CHIP:DMG: + [1650278416.250035][11064:11069] CHIP:DMG: }, + [1650278416.250113][11064:11069] CHIP:DMG: + [1650278416.250169][11064:11069] CHIP:DMG: ], + [1650278416.250241][11064:11069] CHIP:DMG: + [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 + [1650278416.250355][11064:11069] CHIP:DMG: }, + [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 + [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 4, DUT_CR1 sends command to TH_CE to open a 2nd commissioning - window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using ECM" - PICS: CADMIN.C.C0000 + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set + in step 4, DUT_CR1 sends command to TH_CE to TH_CE to open a 2nd + commissioning window with a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx verification: | - On your DUT controller, open commissioning window using ECM before the timer expiry from the above step + On your DUT controller, open commissioning window using ECM before the timer expiry of the above step + + Below is the example while using chip tool as controller - Below is the example is using chip tool as controller ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 CHIP:DMG: InvokeResponseMessage = @@ -197,7 +216,7 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was + "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 5" verification: | Wait for the expiration of PIXIT_COMM_WIN seconds @@ -206,104 +225,73 @@ tests: - label: "DUT_CR1 sends command to TH_CE to re-opens a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - BCM" - PICS: CADMIN.C.C0001 + ECM" + PICS: CADMIN.C.C00.Tx verification: | - On your DUT controller, open commissioning window using BCM - - Below is the example when using chip tool as controller - ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000 + On your DUT controller, open commissioning window using ECM + Below is the example while using chip tool as controller + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 - CHIP:DMG: InvokeResponseMessage = - [1650278416.248379][11064:11069] CHIP:DMG: { - [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, - [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = - [1650278416.248570][11064:11069] CHIP:DMG: [ - [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = - [1650278416.248718][11064:11069] CHIP:DMG: { - [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = - [1650278416.248860][11064:11069] CHIP:DMG: { - [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = - [1650278416.249011][11064:11069] CHIP:DMG: { - [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, - [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, - [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, - [1650278416.249347][11064:11069] CHIP:DMG: }, - [1650278416.249430][11064:11069] CHIP:DMG: - [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = - [1650278416.249581][11064:11069] CHIP:DMG: { - [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), - [1650278416.249738][11064:11069] CHIP:DMG: }, - [1650278416.249823][11064:11069] CHIP:DMG: - [1650278416.249889][11064:11069] CHIP:DMG: }, - [1650278416.249969][11064:11069] CHIP:DMG: - [1650278416.250035][11064:11069] CHIP:DMG: }, - [1650278416.250113][11064:11069] CHIP:DMG: - [1650278416.250169][11064:11069] CHIP:DMG: ], - [1650278416.250241][11064:11069] CHIP:DMG: - [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 - [1650278416.250355][11064:11069] CHIP:DMG: }, - [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 - [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] + [1635926152.609542][10140:10145] CHIP:SC: Success status report received. Session was established + [1635926152.609582][10140:10145] CHIP:IN: New secure session created for device 0x0000000000000001, key 42!! + [1635926152.609695][10140:10145] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635926152.617050][10140:10145] CHIP:DMG: ICR moving to [AddingComm] + [1635926152.617103][10140:10145] CHIP:DMG: ICR moving to [AddedComma] + [1635926152.617228][10140:10145] CHIP:IN: Prepared encrypted message 0xaaab02ca7d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 6544i with MessageCounter:0. + [1635926152.617286][10140:10145] CHIP:IN: Sending encrypted msg 0xaaab02ca7d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13888103 msec + [1635926152.617454][10140:10145] CHIP:DMG: ICR moving to [CommandSen] + [1635926152.617523][10140:10145] CHIP:CTL: Manual pairing code: [35484132896] + [1635926152.617611][10140:10145] CHIP:CTL: SetupQRCode: [MT:00000CQM00QHQP0JG00] disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using BCM" - PICS: CADMIN.C.C0001 + using ECM" + PICS: CADMIN.C.C00.Tx verification: | - On the 3rd controller using chip tool, open commissioning window using BCM before the timer expiry from above step - - ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 - + On the 3rd controller using chip tool, open commissioning window using ECM + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 CHIP:DMG: InvokeResponseMessage = [1650527622.373450][15824:15829] CHIP:DMG: { - [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, - [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = - [1650527622.373734][15824:15829] CHIP:DMG: [ - [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = - [1650527622.373913][15824:15829] CHIP:DMG: { - [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = - [1650527622.374087][15824:15829] CHIP:DMG: { - [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = - [1650527622.374296][15824:15829] CHIP:DMG: { - [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, - [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, - [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, - [1650527622.374682][15824:15829] CHIP:DMG: }, + [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, + [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = + [1650527622.373734][15824:15829] CHIP:DMG: [ + [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = + [1650527622.373913][15824:15829] CHIP:DMG: { + [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = + [1650527622.374087][15824:15829] CHIP:DMG: { + [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = + [1650527622.374296][15824:15829] CHIP:DMG: { + [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, + [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, + [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, + [1650527622.374682][15824:15829] CHIP:DMG: }, [1650527622.374799][15824:15829] CHIP:DMG: - [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = - [1650527622.374979][15824:15829] CHIP:DMG: { - [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), - [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, - [1650527622.375320][15824:15829] CHIP:DMG: }, + [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = + [1650527622.374979][15824:15829] CHIP:DMG: { + [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), + [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, + [1650527622.375320][15824:15829] CHIP:DMG: }, [1650527622.375426][15824:15829] CHIP:DMG: - [1650527622.375527][15824:15829] CHIP:DMG: }, + [1650527622.375527][15824:15829] CHIP:DMG: }, [1650527622.375616][15824:15829] CHIP:DMG: - [1650527622.375704][15824:15829] CHIP:DMG: }, + [1650527622.375704][15824:15829] CHIP:DMG: }, [1650527622.375786][15824:15829] CHIP:DMG: - [1650527622.375864][15824:15829] CHIP:DMG: ], + [1650527622.375864][15824:15829] CHIP:DMG: ], [1650527622.375940][15824:15829] CHIP:DMG: - [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 + [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 [1650527622.376058][15824:15829] CHIP:DMG: }, [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 disabled: true - - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was - set in step 9" - verification: | - Wait for the expiration of PIXIT_COMM_WIN seconds - disabled: true - - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | @@ -340,91 +328,75 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is + set in step 9" verification: | - On your DUT controller, open commissioning window using BCM - - Below is the example when using chip tool as controller - ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 - - CHIP:DMG: InvokeResponseMessage = - [1650278416.248379][11064:11069] CHIP:DMG: { - [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, - [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = - [1650278416.248570][11064:11069] CHIP:DMG: [ - [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = - [1650278416.248718][11064:11069] CHIP:DMG: { - [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = - [1650278416.248860][11064:11069] CHIP:DMG: { - [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = - [1650278416.249011][11064:11069] CHIP:DMG: { - [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, - [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, - [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, - [1650278416.249347][11064:11069] CHIP:DMG: }, - [1650278416.249430][11064:11069] CHIP:DMG: - [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = - [1650278416.249581][11064:11069] CHIP:DMG: { - [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), - [1650278416.249738][11064:11069] CHIP:DMG: }, - [1650278416.249823][11064:11069] CHIP:DMG: - [1650278416.249889][11064:11069] CHIP:DMG: }, - [1650278416.249969][11064:11069] CHIP:DMG: - [1650278416.250035][11064:11069] CHIP:DMG: }, - [1650278416.250113][11064:11069] CHIP:DMG: - [1650278416.250169][11064:11069] CHIP:DMG: ], - [1650278416.250241][11064:11069] CHIP:DMG: - [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 - [1650278416.250355][11064:11069] CHIP:DMG: }, - [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 - [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] + Wait for the expiration of PIXIT_COMM_WIN seconds disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 12, TH_CR2 sends command to open a second commissioning - window on TH_CE using a commissioning timeout of - PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx verification: | - On the 2nd controller using chip tool, open commissioning window using BCM before the timer expiry from above step + On your DUT controller, open commissioning window using ECM - ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 + Below is the example while using chip tool as controller + + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + [1635926434.941379][10165:10170] CHIP:SC: Success status report received. Session was established + [1635926434.941428][10165:10170] CHIP:IN: New secure session created for device 0x0000000000000001, key 44!! + [1635926434.941515][10165:10170] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635926434.949324][10165:10170] CHIP:DMG: ICR moving to [AddingComm] + [1635926434.949381][10165:10170] CHIP:DMG: ICR moving to [AddedComma] + [1635926434.949532][10165:10170] CHIP:IN: Prepared encrypted message 0xaaaad95dbd10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 19421i with MessageCounter:0. + [1635926434.949592][10165:10170] CHIP:IN: Sending encrypted msg 0xaaaad95dbd10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 14170436 msec + [1635926434.949727][10165:10170] CHIP:DMG: ICR moving to [CommandSen] + [1635926434.949788][10165:10170] CHIP:CTL: Manual pairing code: [35484132896] + [1635926434.949865][10165:10170] CHIP:CTL: SetupQRCode: [MT:00000CQM00OAX.7RA00] + disabled: true + - label: + "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set + in step 12, TH_CR2 sends command to TH_CE to open a second + commissioning window with a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx + verification: | + On the 2nd controller using chip tool, open commissioning window using ECM + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 CHIP:DMG: InvokeResponseMessage = [1650527622.373450][15824:15829] CHIP:DMG: { - [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, - [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = - [1650527622.373734][15824:15829] CHIP:DMG: [ - [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = - [1650527622.373913][15824:15829] CHIP:DMG: { - [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = - [1650527622.374087][15824:15829] CHIP:DMG: { - [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = - [1650527622.374296][15824:15829] CHIP:DMG: { - [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, - [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, - [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, - [1650527622.374682][15824:15829] CHIP:DMG: }, + [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, + [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = + [1650527622.373734][15824:15829] CHIP:DMG: [ + [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = + [1650527622.373913][15824:15829] CHIP:DMG: { + [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = + [1650527622.374087][15824:15829] CHIP:DMG: { + [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = + [1650527622.374296][15824:15829] CHIP:DMG: { + [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, + [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, + [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, + [1650527622.374682][15824:15829] CHIP:DMG: }, [1650527622.374799][15824:15829] CHIP:DMG: - [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = - [1650527622.374979][15824:15829] CHIP:DMG: { - [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), - [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, - [1650527622.375320][15824:15829] CHIP:DMG: }, + [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = + [1650527622.374979][15824:15829] CHIP:DMG: { + [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), + [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, + [1650527622.375320][15824:15829] CHIP:DMG: }, [1650527622.375426][15824:15829] CHIP:DMG: - [1650527622.375527][15824:15829] CHIP:DMG: }, + [1650527622.375527][15824:15829] CHIP:DMG: }, [1650527622.375616][15824:15829] CHIP:DMG: - [1650527622.375704][15824:15829] CHIP:DMG: }, + [1650527622.375704][15824:15829] CHIP:DMG: }, [1650527622.375786][15824:15829] CHIP:DMG: - [1650527622.375864][15824:15829] CHIP:DMG: ], + [1650527622.375864][15824:15829] CHIP:DMG: ], [1650527622.375940][15824:15829] CHIP:DMG: - [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 + [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 [1650527622.376058][15824:15829] CHIP:DMG: }, [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml index 147d66f69a0535..d7e9d9370426fb 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml @@ -29,6 +29,7 @@ tests: disabled: true - label: "TH_CR1 starts a commissioning process with DUT_CE" + PICS: CADMIN.C verification: | "1. Provision the device using 1st controller chip tool(use above instructions) , " @@ -37,7 +38,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On 1st controller chip tool, open commissioning window @@ -57,6 +58,7 @@ tests: disabled: true - label: "TH_CR2 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | On 2nd controller using chip tool connect to the accessory @@ -70,7 +72,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On 1st controller chip tool, open commissioning window @@ -90,6 +92,7 @@ tests: disabled: true - label: "TH_CR3 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | On 3rd controller using chip tool connect to the accessory @@ -204,10 +207,29 @@ tests: [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i" disabled: true + - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + verification: | + On 1st controller using chip tool, read fabrics list + grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp + + wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local + + wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local + = wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2753] + port = [5540] + txt = ["T=1" "SAI=300" "SII=5000"] + = wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2753] + port = [5540] + txt = ["T=1" "SAI=300" "SII=5000"] + grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ + disabled: true + - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On 1st controller chip tool, open commissioning window @@ -227,6 +249,7 @@ tests: disabled: true - label: "TH_CR2 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | On 2nd controller using chip tool connect to the accessory diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml index db6d5624d975b6..26d00ca40c8e07 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.16. [TC-CADMIN-1.16] Removing Fabrics from DUT and Fabric index + 3.1.16. [TC-CADMIN-1.16] Removing Fabrics from DUT and Fabric index enumeration using BCM [DUT - Commissionee] config: @@ -23,80 +23,77 @@ config: endpoint: 0 tests: - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Reset DUT_CE to factory defaults" verification: | - "1. Provision the device using your DUT controller (use above instructions) , + + disabled: true + + - label: "TH_CR1 starts a commissioning process with DUT_CE" + PICS: CADMIN.S + verification: | + "1. Provision the device using 1st controller chip tool(use above instructions) , " disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and - TH_CR3 Commissions with TH_CE" - PICS: CADMIN.C.C0001 + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp verification: | - On your DUT controller, open commissioning window using ECM - - Below is the example while using chip tool as controller - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 - - [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established - [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! - [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 - [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] - [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] - [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. - [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec - [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] - [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] - [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] - + On 1st controller chip tool, open commissioning window + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000 - On 3rd controller using chip tool connect using manual code - - ./chip-tool pairing code 1 35484132896 - - Verify you got below message - Device commissioning completed with success + CHIP:DMG: InvokeResponseMessage = + [1650278416.248379][11064:11069] CHIP:DMG: { + [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, + [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = + [1650278416.248570][11064:11069] CHIP:DMG: [ + [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = + [1650278416.248718][11064:11069] CHIP:DMG: { + [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = + [1650278416.248860][11064:11069] CHIP:DMG: { + [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = + [1650278416.249011][11064:11069] CHIP:DMG: { + [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, + [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, + [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, + [1650278416.249347][11064:11069] CHIP:DMG: }, + [1650278416.249430][11064:11069] CHIP:DMG: + [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = + [1650278416.249581][11064:11069] CHIP:DMG: { + [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), + [1650278416.249738][11064:11069] CHIP:DMG: }, + [1650278416.249823][11064:11069] CHIP:DMG: + [1650278416.249889][11064:11069] CHIP:DMG: }, + [1650278416.249969][11064:11069] CHIP:DMG: + [1650278416.250035][11064:11069] CHIP:DMG: }, + [1650278416.250113][11064:11069] CHIP:DMG: + [1650278416.250169][11064:11069] CHIP:DMG: ], + [1650278416.250241][11064:11069] CHIP:DMG: + [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 + [1650278416.250355][11064:11069] CHIP:DMG: }, + [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 + [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and - TH_CR2 Commissions with TH_CE" - PICS: CADMIN.C.C0001 + - label: "TH_CR2 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | - On your DUT controller, open commissioning window using ECM + On 2nd controller using chip tool connect to the accessory - Below is the example while using chip tool as controller - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 - [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established - [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!! - [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1 - [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm] - [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma] - [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0. - [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec - [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen] - [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896] - [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510] - - On 2nd controller using chip tool connect using manual code - ./chip-tool pairing code 1 35484132896 + ./chip-tool pairing onnetwork 2 20202021 Verify you got below message Device commissioning completed with success disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp verification: | - On your DUT controller, open commissioning window using BCM - - Below is the example while using chip tool as controller + On 1st controller chip tool, open commissioning window ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 CHIP:DMG: InvokeResponseMessage = @@ -132,270 +129,212 @@ tests: [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 4, DUT_CR1 sends command to TH_CE to TH_CE to open a 2nd - commissioning window with a commissioning timeout of - PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + - label: "TH_CR3 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | - On your DUT controller, open commissioning window using ECM before the timer expiry of the above step + On 3rd controller using chip tool connect to the accessory - Below is the example while using chip tool as controller - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 - CHIP:DMG: InvokeResponseMessage = - [1650527622.373450][15824:15829] CHIP:DMG: { - [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, - [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = - [1650527622.373734][15824:15829] CHIP:DMG: [ - [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = - [1650527622.373913][15824:15829] CHIP:DMG: { - [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = - [1650527622.374087][15824:15829] CHIP:DMG: { - [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = - [1650527622.374296][15824:15829] CHIP:DMG: { - [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, - [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, - [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, - [1650527622.374682][15824:15829] CHIP:DMG: }, - [1650527622.374799][15824:15829] CHIP:DMG: - [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = - [1650527622.374979][15824:15829] CHIP:DMG: { - [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), - [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, - [1650527622.375320][15824:15829] CHIP:DMG: }, - [1650527622.375426][15824:15829] CHIP:DMG: - [1650527622.375527][15824:15829] CHIP:DMG: }, - [1650527622.375616][15824:15829] CHIP:DMG: - [1650527622.375704][15824:15829] CHIP:DMG: }, - [1650527622.375786][15824:15829] CHIP:DMG: - [1650527622.375864][15824:15829] CHIP:DMG: ], - [1650527622.375940][15824:15829] CHIP:DMG: - [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 - [1650527622.376058][15824:15829] CHIP:DMG: }, - [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 - [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 - disabled: true + ./chip-tool pairing onnetwork 1 20202021 - - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" - PICS: OPCREDS.C.A0001 - verification: | - On 1st controller using chip tool, read fabrics list - - ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 - - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768 - [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries - [1650527361.426777][15792:15797] CHIP:TOO: [1]: { - [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01 - [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521 - [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1 - [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1 - [1650527361.427088][15792:15797] CHIP:TOO: Label: - [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1 - [1650527361.427376][15792:15797] CHIP:TOO: } - [1650527361.427464][15792:15797] CHIP:TOO: [2]: { - [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7 - [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521 - [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1 - [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3 - [1650527361.427756][15792:15797] CHIP:TOO: Label: - [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2 - [1650527361.427868][15792:15797] CHIP:TOO: } - [1650527361.427943][15792:15797] CHIP:TOO: [3]: { - [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD - [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521 - [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1 - [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2 - [1650527361.428229][15792:15797] CHIP:TOO: Label: - [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3 - [1650527361.428335][15792:15797] CHIP:TOO: } + Verify you got below message + Device commissioning completed with success disabled: true - - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 5" + - label: "TH_CR2 reads the list of Fabrics on DUT_CE" + PICS: OPCREDS.S.A0001 verification: | - Wait for the expiration of PIXIT_COMM_WIN seconds + On 2nd controller using chip tool, read fabrics list + + ./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0 + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193 + CHIP:TOO: Fabrics: 3 entries + CHIP:TOO: [1]: { + CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F + CHIP:TOO: VendorId: 65521 + CHIP:TOO: FabricId: 1 + CHIP:TOO: NodeId: 1 + CHIP:TOO: Label: + CHIP:TOO: FabricIndex: 1 + CHIP:TOO: } + CHIP:TOO: [2]: { + CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7 + CHIP:TOO: VendorId: 65521 + CHIP:TOO: FabricId: 1 + CHIP:TOO: NodeId: 2 + CHIP:TOO: Label: + CHIP:TOO: FabricIndex: 2 + CHIP:TOO: } + CHIP:TOO: [3]: { + CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7 + CHIP:TOO: VendorId: 65521 + CHIP:TOO: FabricId: 1 + CHIP:TOO: NodeId: 3 + CHIP:TOO: Label: + CHIP:TOO: FabricIndex: 3 + CHIP:TOO: } + CHIP:EM: Sending Standalone Ack for MessageCounter:9143157 on exchange 1147i disabled: true - - label: - "DUT_CR1 sends command to TH_CE to re-opens a commissioning window - with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - ECM" - PICS: CADMIN.C.C0000 + - label: "TH_CR2 sends RemoveFabric with FabricIndex = 2command to DUT_CE" + PICS: OPCREDS.S.C0a.Rsp verification: | - On your DUT controller, open commissioning window using ECM - - Below is the example while using chip tool as controller - - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 - - [1635926152.609542][10140:10145] CHIP:SC: Success status report received. Session was established - [1635926152.609582][10140:10145] CHIP:IN: New secure session created for device 0x0000000000000001, key 42!! - [1635926152.609695][10140:10145] CHIP:CTL: OpenCommissioningWindow for device ID 1 - [1635926152.617050][10140:10145] CHIP:DMG: ICR moving to [AddingComm] - [1635926152.617103][10140:10145] CHIP:DMG: ICR moving to [AddedComma] - [1635926152.617228][10140:10145] CHIP:IN: Prepared encrypted message 0xaaab02ca7d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 6544i with MessageCounter:0. - [1635926152.617286][10140:10145] CHIP:IN: Sending encrypted msg 0xaaab02ca7d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13888103 msec - [1635926152.617454][10140:10145] CHIP:DMG: ICR moving to [CommandSen] - [1635926152.617523][10140:10145] CHIP:CTL: Manual pairing code: [35484132896] - [1635926152.617611][10140:10145] CHIP:CTL: SetupQRCode: [MT:00000CQM00QHQP0JG00] + on 2nd controller using chip tool, remove fabric with FabricIndex=2 + + ./chip-tool operationalcredentials remove-fabric 2 2 0 + + CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 + CHIP:TOO: NOCResponse: { + CHIP:TOO: statusCode: 0 + CHIP:TOO: fabricIndex: 2 + CHIP:TOO: } + CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning - window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using ECM" - PICS: CADMIN.C.C0000 + "TH_CR2 writes and reads the Basic Information Clusters NodeLabel + mandatory attribute of DUT_CE" + PICS: BINFO.S.A0005 verification: | - On the 3rd controller using chip tool, open commissioning window using ECM + Using your 2nd controller, write attribute and read attribute to and from TH_CE + Below is the example while using chip tool on second controller, + ./chip-tool basic write node-label te5new 2 0 - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter + [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2 + [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53 - CHIP:DMG: InvokeResponseMessage = - [1650527622.373450][15824:15829] CHIP:DMG: { - [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, - [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = - [1650527622.373734][15824:15829] CHIP:DMG: [ - [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = - [1650527622.373913][15824:15829] CHIP:DMG: { - [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = - [1650527622.374087][15824:15829] CHIP:DMG: { - [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = - [1650527622.374296][15824:15829] CHIP:DMG: { - [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, - [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, - [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, - [1650527622.374682][15824:15829] CHIP:DMG: }, - [1650527622.374799][15824:15829] CHIP:DMG: - [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = - [1650527622.374979][15824:15829] CHIP:DMG: { - [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), - [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, - [1650527622.375320][15824:15829] CHIP:DMG: }, - [1650527622.375426][15824:15829] CHIP:DMG: - [1650527622.375527][15824:15829] CHIP:DMG: }, - [1650527622.375616][15824:15829] CHIP:DMG: - [1650527622.375704][15824:15829] CHIP:DMG: }, - [1650527622.375786][15824:15829] CHIP:DMG: - [1650527622.375864][15824:15829] CHIP:DMG: ], - [1650527622.375940][15824:15829] CHIP:DMG: - [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 - [1650527622.376058][15824:15829] CHIP:DMG: }, - [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 - [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 + ./chip-tool basic read node-label 2 0 + + Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter + [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2 + [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53 disabled: true - - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" - PICS: OPCREDS.C.A0001 + - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + PICS: OPCREDS.S.A0001 verification: | On 1st controller using chip tool, read fabrics list - ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768 - [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries - [1650527361.426777][15792:15797] CHIP:TOO: [1]: { - [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01 - [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521 - [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1 - [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1 - [1650527361.427088][15792:15797] CHIP:TOO: Label: - [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1 - [1650527361.427376][15792:15797] CHIP:TOO: } - [1650527361.427464][15792:15797] CHIP:TOO: [2]: { - [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7 - [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521 - [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1 - [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3 - [1650527361.427756][15792:15797] CHIP:TOO: Label: - [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2 - [1650527361.427868][15792:15797] CHIP:TOO: } - [1650527361.427943][15792:15797] CHIP:TOO: [3]: { - [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD - [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521 - [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1 - [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2 - [1650527361.428229][15792:15797] CHIP:TOO: Label: - [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3 - [1650527361.428335][15792:15797] CHIP:TOO: } + Below is the command using chip tool controller + + ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219 + [1647863260.286772][9294:9299] CHIP:TOO: Fabrics: 2 entries + [1647863260.286908][9294:9299] CHIP:TOO: [1]: { + [1647863260.286947][9294:9299] CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F + [1647863260.286995][9294:9299] CHIP:TOO: VendorId: 65521 + [1647863260.287026][9294:9299] CHIP:TOO: FabricId: 1 + [1647863260.287055][9294:9299] CHIP:TOO: NodeId: 1 + [1647863260.287084][9294:9299] CHIP:TOO: Label: + [1647863260.287113][9294:9299] CHIP:TOO: FabricIndex: 1 + [1647863260.287144][9294:9299] CHIP:TOO: } + [1647863260.287185][9294:9299] CHIP:TOO: [2]: { + [1647863260.287221][9294:9299] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7 + [1647863260.287253][9294:9299] CHIP:TOO: VendorId: 65521 + [1647863260.287282][9294:9299] CHIP:TOO: FabricId: 1 + [1647863260.287310][9294:9299] CHIP:TOO: NodeId: 3 + [1647863260.287339][9294:9299] CHIP:TOO: Label: + [1647863260.287368][9294:9299] CHIP:TOO: FabricIndex: 3 + [1647863260.287396][9294:9299] CHIP:TOO: } + [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i" disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 9" + "TH_CR1 opens a commissioning window on DUT_CE using a commissioning + timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + PICS: CADMIN.S.C01.Rsp verification: | - Wait for the expiration of PIXIT_COMM_WIN seconds + On 1st controller chip tool, open commissioning window + + ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 + + + CHIP:DMG: InvokeResponseMessage = + [1650278416.248379][11064:11069] CHIP:DMG: { + [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, + [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs = + [1650278416.248570][11064:11069] CHIP:DMG: [ + [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB = + [1650278416.248718][11064:11069] CHIP:DMG: { + [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB = + [1650278416.248860][11064:11069] CHIP:DMG: { + [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB = + [1650278416.249011][11064:11069] CHIP:DMG: { + [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0, + [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c, + [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1, + [1650278416.249347][11064:11069] CHIP:DMG: }, + [1650278416.249430][11064:11069] CHIP:DMG: + [1650278416.249501][11064:11069] CHIP:DMG: StatusIB = + [1650278416.249581][11064:11069] CHIP:DMG: { + [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS), + [1650278416.249738][11064:11069] CHIP:DMG: }, + [1650278416.249823][11064:11069] CHIP:DMG: + [1650278416.249889][11064:11069] CHIP:DMG: }, + [1650278416.249969][11064:11069] CHIP:DMG: + [1650278416.250035][11064:11069] CHIP:DMG: }, + [1650278416.250113][11064:11069] CHIP:DMG: + [1650278416.250169][11064:11069] CHIP:DMG: ], + [1650278416.250241][11064:11069] CHIP:DMG: + [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1 + [1650278416.250355][11064:11069] CHIP:DMG: }, + [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0 + [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + - label: "TH_CR2 starts a commissioning process with DUT_CE" + PICS: CADMIN.S verification: | - On your DUT controller, open commissioning window using ECM - - Below is the example while using chip tool as controller - - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 - - [1635926434.941379][10165:10170] CHIP:SC: Success status report received. Session was established - [1635926434.941428][10165:10170] CHIP:IN: New secure session created for device 0x0000000000000001, key 44!! - [1635926434.941515][10165:10170] CHIP:CTL: OpenCommissioningWindow for device ID 1 - [1635926434.949324][10165:10170] CHIP:DMG: ICR moving to [AddingComm] - [1635926434.949381][10165:10170] CHIP:DMG: ICR moving to [AddedComma] - [1635926434.949532][10165:10170] CHIP:IN: Prepared encrypted message 0xaaaad95dbd10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 19421i with MessageCounter:0. - [1635926434.949592][10165:10170] CHIP:IN: Sending encrypted msg 0xaaaad95dbd10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 14170436 msec - [1635926434.949727][10165:10170] CHIP:DMG: ICR moving to [CommandSen] - [1635926434.949788][10165:10170] CHIP:CTL: Manual pairing code: [35484132896] - [1635926434.949865][10165:10170] CHIP:CTL: SetupQRCode: [MT:00000CQM00OAX.7RA00] + On 2nd controller using chip tool connect to the accessory + + + ./chip-tool pairing onnetwork 1 20202021 + + Verify you got below message + Device commissioning completed with success disabled: true - - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 12, TH_CR2 sends command to TH_CE to open a second - commissioning window with a commissioning timeout of - PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + PICS: OPCREDS.S.A0001 verification: | - On the 2nd controller using chip tool, open commissioning window using ECM + On 1st controller, read fabrics list - ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + Below is the command using chip tool controller - CHIP:DMG: InvokeResponseMessage = - [1650527622.373450][15824:15829] CHIP:DMG: { - [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false, - [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs = - [1650527622.373734][15824:15829] CHIP:DMG: [ - [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB = - [1650527622.373913][15824:15829] CHIP:DMG: { - [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB = - [1650527622.374087][15824:15829] CHIP:DMG: { - [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB = - [1650527622.374296][15824:15829] CHIP:DMG: { - [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0, - [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c, - [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1, - [1650527622.374682][15824:15829] CHIP:DMG: }, - [1650527622.374799][15824:15829] CHIP:DMG: - [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = - [1650527622.374979][15824:15829] CHIP:DMG: { - [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE), - [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1, - [1650527622.375320][15824:15829] CHIP:DMG: }, - [1650527622.375426][15824:15829] CHIP:DMG: - [1650527622.375527][15824:15829] CHIP:DMG: }, - [1650527622.375616][15824:15829] CHIP:DMG: - [1650527622.375704][15824:15829] CHIP:DMG: }, - [1650527622.375786][15824:15829] CHIP:DMG: - [1650527622.375864][15824:15829] CHIP:DMG: ], - [1650527622.375940][15824:15829] CHIP:DMG: - [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1 - [1650527622.376058][15824:15829] CHIP:DMG: }, - [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1 - [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 + ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246 + [1647863342.980899][9309:9314] CHIP:TOO: Fabrics: 3 entries + [1647863342.981158][9309:9314] CHIP:TOO: [1]: { + [1647863342.981231][9309:9314] CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F + [1647863342.981322][9309:9314] CHIP:TOO: VendorId: 65521 + [1647863342.981380][9309:9314] CHIP:TOO: FabricId: 1 + [1647863342.981434][9309:9314] CHIP:TOO: NodeId: 1 + [1647863342.981486][9309:9314] CHIP:TOO: Label: + [1647863342.981539][9309:9314] CHIP:TOO: FabricIndex: 1 + [1647863342.981594][9309:9314] CHIP:TOO: } + [1647863342.981671][9309:9314] CHIP:TOO: [2]: { + [1647863342.981737][9309:9314] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7 + [1647863342.981796][9309:9314] CHIP:TOO: VendorId: 65521 + [1647863342.981849][9309:9314] CHIP:TOO: FabricId: 1 + [1647863342.981901][9309:9314] CHIP:TOO: NodeId: 3 + [1647863342.981952][9309:9314] CHIP:TOO: Label: + [1647863342.982005][9309:9314] CHIP:TOO: FabricIndex: 3 + [1647863342.982057][9309:9314] CHIP:TOO: } + [1647863342.982131][9309:9314] CHIP:TOO: [3]: { + [1647863342.982195][9309:9314] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7 + [1647863342.982252][9309:9314] CHIP:TOO: VendorId: 65521 + [1647863342.982305][9309:9314] CHIP:TOO: FabricId: 1 + [1647863342.982357][9309:9314] CHIP:TOO: NodeId: 2 + [1647863342.982409][9309:9314] CHIP:TOO: Label: + [1647863342.982460][9309:9314] CHIP:TOO: FabricIndex: 4 + [1647863342.982512][9309:9314] CHIP:TOO: } + [1647863342.982738][9309:9314] CHIP:EM: Sending Standalone Ack for MessageCounter:5772016 on exchange 3310i disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml index 7066f59e26d452..c7cb40b8009db0 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.17. [TC-CADMIN-1.17] Removing Fabrics from DUT and Fabric index + 3.1.17. [TC-CADMIN-1.17] Removing Fabrics from DUT and Fabric index enumeration using ECM [DUT - Commissioner] config: @@ -23,25 +23,29 @@ config: endpoint: 0 tests: - - label: "Reset DUT_CE to factory defaults" + - label: "Reset DUT_CR1 to factory defaults" verification: | disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "DUT_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | - "1. Provision the device using 1st controller chip tool(use above instructions) , + "1. Provision the device using DUT controller chip tool(use above instructions) , " disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx verification: | - On 1st controller chip tool, open commissioning window + On your DUT controller chip tool, open commissioning window - ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 + Below is the example when using chip tool as controller + + + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!! @@ -51,28 +55,46 @@ tests: [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0. [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen] - [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633] + [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [35484132896] [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10] [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i + + + + + ./chip-tool payload parse-setup-payload 35484132896 + + CHIP:SPL: Parsing decimalRepresentation: 35484132896 + [1635692029.655951][3830:3830] CHIP:SPL: CommissioningFlow: 0 + [1635692029.655974][3830:3830] CHIP:SPL: VendorID: 0 + [1635692029.655994][3830:3830] CHIP:SPL: Version: 0 + [1635692029.656013][3830:3830] CHIP:SPL: ProductID: 0 + [1635692029.656032][3830:3830] CHIP:SPL: Discriminator: 3840 + [1635692029.656051][3830:3830] CHIP:SPL: SetUpPINCode: 68539195 + [1635692029.656070][3830:3830] CHIP:SPL: RendezvousInformation: 0 disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "TH_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On 2nd controller using chip tool connect to the accessory - ./chip-tool pairing code 1 36217551633 + ./chip-tool pairing code 1 35484132896 Verify you got below message Device commissioning completed with success disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx verification: | - On 1st controller chip tool, open commissioning window + On your DUT controller chip tool, open commissioning window + + Below is the example when using chip tool as controller + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 @@ -84,29 +106,43 @@ tests: [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0. [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen] - [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633] + [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [35484132896] [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10] [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i + + + + + ./chip-tool payload parse-setup-payload 35484132896 + + CHIP:SPL: Parsing decimalRepresentation: 35484132896 + [1635692029.655951][3830:3830] CHIP:SPL: CommissioningFlow: 0 + [1635692029.655974][3830:3830] CHIP:SPL: VendorID: 0 + [1635692029.655994][3830:3830] CHIP:SPL: Version: 0 + [1635692029.656013][3830:3830] CHIP:SPL: ProductID: 0 + [1635692029.656032][3830:3830] CHIP:SPL: Discriminator: 3840 + [1635692029.656051][3830:3830] CHIP:SPL: SetUpPINCode: 68539195 + [1635692029.656070][3830:3830] CHIP:SPL: RendezvousInformation: 0 disabled: true - - label: "TH_CR3 starts a commissioning process with DUT_CE" + - label: "TH_CR3 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On 3rd controller using chip tool connect to the accessory - - ./chip-tool pairing code 1 36217551633 + ./chip-tool pairing code 1 35484132896 Verify you got below message Device commissioning completed with success disabled: true - - label: "TH_CR2 reads the list of Fabrics on DUT_CE" - PICS: OPCREDS.S.A0001 + - label: "TH_CR2 sends command to TH_CE to read the list of Fabrics" + PICS: OPCREDS.C.A0001 verification: | On 2nd controller using chip tool, read fabrics list - ./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0 + ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193 CHIP:TOO: Fabrics: 3 entries @@ -137,12 +173,12 @@ tests: CHIP:EM: Sending Standalone Ack for MessageCounter:9143157 on exchange 1147i disabled: true - - label: "TH_CR2 sends RemoveFabric with FabricIndex = 2command to DUT_CE" - PICS: OPCREDS.S.C0a.Rsp + - label: "TH_CR2 sends RemoveFabric with FabricIndex = 2command to TH_CE" + PICS: OPCREDS.C.C0a.Tx verification: | on 2nd controller using chip tool, remove fabric with FabricIndex=2 - ./chip-tool operationalcredentials remove-fabric 2 2 0 + ./chip-tool operationalcredentials remove-fabric 2 1 0 CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 @@ -154,9 +190,9 @@ tests: disabled: true - label: - "TH_CR2 writes and reads the Basic Information Clusters NodeLabel - mandatory attribute of DUT_CE" - PICS: BINFO.S.A0005 + "TH_CR2 sends command to TH_CE to write and read the Basic Information + Clusters NodeLabel mandatory attribute" + PICS: BINFO.C.A0005 verification: | Using your 2nd controller, write attribute and read attribute to and from TH_CE @@ -174,14 +210,15 @@ tests: [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53 disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" - PICS: OPCREDS.S.A0001 + - label: + "DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE" + PICS: OPCREDS.C.A0001 verification: | - On 1st controller using chip tool, read fabrics list + On DUT controller, read fabrics list Below is the command using chip tool controller - ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219 [1647863260.286772][9294:9299] CHIP:TOO: Fabrics: 2 entries @@ -201,17 +238,39 @@ tests: [1647863260.287339][9294:9299] CHIP:TOO: Label: [1647863260.287368][9294:9299] CHIP:TOO: FabricIndex: 3 [1647863260.287396][9294:9299] CHIP:TOO: } - [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i" + [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + "DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE" + PICS: OPCREDS.C.A0001 verification: | - On 1st controller chip tool, open commissioning window + grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp + + wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local + + wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local + = wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2753] + port = [5540] + txt = ["T=1" "SAI=300" "SII=5000"] + = wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local + hostname = [E45F010F27530000.local] + address = [fe80::e65f:1ff:fe0f:2753] + port = [5540] + txt = ["T=1" "SAI=300" "SII=5000"] + grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ + disabled: true + + - label: + "DUT_CR1 sends command to TH_CE to open a commissioning window with a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + PICS: CADMIN.C.C00.Tx + verification: | + On DUT controller chip tool, open commissioning window - ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 + Below is the example when using chip tool as controller + + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!! @@ -226,7 +285,8 @@ tests: [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "TH_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On 2nd controller using chip tool connect to the accessory @@ -237,14 +297,15 @@ tests: Device commissioning completed with success disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" - PICS: OPCREDS.S.A0001 + - label: + "DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE" + PICS: OPCREDS.C.A0001 verification: | - On 1st controller, read fabrics list + On DUT controller, read fabrics list Below is the command using chip tool controller - ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246 [1647863342.980899][9309:9314] CHIP:TOO: Fabrics: 3 entries diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml index bcbff956bb6429..ede13bb1619e5b 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml @@ -37,7 +37,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.S.C0001 + PICS: CADMIN.C.C01.Tx verification: | On 1st controller chip tool, open commissioning window ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000 @@ -89,7 +89,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.S.C0001 + PICS: CADMIN.C.C01.Tx verification: | On 1st controller chip tool, open commissioning window ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 @@ -246,7 +246,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.S.C0001 + PICS: CADMIN.C.C01.Tx verification: | On 1st controller chip tool, open commissioning window diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml index 3bc1ab0c05bc1c..14a76861d4c60e 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml @@ -37,7 +37,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On your DUT controller chip tool, open commissioning window @@ -87,7 +87,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On your DUT controller chip tool, open commissioning window @@ -241,7 +241,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On DUT controller chip tool, open commissioning window diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml index c774dc887224b1..56731fc238451f 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.2. [TC-CADMIN-1.2] Administrator Behavior using BCM [DUT - + 25.1.2. [TC-CADMIN-1.2] Administrator Behavior using BCM [DUT - Commissioner] config: @@ -24,6 +24,7 @@ config: tests: - label: "TH_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | Provision the device using chip tool on first controller disabled: true @@ -32,12 +33,14 @@ tests: "TH_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM (Basic Commissioning Method)" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On first controller, usinadministratorcommissioningg chip tool open commissioning window. ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000 + + CHIP:DMG: InvokeResponseMessage = [1650278416.248379][11064:11069] CHIP:DMG: { [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false, @@ -93,6 +96,7 @@ tests: disabled: true - label: "DUT_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | Using your DUT Controller connect to the accessory. @@ -290,7 +294,7 @@ tests: "DUT_CR2 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM (Basic Commissioning Method)" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller using chip-tool open commissioning widow using BCM. @@ -334,7 +338,7 @@ tests: - label: "DUT_CR2 sends command to TH_CE to revoke the commissioning window using the Revoke Commissioning command" - PICS: CADMIN.C.C0002 + PICS: CADMIN.C.C02.Tx verification: | On your DUT controller using chip-tool run revoke command @@ -378,6 +382,7 @@ tests: - label: "TH_CR3 attempts to execute a PASE to starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | 1. On third controller, using chip-tool connect to the accessory. Connect attempt should fail, i.e ./chip-tool pairing onnetwork 3 20202021 @@ -433,7 +438,7 @@ tests: - label: "DUT_CR2 sends command to TH_CE to open a commissioning window using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller using chip-tool open commissioning widow using BCM. @@ -483,7 +488,7 @@ tests: - label: "DUT_CR2 sends command to TH_CE to open a commissioning window using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller using chip-tool open commissioning widow using BCM. @@ -527,6 +532,7 @@ tests: - label: "TH_CR1 starts a commissioning process with TH_CE before the timeout from step 15" + PICS: CADMIN.C verification: | Using your 1st Controller connect to the accessory. diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml index 282d17dc5e8989..2893f6230f0f8f 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml @@ -37,7 +37,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller chip tool, open commissioning window @@ -91,7 +91,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller chip tool, open commissioning window @@ -252,7 +252,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On DUT controller chip tool, open commissioning window diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml index c8a91d79722cd0..7d141f30b62397 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml @@ -37,7 +37,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On 1st controller chip tool, open commissioning window @@ -72,7 +72,7 @@ tests: - label: "Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2) times to reach an index value of SupportedFabrics on DUT_CE" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp verification: | Repeat step 3 until CommissionedFabrics=SupportedFabrics disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml index eb66242c6c7aa6..de4341f4c19b2b 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml @@ -37,7 +37,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C00.Rsp verification: | On 1st controller chip tool, open commissioning window @@ -92,7 +92,7 @@ tests: - label: "Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2) times to reach an index value of SupportedFabrics on DUT_CE" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C00.Rsp verification: | Repeat step 3 until CommissionedFabrics=SupportedFabrics disabled: true @@ -100,7 +100,7 @@ tests: - label: "THn starts a commissioning process and opens a commissioning window with DUT_CE" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C00.Rsp verification: | On nth controller using chip tool connect to the accessory diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml index 93f5589d992d66..0d6adaf3bcddcd 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml @@ -37,7 +37,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.S.C00.Rsp verification: | On your DUT controller chip tool, open commissioning window @@ -72,7 +72,7 @@ tests: - label: "Repeat Step 3 an additional (SupportedFabrics - 2) times to reach an index value of SupportedFabrics on TH_CE" - PICS: CADMIN.C.C0000 + PICS: CADMIN.S.C00.Rsp verification: | Repeat Step 3 an additional (SupportedFabrics - 2) times to reach an index value of SupportedFabrics on TH_CE disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml index 1d2290ba31dd9c..2e6441ace1f572 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml @@ -37,7 +37,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.S.C01.Rsp verification: | On your DUT controller chip tool, open commissioning window @@ -93,7 +93,7 @@ tests: - label: "Repeat Step 3 an additional (SupportedFabrics - 2) times to reach an index value of SupportedFabrics on TH_CE" - PICS: CADMIN.C.C0001 + PICS: CADMIN.S.C01.Rsp verification: | Repeat Step 3 an additional (SupportedFabrics - 2) times to reach an index value of SupportedFabrics on TH_CE disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml index 25ab1b5377abb6..3e78a8f7712981 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml @@ -32,6 +32,7 @@ tests: - label: "TH_CR1 starts a commissioning process with DUT_CE" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -40,7 +41,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -90,6 +91,7 @@ tests: value: payload - label: "TH_CR2 starts a commissioning process with DUT_CE" + PICS: CADMIN.S identity: "beta" cluster: "DelayCommands" command: "WaitForCommissionee" @@ -171,7 +173,7 @@ tests: - label: "TH_CR2 opens a commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp identity: "beta" timedInteractionTimeoutMs: 10000 arguments: @@ -207,7 +209,7 @@ tests: - label: "TH_CR2 opens a commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp identity: "beta" timedInteractionTimeoutMs: 10000 arguments: @@ -228,6 +230,7 @@ tests: from step 12" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml index 6e164ea50b9bd4..89dc674ccd3343 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml @@ -32,6 +32,7 @@ tests: - label: "TH_CR1 starts a commissioning process with DUT_CE" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -40,7 +41,7 @@ tests: - label: "TH_CR1 opens a commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -84,6 +85,7 @@ tests: identity: "beta" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -160,7 +162,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" identity: "beta" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -188,7 +190,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" identity: "beta" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -200,6 +202,7 @@ tests: from step 12" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml index b069605158e986..9cc106fcfd1952 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml @@ -40,6 +40,7 @@ tests: - label: "TH_CR1 starts a commissioning process with DUT_CE" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -48,7 +49,7 @@ tests: - label: "TH_CR1 opens a new commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -74,7 +75,7 @@ tests: - label: "TH_CR2 starts a commissioning process with DUT_CE" identity: "beta" cluster: "CommissionerCommands" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp command: "PairWithCode" arguments: values: @@ -88,7 +89,7 @@ tests: - label: "TH_CR1 opens a new commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -106,13 +107,14 @@ tests: - label: "TH_CR1 revokes the commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "RevokeCommissioning" - PICS: CADMIN.S.C0002 + PICS: CADMIN.S.C02.Rsp timedInteractionTimeoutMs: 10000 - label: "TH_CR2 starts a commissioning process with DUT_CE" identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -125,7 +127,7 @@ tests: - label: "TH_CR1 revokes the commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "RevokeCommissioning" - PICS: CADMIN.S.C0002 + PICS: CADMIN.S.C02.Rsp timedInteractionTimeoutMs: 10000 response: error: FAILURE @@ -146,10 +148,12 @@ tests: response: value: "chiptest" - - label: "TH_CR1 opens a new commissioning window on DUT_CE" + - label: + "TH_CR1 opens a new commissioning window on DUT_CE using wrong + PakeVerifier value" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -169,7 +173,7 @@ tests: - label: "TH_CR1 opens a new commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -187,7 +191,7 @@ tests: - label: "TH_CR1 opens a new commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp timedInteractionTimeoutMs: 10000 arguments: values: @@ -202,11 +206,11 @@ tests: - name: "salt" value: "SPAKE2P Key Salt" response: - error: 1 + error: FAILURE #Disabled due to issue 17666 - label: "TH_CR2 starts a commissioning process with DUT_CE" - PICS: PICS_SKIP_SAMPLE_APP + PICS: PICS_SKIP_SAMPLE_APP && CADMIN.S identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" @@ -222,7 +226,7 @@ tests: RevokeCommissioning command" cluster: "AdministratorCommissioning" command: "RevokeCommissioning" - PICS: CADMIN.S.C0002 && PICS_SKIP_SAMPLE_APP + PICS: CADMIN.S.C02.Rsp && PICS_SKIP_SAMPLE_APP timedInteractionTimeoutMs: 10000 response: error: FAILURE @@ -231,6 +235,7 @@ tests: identity: "gamma" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml index 4d6cd686b22390..78a7488f54dc62 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml @@ -40,6 +40,7 @@ tests: - label: "TH_CR1 starts a commissioning process with DUT_CE" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -50,13 +51,13 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" value: 180 - - label: "Wait for PIXIT_COMM_WIN(180) + 10" + - label: "Wait for PIXIT.CADMIN.CwDuration + 10" cluster: "DelayCommands" command: "WaitForMs" arguments: @@ -68,7 +69,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "nodeId" @@ -82,7 +83,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" @@ -91,10 +92,10 @@ tests: - label: "TH_CR1 revokes the commissioning window on DUT_CE" cluster: "AdministratorCommissioning" command: "RevokeCommissioning" - PICS: CADMIN.S.C0002 + PICS: CADMIN.S.C02.Rsp timedInteractionTimeoutMs: 10000 - - label: "Commission from beta" + - label: "TH_CR2 starts a commissioning process with DUT_CE" identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" @@ -111,7 +112,7 @@ tests: cluster: "AdministratorCommissioning" command: "RevokeCommissioning" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0002 + PICS: CADMIN.S.C02.Rsp response: error: FAILURE @@ -138,24 +139,24 @@ tests: cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" value: 180 - - label: "TH_CR1 opens a commissioning window on DUT_CE" + - label: "TH_CR1 opens another commissioning window on DUT_CE" identity: "alpha" cluster: "AdministratorCommissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0001 + PICS: CADMIN.S.C01.Rsp arguments: values: - name: "CommissioningTimeout" value: 180 response: - error: 1 + error: FAILURE - label: "Commission from beta" identity: "beta" @@ -172,6 +173,7 @@ tests: identity: "beta" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -182,7 +184,7 @@ tests: RevokeCommissioning command" cluster: "AdministratorCommissioning" command: "RevokeCommissioning" - PICS: CADMIN.S.C0002 + PICS: CADMIN.S.C02.Rsp timedInteractionTimeoutMs: 10000 response: error: FAILURE @@ -191,6 +193,7 @@ tests: identity: "gamma" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml index b58d39cea641e1..9f2b4a023afec4 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.7. [TC-CADMIN-1.7] Commissioning window handling timeout and revocation + 3.1.7. [TC-CADMIN-1.7] Commissioning window handling timeout and revocation using ECM [DUT - Commissioner] config: @@ -24,6 +24,7 @@ config: tests: - label: "DUT_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | 1. Provision the device using DUT_CR1 controller on the raspi. disabled: true @@ -31,7 +32,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | On your DUT controller open commissioning widow using ECM. @@ -77,6 +78,7 @@ tests: - label: "TH_CR2 starts a commissioning process with TH_CE after PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds" + PICS: CADMIN.C verification: | On the 2nd controller using chip-tool , connect using manual code generated by DUT Controller @@ -94,13 +96,29 @@ tests: "DUT_CR1 sends command to TH_CE to open a new commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | + On your DUT controller open commissioning widow using ECM. + + Below is the example while using chip tool as controller, + + ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840 + [1635871058.908790][4273:4278] CHIP:SC: Success status report received. Session was established + [1635871058.908827][4273:4278] CHIP:IN: New secure session created for device 0x0000000000000001, key 47!! + [1635871058.908924][4273:4278] CHIP:CTL: OpenCommissioningWindow for device ID 1 + [1635871058.916166][4273:4278] CHIP:DMG: ICR moving to [AddingComm] + [1635871058.916223][4273:4278] CHIP:DMG: ICR moving to [AddedComma] + [1635871058.916362][4273:4278] CHIP:IN: Prepared encrypted message 0xaaaac41dfd10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 21937i with MessageCounter:0. + [1635871058.916421][4273:4278] CHIP:IN: Sending encrypted msg 0xaaaac41dfd10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 12630575 msec + [1635871058.916549][4273:4278] CHIP:DMG: ICR moving to [CommandSen] + [1635871058.916607][4273:4278] CHIP:CTL: Manual pairing code: [36366524220] + [1635871058.916679][4273:4278] CHIP:CTL: SetupQRCode: [MT:00000CQM0088GL3XV00] + [1635871058.916745][4273:4278] CHIP:EM: Sending Standalone Ack for MessageCounter:2599714279 on exchange 21936i disabled: true - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" - PICS: CADMIN.C.C0002 + PICS: CADMIN.C.C02.Tx verification: | On First controller revoke commissioning @@ -142,6 +160,7 @@ tests: disabled: true - label: "TH_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On the 2nd controller using chip-tool , connect using manual code generated by DUT Controller @@ -156,7 +175,7 @@ tests: disabled: true - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" - PICS: CADMIN.C.C0002 + PICS: CADMIN.C.C02.Tx verification: | On your DUT controller revoke commissioning @@ -243,7 +262,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" - PICS: CADMIN.C.C0000 + PICS: CADMIN.C.C00.Tx verification: | On your DUT controller open commissioning widow using ECM. @@ -265,6 +284,7 @@ tests: disabled: true - label: "TH_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On the 2nd controller using chip-tool , connect using manual code generated by DUT Controller @@ -277,6 +297,7 @@ tests: disabled: true - label: "TH_CR3 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On the 3rd controller using chip-tool , connect using manual code generated by DUT Controller diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml index 05f839461ccb6f..0746cffb7e07a7 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.8. [TC-CADMIN-1.8] Commissioning window handling timeout and revocation + 3.1.8. [TC-CADMIN-1.8] Commissioning window handling timeout and revocation using BCM [DUT - Commissioner] config: @@ -24,6 +24,7 @@ config: tests: - label: "DUT_CR1 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | 1. Provision the device using DUT_CR1 controller on the raspi. disabled: true @@ -31,7 +32,7 @@ tests: - label: "DUT_CR1 sends command to TH_CE to open a commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller open commissioning widow using BCM. @@ -97,6 +98,7 @@ tests: - label: "TH_CR2 starts a commissioning process with TH_CE after PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds" + PICS: CADMIN.C verification: | On the 2nd controller using chip-tool , connect to the accessory @@ -112,7 +114,7 @@ tests: "DUT_CR1 sends command to TH_CE to open a new commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller open commissioning widow using BCM. @@ -155,7 +157,7 @@ tests: disabled: true - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" - PICS: CADMIN.C.C0002 + PICS: CADMIN.C.C02.Tx verification: | On your DUT controller revoke commissioning @@ -196,6 +198,7 @@ tests: disabled: true - label: "TH_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On the 2nd controller using chip-tool , connect to the accessory @@ -208,7 +211,7 @@ tests: disabled: true - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" - PICS: CADMIN.C.C0002 + PICS: CADMIN.C.C02.Tx verification: | On your DUT controller revoke commissioning @@ -296,7 +299,7 @@ tests: "DUT_CR1 sends command to TH_CE to open a new commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" - PICS: CADMIN.C.C0001 + PICS: CADMIN.C.C01.Tx verification: | On your DUT controller open commissioning widow using BCM. @@ -340,6 +343,7 @@ tests: disabled: true - label: "TH_CR2 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On the 2nd controller using chip-tool , connect to the accessory @@ -350,6 +354,7 @@ tests: disabled: true - label: "TH_CR3 starts a commissioning process with TH_CE" + PICS: CADMIN.C verification: | On the 3rd controller using chip-tool , connect to the accessory diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml index 4c87005f5a9aed..ed094eb77d4399 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml @@ -43,6 +43,7 @@ tests: - label: "TH_CR1 starts a commissioning process with DUT_CE" cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -52,7 +53,7 @@ tests: cluster: "AdministratorCommissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 - PICS: CADMIN.S.C0000 + PICS: CADMIN.S.C00.Rsp arguments: values: - name: "CommissioningTimeout" @@ -72,6 +73,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -87,6 +89,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -102,6 +105,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -117,6 +121,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -132,6 +137,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -147,6 +153,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -162,6 +169,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -177,6 +185,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -192,6 +201,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -207,6 +217,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -222,6 +233,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -237,6 +249,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -252,6 +265,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -267,6 +281,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -282,6 +297,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -297,6 +313,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -312,6 +329,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -327,6 +345,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -342,6 +361,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -357,6 +377,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -372,6 +393,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" @@ -385,6 +407,7 @@ tests: identity: "gamma" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: CADMIN.S arguments: values: - name: "nodeId" diff --git a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml index 13105d1ff02910..9385a746cd65ce 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml @@ -54,86 +54,13 @@ tests: type: list contains: [8, 15, 16385, 16394, 65528, 65529, 65531, 65532, 65533] - - label: "Read the feature dependent attribute(CC.S.F00) in AttributeList" - PICS: CC.S.F00 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [0, 1] - - - label: "Read the feature dependent attribute(CC.S.F03) in AttributeList" - PICS: CC.S.F03 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [3, 4] - - - label: "Read the feature dependent attribute(CC.S.F04) in AttributeList" - PICS: CC.S.F04 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [7, 16395, 16396] - - - label: - "Read the feature dependent attribute(CC.S.F04) or - ColorTemperatureMireds in AttributeList" - PICS: CC.S.F04 && CC.S.A4010 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [16397, 16400] - - - label: "Read the feature dependent attribute(CC.S.F01) in AttributeList" - PICS: CC.S.F01 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [16384] - - - label: "Read the feature dependent attribute(CC.S.F02) in AttributeList" - PICS: CC.S.F02 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [16386, 16387, 16388, 16389, 16390] - - - label: "Read the feature dependent attribute(CC.S.F00) in AttributeList" - PICS: CC.S.F00 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [] - - - label: "Read the feature dependent attribute(CC.S.F00) in AttributeList" - PICS: CC.S.F00 - command: "readAttribute" - attribute: "AttributeList" - response: - constraints: - type: list - contains: [] - - label: "Read the global attribute: AcceptedCommandList" command: "readAttribute" attribute: "AcceptedCommandList" response: constraints: type: list + contains: [] - label: "Read the global attribute: GeneratedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml index 88db602018f901..8f5debd61f9b73 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml @@ -29,7 +29,7 @@ tests: value: nodeId - label: "TH reads CurrentHue attribute from DUT" - PICS: CC.S.A0000 && CC.S.F00 + PICS: CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -39,7 +39,7 @@ tests: maxValue: 255 - label: "TH reads CurrentSaturation attribute from DUT" - PICS: CC.S.A0001 && CC.S.F00 + PICS: CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -59,7 +59,7 @@ tests: maxValue: 65535 - label: "TH reads CurrentX attribute from DUT" - PICS: CC.S.A0003 && CC.S.F03 + PICS: CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: @@ -69,7 +69,7 @@ tests: maxValue: 65279 - label: "TH reads CurrentY attribute from DUT" - PICS: CC.S.A0004 && CC.S.F04 + PICS: CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: @@ -98,7 +98,7 @@ tests: maxLength: 254 - label: "TH reads ColorTemperatureMireds attribute from DUT" - PICS: CC.S.A0007 && CC.S.F04 + PICS: CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: @@ -128,7 +128,7 @@ tests: maxValue: 4 - label: "TH reads EnhancedCurrentHue attribute from DUT" - PICS: CC.S.A4000 && CC.S.F01 + PICS: CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -138,7 +138,7 @@ tests: maxValue: 65535 - label: "TH reads EnhancedColorMode attribute from DUT" - PICS: CC.S.F02 && CC.S.A4001 + PICS: CC.S.F02 command: "readAttribute" attribute: "EnhancedColorMode" response: @@ -148,7 +148,7 @@ tests: maxValue: 3 - label: "TH reads ColorLoopActive attribute from DUT" - PICS: CC.S.A4002 && CC.S.F02 + PICS: CC.S.A4002 command: "readAttribute" attribute: "ColorLoopActive" response: @@ -158,7 +158,7 @@ tests: maxValue: 255 - label: "TH reads ColorLoopDirection attribute from DUT" - PICS: CC.S.A4003 && CC.S.F02 + PICS: CC.S.A4003 command: "readAttribute" attribute: "ColorLoopDirection" response: @@ -168,7 +168,7 @@ tests: maxValue: 255 - label: "TH reads ColorLoopTime attribute from DUT" - PICS: CC.S.A4004 && CC.S.F02 + PICS: CC.S.A4004 command: "readAttribute" attribute: "ColorLoopTime" response: @@ -178,7 +178,7 @@ tests: maxValue: 65535 - label: "TH reads ColorLoopStartEnhancedHue attribute from DUT" - PICS: CC.S.A4005 && CC.S.F02 + PICS: CC.S.A4005 command: "readAttribute" attribute: "ColorLoopStartEnhancedHue" response: @@ -188,7 +188,7 @@ tests: maxValue: 65535 - label: "TH reads ColorLoopStoredEnhancedHue attribute from DUT" - PICS: CC.S.A4006 && CC.S.F02 + PICS: CC.S.A4006 command: "readAttribute" attribute: "ColorLoopStoredEnhancedHue" response: @@ -215,7 +215,7 @@ tests: maxValue: 31 - label: "TH reads ColorTempPhysicalMinMireds attribute from DUT" - PICS: CC.S.A400b && CC.S.F04 + PICS: CC.S.A400b command: "readAttribute" attribute: "ColorTempPhysicalMinMireds" response: @@ -225,7 +225,7 @@ tests: maxValue: 65279 - label: "TH reads ColorTempPhysicalMaxMireds attribute from DUT" - PICS: CC.S.A400c && CC.S.F04 + PICS: CC.S.A400c command: "readAttribute" attribute: "ColorTempPhysicalMaxMireds" response: @@ -235,7 +235,7 @@ tests: maxValue: 65279 - label: "TH reads CoupleColorTempToLevelMinMireds attribute from DUT" - PICS: CC.S.A400d && CC.S.F04 + PICS: CC.S.A400d command: "readAttribute" attribute: "CoupleColorTempToLevelMinMireds" response: @@ -245,7 +245,7 @@ tests: maxValue: 65279 - label: "TH reads StartUpColorTemperatureMireds attribute from DUT" - PICS: CC.S.A4010 && CC.S.F04 + PICS: CC.S.A4010 command: "readAttribute" attribute: "StartUpColorTemperatureMireds" response: @@ -265,186 +265,378 @@ tests: minValue: 0 maxValue: 6 - - label: "TH reads Primary1X attribute from DUT" - PICS: CC.S.A0011 - command: "readAttribute" - attribute: "Primary1X" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary1Y attribute from DUT" - PICS: CC.S.A0012 - command: "readAttribute" - attribute: "Primary1Y" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary1Intensity attribute from DUT" - PICS: CC.S.A0013 - command: "readAttribute" - attribute: "Primary1Intensity" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 255 - - - label: "TH reads Primary2X attribute from DUT" - PICS: CC.S.A0015 - command: "readAttribute" - attribute: "Primary2X" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary2Y attribute from DUT" - PICS: CC.S.A0016 - command: "readAttribute" - attribute: "Primary2Y" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary2Intensity attribute from DUT" - PICS: CC.S.A0017 - command: "readAttribute" - attribute: "Primary2Intensity" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 255 - - - label: "TH reads Primary3X attribute from DUT" - PICS: CC.S.A0019 - command: "readAttribute" - attribute: "Primary3X" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary3Y attribute from DUT" - PICS: CC.S.A001a - command: "readAttribute" - attribute: "Primary3Y" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary3Intensity attribute from DUT" - PICS: CC.S.A001b - command: "readAttribute" - attribute: "Primary3Intensity" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 255 + - label: + "TH reads Primary1X attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 1 or more" + verification: | + ./chip-tool colorcontrol read primary1x 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0011 DataVersion: 540305990 + [1651483665.109697][3245:3250] CHIP:TOO: primary 1 x: 0 + [1651483665.109797][3245:3250] CHIP:EM: Sending Standalone Ack for MessageCounter:12731123 on exchange 55053i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0011 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary1Y attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 1 or more" + verification: | + ./chip-tool colorcontrol read primary1y 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0012 DataVersion: 540305990 + [1651483698.733322][3253:3259] CHIP:TOO: primary 1 y: 0 + [1651483698.733420][3253:3259] CHIP:EM: Sending Standalone Ack for MessageCounter:7863787 on exchange 13103i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0012 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary1Intensity attribute from DUT and Verify that the DUT + response contains an uint8 if NumberOfPrimaries is 1 or more" + verification: | + ./chip-tool colorcontrol read primary1intensity 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0013 DataVersion: 540305990 + [1651483742.297459][3263:3268] CHIP:TOO: primary 1 intensity: 0 + [1651483742.297558][3263:3268] CHIP:EM: Sending Standalone Ack for MessageCounter:10210809 on exchange 7007i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0013 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary2X attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 2 or more" + verification: | + ./chip-tool colorcontrol read primary2x 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0015 DataVersion: 540305990 + [1651483777.233498][3270:3275] CHIP:TOO: primary 2 x: 0 + [1651483777.233614][3270:3275] CHIP:EM: Sending Standalone Ack for MessageCounter:1684573 on exchange 21377i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0015 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary2Y attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 2 or more" + verification: | + ./chip-tool colorcontrol read primary2y 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0016 DataVersion: 540305990 + [1651483805.650796][3279:3284] CHIP:TOO: primary 2 y: 0 + [1651483805.650942][3279:3284] CHIP:EM: Sending Standalone Ack for MessageCounter:16277541 on exchange 10435i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0016 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary2Intensity attribute from DUT and Verify that the DUT + response contains an uint8 if NumberOfPrimaries is 2 or more" + verification: | + ./chip-tool colorcontrol read primary2intensity 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0017 DataVersion: 540305990 + [1651483834.596380][3285:3290] CHIP:TOO: primary 2 intensity: 0 + [1651483834.596470][3285:3290] CHIP:EM: Sending Standalone Ack for MessageCounter:5986355 on exchange 855i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0017 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary3X attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 3 or more" + verification: | + ./chip-tool colorcontrol read primary3x 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0019 DataVersion: 540305990 + [1651483937.072323][3298:3303] CHIP:TOO: primary 3 x: 0 + [1651483937.072405][3298:3303] CHIP:EM: Sending Standalone Ack for MessageCounter:6092298 on exchange 12519i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0019 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary3Y attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 3 or more" + verification: | + ./chip-tool colorcontrol read primary3y 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_001A DataVersion: 540305990 + [1651483967.386334][3305:3310] CHIP:TOO: primary 3 y: 0 + [1651483967.386427][3305:3310] CHIP:EM: Sending Standalone Ack for MessageCounter:3329418 on exchange 11657i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A001a + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary3Intensity attribute from DUT and Verify that the DUT + response contains an uint8 if NumberOfPrimaries is 3 or more" + verification: | + ./chip-tool colorcontrol read primary3intensity 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_001B DataVersion: 540305990 + [1651484113.812178][3316:3321] CHIP:TOO: primary 3 intensity: 0 + [1651484113.812270][3316:3321] CHIP:EM: Sending Standalone Ack for MessageCounter:41658 on exchange 9618i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A001b + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" #Additional Defined Primaries Information Attribute Set - - label: "TH reads Primary4X attribute from DUT" - PICS: CC.S.A0020 - command: "readAttribute" - attribute: "Primary4X" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary4Y attribute from DUT" - PICS: CC.S.A0021 - command: "readAttribute" - attribute: "Primary4Y" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary4Intensity attribute from DUT" - PICS: CC.S.A0022 - command: "readAttribute" - attribute: "Primary4Intensity" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 255 - - - label: "TH reads Primary5X attribute from DUT" - PICS: CC.S.A0024 - command: "readAttribute" - attribute: "Primary5X" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary5Y attribute from DUT" - PICS: CC.S.A0025 - command: "readAttribute" - attribute: "Primary5Y" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary5Intensity attribute from DUT" - PICS: CC.S.A0026 - command: "readAttribute" - attribute: "Primary5Intensity" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 255 - - - label: "TH reads Primary6X attribute from DUT" - PICS: CC.S.A0028 - command: "readAttribute" - attribute: "Primary6X" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary6Y attribute from DUT" - PICS: CC.S.A0029 - command: "readAttribute" - attribute: "Primary6Y" - response: - constraints: - type: uint16 - minValue: 0 - maxValue: 65279 - - - label: "TH reads Primary6Intensity attribute from DUT" - PICS: CC.S.A002a - command: "readAttribute" - attribute: "Primary6Intensity" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 255 + - label: + "TH reads Primary4X attribute from DUT Verify that the DUT response + contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 4 or + more" + verification: | + ./chip-tool colorcontrol read primary4x 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0020 DataVersion: 540305990 + [1651484143.778301][3324:3329] CHIP:TOO: primary 4 x: 0 + [1651484143.778392][3324:3329] CHIP:EM: Sending Standalone Ack for MessageCounter:2094184 on exchange 50270i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0020 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary4Y attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 4 or more" + verification: | + ./chip-tool colorcontrol read primary4y 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0021 DataVersion: 540305990 + [1651484171.921901][3334:3339] CHIP:TOO: primary 4 y: 0 + [1651484171.921984][3334:3339] CHIP:EM: Sending Standalone Ack for MessageCounter:3701827 on exchange 16726i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0021 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary4Intensity attribute from DUT and Verify that the DUT + response contains an uint8 if NumberOfPrimaries is 4 or more" + verification: | + ./chip-tool colorcontrol read primary4intensity 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0022 DataVersion: 540305990 + [1651484198.443415][3341:3346] CHIP:TOO: primary 4 intensity: 0 + [1651484198.443528][3341:3346] CHIP:EM: Sending Standalone Ack for MessageCounter:1740063 on exchange 36245i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0022 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary5X attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 5 or more" + verification: | + ./chip-tool colorcontrol read primary5x 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0024 DataVersion: 540305990 + [1651484241.467661][3350:3355] CHIP:TOO: primary 5 x: 0 + [1651484241.467788][3350:3355] CHIP:EM: Sending Standalone Ack for MessageCounter:5350139 on exchange 63040i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0024 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary5Y attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 5 or more" + verification: | + ./chip-tool colorcontrol read primary5y 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0025 DataVersion: 540305990 + [1651484286.709863][3358:3363] CHIP:TOO: primary 5 y: 0 + [1651484286.709964][3358:3363] CHIP:EM: Sending Standalone Ack for MessageCounter:7199124 on exchange 47604i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0025 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary5Intensity attribute from DUT and Verify that the DUT + response contains an uint8 if NumberOfPrimaries is 5 or more" + verification: | + ./chip-tool colorcontrol read primary5intensity 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0026 DataVersion: 540305990 + [1651484304.715731][3365:3370] CHIP:TOO: primary 5 intensity: 0 + [1651484304.715829][3365:3370] CHIP:EM: Sending Standalone Ack for MessageCounter:8654922 on exchange 29272i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0026 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary6X attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 6 or more" + verification: | + ./chip-tool colorcontrol read primary6x 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0028 DataVersion: 540305990 + [1651484349.601181][3372:3377] CHIP:TOO: primary 6 x: 0 + [1651484349.601269][3372:3377] CHIP:EM: Sending Standalone Ack for MessageCounter:13704291 on exchange 30507i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0028 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary6Y attribute from DUT and Verify that the DUT + response contains an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is + 6 or more" + verification: | + ./chip-tool colorcontrol read primary6y 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0028 DataVersion: 540305990 + [1651484349.601181][3372:3377] CHIP:TOO: primary 6 x: 0 + [1651484349.601269][3372:3377] CHIP:EM: Sending Standalone Ack for MessageCounter:13704291 on exchange 30507i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A0029 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads Primary6Intensity attribute from DUT and Verify that the DUT + response contains an uint8 if NumberOfPrimaries is 6 or more" + verification: | + ./chip-tool colorcontrol read primary6intensity 1 1 + + Verify in TH Logs: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_002A DataVersion: 540305990 + [1651484392.490974][3378:3383] CHIP:TOO: primary 6 intensity: 0 + [1651484392.491074][3378:3383] CHIP:EM: Sending Standalone Ack for MessageCounter:2427165 on exchange 17769i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && CC.S.A002a + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" #Defined Color Points Settings Attribute Set - label: "TH reads WhitePointX attribute from DUT" diff --git a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml index 6f5d019ae66bf1..802e6486d5a0e9 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml @@ -32,9 +32,33 @@ tests: PICS: CC.C.A0000 verification: | ./chip-tool colorcontrol read current-hue 1 1 - [1649661322.115302][7976:7981] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0000 DataVersion: 4087274515 - [1649661322.115376][7976:7981] CHIP:TOO: current hue: 0 - [1649661322.115473][7976:7981] CHIP:EM: Sending Standalone Ack for MessageCounter:14511861 on exchange 26516i + + Verify in DUT as client side log: + + [1657908705.581609][2861:2861] CHIP:IM: Received Read request + [1657908705.581752][2861:2861] CHIP:DMG: ReadRequestMessage = + [1657908705.581807][2861:2861] CHIP:DMG: { + [1657908705.581874][2861:2861] CHIP:DMG: AttributePathIBs = + [1657908705.581941][2861:2861] CHIP:DMG: [ + [1657908705.581993][2861:2861] CHIP:DMG: AttributePathIB = + [1657908705.582069][2861:2861] CHIP:DMG: { + [1657908705.582128][2861:2861] CHIP:DMG: Endpoint = 0x1, + [1657908705.582193][2861:2861] CHIP:DMG: Cluster = 0x300, + [1657908705.582279][2861:2861] CHIP:DMG: Attribute = 0x0000_0000, + [1657908705.582341][2861:2861] CHIP:DMG: } + [1657908705.582399][2861:2861] CHIP:DMG: + [1657908705.582456][2861:2861] CHIP:DMG: ], + [1657908705.582513][2861:2861] CHIP:DMG: + [1657908705.582569][2861:2861] CHIP:DMG: isFabricFiltered = true, + [1657908705.582622][2861:2861] CHIP:DMG: InteractionModelRevision = 1 + [1657908705.582671][2861:2861] CHIP:DMG: }, + [1657908705.582814][2861:2861] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657908705.582973][2861:2861] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657908705.583034][2861:2861] CHIP:DMG: Cluster 300, Attribute 0 is dirty + [1657908705.583079][2861:2861] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1657908705.583133][2861:2861] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657908705.583195][2861:2861] CHIP:DMG: AccessControl: allowed + [1657908705.583290][2861:2861] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -43,9 +67,29 @@ tests: PICS: CC.C.A0001 verification: | ./chip-tool colorcontrol read current-saturation 1 1 - [1649661322.558054][7982:7987] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0001 DataVersion: 4087274515 - [1649661322.558128][7982:7987] CHIP:TOO: current saturation: 0 - [1649661322.558225][7982:7987] CHIP:EM: Sending Standalone Ack for MessageCounter:13666860 on exchange 22550i + + Verify in DUT as client side log: + [1657908593.710273][2861:2861] CHIP:IM: Received Read request + [1657908593.710359][2861:2861] CHIP:DMG: ReadRequestMessage = + [1657908593.710389][2861:2861] CHIP:DMG: { + [1657908593.710438][2861:2861] CHIP:DMG: AttributePathIBs = + [1657908593.710469][2861:2861] CHIP:DMG: [ + [1657908593.710496][2861:2861] CHIP:DMG: AttributePathIB = + [1657908593.710540][2861:2861] CHIP:DMG: { + [1657908593.710572][2861:2861] CHIP:DMG: Endpoint = 0x1, + [1657908593.710607][2861:2861] CHIP:DMG: Cluster = 0x300, + [1657908593.710653][2861:2861] CHIP:DMG: Attribute = 0x0000_0001, + [1657908593.710686][2861:2861] CHIP:DMG: } + [1657908593.710718][2861:2861] CHIP:DMG: + [1657908593.710757][2861:2861] CHIP:DMG: ], + [1657908593.710790][2861:2861] CHIP:DMG: + [1657908593.710820][2861:2861] CHIP:DMG: isFabricFiltered = true, + [1657908593.710861][2861:2861] CHIP:DMG: InteractionModelRevision = 1 + [1657908593.710888][2861:2861] CHIP:DMG: }, + [1657908593.710983][2861:2861] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657908593.711095][2861:2861] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657908593.711129][2861:2861] CHIP:DMG: Cluster 300, Attribute 1 is dirty + [1657908593.711154][2861:2861] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 disabled: true - label: @@ -54,9 +98,31 @@ tests: verification: | ./chip-tool colorcontrol read remaining-time 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0002 DataVersion: 540305990 - [1651485342.420726][3496:3501] CHIP:TOO: remaining time: 0 - [1651485342.420816][3496:3501] CHIP:EM: Sending Standalone Ack for MessageCounter:6536290 on exchange 31520i + Verify in DUT as client side log: + [1657908803.102070][2933:2933] CHIP:IM: Received Read request + [1657908803.102154][2933:2933] CHIP:DMG: ReadRequestMessage = + [1657908803.102182][2933:2933] CHIP:DMG: { + [1657908803.102204][2933:2933] CHIP:DMG: AttributePathIBs = + [1657908803.102230][2933:2933] CHIP:DMG: [ + [1657908803.102254][2933:2933] CHIP:DMG: AttributePathIB = + [1657908803.102282][2933:2933] CHIP:DMG: { + [1657908803.102310][2933:2933] CHIP:DMG: Endpoint = 0x1, + [1657908803.102344][2933:2933] CHIP:DMG: Cluster = 0x300, + [1657908803.102376][2933:2933] CHIP:DMG: Attribute = 0x0000_0002, + [1657908803.102405][2933:2933] CHIP:DMG: } + [1657908803.102433][2933:2933] CHIP:DMG: + [1657908803.102459][2933:2933] CHIP:DMG: ], + [1657908803.102493][2933:2933] CHIP:DMG: + [1657908803.102521][2933:2933] CHIP:DMG: isFabricFiltered = true, + [1657908803.102546][2933:2933] CHIP:DMG: InteractionModelRevision = 1 + [1657908803.102568][2933:2933] CHIP:DMG: }, + [1657908803.102647][2933:2933] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657908803.102755][2933:2933] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657908803.102790][2933:2933] CHIP:DMG: Cluster 300, Attribute 2 is dirty + [1657908803.102812][2933:2933] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0002 (expanded=0) + [1657908803.102841][2933:2933] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657908803.102875][2933:2933] CHIP:DMG: AccessControl: allowed + [1657908803.102936][2933:2933] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -65,9 +131,32 @@ tests: PICS: CC.C.A0003 verification: | ./chip-tool colorcontrol read current-x 1 1 - [1649661322.994696][7988:7993] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0003 DataVersion: 4087274515 - [1649661322.994764][7988:7993] CHIP:TOO: current x: 24939 - [1649661322.994850][7988:7993] CHIP:EM: Sending Standalone Ack for MessageCounter:15274073 on exchange 48270i + + Verify in DUT as client side log: + [1657908856.780574][2933:2933] CHIP:IM: Received Read request + [1657908856.780702][2933:2933] CHIP:DMG: ReadRequestMessage = + [1657908856.780750][2933:2933] CHIP:DMG: { + [1657908856.780790][2933:2933] CHIP:DMG: AttributePathIBs = + [1657908856.780837][2933:2933] CHIP:DMG: [ + [1657908856.780881][2933:2933] CHIP:DMG: AttributePathIB = + [1657908856.780930][2933:2933] CHIP:DMG: { + [1657908856.780981][2933:2933] CHIP:DMG: Endpoint = 0x1, + [1657908856.781112][2933:2933] CHIP:DMG: Cluster = 0x300, + [1657908856.781177][2933:2933] CHIP:DMG: Attribute = 0x0000_0003, + [1657908856.781230][2933:2933] CHIP:DMG: } + [1657908856.781283][2933:2933] CHIP:DMG: + [1657908856.781330][2933:2933] CHIP:DMG: ], + [1657908856.781441][2933:2933] CHIP:DMG: + [1657908856.781492][2933:2933] CHIP:DMG: isFabricFiltered = true, + [1657908856.781539][2933:2933] CHIP:DMG: InteractionModelRevision = 1 + [1657908856.781581][2933:2933] CHIP:DMG: }, + [1657908856.781710][2933:2933] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657908856.781911][2933:2933] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657908856.781965][2933:2933] CHIP:DMG: Cluster 300, Attribute 3 is dirty + [1657908856.782004][2933:2933] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) + [1657908856.782053][2933:2933] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657908856.782108][2933:2933] CHIP:DMG: AccessControl: allowed + [1657908856.782247][2933:2933] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -76,9 +165,32 @@ tests: PICS: CC.C.A0004 verification: | ./chip-tool colorcontrol read current-y 1 1 - [1649661323.433317][7994:7999] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0004 DataVersion: 4087274515 - [1649661323.433391][7994:7999] CHIP:TOO: current y: 24701 - [1649661323.433490][7994:7999] CHIP:EM: Sending Standalone Ack for MessageCounter:12384629 on exchange 18947i + + Verify in DUT as client side log: + [1657909305.413625][2933:2933] CHIP:IM: Received Read request + [1657909305.413743][2933:2933] CHIP:DMG: ReadRequestMessage = + [1657909305.413786][2933:2933] CHIP:DMG: { + [1657909305.413822][2933:2933] CHIP:DMG: AttributePathIBs = + [1657909305.413864][2933:2933] CHIP:DMG: [ + [1657909305.413903][2933:2933] CHIP:DMG: AttributePathIB = + [1657909305.413946][2933:2933] CHIP:DMG: { + [1657909305.413991][2933:2933] CHIP:DMG: Endpoint = 0x1, + [1657909305.414039][2933:2933] CHIP:DMG: Cluster = 0x300, + [1657909305.414089][2933:2933] CHIP:DMG: Attribute = 0x0000_0004, + [1657909305.414136][2933:2933] CHIP:DMG: } + [1657909305.414181][2933:2933] CHIP:DMG: + [1657909305.414223][2933:2933] CHIP:DMG: ], + [1657909305.414268][2933:2933] CHIP:DMG: + [1657909305.414311][2933:2933] CHIP:DMG: isFabricFiltered = true, + [1657909305.414352][2933:2933] CHIP:DMG: InteractionModelRevision = 1 + [1657909305.414387][2933:2933] CHIP:DMG: }, + [1657909305.414502][2933:2933] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909305.414634][2933:2933] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909305.414682][2933:2933] CHIP:DMG: Cluster 300, Attribute 4 is dirty + [1657909305.414717][2933:2933] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0004 (expanded=0) + [1657909305.414761][2933:2933] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909305.414812][2933:2933] CHIP:DMG: AccessControl: allowed + [1657909305.414892][2933:2933] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -88,9 +200,31 @@ tests: verification: | ./chip-tool colorcontrol read drift-compensation 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0005 DataVersion: 540305990 - [1651485386.691700][3506:3511] CHIP:TOO: drift compensation: 0 - [1651485386.691805][3506:3511] CHIP:EM: Sending Standalone Ack for MessageCounter:12144117 on exchange 57338i + Verify in DUT as client side log: + [1657909433.948649][2933:2933] CHIP:IM: Received Read request + [1657909433.948766][2933:2933] CHIP:DMG: ReadRequestMessage = + [1657909433.948809][2933:2933] CHIP:DMG: { + [1657909433.948844][2933:2933] CHIP:DMG: AttributePathIBs = + [1657909433.948885][2933:2933] CHIP:DMG: [ + [1657909433.948923][2933:2933] CHIP:DMG: AttributePathIB = + [1657909433.948966][2933:2933] CHIP:DMG: { + [1657909433.949010][2933:2933] CHIP:DMG: Endpoint = 0x1, + [1657909433.949063][2933:2933] CHIP:DMG: Cluster = 0x300, + [1657909433.949113][2933:2933] CHIP:DMG: Attribute = 0x0000_0005, + [1657909433.949158][2933:2933] CHIP:DMG: } + [1657909433.949207][2933:2933] CHIP:DMG: + [1657909433.949248][2933:2933] CHIP:DMG: ], + [1657909433.949292][2933:2933] CHIP:DMG: + [1657909433.949334][2933:2933] CHIP:DMG: isFabricFiltered = true, + [1657909433.949375][2933:2933] CHIP:DMG: InteractionModelRevision = 1 + [1657909433.949413][2933:2933] CHIP:DMG: }, + [1657909433.949528][2933:2933] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909433.949656][2933:2933] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909433.949702][2933:2933] CHIP:DMG: Cluster 300, Attribute 5 is dirty + [1657909433.949738][2933:2933] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0005 (expanded=0) + [1657909433.949786][2933:2933] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909433.949836][2933:2933] CHIP:DMG: AccessControl: allowed + [1657909433.949917][2933:2933] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -100,9 +234,31 @@ tests: verification: | ./chip-tool colorcontrol read compensation-text 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0006 DataVersion: 540305990 - [1651485417.552058][3512:3517] CHIP:TOO: compensation text: - [1651485417.552171][3512:3517] CHIP:EM: Sending Standalone Ack for MessageCounter:354764 on exchange 31359i + Verify in DUT as client side log: + [1657909470.827379][2933:2933] CHIP:IM: Received Read request + [1657909470.827505][2933:2933] CHIP:DMG: ReadRequestMessage = + [1657909470.827553][2933:2933] CHIP:DMG: { + [1657909470.827593][2933:2933] CHIP:DMG: AttributePathIBs = + [1657909470.827639][2933:2933] CHIP:DMG: [ + [1657909470.827683][2933:2933] CHIP:DMG: AttributePathIB = + [1657909470.827732][2933:2933] CHIP:DMG: { + [1657909470.827782][2933:2933] CHIP:DMG: Endpoint = 0x1, + [1657909470.827834][2933:2933] CHIP:DMG: Cluster = 0x300, + [1657909470.827904][2933:2933] CHIP:DMG: Attribute = 0x0000_0006, + [1657909470.827956][2933:2933] CHIP:DMG: } + [1657909470.828008][2933:2933] CHIP:DMG: + [1657909470.828088][2933:2933] CHIP:DMG: ], + [1657909470.828145][2933:2933] CHIP:DMG: + [1657909470.828192][2933:2933] CHIP:DMG: isFabricFiltered = true, + [1657909470.828238][2933:2933] CHIP:DMG: InteractionModelRevision = 1 + [1657909470.828280][2933:2933] CHIP:DMG: }, + [1657909470.828411][2933:2933] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909470.828560][2933:2933] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909470.828614][2933:2933] CHIP:DMG: Cluster 300, Attribute 6 is dirty + [1657909470.828654][2933:2933] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0006 (expanded=0) + [1657909470.828703][2933:2933] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909470.828757][2933:2933] CHIP:DMG: AccessControl: allowed + [1657909470.828845][2933:2933] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -111,27 +267,97 @@ tests: PICS: CC.C.A0007 verification: | ./chip-tool colorcontrol read color-temperature 1 1 - [1649661323.873246][8000:8005] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0007 DataVersion: 4087274515 - [1649661323.873316][8000:8005] CHIP:TOO: color temperature: 0 - [1649661323.873405][8000:8005] CHIP:EM: Sending Standalone Ack for MessageCounter:16436117 on exchange 33080i + + Verify in DUT as client side log: + + [1657909522.420348][2977:2977] CHIP:IM: Received Read request + [1657909522.420471][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909522.420518][2977:2977] CHIP:DMG: { + [1657909522.420579][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909522.420627][2977:2977] CHIP:DMG: [ + [1657909522.420670][2977:2977] CHIP:DMG: AttributePathIB = + [1657909522.420726][2977:2977] CHIP:DMG: { + [1657909522.420806][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909522.420872][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909522.420931][2977:2977] CHIP:DMG: Attribute = 0x0000_0007, + [1657909522.420984][2977:2977] CHIP:DMG: } + [1657909522.421051][2977:2977] CHIP:DMG: + [1657909522.421104][2977:2977] CHIP:DMG: ], + [1657909522.421156][2977:2977] CHIP:DMG: + [1657909522.421204][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909522.421266][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909522.421310][2977:2977] CHIP:DMG: }, + [1657909522.421455][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909522.421605][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909522.421674][2977:2977] CHIP:DMG: Cluster 300, Attribute 7 is dirty + [1657909522.421714][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0007 (expanded=0) + [1657909522.421762][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909522.421816][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909522.421923][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0008) ColorMode attribute" PICS: CC.C.A0008 verification: | ./chip-tool colorcontrol read color-mode 1 1 - [1649661324.315688][8006:8011] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0008 DataVersion: 4087274515 - [1649661324.315767][8006:8011] CHIP:TOO: color mode: 2 - [1649661324.315877][8006:8011] CHIP:EM: Sending Standalone Ack for MessageCounter:15003063 on exchange 8273i + + Verify in DUT as client side log: + [1657909555.028998][2977:2977] CHIP:IM: Received Read request + [1657909555.029124][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909555.029171][2977:2977] CHIP:DMG: { + [1657909555.029227][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909555.029278][2977:2977] CHIP:DMG: [ + [1657909555.029322][2977:2977] CHIP:DMG: AttributePathIB = + [1657909555.029392][2977:2977] CHIP:DMG: { + [1657909555.029445][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909555.029502][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909555.029575][2977:2977] CHIP:DMG: Attribute = 0x0000_0008, + [1657909555.029631][2977:2977] CHIP:DMG: } + [1657909555.029682][2977:2977] CHIP:DMG: + [1657909555.029744][2977:2977] CHIP:DMG: ], + [1657909555.029797][2977:2977] CHIP:DMG: + [1657909555.029844][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909555.029890][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909555.029949][2977:2977] CHIP:DMG: }, + [1657909555.030093][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909555.030253][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909555.030306][2977:2977] CHIP:DMG: Cluster 300, Attribute 8 is dirty + [1657909555.030346][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0008 (expanded=0) + [1657909555.030394][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909555.030465][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909555.030553][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x000f) Options attribute" PICS: CC.C.A000f verification: | ./chip-tool colorcontrol read options 1 1 - [1649661324.748577][8012:8017] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 4087274515 - [1649661324.748641][8012:8017] CHIP:TOO: Options: 0 - [1649661324.748719][8012:8017] CHIP:EM: Sending Standalone Ack for MessageCounter:4617498 on exchange 9590i + + Verify in DUT as client side log: + [1657909576.774655][2977:2977] CHIP:IM: Received Read request + [1657909576.774796][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909576.774850][2977:2977] CHIP:DMG: { + [1657909576.774915][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909576.774968][2977:2977] CHIP:DMG: [ + [1657909576.775017][2977:2977] CHIP:DMG: AttributePathIB = + [1657909576.775094][2977:2977] CHIP:DMG: { + [1657909576.775151][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909576.775237][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909576.775303][2977:2977] CHIP:DMG: Attribute = 0x0000_000F, + [1657909576.775362][2977:2977] CHIP:DMG: } + [1657909576.775443][2977:2977] CHIP:DMG: + [1657909576.775502][2977:2977] CHIP:DMG: ], + [1657909576.775560][2977:2977] CHIP:DMG: + [1657909576.775615][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909576.775687][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909576.775735][2977:2977] CHIP:DMG: }, + [1657909576.775896][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909576.776099][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909576.776178][2977:2977] CHIP:DMG: Cluster 300, Attribute f is dirty + [1657909576.776223][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_000F (expanded=0) + [1657909576.776273][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909576.776352][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909576.776452][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -140,9 +366,32 @@ tests: PICS: CC.C.A4000 verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - [1649661325.207404][8018:8023] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 4087274515 - [1649661325.207486][8018:8023] CHIP:TOO: enhanced current hue: 0 - [1649661325.207590][8018:8023] CHIP:EM: Sending Standalone Ack for MessageCounter:2630939 on exchange 50255i + + Verify in DUT as client side log: + [1657909627.086489][2977:2977] CHIP:IM: Received Read request + [1657909627.086602][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909627.086641][2977:2977] CHIP:DMG: { + [1657909627.086671][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909627.086706][2977:2977] CHIP:DMG: [ + [1657909627.086753][2977:2977] CHIP:DMG: AttributePathIB = + [1657909627.086800][2977:2977] CHIP:DMG: { + [1657909627.086842][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909627.086898][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909627.086948][2977:2977] CHIP:DMG: Attribute = 0x0000_4000, + [1657909627.086994][2977:2977] CHIP:DMG: } + [1657909627.087049][2977:2977] CHIP:DMG: + [1657909627.087085][2977:2977] CHIP:DMG: ], + [1657909627.087118][2977:2977] CHIP:DMG: + [1657909627.087181][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909627.087217][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909627.087248][2977:2977] CHIP:DMG: }, + [1657909627.087363][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909627.087508][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909627.087569][2977:2977] CHIP:DMG: Cluster 300, Attribute 4000 is dirty + [1657909627.087601][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4000 (expanded=0) + [1657909627.087639][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909627.087694][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909627.087768][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -151,9 +400,32 @@ tests: PICS: CC.C.A4001 verification: | ./chip-tool colorcontrol read enhanced-color-mode 1 1 - [1649661325.650176][8024:8029] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4001 DataVersion: 4087274515 - [1649661325.650248][8024:8029] CHIP:TOO: enhanced color mode: 2 - [1649661325.650343][8024:8029] CHIP:EM: Sending Standalone Ack for MessageCounter:11538460 on exchange 62879i + + Verify in DUT as client side log: + [1657909652.217887][2977:2977] CHIP:IM: Received Read request + [1657909652.218015][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909652.218064][2977:2977] CHIP:DMG: { + [1657909652.218104][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909652.218173][2977:2977] CHIP:DMG: [ + [1657909652.218219][2977:2977] CHIP:DMG: AttributePathIB = + [1657909652.218269][2977:2977] CHIP:DMG: { + [1657909652.218320][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909652.218399][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909652.218456][2977:2977] CHIP:DMG: Attribute = 0x0000_4001, + [1657909652.218509][2977:2977] CHIP:DMG: } + [1657909652.218578][2977:2977] CHIP:DMG: + [1657909652.218629][2977:2977] CHIP:DMG: ], + [1657909652.218680][2977:2977] CHIP:DMG: + [1657909652.218744][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909652.218791][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909652.218832][2977:2977] CHIP:DMG: }, + [1657909652.218978][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909652.219145][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909652.219198][2977:2977] CHIP:DMG: Cluster 300, Attribute 4001 is dirty + [1657909652.219254][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4001 (expanded=0) + [1657909652.219305][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909652.219360][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909652.219467][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -162,9 +434,32 @@ tests: PICS: CC.C.A4002 verification: | ./chip-tool colorcontrol read color-loop-active 1 1 - [1649661326.093373][8030:8035] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4002 DataVersion: 4087274515 - [1649661326.093437][8030:8035] CHIP:TOO: color loop active: 0 - [1649661326.093510][8030:8035] CHIP:EM: Sending Standalone Ack for MessageCounter:16553834 on exchange 42935i + + Verify in DUT as client side log: + [1657909711.352753][2977:2977] CHIP:IM: Received Read request + [1657909711.352915][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909711.352973][2977:2977] CHIP:DMG: { + [1657909711.353019][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909711.353095][2977:2977] CHIP:DMG: [ + [1657909711.353146][2977:2977] CHIP:DMG: AttributePathIB = + [1657909711.353209][2977:2977] CHIP:DMG: { + [1657909711.353285][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909711.353354][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909711.353419][2977:2977] CHIP:DMG: Attribute = 0x0000_4002, + [1657909711.353497][2977:2977] CHIP:DMG: } + [1657909711.353558][2977:2977] CHIP:DMG: + [1657909711.353616][2977:2977] CHIP:DMG: ], + [1657909711.353692][2977:2977] CHIP:DMG: + [1657909711.353749][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909711.353801][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909711.353849][2977:2977] CHIP:DMG: }, + [1657909711.354014][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909711.354197][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909711.354275][2977:2977] CHIP:DMG: Cluster 300, Attribute 4002 is dirty + [1657909711.354321][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4002 (expanded=0) + [1657909711.354371][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909711.354448][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909711.354550][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -173,9 +468,32 @@ tests: PICS: CC.C.A4003 verification: | ./chip-tool colorcontrol read color-loop-direction 1 1 - [1649661326.532413][8036:8041] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4003 DataVersion: 4087274515 - [1649661326.532493][8036:8041] CHIP:TOO: color loop direction: 0 - [1649661326.532584][8036:8041] CHIP:EM: Sending Standalone Ack for MessageCounter:11662576 on exchange 8707i + + Verify in DUT as client side log: + [1657909741.232136][2977:2977] CHIP:IM: Received Read request + [1657909741.232261][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909741.232310][2977:2977] CHIP:DMG: { + [1657909741.232367][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909741.232416][2977:2977] CHIP:DMG: [ + [1657909741.232460][2977:2977] CHIP:DMG: AttributePathIB = + [1657909741.232509][2977:2977] CHIP:DMG: { + [1657909741.232578][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909741.232632][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909741.232705][2977:2977] CHIP:DMG: Attribute = 0x0000_4003, + [1657909741.232775][2977:2977] CHIP:DMG: } + [1657909741.232827][2977:2977] CHIP:DMG: + [1657909741.232878][2977:2977] CHIP:DMG: ], + [1657909741.232947][2977:2977] CHIP:DMG: + [1657909741.232995][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909741.233041][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909741.233105][2977:2977] CHIP:DMG: }, + [1657909741.233240][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909741.233409][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909741.233463][2977:2977] CHIP:DMG: Cluster 300, Attribute 4003 is dirty + [1657909741.233502][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4003 (expanded=0) + [1657909741.233552][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909741.233623][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909741.233711][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -184,9 +502,32 @@ tests: PICS: CC.C.A4004 verification: | ./chip-tool colorcontrol read color-loop-time 1 1 - [1649661326.969567][8042:8047] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4004 DataVersion: 4087274515 - [1649661326.969644][8042:8047] CHIP:TOO: color loop time: 25 - [1649661326.969727][8042:8047] CHIP:EM: Sending Standalone Ack for MessageCounter:4589470 on exchange 61174i + + Verify in DUT as client side log: + [1657909771.649273][2977:2977] CHIP:IM: Received Read request + [1657909771.649413][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909771.649468][2977:2977] CHIP:DMG: { + [1657909771.649542][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909771.649600][2977:2977] CHIP:DMG: [ + [1657909771.649650][2977:2977] CHIP:DMG: AttributePathIB = + [1657909771.649725][2977:2977] CHIP:DMG: { + [1657909771.649784][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909771.649853][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909771.649936][2977:2977] CHIP:DMG: Attribute = 0x0000_4004, + [1657909771.649997][2977:2977] CHIP:DMG: } + [1657909771.650055][2977:2977] CHIP:DMG: + [1657909771.650128][2977:2977] CHIP:DMG: ], + [1657909771.650188][2977:2977] CHIP:DMG: + [1657909771.650243][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909771.650316][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909771.650365][2977:2977] CHIP:DMG: }, + [1657909771.650530][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909771.650710][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909771.650770][2977:2977] CHIP:DMG: Cluster 300, Attribute 4004 is dirty + [1657909771.650814][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4004 (expanded=0) + [1657909771.650888][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909771.650954][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909771.651052][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -195,9 +536,32 @@ tests: PICS: CC.C.A4005 verification: | ./chip-tool colorcontrol read color-loop-start-enhanced-hue 1 1 - [1649661327.720397][8049:8054] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4005 DataVersion: 4087274515 - [1649661327.720479][8049:8054] CHIP:TOO: color loop start enhanced hue: 8960 - [1649661327.720572][8049:8054] CHIP:EM: Sending Standalone Ack for MessageCounter:14858381 on exchange 47470i + + Verify in DUT as client side log: + [1657909997.529812][2977:2977] CHIP:IM: Received Read request + [1657909997.530002][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657909997.530053][2977:2977] CHIP:DMG: { + [1657909997.530093][2977:2977] CHIP:DMG: AttributePathIBs = + [1657909997.530145][2977:2977] CHIP:DMG: [ + [1657909997.530189][2977:2977] CHIP:DMG: AttributePathIB = + [1657909997.530243][2977:2977] CHIP:DMG: { + [1657909997.530298][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657909997.530358][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657909997.530416][2977:2977] CHIP:DMG: Attribute = 0x0000_4005, + [1657909997.530470][2977:2977] CHIP:DMG: } + [1657909997.530521][2977:2977] CHIP:DMG: + [1657909997.530571][2977:2977] CHIP:DMG: ], + [1657909997.530677][2977:2977] CHIP:DMG: + [1657909997.530708][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657909997.530737][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657909997.530821][2977:2977] CHIP:DMG: }, + [1657909997.530943][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657909997.531048][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657909997.531081][2977:2977] CHIP:DMG: Cluster 300, Attribute 4005 is dirty + [1657909997.531105][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4005 (expanded=0) + [1657909997.531139][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657909997.531175][2977:2977] CHIP:DMG: AccessControl: allowed + [1657909997.531238][2977:2977] CHIP:DMG: Sending report (payload has 39 bytes)... disabled: true - label: @@ -206,18 +570,64 @@ tests: PICS: CC.C.A4006 verification: | ./chip-tool colorcontrol read color-loop-stored-enhanced-hue 1 1 - [1649661328.161450][8055:8060] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4006 DataVersion: 4087274515 - [1649661328.161530][8055:8060] CHIP:TOO: color loop stored enhanced hue: 0 - [1649661328.161618][8055:8060] CHIP:EM: Sending Standalone Ack for MessageCounter:10650326 on exchange 16955i + + Verify in DUT as client side log: + [1657910020.977065][2977:2977] CHIP:IM: Received Read request + [1657910020.977155][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910020.977187][2977:2977] CHIP:DMG: { + [1657910020.977213][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910020.977249][2977:2977] CHIP:DMG: [ + [1657910020.977277][2977:2977] CHIP:DMG: AttributePathIB = + [1657910020.977313][2977:2977] CHIP:DMG: { + [1657910020.977349][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910020.977390][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910020.977432][2977:2977] CHIP:DMG: Attribute = 0x0000_4006, + [1657910020.977470][2977:2977] CHIP:DMG: } + [1657910020.977499][2977:2977] CHIP:DMG: + [1657910020.977524][2977:2977] CHIP:DMG: ], + [1657910020.977556][2977:2977] CHIP:DMG: + [1657910020.977587][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910020.977619][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910020.977646][2977:2977] CHIP:DMG: }, + [1657910020.977738][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910020.977852][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910020.977889][2977:2977] CHIP:DMG: Cluster 300, Attribute 4006 is dirty + [1657910020.977913][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4006 (expanded=0) + [1657910020.977947][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910020.977985][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910020.978052][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT reads from the TH the (0x400a) ColorCapabilities attribute" PICS: CC.C.A400a verification: | ./chip-tool colorcontrol read color-capabilities 1 1 - [1649661328.603843][8061:8066] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_400A DataVersion: 4087274515 - [1649661328.603925][8061:8066] CHIP:TOO: color capabilities: 0 - [1649661328.604011][8061:8066] CHIP:EM: Sending Standalone Ack for MessageCounter:9437585 on exchange 42028i + + Verify in DUT as client side log: + [1657910072.897195][2977:2977] CHIP:IM: Received Read request + [1657910072.897323][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910072.897371][2977:2977] CHIP:DMG: { + [1657910072.897411][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910072.897459][2977:2977] CHIP:DMG: [ + [1657910072.897502][2977:2977] CHIP:DMG: AttributePathIB = + [1657910072.897552][2977:2977] CHIP:DMG: { + [1657910072.897604][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910072.897662][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910072.897718][2977:2977] CHIP:DMG: Attribute = 0x0000_400A, + [1657910072.897766][2977:2977] CHIP:DMG: } + [1657910072.897818][2977:2977] CHIP:DMG: + [1657910072.897865][2977:2977] CHIP:DMG: ], + [1657910072.897916][2977:2977] CHIP:DMG: + [1657910072.897963][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910072.898010][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910072.898053][2977:2977] CHIP:DMG: }, + [1657910072.898187][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910072.898330][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910072.898381][2977:2977] CHIP:DMG: Cluster 300, Attribute 400a is dirty + [1657910072.898420][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_400A (expanded=0) + [1657910072.898470][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910072.898525][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910072.898615][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -226,10 +636,32 @@ tests: PICS: CC.C.A400b verification: | ./chip-tool colorcontrol read color-temp-physical-min-mireds 1 1 - [1649661329.039107][8067:8072] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_400B DataVersion: 4087274515 - [1649661329.039188][8067:8072] CHIP:TOO: ColorTempPhysicalMinMireds: 0 - [1649661329.039388][8067:8072] CHIP:EM: Sending Standalone Ack for MessageCounter:511360 on exchange 35476i + Verify in DUT as client side log: + [1657910109.902989][2977:2977] CHIP:IM: Received Read request + [1657910109.903095][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910109.903134][2977:2977] CHIP:DMG: { + [1657910109.903161][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910109.903199][2977:2977] CHIP:DMG: [ + [1657910109.903234][2977:2977] CHIP:DMG: AttributePathIB = + [1657910109.903274][2977:2977] CHIP:DMG: { + [1657910109.903315][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910109.903367][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910109.903413][2977:2977] CHIP:DMG: Attribute = 0x0000_400B, + [1657910109.903455][2977:2977] CHIP:DMG: } + [1657910109.903496][2977:2977] CHIP:DMG: + [1657910109.903533][2977:2977] CHIP:DMG: ], + [1657910109.903574][2977:2977] CHIP:DMG: + [1657910109.903612][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910109.903649][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910109.903683][2977:2977] CHIP:DMG: }, + [1657910109.903792][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910109.903912][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910109.903956][2977:2977] CHIP:DMG: Cluster 300, Attribute 400b is dirty + [1657910109.903989][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_400B (expanded=0) + [1657910109.904030][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910109.904110][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910109.904190][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -239,11 +671,31 @@ tests: verification: | ./chip-tool colorcontrol read color-temp-physical-max-mireds 1 1 - - [1649661329.475308][8073:8078] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_400C DataVersion: 4087274515 - [1649661329.475388][8073:8078] CHIP:TOO: ColorTempPhysicalMaxMireds: 65279 - - [1649661329.475476][8073:8078] CHIP:EM: Sending Standalone Ack for MessageCounter:14879622 on exchange 59016i + Verify in DUT as client side log: + [1657910176.514563][2977:2977] CHIP:IM: Received Read request + [1657910176.514690][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910176.514738][2977:2977] CHIP:DMG: { + [1657910176.514779][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910176.514826][2977:2977] CHIP:DMG: [ + [1657910176.514869][2977:2977] CHIP:DMG: AttributePathIB = + [1657910176.514919][2977:2977] CHIP:DMG: { + [1657910176.514970][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910176.515028][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910176.515084][2977:2977] CHIP:DMG: Attribute = 0x0000_400C, + [1657910176.515137][2977:2977] CHIP:DMG: } + [1657910176.515188][2977:2977] CHIP:DMG: + [1657910176.515238][2977:2977] CHIP:DMG: ], + [1657910176.515289][2977:2977] CHIP:DMG: + [1657910176.515336][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910176.515382][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910176.515418][2977:2977] CHIP:DMG: }, + [1657910176.515548][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910176.515692][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910176.515743][2977:2977] CHIP:DMG: Cluster 300, Attribute 400c is dirty + [1657910176.515782][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_400C (expanded=0) + [1657910176.515828][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910176.515881][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910176.515971][2977:2977] CHIP:DMG: Sending report (payload has 39 bytes)... disabled: true - label: @@ -252,9 +704,32 @@ tests: PICS: CC.C.A400d verification: | ./chip-tool colorcontrol read couple-color-temp-to-level-min-mireds 1 1 - [1649661329.915861][8079:8084] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_400D DataVersion: 4087274515 - [1649661329.915947][8079:8084] CHIP:TOO: couple color temp to level min-mireds: 0 - [1649661329.916065][8079:8084] CHIP:EM: Sending Standalone Ack for MessageCounter:1722601 on exchange 3570i + + Verify in DUT as client side log: + [1657910205.278279][2977:2977] CHIP:IM: Received Read request + [1657910205.278421][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910205.278474][2977:2977] CHIP:DMG: { + [1657910205.278520][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910205.278578][2977:2977] CHIP:DMG: [ + [1657910205.278628][2977:2977] CHIP:DMG: AttributePathIB = + [1657910205.278684][2977:2977] CHIP:DMG: { + [1657910205.278743][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910205.278809][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910205.278874][2977:2977] CHIP:DMG: Attribute = 0x0000_400D, + [1657910205.279008][2977:2977] CHIP:DMG: } + [1657910205.279068][2977:2977] CHIP:DMG: + [1657910205.279122][2977:2977] CHIP:DMG: ], + [1657910205.279180][2977:2977] CHIP:DMG: + [1657910205.279234][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910205.279328][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910205.279380][2977:2977] CHIP:DMG: }, + [1657910205.279527][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910205.279685][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910205.279920][2977:2977] CHIP:DMG: Cluster 300, Attribute 400d is dirty + [1657910205.279968][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_400D (expanded=0) + [1657910205.280139][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910205.280211][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910205.280314][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -263,18 +738,64 @@ tests: PICS: CC.C.A4010 verification: | ./chip-tool colorcontrol read start-up-color-temperature-mireds 1 1 - [1649661330.348224][8085:8090] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4010 DataVersion: 4087274515 - [1649661330.348301][8085:8090] CHIP:TOO: start up color temperature mireds: 0 - [1649661330.348390][8085:8090] CHIP:EM: Sending Standalone Ack for MessageCounter:15367381 on exchange 8592i + + Verify in DUT as client side log: + [1657910246.097315][2977:2977] CHIP:IM: Received Read request + [1657910246.097460][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910246.097516][2977:2977] CHIP:DMG: { + [1657910246.097562][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910246.097616][2977:2977] CHIP:DMG: [ + [1657910246.097666][2977:2977] CHIP:DMG: AttributePathIB = + [1657910246.097728][2977:2977] CHIP:DMG: { + [1657910246.097790][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910246.097852][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910246.097916][2977:2977] CHIP:DMG: Attribute = 0x0000_4010, + [1657910246.097982][2977:2977] CHIP:DMG: } + [1657910246.098045][2977:2977] CHIP:DMG: + [1657910246.098099][2977:2977] CHIP:DMG: ], + [1657910246.098158][2977:2977] CHIP:DMG: + [1657910246.098213][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910246.098266][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910246.098315][2977:2977] CHIP:DMG: }, + [1657910246.098461][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910246.098624][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910246.098684][2977:2977] CHIP:DMG: Cluster 300, Attribute 4010 is dirty + [1657910246.098728][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4010 (expanded=0) + [1657910246.098785][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910246.098846][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910246.098946][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT reads from the TH the (0x0010) NumberOfPrimaries attribute" PICS: CC.C.A0010 verification: | ./chip-tool colorcontrol read number-of-primaries 1 1 - [1649661330.790716][8091:8096] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0010 DataVersion: 4087274515 - [1649661330.790792][8091:8096] CHIP:TOO: number of primaries: 0 - [1649661330.790894][8091:8096] CHIP:EM: Sending Standalone Ack for MessageCounter:4700740 on exchange 8440i + + Verify in DUT as client side log: + [1657910445.890552][2977:2977] CHIP:IM: Received Read request + [1657910445.890635][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910445.890664][2977:2977] CHIP:DMG: { + [1657910445.890686][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910445.890713][2977:2977] CHIP:DMG: [ + [1657910445.890737][2977:2977] CHIP:DMG: AttributePathIB = + [1657910445.890764][2977:2977] CHIP:DMG: { + [1657910445.890792][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910445.890830][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910445.890867][2977:2977] CHIP:DMG: Attribute = 0x0000_0010, + [1657910445.890896][2977:2977] CHIP:DMG: } + [1657910445.890924][2977:2977] CHIP:DMG: + [1657910445.890950][2977:2977] CHIP:DMG: ], + [1657910445.890978][2977:2977] CHIP:DMG: + [1657910445.891006][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910445.891031][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910445.891054][2977:2977] CHIP:DMG: }, + [1657910445.891135][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910445.891242][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910445.891275][2977:2977] CHIP:DMG: Cluster 300, Attribute 10 is dirty + [1657910445.891297][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0010 (expanded=0) + [1657910445.891327][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910445.891361][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910445.891422][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0011) Primary1X attribute" @@ -282,10 +803,31 @@ tests: verification: | ./chip-tool colorcontrol read primary1x 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0011 DataVersion: 540305990 - [1651483665.109697][3245:3250] CHIP:TOO: primary 1 x: 0 - [1651483665.109797][3245:3250] CHIP:EM: Sending Standalone Ack for MessageCounter:12731123 on exchange 55053i + Verify in DUT as client side log: + [1657910568.808716][2977:2977] CHIP:IM: Received Read request + [1657910568.808876][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910568.809073][2977:2977] CHIP:DMG: { + [1657910568.809131][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910568.809193][2977:2977] CHIP:DMG: [ + [1657910568.809243][2977:2977] CHIP:DMG: AttributePathIB = + [1657910568.809308][2977:2977] CHIP:DMG: { + [1657910568.809375][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910568.809461][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910568.809539][2977:2977] CHIP:DMG: Attribute = 0x0000_0011, + [1657910568.809621][2977:2977] CHIP:DMG: } + [1657910568.809691][2977:2977] CHIP:DMG: + [1657910568.809754][2977:2977] CHIP:DMG: ], + [1657910568.809823][2977:2977] CHIP:DMG: + [1657910568.809886][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910568.809950][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910568.810007][2977:2977] CHIP:DMG: }, + [1657910568.810175][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910568.810365][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910568.810433][2977:2977] CHIP:DMG: Cluster 300, Attribute 11 is dirty + [1657910568.810484][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0011 (expanded=0) + [1657910568.810548][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910568.810618][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910568.810719][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0012) Primary1Y attribute" @@ -293,9 +835,31 @@ tests: verification: | ./chip-tool colorcontrol read primary1y 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0012 DataVersion: 540305990 - [1651483698.733322][3253:3259] CHIP:TOO: primary 1 y: 0 - [1651483698.733420][3253:3259] CHIP:EM: Sending Standalone Ack for MessageCounter:7863787 on exchange 13103i + Verify in DUT as client side log: + [1657910588.961223][2977:2977] CHIP:IM: Received Read request + [1657910588.961366][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910588.961422][2977:2977] CHIP:DMG: { + [1657910588.961468][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910588.961522][2977:2977] CHIP:DMG: [ + [1657910588.961572][2977:2977] CHIP:DMG: AttributePathIB = + [1657910588.961633][2977:2977] CHIP:DMG: { + [1657910588.961692][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910588.961757][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910588.961828][2977:2977] CHIP:DMG: Attribute = 0x0000_0012, + [1657910588.961895][2977:2977] CHIP:DMG: } + [1657910588.961955][2977:2977] CHIP:DMG: + [1657910588.962012][2977:2977] CHIP:DMG: ], + [1657910588.962070][2977:2977] CHIP:DMG: + [1657910588.962125][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910588.962177][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910588.962226][2977:2977] CHIP:DMG: }, + [1657910588.962370][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910588.962529][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910588.962715][2977:2977] CHIP:DMG: Cluster 300, Attribute 12 is dirty + [1657910588.962764][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0012 (expanded=0) + [1657910588.962822][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910588.962885][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910588.962985][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0013) Primary1Intensity attribute" @@ -303,10 +867,31 @@ tests: verification: | ./chip-tool colorcontrol read primary1intensity 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0013 DataVersion: 540305990 - [1651483742.297459][3263:3268] CHIP:TOO: primary 1 intensity: 0 - [1651483742.297558][3263:3268] CHIP:EM: Sending Standalone Ack for MessageCounter:10210809 on exchange 7007i + Verify in DUT as client side log: + [1657910622.925613][2977:2977] CHIP:IM: Received Read request + [1657910622.925739][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910622.925788][2977:2977] CHIP:DMG: { + [1657910622.925827][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910622.925874][2977:2977] CHIP:DMG: [ + [1657910622.925918][2977:2977] CHIP:DMG: AttributePathIB = + [1657910622.925973][2977:2977] CHIP:DMG: { + [1657910622.926028][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910622.926088][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910622.926144][2977:2977] CHIP:DMG: Attribute = 0x0000_0013, + [1657910622.926197][2977:2977] CHIP:DMG: } + [1657910622.926249][2977:2977] CHIP:DMG: + [1657910622.926359][2977:2977] CHIP:DMG: ], + [1657910622.926413][2977:2977] CHIP:DMG: + [1657910622.926572][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910622.926623][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910622.926718][2977:2977] CHIP:DMG: }, + [1657910622.926850][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910622.926998][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910622.927049][2977:2977] CHIP:DMG: Cluster 300, Attribute 13 is dirty + [1657910622.927137][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0013 (expanded=0) + [1657910622.927192][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910622.927246][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910622.927384][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0015) Primary2X attribute" @@ -314,9 +899,31 @@ tests: verification: | ./chip-tool colorcontrol read primary2x 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0015 DataVersion: 540305990 - [1651483777.233498][3270:3275] CHIP:TOO: primary 2 x: 0 - [1651483777.233614][3270:3275] CHIP:EM: Sending Standalone Ack for MessageCounter:1684573 on exchange 21377i + Verify in DUT as client side log: + [1657910659.885682][2977:2977] CHIP:IM: Received Read request + [1657910659.885821][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910659.885876][2977:2977] CHIP:DMG: { + [1657910659.885922][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910659.885976][2977:2977] CHIP:DMG: [ + [1657910659.886027][2977:2977] CHIP:DMG: AttributePathIB = + [1657910659.886089][2977:2977] CHIP:DMG: { + [1657910659.886151][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910659.886215][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910659.886287][2977:2977] CHIP:DMG: Attribute = 0x0000_0015, + [1657910659.886354][2977:2977] CHIP:DMG: } + [1657910659.886414][2977:2977] CHIP:DMG: + [1657910659.886467][2977:2977] CHIP:DMG: ], + [1657910659.886526][2977:2977] CHIP:DMG: + [1657910659.886581][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910659.886633][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910659.886803][2977:2977] CHIP:DMG: }, + [1657910659.886955][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910659.887119][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910659.887178][2977:2977] CHIP:DMG: Cluster 300, Attribute 15 is dirty + [1657910659.887222][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0015 (expanded=0) + [1657910659.887278][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910659.887339][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910659.887439][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0016) Primary2Y attribute" @@ -324,10 +931,31 @@ tests: verification: | ./chip-tool colorcontrol read primary2y 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0016 DataVersion: 540305990 - [1651483805.650796][3279:3284] CHIP:TOO: primary 2 y: 0 - [1651483805.650942][3279:3284] CHIP:EM: Sending Standalone Ack for MessageCounter:16277541 on exchange 10435i + Verify in DUT as client side log: + [1657910687.168648][2977:2977] CHIP:IM: Received Read request + [1657910687.168754][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910687.168793][2977:2977] CHIP:DMG: { + [1657910687.168825][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910687.168863][2977:2977] CHIP:DMG: [ + [1657910687.168898][2977:2977] CHIP:DMG: AttributePathIB = + [1657910687.168937][2977:2977] CHIP:DMG: { + [1657910687.168979][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910687.169032][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910687.169078][2977:2977] CHIP:DMG: Attribute = 0x0000_0016, + [1657910687.169114][2977:2977] CHIP:DMG: } + [1657910687.169157][2977:2977] CHIP:DMG: + [1657910687.169196][2977:2977] CHIP:DMG: ], + [1657910687.169237][2977:2977] CHIP:DMG: + [1657910687.169275][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910687.169312][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910687.169346][2977:2977] CHIP:DMG: }, + [1657910687.169453][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910687.169572][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910687.169613][2977:2977] CHIP:DMG: Cluster 300, Attribute 16 is dirty + [1657910687.169645][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0016 (expanded=0) + [1657910687.169685][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910687.169731][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910687.169804][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0017) Primary2Intensity attribute" @@ -335,10 +963,31 @@ tests: verification: | ./chip-tool colorcontrol read primary2intensity 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0017 DataVersion: 540305990 - [1651483834.596380][3285:3290] CHIP:TOO: primary 2 intensity: 0 - [1651483834.596470][3285:3290] CHIP:EM: Sending Standalone Ack for MessageCounter:5986355 on exchange 855i + Verify in DUT as client side log: + [1657910837.125032][2977:2977] CHIP:IM: Received Read request + [1657910837.125157][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657910837.125206][2977:2977] CHIP:DMG: { + [1657910837.125246][2977:2977] CHIP:DMG: AttributePathIBs = + [1657910837.125293][2977:2977] CHIP:DMG: [ + [1657910837.125337][2977:2977] CHIP:DMG: AttributePathIB = + [1657910837.125387][2977:2977] CHIP:DMG: { + [1657910837.125438][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657910837.125502][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657910837.125559][2977:2977] CHIP:DMG: Attribute = 0x0000_0017, + [1657910837.125613][2977:2977] CHIP:DMG: } + [1657910837.125664][2977:2977] CHIP:DMG: + [1657910837.125711][2977:2977] CHIP:DMG: ], + [1657910837.125762][2977:2977] CHIP:DMG: + [1657910837.125810][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657910837.125856][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657910837.125898][2977:2977] CHIP:DMG: }, + [1657910837.126026][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657910837.126169][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657910837.126221][2977:2977] CHIP:DMG: Cluster 300, Attribute 17 is dirty + [1657910837.126259][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0017 (expanded=0) + [1657910837.126309][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657910837.126365][2977:2977] CHIP:DMG: AccessControl: allowed + [1657910837.126452][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT reads from the TH the (0x0019) Primary3X attribute" @@ -346,10 +995,24 @@ tests: verification: | ./chip-tool colorcontrol read primary3x 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0019 DataVersion: 540305990 - [1651483937.072323][3298:3303] CHIP:TOO: primary 3 x: 0 - [1651483937.072405][3298:3303] CHIP:EM: Sending Standalone Ack for MessageCounter:6092298 on exchange 12519i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0019, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x001a) Primary3Y attribute" @@ -357,9 +1020,24 @@ tests: verification: | ./chip-tool colorcontrol read primary3y 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_001A DataVersion: 540305990 - [1651483967.386334][3305:3310] CHIP:TOO: primary 3 y: 0 - [1651483967.386427][3305:3310] CHIP:EM: Sending Standalone Ack for MessageCounter:3329418 on exchange 11657i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300 + CHIP:DMG: Attribute = 0x0000_001A, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x001b) Primary3Intensity attribute" @@ -367,9 +1045,24 @@ tests: verification: | ./chip-tool colorcontrol read primary3intensity 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_001B DataVersion: 540305990 - [1651484113.812178][3316:3321] CHIP:TOO: primary 3 intensity: 0 - [1651484113.812270][3316:3321] CHIP:EM: Sending Standalone Ack for MessageCounter:41658 on exchange 9618i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_001B, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0020) Primary4X attribute" @@ -377,9 +1070,24 @@ tests: verification: | ./chip-tool colorcontrol read primary4x 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0020 DataVersion: 540305990 - [1651484143.778301][3324:3329] CHIP:TOO: primary 4 x: 0 - [1651484143.778392][3324:3329] CHIP:EM: Sending Standalone Ack for MessageCounter:2094184 on exchange 50270i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0020, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0021) Primary4Y attribute" @@ -387,9 +1095,24 @@ tests: verification: | ./chip-tool colorcontrol read primary4y 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0021 DataVersion: 540305990 - [1651484171.921901][3334:3339] CHIP:TOO: primary 4 y: 0 - [1651484171.921984][3334:3339] CHIP:EM: Sending Standalone Ack for MessageCounter:3701827 on exchange 16726i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0021, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0022) Primary4Intensity attribute" @@ -397,9 +1120,24 @@ tests: verification: | ./chip-tool colorcontrol read primary4intensity 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0022 DataVersion: 540305990 - [1651484198.443415][3341:3346] CHIP:TOO: primary 4 intensity: 0 - [1651484198.443528][3341:3346] CHIP:EM: Sending Standalone Ack for MessageCounter:1740063 on exchange 36245i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0022, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0024) Primary5X attribute" @@ -407,9 +1145,24 @@ tests: verification: | ./chip-tool colorcontrol read primary5x 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0024 DataVersion: 540305990 - [1651484241.467661][3350:3355] CHIP:TOO: primary 5 x: 0 - [1651484241.467788][3350:3355] CHIP:EM: Sending Standalone Ack for MessageCounter:5350139 on exchange 63040i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0024, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0025) Primary5Y attribute" @@ -417,10 +1170,24 @@ tests: verification: | ./chip-tool colorcontrol read primary5y 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0025 DataVersion: 540305990 - [1651484286.709863][3358:3363] CHIP:TOO: primary 5 y: 0 - [1651484286.709964][3358:3363] CHIP:EM: Sending Standalone Ack for MessageCounter:7199124 on exchange 47604i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0025, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0026) Primary5Intensity attribute" @@ -428,10 +1195,24 @@ tests: verification: | ./chip-tool colorcontrol read primary5intensity 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0026 DataVersion: 540305990 - [1651484304.715731][3365:3370] CHIP:TOO: primary 5 intensity: 0 - [1651484304.715829][3365:3370] CHIP:EM: Sending Standalone Ack for MessageCounter:8654922 on exchange 29272i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0026, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0028) Primary6X attribute" @@ -439,10 +1220,24 @@ tests: verification: | ./chip-tool colorcontrol read primary6x 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0028 DataVersion: 540305990 - [1651484349.601181][3372:3377] CHIP:TOO: primary 6 x: 0 - [1651484349.601269][3372:3377] CHIP:EM: Sending Standalone Ack for MessageCounter:13704291 on exchange 30507i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0028, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x0029) Primary6Y attribute" @@ -450,9 +1245,24 @@ tests: verification: | ./chip-tool colorcontrol read primary6y 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0028 DataVersion: 540305990 - [1651484349.601181][3372:3377] CHIP:TOO: primary 6 x: 0 - [1651484349.601269][3372:3377] CHIP:EM: Sending Standalone Ack for MessageCounter:13704291 on exchange 30507i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0029, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the (0x002a) Primary6Intensity attribute" @@ -460,9 +1270,24 @@ tests: verification: | ./chip-tool colorcontrol read primary6intensity 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_002A DataVersion: 540305990 - [1651484392.490974][3378:3383] CHIP:TOO: primary 6 intensity: 0 - [1651484392.491074][3378:3383] CHIP:EM: Sending Standalone Ack for MessageCounter:2427165 on exchange 17769i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_002a, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the Optional (0x0030) WhitePointX attribute" @@ -470,10 +1295,24 @@ tests: verification: | ./chip-tool colorcontrol read white-point-x 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0030 DataVersion: 540305990 - [1651484447.853097][3389:3394] CHIP:TOO: white point x: 0 - [1651484447.853201][3389:3394] CHIP:EM: Sending Standalone Ack for MessageCounter:2187963 on exchange 39418i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0030, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: "DUT reads from the TH the Optional (0x0031) WhitePointY attribute" @@ -481,9 +1320,24 @@ tests: verification: | ./chip-tool colorcontrol read white-point-y 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0031 DataVersion: 540305990 - [1651484493.098722][3397:3402] CHIP:TOO: white point y: 0 - [1651484493.098838][3397:3402] CHIP:EM: Sending Standalone Ack for MessageCounter:13416692 on exchange 58975i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0031, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -492,10 +1346,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-rx 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0032 DataVersion: 540305990 - [1651484549.019811][3407:3412] CHIP:TOO: color point r x: 0 - [1651484549.019946][3407:3412] CHIP:EM: Sending Standalone Ack for MessageCounter:3393967 on exchange 29393i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0032, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -504,10 +1372,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-ry 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0033 DataVersion: 540305990 - [1651484569.809289][3413:3418] CHIP:TOO: color point r y: 0 - [1651484569.809368][3413:3418] CHIP:EM: Sending Standalone Ack for MessageCounter:5190611 on exchange 55680i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0033, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -517,10 +1399,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-rintensity 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0034 DataVersion: 540305990 - [1651484618.450366][3424:3429] CHIP:TOO: color point r intensity: 0 - [1651484618.450496][3424:3429] CHIP:EM: Sending Standalone Ack for MessageCounter:7795217 on exchange 46127i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0034, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -529,10 +1425,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-gx 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0036 DataVersion: 540305990 - [1651484661.163449][3438:3443] CHIP:TOO: color point g x: 0 - [1651484661.163534][3438:3443] CHIP:EM: Sending Standalone Ack for MessageCounter:8020365 on exchange 14427i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0036, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -541,10 +1451,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-gy 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0037 DataVersion: 540305990 - [1651484675.995507][3444:3449] CHIP:TOO: color point g y: 0 - [1651484675.995585][3444:3449] CHIP:EM: Sending Standalone Ack for MessageCounter:5358119 on exchange 45686i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0037, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -554,10 +1478,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-gintensity 1 1 - - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0038 DataVersion: 540305990 - [1651484700.811165][3451:3456] CHIP:TOO: color point g intensity: 0 - [1651484700.811283][3451:3456] CHIP:EM: Sending Standalone Ack for MessageCounter:3831934 on exchange 46053i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_0038, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -566,9 +1504,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-bx 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_003A DataVersion: 540305990 - [1651484728.014850][3459:3464] CHIP:TOO: color point b x: 0 - [1651484728.014978][3459:3464] CHIP:EM: Sending Standalone Ack for MessageCounter:16345213 on exchange 13i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_003a, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -577,9 +1530,24 @@ tests: verification: | ./chip-tool colorcontrol read color-point-by 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_003B DataVersion: 540305990 - [1651484766.975812][3469:3474] CHIP:TOO: color point b y: 0 - [1651484766.975908][3469:3474] CHIP:EM: Sending Standalone Ack for MessageCounter:13904476 on exchange 17909i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_003b, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true - label: @@ -589,7 +1557,22 @@ tests: verification: | ./chip-tool colorcontrol read color-point-bintensity 1 1 - CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_003B DataVersion: 540305990 - [1651484766.975812][3469:3474] CHIP:TOO: color point b y: 0 - [1651484766.975908][3469:3474] CHIP:EM: Sending Standalone Ack for MessageCounter:13904476 on exchange 17909i + Verify in DUT as client side log: + CHIP:IM: Received Read request + CHIP:DMG: ReadRequestMessage = + CHIP:DMG: { + CHIP:DMG: AttributePathIBs = + CHIP:DMG: [ + CHIP:DMG: AttributePathIB = + CHIP:DMG: { + CHIP:DMG: Endpoint = 0x1, + CHIP:DMG: Cluster = 0x300, + CHIP:DMG: Attribute = 0x0000_003c, + CHIP:DMG: } + CHIP:DMG: + CHIP:DMG: ], + CHIP:DMG: + CHIP:DMG: isFabricFiltered = true, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: }, disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml index 4872048e0a3c34..3884460ec66651 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml @@ -18,6 +18,7 @@ config: nodeId: 0x12344321 cluster: "Color Control" endpoint: 1 + timeout: 150 tests: - label: "Wait for the commissioned device to be retrieved" @@ -40,7 +41,7 @@ tests: value: 1 - label: "Reads CurrentHue attribute from DUT" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -50,7 +51,7 @@ tests: maxValue: 254 - label: "Move to hue shortest distance command" - PICS: CC.S.C00.Rsp + PICS: CC.S.F00 && CC.S.C00.Rsp command: "MoveToHue" arguments: values: @@ -65,18 +66,18 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -85,18 +86,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 295ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -105,29 +106,26 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: 150 - label: "Move to hue longest distance command" command: "MoveToHue" - PICS: CC.S.C00.Rsp + PICS: CC.S.F00 && CC.S.C00.Rsp arguments: values: - name: "hue" @@ -141,18 +139,18 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -161,18 +159,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 295ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -181,29 +179,26 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: 200 - label: "Move to hue up command" command: "MoveToHue" - PICS: CC.S.C00.Rsp + PICS: CC.S.F00 && CC.S.C00.Rsp arguments: values: - name: "hue" @@ -217,18 +212,18 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -237,18 +232,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 295ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -257,33 +252,30 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: 250 - label: "Move to hue down command" command: "MoveToHue" - PICS: CC.S.C00.Rsp + PICS: CC.S.F00 && CC.S.C00.Rsp arguments: values: - name: "hue" - value: 225 + value: 200 - name: "Direction" value: 3 - name: "TransitionTime" @@ -293,18 +285,18 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -313,18 +305,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 295ms" + - label: "Wait 5000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -333,25 +325,22 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: 200 - label: "Turn off light that we turned on" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml index 051fdd936354c3..d6b329366d9624 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml @@ -41,7 +41,7 @@ tests: - label: "Reads CurrentHue attribute from DUT" command: "readAttribute" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 attribute: "CurrentHue" response: constraints: @@ -50,7 +50,7 @@ tests: maxValue: 254 - label: "Move hue up command" - PICS: CC.S.C01.Rsp + PICS: CC.S.F00 && CC.S.C01.Rsp command: "MoveHue" arguments: values: @@ -63,18 +63,18 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 140ms" + - label: "Wait 3000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 140 + value: 3000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -83,18 +83,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 145ms" + - label: "Wait 2000" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 145 + value: 2000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -103,18 +103,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 150ms" + - label: "Wait 3000" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 150 + value: 3000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -124,7 +124,7 @@ tests: maxValue: 254 - label: "Move hue stop command" - PICS: CC.S.C01.Rsp + PICS: CC.S.F00 && CC.S.C01.Rsp command: "MoveHue" arguments: values: @@ -137,68 +137,46 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 140ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 140 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: + saveAs: CurrentHueValue constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Wait 145ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 145 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Wait 150ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 150 - - - label: - "Check current hue attribute value matched the value sent by the last - command" - PICS: CC.S.A0000 - command: "readAttribute" - attribute: "CurrentHue" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: CurrentHueValue - label: "Move hue down command" - PICS: CC.S.C01.Rsp + PICS: CC.S.F00 && CC.S.C01.Rsp command: "MoveHue" arguments: values: @@ -211,18 +189,18 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 140ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 140 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -231,18 +209,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 145ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 145 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -251,18 +229,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 150ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 150 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -272,7 +250,7 @@ tests: maxValue: 254 - label: "Move hue stop command" - PICS: CC.S.C01.Rsp + PICS: CC.S.F00 && CC.S.C01.Rsp command: "MoveHue" arguments: values: @@ -285,65 +263,43 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 140ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 140 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: + saveAs: CurrentHueValueAfterStopmode constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Wait 145ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 145 + value: 1000 - label: "Check current hue attribute value matched the value sent by the last command" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Wait 150ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 150 - - - label: - "Check current hue attribute value matched the value sent by the last - command" - PICS: CC.S.A0000 - command: "readAttribute" - attribute: "CurrentHue" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: CurrentHueValueAfterStopmode - label: "Turn off light that we turned on" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml index 482b5bbaf86843..493f75382237ad 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml @@ -40,7 +40,7 @@ tests: value: 1 - label: "Reads CurrentHue attribute from DUT" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -50,7 +50,7 @@ tests: maxValue: 254 - label: "Step hue up command" - PICS: CC.S.C02.Rsp + PICS: CC.S.F00 && CC.S.C02.Rsp command: "StepHue" arguments: values: @@ -65,7 +65,7 @@ tests: - name: "OptionsOverride" value: 0 - #delay step is necessary to let the attribute value change over time + #Delay step is necessary to let the attribute value change over time - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" @@ -75,7 +75,7 @@ tests: value: 1000 - label: "Over TransitionTime,Read CurrentHue attribute from DUT" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -85,7 +85,7 @@ tests: maxValue: 254 - label: "Step hue down command" - PICS: CC.S.C02.Rsp + PICS: CC.S.F00 && CC.S.C02.Rsp command: "StepHue" arguments: values: @@ -109,7 +109,7 @@ tests: value: 1000 - label: "Over TransitionTime,Read CurrentHue attribute from DUT" - PICS: CC.S.A0000 + PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml index 9647c697a195e4..c8f36ee2425085 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml @@ -25,35 +25,41 @@ tests: PICS: CC.C.C00.Rsp verification: | ./chip-tool colorcontrol move-to-hue 1 0 300 0 0 1 1 - [1646210342.550556][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646210342.550627][2190:2190] CHIP:DMG: { - [1646210342.550679][2190:2190] CHIP:DMG: suppressResponse = false, - [1646210342.550714][2190:2190] CHIP:DMG: timedRequest = false, - [1646210342.550744][2190:2190] CHIP:DMG: InvokeRequests = - [1646210342.550784][2190:2190] CHIP:DMG: [ - [1646210342.550813][2190:2190] CHIP:DMG: CommandDataIB = - [1646210342.550852][2190:2190] CHIP:DMG: { - [1646210342.550883][2190:2190] CHIP:DMG: CommandPathIB = - [1646210342.550922][2190:2190] CHIP:DMG: { - [1646210342.550961][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646210342.551004][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646210342.551048][2190:2190] CHIP:DMG: CommandId = 0x0, - [1646210342.551085][2190:2190] CHIP:DMG: }, - [1646210342.551124][2190:2190] CHIP:DMG: - [1646210342.551158][2190:2190] CHIP:DMG: CommandData = - [1646210342.551195][2190:2190] CHIP:DMG: { - [1646210342.551234][2190:2190] CHIP:DMG: 0x0 = 1, - [1646210342.551275][2190:2190] CHIP:DMG: 0x1 = 0, - [1646210342.551315][2190:2190] CHIP:DMG: 0x2 = 200, - [1646210342.551356][2190:2190] CHIP:DMG: 0x3 = 0, - [1646210342.551396][2190:2190] CHIP:DMG: 0x4 = 0, - [1646210342.551434][2190:2190] CHIP:DMG: }, - [1646210342.551469][2190:2190] CHIP:DMG: }, - [1646210342.551508][2190:2190] CHIP:DMG: - [1646210342.551537][2190:2190] CHIP:DMG: ], - [1646210342.551575][2190:2190] CHIP:DMG: - [1646210342.551604][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210342.551632][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911287.814194][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911287.814246][2977:2977] CHIP:DMG: { + [1657911287.814289][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911287.814340][2977:2977] CHIP:DMG: timedRequest = false, + [1657911287.814385][2977:2977] CHIP:DMG: InvokeRequests = + [1657911287.814445][2977:2977] CHIP:DMG: [ + [1657911287.814491][2977:2977] CHIP:DMG: CommandDataIB = + [1657911287.814543][2977:2977] CHIP:DMG: { + [1657911287.814591][2977:2977] CHIP:DMG: CommandPathIB = + [1657911287.814644][2977:2977] CHIP:DMG: { + [1657911287.814698][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911287.814756][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911287.814811][2977:2977] CHIP:DMG: CommandId = 0x0, + [1657911287.814863][2977:2977] CHIP:DMG: }, + [1657911287.814918][2977:2977] CHIP:DMG: + [1657911287.814969][2977:2977] CHIP:DMG: CommandFields = + [1657911287.815021][2977:2977] CHIP:DMG: { + [1657911287.815062][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911287.815092][2977:2977] CHIP:DMG: 0x1 = 0, + [1657911287.815123][2977:2977] CHIP:DMG: 0x2 = 300, + [1657911287.815221][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911287.815256][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911287.815285][2977:2977] CHIP:DMG: }, + [1657911287.815311][2977:2977] CHIP:DMG: }, + [1657911287.815342][2977:2977] CHIP:DMG: + [1657911287.815366][2977:2977] CHIP:DMG: ], + [1657911287.815397][2977:2977] CHIP:DMG: + [1657911287.815420][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911287.815443][2977:2977] CHIP:DMG: }, + [1657911287.815520][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911287.815562][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911287.815590][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0000 disabled: true - label: @@ -62,166 +68,212 @@ tests: PICS: CC.C.A0000 verification: | ./chip-tool colorcontrol read current-hue 1 1 - [1646210292.985313][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210292.985373][2190:2190] CHIP:DMG: { - [1646210292.985402][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210292.985436][2190:2190] CHIP:DMG: [ - [1646210292.985467][2190:2190] CHIP:DMG: AttributePathIB = - [1646210292.985657][2190:2190] CHIP:DMG: { - [1646210292.985849][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210292.985935][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210292.986063][2190:2190] CHIP:DMG: Attribute = 0x0000_0000, - [1646210292.986124][2190:2190] CHIP:DMG: } - [1646210292.986183][2190:2190] CHIP:DMG: - [1646210292.986219][2190:2190] CHIP:DMG: ], - [1646210292.986257][2190:2190] CHIP:DMG: - [1646210292.986291][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210292.986324][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210292.986355][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911327.184763][2977:2977] CHIP:IM: Received Read request + [1657911327.184901][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911327.184952][2977:2977] CHIP:DMG: { + [1657911327.184993][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911327.185041][2977:2977] CHIP:DMG: [ + [1657911327.185084][2977:2977] CHIP:DMG: AttributePathIB = + [1657911327.185133][2977:2977] CHIP:DMG: { + [1657911327.185185][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911327.185243][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911327.185301][2977:2977] CHIP:DMG: Attribute = 0x0000_0000, + [1657911327.185355][2977:2977] CHIP:DMG: } + [1657911327.185407][2977:2977] CHIP:DMG: + [1657911327.185455][2977:2977] CHIP:DMG: ], + [1657911327.185506][2977:2977] CHIP:DMG: + [1657911327.185553][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911327.185599][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911327.185642][2977:2977] CHIP:DMG: }, + [1657911327.185770][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911327.185916][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911327.185968][2977:2977] CHIP:DMG: Cluster 300, Attribute 0 is dirty + [1657911327.186007][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1657911327.186056][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911327.186111][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911327.186199][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends MoveHue command to TH" PICS: CC.C.C01.Rsp verification: | ./chip-tool colorcontrol move-hue 1 10 0 0 1 1 - [1646210493.976737][2190:2190] CHIP:EM: Handling via exchange: 36870r, Delegate: 0xaaaad04530c8 - [1646210493.976986][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646210493.977019][2190:2190] CHIP:DMG: { - [1646210493.977047][2190:2190] CHIP:DMG: suppressResponse = false, - [1646210493.977079][2190:2190] CHIP:DMG: timedRequest = false, - [1646210493.977109][2190:2190] CHIP:DMG: InvokeRequests = - [1646210493.977147][2190:2190] CHIP:DMG: [ - [1646210493.977173][2190:2190] CHIP:DMG: CommandDataIB = - [1646210493.977222][2190:2190] CHIP:DMG: { - [1646210493.977267][2190:2190] CHIP:DMG: CommandPathIB = - [1646210493.977320][2190:2190] CHIP:DMG: { - [1646210493.977376][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646210493.977443][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646210493.977478][2190:2190] CHIP:DMG: CommandId = 0x1, - [1646210493.977536][2190:2190] CHIP:DMG: }, - [1646210493.977572][2190:2190] CHIP:DMG: - [1646210493.977628][2190:2190] CHIP:DMG: CommandData = - [1646210493.977671][2190:2190] CHIP:DMG: { - [1646210493.977711][2190:2190] CHIP:DMG: 0x0 = 1, - [1646210493.977755][2190:2190] CHIP:DMG: 0x1 = 10, - [1646210493.978098][2190:2190] CHIP:DMG: 0x2 = 0, - [1646210493.978286][2190:2190] CHIP:DMG: 0x3 = 0, - [1646210493.978369][2190:2190] CHIP:DMG: }, - [1646210493.978405][2190:2190] CHIP:DMG: }, - [1646210493.978469][2190:2190] CHIP:DMG: - [1646210493.978499][2190:2190] CHIP:DMG: ], - [1646210493.978536][2190:2190] CHIP:DMG: - [1646210493.978565][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210493.978595][2190:2190] CHIP:DMG: }, + Verify in DUT as client side log: + + [1657911357.567908][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911357.567957][2977:2977] CHIP:DMG: { + [1657911357.567999][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911357.568048][2977:2977] CHIP:DMG: timedRequest = false, + [1657911357.568129][2977:2977] CHIP:DMG: InvokeRequests = + [1657911357.568189][2977:2977] CHIP:DMG: [ + [1657911357.568234][2977:2977] CHIP:DMG: CommandDataIB = + [1657911357.568289][2977:2977] CHIP:DMG: { + [1657911357.568335][2977:2977] CHIP:DMG: CommandPathIB = + [1657911357.568390][2977:2977] CHIP:DMG: { + [1657911357.568454][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911357.568520][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911357.568580][2977:2977] CHIP:DMG: CommandId = 0x1, + [1657911357.568636][2977:2977] CHIP:DMG: }, + [1657911357.568695][2977:2977] CHIP:DMG: + [1657911357.568746][2977:2977] CHIP:DMG: CommandFields = + [1657911357.568807][2977:2977] CHIP:DMG: { + [1657911357.568868][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911357.568929][2977:2977] CHIP:DMG: 0x1 = 10, + [1657911357.569006][2977:2977] CHIP:DMG: 0x2 = 0, + [1657911357.569071][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911357.569131][2977:2977] CHIP:DMG: }, + [1657911357.569189][2977:2977] CHIP:DMG: }, + [1657911357.569244][2977:2977] CHIP:DMG: + [1657911357.569288][2977:2977] CHIP:DMG: ], + [1657911357.569344][2977:2977] CHIP:DMG: + [1657911357.569387][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911357.569433][2977:2977] CHIP:DMG: }, + [1657911357.569549][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911357.569610][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911357.569659][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0001 disabled: true - label: "DUT reads CurrentHue attribute from TH several Times." PICS: CC.C.A0000 verification: | ./chip-tool colorcontrol read current-hue 1 1 - [1646210292.985313][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210292.985373][2190:2190] CHIP:DMG: { - [1646210292.985402][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210292.985436][2190:2190] CHIP:DMG: [ - [1646210292.985467][2190:2190] CHIP:DMG: AttributePathIB = - [1646210292.985657][2190:2190] CHIP:DMG: { - [1646210292.985849][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210292.985935][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210292.986063][2190:2190] CHIP:DMG: Attribute = 0x0000_0000, - [1646210292.986124][2190:2190] CHIP:DMG: } - [1646210292.986183][2190:2190] CHIP:DMG: - [1646210292.986219][2190:2190] CHIP:DMG: ], - [1646210292.986257][2190:2190] CHIP:DMG: - [1646210292.986291][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210292.986324][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210292.986355][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + [1657911381.312873][2977:2977] CHIP:IM: Received Read request + [1657911381.312995][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911381.313043][2977:2977] CHIP:DMG: { + [1657911381.313082][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911381.313172][2977:2977] CHIP:DMG: [ + [1657911381.313224][2977:2977] CHIP:DMG: AttributePathIB = + [1657911381.313274][2977:2977] CHIP:DMG: { + [1657911381.313325][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911381.313390][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911381.313449][2977:2977] CHIP:DMG: Attribute = 0x0000_0000, + [1657911381.313549][2977:2977] CHIP:DMG: } + [1657911381.313607][2977:2977] CHIP:DMG: + [1657911381.313657][2977:2977] CHIP:DMG: ], + [1657911381.313703][2977:2977] CHIP:DMG: + [1657911381.313730][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911381.313756][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911381.313782][2977:2977] CHIP:DMG: }, + [1657911381.313945][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911381.314046][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911381.314077][2977:2977] CHIP:DMG: Cluster 300, Attribute 0 is dirty + [1657911381.314100][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1657911381.314129][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911381.314164][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911381.314224][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends StepHue command to TH" PICS: CC.C.C02.Rsp verification: | ./chip-tool colorcontrol step-hue 1 10 200 0 0 1 1 - [1646210571.683401][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646210571.683444][2190:2190] CHIP:DMG: { - [1646210571.683475][2190:2190] CHIP:DMG: suppressResponse = false, - [1646210571.683530][2190:2190] CHIP:DMG: timedRequest = false, - [1646210571.683565][2190:2190] CHIP:DMG: InvokeRequests = - [1646210571.683608][2190:2190] CHIP:DMG: [ - [1646210571.683641][2190:2190] CHIP:DMG: CommandDataIB = - [1646210571.683726][2190:2190] CHIP:DMG: { - [1646210571.683799][2190:2190] CHIP:DMG: CommandPathIB = - [1646210571.683908][2190:2190] CHIP:DMG: { - [1646210571.683953][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646210571.684011][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646210571.684058][2190:2190] CHIP:DMG: CommandId = 0x2, - [1646210571.684102][2190:2190] CHIP:DMG: }, - [1646210571.684146][2190:2190] CHIP:DMG: - [1646210571.684183][2190:2190] CHIP:DMG: CommandData = - [1646210571.684228][2190:2190] CHIP:DMG: { - [1646210571.684275][2190:2190] CHIP:DMG: 0x0 = 1, - [1646210571.684323][2190:2190] CHIP:DMG: 0x1 = 10, - [1646210571.684370][2190:2190] CHIP:DMG: 0x2 = 200, - [1646210571.684414][2190:2190] CHIP:DMG: 0x3 = 0, - [1646210571.684458][2190:2190] CHIP:DMG: 0x4 = 0, - [1646210571.684501][2190:2190] CHIP:DMG: }, - [1646210571.684539][2190:2190] CHIP:DMG: }, - [1646210571.684582][2190:2190] CHIP:DMG: - [1646210571.684613][2190:2190] CHIP:DMG: ], - [1646210571.684653][2190:2190] CHIP:DMG: - [1646210571.684684][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210571.684715][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911412.480684][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911412.480741][2977:2977] CHIP:DMG: { + [1657911412.480788][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911412.480843][2977:2977] CHIP:DMG: timedRequest = false, + [1657911412.480894][2977:2977] CHIP:DMG: InvokeRequests = + [1657911412.480960][2977:2977] CHIP:DMG: [ + [1657911412.481011][2977:2977] CHIP:DMG: CommandDataIB = + [1657911412.481067][2977:2977] CHIP:DMG: { + [1657911412.481120][2977:2977] CHIP:DMG: CommandPathIB = + [1657911412.481199][2977:2977] CHIP:DMG: { + [1657911412.481329][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911412.481400][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911412.481468][2977:2977] CHIP:DMG: CommandId = 0x2, + [1657911412.481532][2977:2977] CHIP:DMG: }, + [1657911412.481647][2977:2977] CHIP:DMG: + [1657911412.481707][2977:2977] CHIP:DMG: CommandFields = + [1657911412.481769][2977:2977] CHIP:DMG: { + [1657911412.481958][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911412.482101][2977:2977] CHIP:DMG: 0x1 = 10, + [1657911412.482173][2977:2977] CHIP:DMG: 0x2 = 200, + [1657911412.482243][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911412.482313][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911412.482379][2977:2977] CHIP:DMG: }, + [1657911412.482438][2977:2977] CHIP:DMG: }, + [1657911412.482506][2977:2977] CHIP:DMG: + [1657911412.482556][2977:2977] CHIP:DMG: ], + [1657911412.482621][2977:2977] CHIP:DMG: + [1657911412.482670][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911412.482718][2977:2977] CHIP:DMG: }, + [1657911412.482850][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911412.482919][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911412.482974][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0002 disabled: true - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH." PICS: CC.C.A0000 verification: | ./chip-tool colorcontrol read current-hue 1 1 - [1646210292.985313][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210292.985373][2190:2190] CHIP:DMG: { - [1646210292.985402][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210292.985436][2190:2190] CHIP:DMG: [ - [1646210292.985467][2190:2190] CHIP:DMG: AttributePathIB = - [1646210292.985657][2190:2190] CHIP:DMG: { - [1646210292.985849][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210292.985935][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210292.986063][2190:2190] CHIP:DMG: Attribute = 0x0000_0000, - [1646210292.986124][2190:2190] CHIP:DMG: } - [1646210292.986183][2190:2190] CHIP:DMG: - [1646210292.986219][2190:2190] CHIP:DMG: ], - [1646210292.986257][2190:2190] CHIP:DMG: - [1646210292.986291][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210292.986324][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210292.986355][2190:2190] CHIP:DMG: }, + Verify in DUT as client side log: + + [1657911437.116353][2977:2977] CHIP:IM: Received Read request + [1657911437.116480][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911437.116528][2977:2977] CHIP:DMG: { + [1657911437.116568][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911437.116615][2977:2977] CHIP:DMG: [ + [1657911437.116658][2977:2977] CHIP:DMG: AttributePathIB = + [1657911437.116707][2977:2977] CHIP:DMG: { + [1657911437.116758][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911437.116823][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911437.116882][2977:2977] CHIP:DMG: Attribute = 0x0000_0000, + [1657911437.116933][2977:2977] CHIP:DMG: } + [1657911437.116988][2977:2977] CHIP:DMG: + [1657911437.117038][2977:2977] CHIP:DMG: ], + [1657911437.117090][2977:2977] CHIP:DMG: + [1657911437.117130][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911437.117175][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911437.117218][2977:2977] CHIP:DMG: }, + [1657911437.117344][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911437.117488][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911437.117541][2977:2977] CHIP:DMG: Cluster 300, Attribute 0 is dirty + [1657911437.117580][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1657911437.117629][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911437.117684][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911437.117773][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends StopMoveStep command to TH." PICS: CC.C.C47.Rsp verification: | ./chip-tool colorcontrol stop-move-step 0 0 1 1 - [1646210677.870562][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646210677.870594][2190:2190] CHIP:DMG: { - [1646210677.870618][2190:2190] CHIP:DMG: suppressResponse = false, - [1646210677.870666][2190:2190] CHIP:DMG: timedRequest = false, - [1646210677.870696][2190:2190] CHIP:DMG: InvokeRequests = - [1646210677.870728][2190:2190] CHIP:DMG: [ - [1646210677.870754][2190:2190] CHIP:DMG: CommandDataIB = - [1646210677.870792][2190:2190] CHIP:DMG: { - [1646210677.870820][2190:2190] CHIP:DMG: CommandPathIB = - [1646210677.870854][2190:2190] CHIP:DMG: { - [1646210677.870889][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646210677.870926][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646210677.870960][2190:2190] CHIP:DMG: CommandId = 0x47, - [1646210677.870992][2190:2190] CHIP:DMG: }, - [1646210677.871027][2190:2190] CHIP:DMG: - [1646210677.871056][2190:2190] CHIP:DMG: CommandData = - [1646210677.871088][2190:2190] CHIP:DMG: { - [1646210677.871124][2190:2190] CHIP:DMG: 0x0 = 0, - [1646210677.871159][2190:2190] CHIP:DMG: 0x1 = 0, - [1646210677.871196][2190:2190] CHIP:DMG: }, - [1646210677.871225][2190:2190] CHIP:DMG: }, - [1646210677.871259][2190:2190] CHIP:DMG: - [1646210677.871286][2190:2190] CHIP:DMG: ], - [1646210677.871317][2190:2190] CHIP:DMG: - [1646210677.871342][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210677.871368][2190:2190] CHIP:DMG: }, + Verify in DUT as client side log: + + [1657911457.334435][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911457.334464][2977:2977] CHIP:DMG: { + [1657911457.334487][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911457.334514][2977:2977] CHIP:DMG: timedRequest = false, + [1657911457.334535][2977:2977] CHIP:DMG: InvokeRequests = + [1657911457.334568][2977:2977] CHIP:DMG: [ + [1657911457.334593][2977:2977] CHIP:DMG: CommandDataIB = + [1657911457.334622][2977:2977] CHIP:DMG: { + [1657911457.334648][2977:2977] CHIP:DMG: CommandPathIB = + [1657911457.334674][2977:2977] CHIP:DMG: { + [1657911457.334700][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911457.334733][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911457.334766][2977:2977] CHIP:DMG: CommandId = 0x47, + [1657911457.334797][2977:2977] CHIP:DMG: }, + [1657911457.334830][2977:2977] CHIP:DMG: + [1657911457.334857][2977:2977] CHIP:DMG: CommandFields = + [1657911457.334887][2977:2977] CHIP:DMG: { + [1657911457.334920][2977:2977] CHIP:DMG: 0x0 = 0, + [1657911457.334954][2977:2977] CHIP:DMG: 0x1 = 0, + [1657911457.334986][2977:2977] CHIP:DMG: }, + [1657911457.335015][2977:2977] CHIP:DMG: }, + [1657911457.335046][2977:2977] CHIP:DMG: + [1657911457.335071][2977:2977] CHIP:DMG: ], + [1657911457.335102][2977:2977] CHIP:DMG: + [1657911457.335125][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911457.335148][2977:2977] CHIP:DMG: }, + [1657911457.335218][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911457.335258][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911457.335287][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml index 5f11a375b09f5f..7b820c7e855836 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml @@ -40,7 +40,7 @@ tests: value: 1 - label: "Check Saturation attribute value matched before any change" - PICS: CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -50,31 +50,31 @@ tests: maxValue: 254 - label: "Move to saturation command" - PICS: CC.S.C03.Rsp + PICS: CC.S.F00 && CC.S.C03.Rsp command: "MoveToSaturation" arguments: values: - name: "Saturation" value: 90 - name: "TransitionTime" - value: 10 + value: 15 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 6ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 6 + value: 500 - label: "Check current saturation attribute value matched the value sent by the last command" - PICS: CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -83,18 +83,18 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 8ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 8 + value: 500 - label: "Check current saturation attribute value matched the value sent by the last command" - PICS: CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -103,25 +103,22 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 10ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1000 - label: "Check current saturation attribute value matched the value sent by the last command" - PICS: CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: 90 - label: "Turn off light that we turned on" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml index 2a41688e9785d2..b8317f46f546b1 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml @@ -39,10 +39,8 @@ tests: response: value: 1 - - label: - "Check Saturation attribute value matched the value sent by the last - command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -51,32 +49,30 @@ tests: minValue: 0 maxValue: 254 - - label: "Move saturation up command" + - label: "TH sends MoveSaturation command to DUT with MoveMode Up" command: "MoveSaturation" - PICS: CC.S.C04.Rsp + PICS: CC.S.F00 && CC.S.C04.Rsp arguments: values: - name: "MoveMode" value: 1 - name: "Rate" - value: 5 + value: 15 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -85,18 +81,16 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 45ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -105,18 +99,16 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 50ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 50 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -125,32 +117,30 @@ tests: minValue: 0 maxValue: 254 - - label: "Move saturation down command" - PICS: CC.S.C04.Rsp + - label: "TH sends MoveSaturation command to DUT with MoveMode Down" + PICS: CC.S.F00 && CC.S.C04.Rsp command: "MoveSaturation" arguments: values: - name: "MoveMode" value: 3 - name: "Rate" - value: 5 + value: 10 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times." + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -159,18 +149,16 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 45ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times." + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -179,18 +167,16 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 50ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 50 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times." + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -199,52 +185,32 @@ tests: minValue: 0 maxValue: 254 - - label: "Move saturation up command" - PICS: CC.S.C04.Rsp + - label: + "TH sends MoveSaturation command to DUT with MoveMode Up to the + Maximum allowed Saturation" + PICS: CC.S.F00 && CC.S.C04.Rsp command: "MoveSaturation" arguments: values: - name: "MoveMode" value: 1 - name: "Rate" - value: 5 + value: 100 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 40 - - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 - command: "readAttribute" - attribute: "CurrentSaturation" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Wait 45ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -253,247 +219,158 @@ tests: minValue: 0 maxValue: 254 - - label: "Wait 50ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 50 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 - command: "readAttribute" - attribute: "CurrentSaturation" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Move saturation stop command" + "TH sends MoveSaturation command to DUT with MoveMode Stop before + Saturation reaches the Maximum allowed." command: "MoveSaturation" - PICS: CC.S.C04.Rsp + PICS: CC.S.F00 && CC.S.C04.Rsp arguments: values: - name: "MoveMode" value: 0 - name: "Rate" - value: 5 + value: 50 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT." + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: + saveAs: CurrentSaturationStep4d constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Wait 45ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "CurrentSaturation value Stops incrementing" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Wait 50ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 50 + value: CurrentSaturationStep4d - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 - command: "readAttribute" - attribute: "CurrentSaturation" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Move saturation down command" - PICS: CC.S.C04.Rsp + "TH sends MoveSaturation command to DUT with MoveMode Down to the + Minimum allowed Saturation" + PICS: CC.S.F00 && CC.S.C04.Rsp command: "MoveSaturation" arguments: values: - name: "MoveMode" value: 3 - name: "Rate" - value: 5 + value: 10 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times." + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: + saveAs: CurrentSaturationStep5b constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Wait 45ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT several times." + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: constraints: type: uint8 minValue: 0 - maxValue: 254 - - - label: "Wait 50ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 50 + maxValue: CurrentSaturationStep5b - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 - command: "readAttribute" - attribute: "CurrentSaturation" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Move saturation stop command" - PICS: CC.S.C04.Rsp + "TH sends MoveSaturation command to DUT with MoveMode Stop before + Saturation reaches the Minimum allowed" + PICS: CC.S.F00 && CC.S.C04.Rsp command: "MoveSaturation" arguments: values: - name: "MoveMode" value: 0 - name: "Rate" - value: 5 + value: 10 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: + saveAs: CurrentSaturationStep5d constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Wait 45ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 1000 - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + - label: "CurrentSaturation value Stops decrementing" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 - - - label: "Wait 50ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 50 - - - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 - command: "readAttribute" - attribute: "CurrentSaturation" - response: - constraints: - type: uint8 - minValue: 0 - maxValue: 254 + value: CurrentSaturationStep5d - label: "Turn off light that we turned on" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml index 6f15689de049eb..27aa46fcfabcc8 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml @@ -39,8 +39,8 @@ tests: response: value: 1 - - label: "Reads CurrentSaturation attribute from DUT" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -49,8 +49,8 @@ tests: minValue: 0 maxValue: 254 - - label: "Step saturation up command" - PICS: CC.S.C05.Rsp + - label: "TH sends StepSaturation command to DUT with StepMode Up" + PICS: CC.S.F00 && CC.S.C05.Rsp command: "StepSaturation" arguments: values: @@ -66,16 +66,16 @@ tests: value: 0 #delay step is necessary to let the attribute value change over time - - label: "Wait 10ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1000 - - label: "Over TransitionTime,Read CurrentSaturation attribute from DUT" - PICS: CC.S.A0001 + - label: "Over TransitionTime,TH read CurrentSaturation attribute from DUT" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -84,8 +84,8 @@ tests: minValue: 0 maxValue: 254 - - label: "Step saturation down command" - PICS: CC.S.C05.Rsp + - label: "TH sends StepSaturation command to DUT with StepMode Down" + PICS: CC.S.F00 && CC.S.C05.Rsp command: "StepSaturation" arguments: values: @@ -100,16 +100,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 10ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1000 - - label: "Over TransitionTime,Reads CurrentSaturation attribute from DUT" - PICS: CC.S.A0001 + - label: "Over TransitionTime,TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml index 1f76c3db369c18..45609eb2840b78 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml @@ -40,8 +40,8 @@ tests: response: value: 1 - - label: "Check current hue attribute value matched before any change" - PICS: CC.S.A0000 + - label: "TH reads CurrentHue attribute from DUT." + PICS: CC.S.F01 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -50,8 +50,8 @@ tests: minValue: 0 maxValue: 254 - - label: "Check Saturation attribute value matched before any change" - PICS: CC.S.A0001 + - label: "TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F01 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -60,8 +60,8 @@ tests: minValue: 0 maxValue: 254 - - label: "Move To current hue and saturation command" - PICS: CC.S.C06.Rsp + - label: "TH sends MoveToHueAndSaturation command to DUT." + PICS: CC.S.F01 && CC.S.C06.Rsp command: "MoveToHueAndSaturation" arguments: values: @@ -76,18 +76,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 10ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1000 - - label: - "Check current hue attribute value matched the value sent by the last - command" - PICS: CC.S.A0000 + - label: "Over TransitionTime, TH reads CurrentHue attribute from DUT" + PICS: CC.S.F01 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: @@ -97,9 +95,8 @@ tests: maxValue: 254 - label: - "Check current saturation attribute value matched the value sent by - the last command" - PICS: CC.S.A0001 + "Over TransitionTime, TH reads CurrentSaturation attribute from DUT" + PICS: CC.S.F01 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml index ab7cdedc7b71ba..89c03f32a44a0f 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml @@ -28,38 +28,39 @@ tests: verification: | ./chip-tool colorcontrol move-to-saturation 200 300 0 0 1 1 - [1648101474.910794][2480:2480] CHIP:EM: Handling via exchange: 53143r, Delegate: 0xaaaab8814368 - [1648101474.910970][2480:2480] CHIP:DMG: InvokeRequestMessage = - [1648101474.911016][2480:2480] CHIP:DMG: { - [1648101474.911055][2480:2480] CHIP:DMG: suppressResponse = false, - [1648101474.911099][2480:2480] CHIP:DMG: timedRequest = false, - [1648101474.911140][2480:2480] CHIP:DMG: InvokeRequests = - [1648101474.911191][2480:2480] CHIP:DMG: [ - [1648101474.911232][2480:2480] CHIP:DMG: CommandDataIB = - [1648101474.911287][2480:2480] CHIP:DMG: { - [1648101474.911330][2480:2480] CHIP:DMG: CommandPathIB = - [1648101474.911412][2480:2480] CHIP:DMG: { - [1648101474.911467][2480:2480] CHIP:DMG: EndpointId = 0x1, - [1648101474.911523][2480:2480] CHIP:DMG: ClusterId = 0x300, - [1648101474.911577][2480:2480] CHIP:DMG: CommandId = 0x3, - [1648101474.911628][2480:2480] CHIP:DMG: }, - [1648101474.911681][2480:2480] CHIP:DMG: - [1648101474.911728][2480:2480] CHIP:DMG: CommandData = - [1648101474.911783][2480:2480] CHIP:DMG: { - [1648101474.911837][2480:2480] CHIP:DMG: 0x0 = 200, - [1648101474.911897][2480:2480] CHIP:DMG: 0x1 = 300, - [1648101474.911952][2480:2480] CHIP:DMG: 0x2 = 0, - [1648101474.912012][2480:2480] CHIP:DMG: 0x3 = 0, - [1648101474.912069][2480:2480] CHIP:DMG: }, - [1648101474.912117][2480:2480] CHIP:DMG: }, - [1648101474.912172][2480:2480] CHIP:DMG: - [1648101474.912211][2480:2480] CHIP:DMG: ], - [1648101474.912263][2480:2480] CHIP:DMG: - [1648101474.912302][2480:2480] CHIP:DMG: InteractionModelRevision = 1 - [1648101474.912341][2480:2480] CHIP:DMG: }, - [1648101474.912442][2480:2480] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o - [1648101474.912507][2480:2480] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0003 - [1648101474.912605][2480:2480] CHIP:DMG: Endpoint 1, Cluster 0x0000_0300 update version to 6143bba0 + Verify in DUT as client side log: + + [1657911500.672151][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911500.672204][2977:2977] CHIP:DMG: { + [1657911500.672246][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911500.672295][2977:2977] CHIP:DMG: timedRequest = false, + [1657911500.672357][2977:2977] CHIP:DMG: InvokeRequests = + [1657911500.672417][2977:2977] CHIP:DMG: [ + [1657911500.672465][2977:2977] CHIP:DMG: CommandDataIB = + [1657911500.672534][2977:2977] CHIP:DMG: { + [1657911500.672583][2977:2977] CHIP:DMG: CommandPathIB = + [1657911500.672768][2977:2977] CHIP:DMG: { + [1657911500.672831][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911500.672916][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911500.672976][2977:2977] CHIP:DMG: CommandId = 0x3, + [1657911500.673044][2977:2977] CHIP:DMG: }, + [1657911500.673103][2977:2977] CHIP:DMG: + [1657911500.673155][2977:2977] CHIP:DMG: CommandFields = + [1657911500.673223][2977:2977] CHIP:DMG: { + [1657911500.673283][2977:2977] CHIP:DMG: 0x0 = 200, + [1657911500.673360][2977:2977] CHIP:DMG: 0x1 = 300, + [1657911500.673427][2977:2977] CHIP:DMG: 0x2 = 0, + [1657911500.673488][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911500.673563][2977:2977] CHIP:DMG: }, + [1657911500.673612][2977:2977] CHIP:DMG: }, + [1657911500.673668][2977:2977] CHIP:DMG: + [1657911500.673727][2977:2977] CHIP:DMG: ], + [1657911500.673785][2977:2977] CHIP:DMG: + [1657911500.673828][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911500.673888][2977:2977] CHIP:DMG: }, + [1657911500.674003][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911500.674082][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911500.674119][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0003 disabled: true - label: @@ -68,116 +69,147 @@ tests: PICS: CC.C.A0001 verification: | ./chip-tool colorcontrol read current-saturation 1 1 - [1646210970.309403][2190:2190] CHIP:IM: Received Read request - [1646210970.309465][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210970.309495][2190:2190] CHIP:DMG: { - [1646210970.309514][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210970.309541][2190:2190] CHIP:DMG: [ - [1646210970.309567][2190:2190] CHIP:DMG: AttributePathIB = - [1646210970.309599][2190:2190] CHIP:DMG: { - [1646210970.309629][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210970.309664][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210970.309691][2190:2190] CHIP:DMG: Attribute = 0x0000_0001, - [1646210970.309720][2190:2190] CHIP:DMG: } - [1646210970.309750][2190:2190] CHIP:DMG: - [1646210970.309779][2190:2190] CHIP:DMG: ], - [1646210970.309815][2190:2190] CHIP:DMG: - [1646210970.309844][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210970.309871][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210970.309892][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911521.672771][2977:2977] CHIP:IM: Received Read request + [1657911521.672849][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911521.672876][2977:2977] CHIP:DMG: { + [1657911521.672898][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911521.672924][2977:2977] CHIP:DMG: [ + [1657911521.672947][2977:2977] CHIP:DMG: AttributePathIB = + [1657911521.672974][2977:2977] CHIP:DMG: { + [1657911521.673001][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911521.673038][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911521.673069][2977:2977] CHIP:DMG: Attribute = 0x0000_0001, + [1657911521.673098][2977:2977] CHIP:DMG: } + [1657911521.673125][2977:2977] CHIP:DMG: + [1657911521.673151][2977:2977] CHIP:DMG: ], + [1657911521.673179][2977:2977] CHIP:DMG: + [1657911521.673204][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911521.673228][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911521.673251][2977:2977] CHIP:DMG: }, + [1657911521.673327][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911521.673419][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911521.673448][2977:2977] CHIP:DMG: Cluster 300, Attribute 1 is dirty + [1657911521.673469][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) + [1657911521.673497][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911521.673529][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911521.673585][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends MoveSaturation command to TH" PICS: CC.C.C04.Rsp verification: | ./chip-tool colorcontrol move-saturation 1 10 0 0 1 1 + Verify in DUT as client side log: + - [1646211062.545513][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646211062.545543][2190:2190] CHIP:DMG: { - [1646211062.545565][2190:2190] CHIP:DMG: suppressResponse = false, - [1646211062.545596][2190:2190] CHIP:DMG: timedRequest = false, - [1646211062.545625][2190:2190] CHIP:DMG: InvokeRequests = - [1646211062.545657][2190:2190] CHIP:DMG: [ - [1646211062.545681][2190:2190] CHIP:DMG: CommandDataIB = - [1646211062.545711][2190:2190] CHIP:DMG: { - [1646211062.545737][2190:2190] CHIP:DMG: CommandPathIB = - [1646211062.545771][2190:2190] CHIP:DMG: { - [1646211062.545806][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646211062.545840][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646211062.545872][2190:2190] CHIP:DMG: CommandId = 0x4, - [1646211062.545902][2190:2190] CHIP:DMG: }, - [1646211062.545933][2190:2190] CHIP:DMG: - [1646211062.545960][2190:2190] CHIP:DMG: CommandData = - [1646211062.545991][2190:2190] CHIP:DMG: { - [1646211062.546025][2190:2190] CHIP:DMG: 0x0 = 1, - [1646211062.546060][2190:2190] CHIP:DMG: 0x1 = 10, - [1646211062.546095][2190:2190] CHIP:DMG: 0x2 = 0, - [1646211062.546126][2190:2190] CHIP:DMG: 0x3 = 0, - [1646211062.546158][2190:2190] CHIP:DMG: }, - [1646211062.546185][2190:2190] CHIP:DMG: }, - [1646211062.546218][2190:2190] CHIP:DMG: - [1646211062.546243][2190:2190] CHIP:DMG: ], - [1646211062.546274][2190:2190] CHIP:DMG: - [1646211062.546297][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646211062.546320][2190:2190] CHIP:DMG: }, + [1657911543.960120][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911543.960161][2977:2977] CHIP:DMG: { + [1657911543.960184][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911543.960211][2977:2977] CHIP:DMG: timedRequest = false, + [1657911543.960236][2977:2977] CHIP:DMG: InvokeRequests = + [1657911543.960276][2977:2977] CHIP:DMG: [ + [1657911543.960300][2977:2977] CHIP:DMG: CommandDataIB = + [1657911543.960363][2977:2977] CHIP:DMG: { + [1657911543.960393][2977:2977] CHIP:DMG: CommandPathIB = + [1657911543.960422][2977:2977] CHIP:DMG: { + [1657911543.960452][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911543.960483][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911543.960513][2977:2977] CHIP:DMG: CommandId = 0x4, + [1657911543.960541][2977:2977] CHIP:DMG: }, + [1657911543.960571][2977:2977] CHIP:DMG: + [1657911543.960598][2977:2977] CHIP:DMG: CommandFields = + [1657911543.960626][2977:2977] CHIP:DMG: { + [1657911543.960682][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911543.960719][2977:2977] CHIP:DMG: 0x1 = 10, + [1657911543.960749][2977:2977] CHIP:DMG: 0x2 = 0, + [1657911543.960779][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911543.960809][2977:2977] CHIP:DMG: }, + [1657911543.960836][2977:2977] CHIP:DMG: }, + [1657911543.960866][2977:2977] CHIP:DMG: + [1657911543.960890][2977:2977] CHIP:DMG: ], + [1657911543.960921][2977:2977] CHIP:DMG: + [1657911543.960945][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911543.960968][2977:2977] CHIP:DMG: }, + [1657911543.961080][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911543.961124][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911543.961152][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0004 disabled: true - label: "DUT reads CurrentSaturation attribute from TH several Times." PICS: CC.C.A0001 verification: | ./chip-tool colorcontrol read current-saturation 1 1 - [1646210970.309403][2190:2190] CHIP:IM: Received Read request - [1646210970.309465][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210970.309495][2190:2190] CHIP:DMG: { - [1646210970.309514][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210970.309541][2190:2190] CHIP:DMG: [ - [1646210970.309567][2190:2190] CHIP:DMG: AttributePathIB = - [1646210970.309599][2190:2190] CHIP:DMG: { - [1646210970.309629][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210970.309664][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210970.309691][2190:2190] CHIP:DMG: Attribute = 0x0000_0001, - [1646210970.309720][2190:2190] CHIP:DMG: } - [1646210970.309750][2190:2190] CHIP:DMG: - [1646210970.309779][2190:2190] CHIP:DMG: ], - [1646210970.309815][2190:2190] CHIP:DMG: - [1646210970.309844][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210970.309871][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210970.309892][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911563.694872][2977:2977] CHIP:IM: Received Read request + [1657911563.694955][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911563.694985][2977:2977] CHIP:DMG: { + [1657911563.695007][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911563.695033][2977:2977] CHIP:DMG: [ + [1657911563.695057][2977:2977] CHIP:DMG: AttributePathIB = + [1657911563.695091][2977:2977] CHIP:DMG: { + [1657911563.695119][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911563.695151][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911563.695183][2977:2977] CHIP:DMG: Attribute = 0x0000_0001, + [1657911563.695213][2977:2977] CHIP:DMG: } + [1657911563.695241][2977:2977] CHIP:DMG: + [1657911563.695270][2977:2977] CHIP:DMG: ], + [1657911563.695298][2977:2977] CHIP:DMG: + [1657911563.695325][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911563.695350][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911563.695373][2977:2977] CHIP:DMG: }, + [1657911563.695452][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911563.695560][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911563.695595][2977:2977] CHIP:DMG: Cluster 300, Attribute 1 is dirty + [1657911563.695617][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) + [1657911563.695646][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911563.695681][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911563.695741][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends StepSaturation command to TH" PICS: CC.C.C05.Rsp verification: | ./chip-tool colorcontrol step-saturation 1 10 200 0 0 1 1 - [1646211149.169696][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646211149.169731][2190:2190] CHIP:DMG: { - [1646211149.169757][2190:2190] CHIP:DMG: suppressResponse = false, - [1646211149.169788][2190:2190] CHIP:DMG: timedRequest = false, - [1646211149.169816][2190:2190] CHIP:DMG: InvokeRequests = - [1646211149.169852][2190:2190] CHIP:DMG: [ - [1646211149.169879][2190:2190] CHIP:DMG: CommandDataIB = - [1646211149.169914][2190:2190] CHIP:DMG: { - [1646211149.169943][2190:2190] CHIP:DMG: CommandPathIB = - [1646211149.169979][2190:2190] CHIP:DMG: { - [1646211149.170014][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646211149.170055][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646211149.170095][2190:2190] CHIP:DMG: CommandId = 0x5, - [1646211149.170129][2190:2190] CHIP:DMG: }, - [1646211149.170165][2190:2190] CHIP:DMG: - [1646211149.170196][2190:2190] CHIP:DMG: CommandData = - [1646211149.170234][2190:2190] CHIP:DMG: { - [1646211149.170269][2190:2190] CHIP:DMG: 0x0 = 1, - [1646211149.170310][2190:2190] CHIP:DMG: 0x1 = 10, - [1646211149.170344][2190:2190] CHIP:DMG: 0x2 = 200, - [1646211149.170379][2190:2190] CHIP:DMG: 0x3 = 0, - [1646211149.170409][2190:2190] CHIP:DMG: 0x4 = 0, - [1646211149.170451][2190:2190] CHIP:DMG: }, - [1646211149.170481][2190:2190] CHIP:DMG: }, - [1646211149.170516][2190:2190] CHIP:DMG: - [1646211149.170542][2190:2190] CHIP:DMG: ], - [1646211149.170576][2190:2190] CHIP:DMG: - [1646211149.170603][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646211149.170629][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911581.077515][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911581.077553][2977:2977] CHIP:DMG: { + [1657911581.077584][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911581.077621][2977:2977] CHIP:DMG: timedRequest = false, + [1657911581.077654][2977:2977] CHIP:DMG: InvokeRequests = + [1657911581.077698][2977:2977] CHIP:DMG: [ + [1657911581.077731][2977:2977] CHIP:DMG: CommandDataIB = + [1657911581.077768][2977:2977] CHIP:DMG: { + [1657911581.077802][2977:2977] CHIP:DMG: CommandPathIB = + [1657911581.077845][2977:2977] CHIP:DMG: { + [1657911581.077888][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911581.077932][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911581.077976][2977:2977] CHIP:DMG: CommandId = 0x5, + [1657911581.078018][2977:2977] CHIP:DMG: }, + [1657911581.078061][2977:2977] CHIP:DMG: + [1657911581.078098][2977:2977] CHIP:DMG: CommandFields = + [1657911581.078140][2977:2977] CHIP:DMG: { + [1657911581.078182][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911581.078227][2977:2977] CHIP:DMG: 0x1 = 10, + [1657911581.078272][2977:2977] CHIP:DMG: 0x2 = 200, + [1657911581.078317][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911581.078361][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911581.078408][2977:2977] CHIP:DMG: }, + [1657911581.078446][2977:2977] CHIP:DMG: }, + [1657911581.078487][2977:2977] CHIP:DMG: + [1657911581.078519][2977:2977] CHIP:DMG: ], + [1657911581.078560][2977:2977] CHIP:DMG: + [1657911581.078592][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911581.078623][2977:2977] CHIP:DMG: }, + [1657911581.078710][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911581.078757][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911581.078794][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0005 disabled: true - label: @@ -185,23 +217,32 @@ tests: PICS: CC.C.A0001 verification: | ./chip-tool colorcontrol read current-saturation 1 1 - [1646210970.309403][2190:2190] CHIP:IM: Received Read request - [1646210970.309465][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210970.309495][2190:2190] CHIP:DMG: { - [1646210970.309514][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210970.309541][2190:2190] CHIP:DMG: [ - [1646210970.309567][2190:2190] CHIP:DMG: AttributePathIB = - [1646210970.309599][2190:2190] CHIP:DMG: { - [1646210970.309629][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210970.309664][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210970.309691][2190:2190] CHIP:DMG: Attribute = 0x0000_0001, - [1646210970.309720][2190:2190] CHIP:DMG: } - [1646210970.309750][2190:2190] CHIP:DMG: - [1646210970.309779][2190:2190] CHIP:DMG: ], - [1646210970.309815][2190:2190] CHIP:DMG: - [1646210970.309844][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210970.309871][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210970.309892][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + [1657911602.223413][2977:2977] CHIP:IM: Received Read request + [1657911602.223554][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911602.223609][2977:2977] CHIP:DMG: { + [1657911602.223655][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911602.223708][2977:2977] CHIP:DMG: [ + [1657911602.223758][2977:2977] CHIP:DMG: AttributePathIB = + [1657911602.223828][2977:2977] CHIP:DMG: { + [1657911602.223884][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911602.223949][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911602.224000][2977:2977] CHIP:DMG: Attribute = 0x0000_0001, + [1657911602.224027][2977:2977] CHIP:DMG: } + [1657911602.224078][2977:2977] CHIP:DMG: + [1657911602.224162][2977:2977] CHIP:DMG: ], + [1657911602.224193][2977:2977] CHIP:DMG: + [1657911602.224219][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911602.224244][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911602.224267][2977:2977] CHIP:DMG: }, + [1657911602.224346][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911602.224442][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911602.224471][2977:2977] CHIP:DMG: Cluster 300, Attribute 1 is dirty + [1657911602.224492][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) + [1657911602.224520][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911602.224553][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911602.224608][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends MoveToHueAndSaturation command to TH." @@ -209,20 +250,72 @@ tests: verification: | ./chip-tool colorcontrol move-to-hue-and-saturation 100 200 200 0 0 1 1 - [1649664783.987760][8866:8871] CHIP:DMG: StatusIB = - [1649664783.987823][8866:8871] CHIP:DMG: { - [1649664783.987888][8866:8871] CHIP:DMG: status = 0x00 (SUCCESS), - [1649664783.987943][8866:8871] CHIP:DMG: }, + Verify in DUT as client side log: + + [1657911631.586168][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911631.586198][2977:2977] CHIP:DMG: { + [1657911631.586222][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911631.586252][2977:2977] CHIP:DMG: timedRequest = false, + [1657911631.586278][2977:2977] CHIP:DMG: InvokeRequests = + [1657911631.586312][2977:2977] CHIP:DMG: [ + [1657911631.586338][2977:2977] CHIP:DMG: CommandDataIB = + [1657911631.586370][2977:2977] CHIP:DMG: { + [1657911631.586399][2977:2977] CHIP:DMG: CommandPathIB = + [1657911631.586433][2977:2977] CHIP:DMG: { + [1657911631.586466][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911631.586502][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911631.586539][2977:2977] CHIP:DMG: CommandId = 0x6, + [1657911631.586570][2977:2977] CHIP:DMG: }, + [1657911631.586605][2977:2977] CHIP:DMG: + [1657911631.586634][2977:2977] CHIP:DMG: CommandFields = + [1657911631.586667][2977:2977] CHIP:DMG: { + [1657911631.586701][2977:2977] CHIP:DMG: 0x0 = 100, + [1657911631.586736][2977:2977] CHIP:DMG: 0x1 = 200, + [1657911631.586775][2977:2977] CHIP:DMG: 0x2 = 200, + [1657911631.586809][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911631.586844][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911631.586874][2977:2977] CHIP:DMG: }, + [1657911631.586903][2977:2977] CHIP:DMG: }, + [1657911631.586938][2977:2977] CHIP:DMG: + [1657911631.586962][2977:2977] CHIP:DMG: ], + [1657911631.586995][2977:2977] CHIP:DMG: + [1657911631.587021][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911631.587045][2977:2977] CHIP:DMG: }, + [1657911631.587119][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911631.587158][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911631.587186][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0006 disabled: true - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH." PICS: CC.C.A0000 verification: | ./chip-tool colorcontrol read current-hue 1 1 + Verify in DUT as client side log: - [1649664795.474974][8872:8877] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0000 DataVersion: 4087328778 - [1649664795.475051][8872:8877] CHIP:TOO: CurrentHue: 29 - [1649664795.475150][8872:8877] CHIP:EM: Sending Standalone Ack for MessageCounter:4578193 on exchange 26597i + [1657911655.180421][2977:2977] CHIP:IM: Received Read request + [1657911655.180507][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911655.180535][2977:2977] CHIP:DMG: { + [1657911655.180568][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911655.180595][2977:2977] CHIP:DMG: [ + [1657911655.180619][2977:2977] CHIP:DMG: AttributePathIB = + [1657911655.180646][2977:2977] CHIP:DMG: { + [1657911655.180687][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911655.180726][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911655.180762][2977:2977] CHIP:DMG: Attribute = 0x0000_0000, + [1657911655.180792][2977:2977] CHIP:DMG: } + [1657911655.180830][2977:2977] CHIP:DMG: + [1657911655.180855][2977:2977] CHIP:DMG: ], + [1657911655.180885][2977:2977] CHIP:DMG: + [1657911655.180924][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911655.180950][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911655.180973][2977:2977] CHIP:DMG: }, + [1657911655.181063][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911655.181190][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911655.181223][2977:2977] CHIP:DMG: Cluster 300, Attribute 0 is dirty + [1657911655.181255][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1657911655.181284][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911655.181318][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911655.181390][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -230,53 +323,68 @@ tests: PICS: CC.C.A0001 verification: | ./chip-tool colorcontrol read current-saturation 1 1 - [1646210970.309403][2190:2190] CHIP:IM: Received Read request - [1646210970.309465][2190:2190] CHIP:DMG: ReadRequestMessage = - [1646210970.309495][2190:2190] CHIP:DMG: { - [1646210970.309514][2190:2190] CHIP:DMG: AttributePathIBs = - [1646210970.309541][2190:2190] CHIP:DMG: [ - [1646210970.309567][2190:2190] CHIP:DMG: AttributePathIB = - [1646210970.309599][2190:2190] CHIP:DMG: { - [1646210970.309629][2190:2190] CHIP:DMG: Endpoint = 0x1, - [1646210970.309664][2190:2190] CHIP:DMG: Cluster = 0x300, - [1646210970.309691][2190:2190] CHIP:DMG: Attribute = 0x0000_0001, - [1646210970.309720][2190:2190] CHIP:DMG: } - [1646210970.309750][2190:2190] CHIP:DMG: - [1646210970.309779][2190:2190] CHIP:DMG: ], - [1646210970.309815][2190:2190] CHIP:DMG: - [1646210970.309844][2190:2190] CHIP:DMG: isFabricFiltered = false, - [1646210970.309871][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646210970.309892][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + + [1657911674.594218][2977:2977] CHIP:IM: Received Read request + [1657911674.594301][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911674.594329][2977:2977] CHIP:DMG: { + [1657911674.594352][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911674.594379][2977:2977] CHIP:DMG: [ + [1657911674.594403][2977:2977] CHIP:DMG: AttributePathIB = + [1657911674.594460][2977:2977] CHIP:DMG: { + [1657911674.594491][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911674.594529][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911674.594562][2977:2977] CHIP:DMG: Attribute = 0x0000_0001, + [1657911674.594593][2977:2977] CHIP:DMG: } + [1657911674.594626][2977:2977] CHIP:DMG: + [1657911674.594653][2977:2977] CHIP:DMG: ], + [1657911674.594682][2977:2977] CHIP:DMG: + [1657911674.594710][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911674.594736][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911674.594760][2977:2977] CHIP:DMG: }, + [1657911674.594840][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911674.594955][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911674.594988][2977:2977] CHIP:DMG: Cluster 300, Attribute 1 is dirty + [1657911674.595010][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) + [1657911674.595039][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911674.595073][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911674.595133][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends StopMoveStep command to TH." PICS: CC.C.C47.Rsp verification: | ./chip-tool colorcontrol stop-move-step 0 0 1 1 - [1646211221.659999][2190:2190] CHIP:DMG: InvokeRequestMessage = - [1646211221.660038][2190:2190] CHIP:DMG: { - [1646211221.660076][2190:2190] CHIP:DMG: suppressResponse = false, - [1646211221.660110][2190:2190] CHIP:DMG: timedRequest = false, - [1646211221.660138][2190:2190] CHIP:DMG: InvokeRequests = - [1646211221.660174][2190:2190] CHIP:DMG: [ - [1646211221.660199][2190:2190] CHIP:DMG: CommandDataIB = - [1646211221.660234][2190:2190] CHIP:DMG: { - [1646211221.660266][2190:2190] CHIP:DMG: CommandPathIB = - [1646211221.660301][2190:2190] CHIP:DMG: { - [1646211221.660342][2190:2190] CHIP:DMG: EndpointId = 0x1, - [1646211221.660381][2190:2190] CHIP:DMG: ClusterId = 0x300, - [1646211221.660420][2190:2190] CHIP:DMG: CommandId = 0x47, - [1646211221.660460][2190:2190] CHIP:DMG: }, - [1646211221.660502][2190:2190] CHIP:DMG: - [1646211221.660535][2190:2190] CHIP:DMG: CommandData = - [1646211221.660572][2190:2190] CHIP:DMG: { - [1646211221.660612][2190:2190] CHIP:DMG: 0x0 = 0, - [1646211221.660652][2190:2190] CHIP:DMG: 0x1 = 0, - [1646211221.660691][2190:2190] CHIP:DMG: }, - [1646211221.660724][2190:2190] CHIP:DMG: }, - [1646211221.660759][2190:2190] CHIP:DMG: - [1646211221.660788][2190:2190] CHIP:DMG: ], - [1646211221.660823][2190:2190] CHIP:DMG: - [1646211221.660849][2190:2190] CHIP:DMG: InteractionModelRevision = 1 - [1646211221.660877][2190:2190] CHIP:DMG: }, + + Verify in DUT as client side log: + [1657911698.270231][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911698.270280][2977:2977] CHIP:DMG: { + [1657911698.270321][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911698.270370][2977:2977] CHIP:DMG: timedRequest = false, + [1657911698.270414][2977:2977] CHIP:DMG: InvokeRequests = + [1657911698.270470][2977:2977] CHIP:DMG: [ + [1657911698.270554][2977:2977] CHIP:DMG: CommandDataIB = + [1657911698.270583][2977:2977] CHIP:DMG: { + [1657911698.270607][2977:2977] CHIP:DMG: CommandPathIB = + [1657911698.270638][2977:2977] CHIP:DMG: { + [1657911698.270732][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911698.270765][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911698.270797][2977:2977] CHIP:DMG: CommandId = 0x47, + [1657911698.270852][2977:2977] CHIP:DMG: }, + [1657911698.270888][2977:2977] CHIP:DMG: + [1657911698.270916][2977:2977] CHIP:DMG: CommandFields = + [1657911698.270947][2977:2977] CHIP:DMG: { + [1657911698.270979][2977:2977] CHIP:DMG: 0x0 = 0, + [1657911698.271012][2977:2977] CHIP:DMG: 0x1 = 0, + [1657911698.271044][2977:2977] CHIP:DMG: }, + [1657911698.271071][2977:2977] CHIP:DMG: }, + [1657911698.271103][2977:2977] CHIP:DMG: + [1657911698.271126][2977:2977] CHIP:DMG: ], + [1657911698.271156][2977:2977] CHIP:DMG: + [1657911698.271180][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911698.271203][2977:2977] CHIP:DMG: }, + [1657911698.271270][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911698.271337][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911698.271365][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml index 5860464466d61a..512fc6ac2965ac 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml @@ -39,8 +39,8 @@ tests: response: value: 1 - - label: "Check current x attribute value matched before any change" - PICS: CC.S.A0003 + - label: "TH reads CurrentX attribute from DUT" + PICS: CC.S.F03 && CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: @@ -49,8 +49,8 @@ tests: minValue: 0 maxValue: 65279 - - label: "Check current y attribute value matched before any change" - PICS: CC.S.A0004 + - label: "TH reads CurrentY attribute from DUT" + PICS: CC.S.F03 && CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: @@ -59,8 +59,8 @@ tests: minValue: 0 maxValue: 65279 - - label: "Move to Color command" - PICS: CC.S.C07.Rsp + - label: "TH sends MoveToColor command to DUT" + PICS: CC.S.F03 && CC.S.C07.Rsp command: "MoveToColor" arguments: values: @@ -69,39 +69,37 @@ tests: - name: "colorY" value: 300 - name: "TransitionTime" - value: 20 + value: 10 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 20ms" + - label: "Wait 1500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 20 + value: 1500 - - label: - "Check current x attribute value matched the value sent by the last - command" - PICS: CC.S.A0003 + - label: "Over TransitionTime, TH reads CurrentX attribute from DUT" + PICS: CC.S.F03 && CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: + value: 200 constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: - "Check current y attribute value matched the value sent by the last - command" - PICS: CC.S.A0004 + - label: "Over TransitionTime, TH reads CurrentY attribute from DUT" + PICS: CC.S.F03 && CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: + value: 300 constraints: type: uint16 minValue: 0 diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml index f49b03ecf7ffd4..fb65dab348c3ec 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml @@ -39,9 +39,9 @@ tests: response: value: 1 - - label: "Check current x attribute value matched before any change" + - label: "TH reads CurrentX attribute from DUT" command: "readAttribute" - PICS: CC.S.A0003 + PICS: CC.S.F03 && CC.S.A0003 attribute: "CurrentX" response: constraints: @@ -49,9 +49,9 @@ tests: minValue: 0 maxValue: 65279 - - label: "Check current y attribute value matched before any change" + - label: "TH reads CurrentY attribute from DUT" command: "readAttribute" - PICS: CC.S.A0004 + PICS: CC.S.F03 && CC.S.A0004 attribute: "CurrentY" response: constraints: @@ -59,9 +59,9 @@ tests: minValue: 0 maxValue: 65279 - - label: "Move Color command" + - label: "TH sends MoveColor command to DUT" command: "MoveColor" - PICS: CC.S.C08.Rsp + PICS: CC.S.F03 && CC.S.C08.Rsp arguments: values: - name: "rateX" @@ -73,18 +73,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 150ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 150 + value: 1000 - - label: - "Check current x attribute value matched the value sent by the last - command" - PICS: CC.S.A0003 + - label: "TH reads CurrentX attribute from DUT" + PICS: CC.S.F03 && CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: @@ -93,10 +91,8 @@ tests: minValue: 0 maxValue: 65279 - - label: - "Check current y attribute value matched the value sent by the last - command" - PICS: CC.S.A0004 + - label: "TH reads CurrentY attribute from DUT" + PICS: CC.S.F03 && CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: @@ -105,8 +101,8 @@ tests: minValue: 0 maxValue: 65279 - - label: "Stop Move Step command" - PICS: CC.S.C47.Rsp + - label: "TH sends StopMoveStep command to DUT" + PICS: CC.S.F03 && CC.S.C47.Rsp command: "StopMoveStep" arguments: values: @@ -115,10 +111,8 @@ tests: - name: "OptionsOverride" value: 0 - - label: - "Check current x attribute value matched the value sent by the last - command" - PICS: CC.S.A0003 + - label: "TH reads CurrentX attribute from DUT" + PICS: CC.S.F03 && CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: @@ -127,10 +121,8 @@ tests: minValue: 0 maxValue: 65279 - - label: - "Check current y attribute value matched the value sent by the last - command" - PICS: CC.S.A0004 + - label: "TH reads CurrentY attribute from DUT" + PICS: CC.S.F03 && CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml index 0a7b2fe7027b09..0af6ac0f279197 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml @@ -39,9 +39,9 @@ tests: response: value: 1 - - label: "Check current x attribute value matched before any change" + - label: "TH reads CurrentX attribute from DUT" command: "readAttribute" - PICS: CC.S.A0003 + PICS: CC.S.F03 && CC.S.A0003 attribute: "CurrentX" response: constraints: @@ -49,9 +49,9 @@ tests: minValue: 0 maxValue: 65279 - - label: "Check current y attribute value matched before any change" + - label: "TH reads CurrentY attribute from DUT" command: "readAttribute" - PICS: CC.S.A0004 + PICS: CC.S.F03 && CC.S.A0004 attribute: "CurrentY" response: constraints: @@ -59,9 +59,9 @@ tests: minValue: 0 maxValue: 65279 - - label: "Step Color command" + - label: "TH sends StepColor command to DUT" command: "StepColor" - PICS: CC.S.C09.Rsp + PICS: CC.S.F03 && CC.S.C09.Rsp arguments: values: - name: "stepX" @@ -69,24 +69,22 @@ tests: - name: "stepY" value: 20 - name: "TransitionTime" - value: 50 + value: 10 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 50ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 50 + value: 1000 - - label: - "Check current x attribute value matched the value sent by the last - command" - PICS: CC.S.A0003 + - label: "Over TransitionTime, TH reads CurrentX attribute from DUT" + PICS: CC.S.F03 && CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: @@ -95,10 +93,8 @@ tests: minValue: 0 maxValue: 65279 - - label: - "Check current y attribute value matched the value sent by the last - command" - PICS: CC.S.A0004 + - label: "Over TransitionTime, TH reads CurrentY attribute from DUT" + PICS: CC.S.F03 && CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml index 7fb9f03d87129d..d56918da179840 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml @@ -27,39 +27,39 @@ tests: verification: | ./chip-tool colorcontrol move-to-color 400 500 300 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099701.285127][4162:4167] CHIP:DMG: InvokeResponseMessage = - [1657099701.285157][4162:4167] CHIP:DMG: { - [1657099701.285185][4162:4167] CHIP:DMG: suppressResponse = false, - [1657099701.285213][4162:4167] CHIP:DMG: InvokeResponseIBs = - [1657099701.285249][4162:4167] CHIP:DMG: [ - [1657099701.285277][4162:4167] CHIP:DMG: InvokeResponseIB = - [1657099701.285314][4162:4167] CHIP:DMG: { - [1657099701.285343][4162:4167] CHIP:DMG: CommandStatusIB = - [1657099701.285383][4162:4167] CHIP:DMG: { - [1657099701.285418][4162:4167] CHIP:DMG: CommandPathIB = - [1657099701.285456][4162:4167] CHIP:DMG: { - [1657099701.285499][4162:4167] CHIP:DMG: EndpointId = 0x1, - [1657099701.285540][4162:4167] CHIP:DMG: ClusterId = 0x300, - [1657099701.285579][4162:4167] CHIP:DMG: CommandId = 0x7, - [1657099701.285617][4162:4167] CHIP:DMG: }, - [1657099701.285659][4162:4167] CHIP:DMG: - [1657099701.285693][4162:4167] CHIP:DMG: StatusIB = - [1657099701.285731][4162:4167] CHIP:DMG: { - [1657099701.285769][4162:4167] CHIP:DMG: status = 0x00 (SUCCESS), - [1657099701.285811][4162:4167] CHIP:DMG: }, - [1657099701.285848][4162:4167] CHIP:DMG: - [1657099701.285880][4162:4167] CHIP:DMG: }, - [1657099701.285922][4162:4167] CHIP:DMG: - [1657099701.285952][4162:4167] CHIP:DMG: }, - [1657099701.285987][4162:4167] CHIP:DMG: - [1657099701.286013][4162:4167] CHIP:DMG: ], - [1657099701.286047][4162:4167] CHIP:DMG: - [1657099701.286074][4162:4167] CHIP:DMG: InteractionModelRevision = 1 - [1657099701.286100][4162:4167] CHIP:DMG: }, - [1657099701.286166][4162:4167] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0007 Status=0x0 - [1657099701.286211][4162:4167] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657911753.687856][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911753.687913][2977:2977] CHIP:DMG: { + [1657911753.687961][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911753.688017][2977:2977] CHIP:DMG: timedRequest = false, + [1657911753.688115][2977:2977] CHIP:DMG: InvokeRequests = + [1657911753.688185][2977:2977] CHIP:DMG: [ + [1657911753.688236][2977:2977] CHIP:DMG: CommandDataIB = + [1657911753.688294][2977:2977] CHIP:DMG: { + [1657911753.688347][2977:2977] CHIP:DMG: CommandPathIB = + [1657911753.688414][2977:2977] CHIP:DMG: { + [1657911753.688479][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911753.688544][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911753.688610][2977:2977] CHIP:DMG: CommandId = 0x7, + [1657911753.688673][2977:2977] CHIP:DMG: }, + [1657911753.688740][2977:2977] CHIP:DMG: + [1657911753.688800][2977:2977] CHIP:DMG: CommandFields = + [1657911753.688858][2977:2977] CHIP:DMG: { + [1657911753.688925][2977:2977] CHIP:DMG: 0x0 = 400, + [1657911753.688995][2977:2977] CHIP:DMG: 0x1 = 500, + [1657911753.689048][2977:2977] CHIP:DMG: 0x2 = 300, + [1657911753.689080][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911753.689113][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911753.689198][2977:2977] CHIP:DMG: }, + [1657911753.689228][2977:2977] CHIP:DMG: }, + [1657911753.689262][2977:2977] CHIP:DMG: + [1657911753.689285][2977:2977] CHIP:DMG: ], + [1657911753.689316][2977:2977] CHIP:DMG: + [1657911753.689339][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911753.689362][2977:2977] CHIP:DMG: }, + [1657911753.689432][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911753.689469][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911753.689496][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0007 disabled: true - label: "Over TransitionTime, DUT reads CurrentX attribute from TH." @@ -67,10 +67,31 @@ tests: verification: | ./chip-tool colorcontrol read current-x 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099727.553289][4170:4175] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0003 DataVersion: 1806818891 - [1657099727.553359][4170:4175] CHIP:TOO: CurrentX: 3590 + Verify in DUT as client side log: + [1657911771.965429][2977:2977] CHIP:IM: Received Read request + [1657911771.965509][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911771.965536][2977:2977] CHIP:DMG: { + [1657911771.965557][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911771.965583][2977:2977] CHIP:DMG: [ + [1657911771.965606][2977:2977] CHIP:DMG: AttributePathIB = + [1657911771.965631][2977:2977] CHIP:DMG: { + [1657911771.965657][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911771.965695][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911771.965726][2977:2977] CHIP:DMG: Attribute = 0x0000_0003, + [1657911771.965758][2977:2977] CHIP:DMG: } + [1657911771.965786][2977:2977] CHIP:DMG: + [1657911771.965811][2977:2977] CHIP:DMG: ], + [1657911771.965838][2977:2977] CHIP:DMG: + [1657911771.965864][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911771.965889][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911771.965912][2977:2977] CHIP:DMG: }, + [1657911771.965989][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911771.966084][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911771.966114][2977:2977] CHIP:DMG: Cluster 300, Attribute 3 is dirty + [1657911771.966136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) + [1657911771.966164][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911771.966196][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911771.966254][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "Over TransitionTime, DUT reads CurrentY attribute from TH." @@ -78,10 +99,31 @@ tests: verification: | ./chip-tool colorcontrol read current-y 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099748.490709][4176:4181] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0004 DataVersion: 1806819047 - [1657099748.490778][4176:4181] CHIP:TOO: CurrentY: 500 + Verify in DUT as client side log: + [1657911790.232595][2977:2977] CHIP:IM: Received Read request + [1657911790.232674][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911790.232700][2977:2977] CHIP:DMG: { + [1657911790.232723][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911790.232756][2977:2977] CHIP:DMG: [ + [1657911790.232780][2977:2977] CHIP:DMG: AttributePathIB = + [1657911790.232807][2977:2977] CHIP:DMG: { + [1657911790.232834][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911790.232865][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911790.232898][2977:2977] CHIP:DMG: Attribute = 0x0000_0004, + [1657911790.232931][2977:2977] CHIP:DMG: } + [1657911790.232960][2977:2977] CHIP:DMG: + [1657911790.232985][2977:2977] CHIP:DMG: ], + [1657911790.233012][2977:2977] CHIP:DMG: + [1657911790.233038][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911790.233063][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911790.233086][2977:2977] CHIP:DMG: }, + [1657911790.233162][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911790.233249][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911790.233279][2977:2977] CHIP:DMG: Cluster 300, Attribute 4 is dirty + [1657911790.233300][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0004 (expanded=0) + [1657911790.233328][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911790.233360][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911790.233415][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends MoveColor command to TH" @@ -89,39 +131,39 @@ tests: verification: | ./chip-tool colorcontrol move-color 10 20 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099771.368436][4184:4189] CHIP:DMG: InvokeResponseMessage = - [1657099771.368464][4184:4189] CHIP:DMG: { - [1657099771.368491][4184:4189] CHIP:DMG: suppressResponse = false, - [1657099771.368519][4184:4189] CHIP:DMG: InvokeResponseIBs = - [1657099771.368555][4184:4189] CHIP:DMG: [ - [1657099771.368583][4184:4189] CHIP:DMG: InvokeResponseIB = - [1657099771.368620][4184:4189] CHIP:DMG: { - [1657099771.368649][4184:4189] CHIP:DMG: CommandStatusIB = - [1657099771.368688][4184:4189] CHIP:DMG: { - [1657099771.368722][4184:4189] CHIP:DMG: CommandPathIB = - [1657099771.368763][4184:4189] CHIP:DMG: { - [1657099771.368803][4184:4189] CHIP:DMG: EndpointId = 0x1, - [1657099771.368843][4184:4189] CHIP:DMG: ClusterId = 0x300, - [1657099771.368885][4184:4189] CHIP:DMG: CommandId = 0x8, - [1657099771.368922][4184:4189] CHIP:DMG: }, - [1657099771.368965][4184:4189] CHIP:DMG: - [1657099771.369003][4184:4189] CHIP:DMG: StatusIB = - [1657099771.369041][4184:4189] CHIP:DMG: { - [1657099771.369079][4184:4189] CHIP:DMG: status = 0x00 (SUCCESS), - [1657099771.369115][4184:4189] CHIP:DMG: }, - [1657099771.369154][4184:4189] CHIP:DMG: - [1657099771.369187][4184:4189] CHIP:DMG: }, - [1657099771.369225][4184:4189] CHIP:DMG: - [1657099771.369254][4184:4189] CHIP:DMG: }, - [1657099771.369288][4184:4189] CHIP:DMG: - [1657099771.369315][4184:4189] CHIP:DMG: ], - [1657099771.369349][4184:4189] CHIP:DMG: - [1657099771.369376][4184:4189] CHIP:DMG: InteractionModelRevision = 1 - [1657099771.369403][4184:4189] CHIP:DMG: }, - [1657099771.369469][4184:4189] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0008 Status=0x0 - [1657099771.369514][4184:4189] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + + [1657911814.839535][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911814.839586][2977:2977] CHIP:DMG: { + [1657911814.839611][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911814.839640][2977:2977] CHIP:DMG: timedRequest = false, + [1657911814.839666][2977:2977] CHIP:DMG: InvokeRequests = + [1657911814.839762][2977:2977] CHIP:DMG: [ + [1657911814.839792][2977:2977] CHIP:DMG: CommandDataIB = + [1657911814.839822][2977:2977] CHIP:DMG: { + [1657911814.839849][2977:2977] CHIP:DMG: CommandPathIB = + [1657911814.839882][2977:2977] CHIP:DMG: { + [1657911814.839914][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911814.839952][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911814.839987][2977:2977] CHIP:DMG: CommandId = 0x8, + [1657911814.840019][2977:2977] CHIP:DMG: }, + [1657911814.840074][2977:2977] CHIP:DMG: + [1657911814.840105][2977:2977] CHIP:DMG: CommandFields = + [1657911814.840136][2977:2977] CHIP:DMG: { + [1657911814.840172][2977:2977] CHIP:DMG: 0x0 = 10, + [1657911814.840207][2977:2977] CHIP:DMG: 0x1 = 20, + [1657911814.840239][2977:2977] CHIP:DMG: 0x2 = 0, + [1657911814.840273][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911814.840310][2977:2977] CHIP:DMG: }, + [1657911814.840340][2977:2977] CHIP:DMG: }, + [1657911814.840374][2977:2977] CHIP:DMG: + [1657911814.840399][2977:2977] CHIP:DMG: ], + [1657911814.840432][2977:2977] CHIP:DMG: + [1657911814.840457][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911814.840482][2977:2977] CHIP:DMG: }, + [1657911814.840556][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911814.840596][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911814.840624][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0008 disabled: true - label: "DUT reads CurrentX attribute from TH." @@ -129,10 +171,31 @@ tests: verification: | ./chip-tool colorcontrol read current-x 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099796.765576][4191:4196] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0003 DataVersion: 1806820056 - [1657099796.765663][4191:4196] CHIP:TOO: CurrentX: 652 + Verify in DUT as client side log: + [1657911771.965429][2977:2977] CHIP:IM: Received Read request + [1657911771.965509][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911771.965536][2977:2977] CHIP:DMG: { + [1657911771.965557][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911771.965583][2977:2977] CHIP:DMG: [ + [1657911771.965606][2977:2977] CHIP:DMG: AttributePathIB = + [1657911771.965631][2977:2977] CHIP:DMG: { + [1657911771.965657][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911771.965695][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911771.965726][2977:2977] CHIP:DMG: Attribute = 0x0000_0003, + [1657911771.965758][2977:2977] CHIP:DMG: } + [1657911771.965786][2977:2977] CHIP:DMG: + [1657911771.965811][2977:2977] CHIP:DMG: ], + [1657911771.965838][2977:2977] CHIP:DMG: + [1657911771.965864][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911771.965889][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911771.965912][2977:2977] CHIP:DMG: }, + [1657911771.965989][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911771.966084][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911771.966114][2977:2977] CHIP:DMG: Cluster 300, Attribute 3 is dirty + [1657911771.966136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) + [1657911771.966164][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911771.966196][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911771.966254][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT reads CurrentY attribute from TH." @@ -140,10 +203,31 @@ tests: verification: | ./chip-tool colorcontrol read current-y 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099818.536813][4199:4204] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0004 DataVersion: 1806820924 - [1657099818.536886][4199:4204] CHIP:TOO: CurrentY: 1439 + Verify in DUT as client side log: + [1657911790.232595][2977:2977] CHIP:IM: Received Read request + [1657911790.232674][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911790.232700][2977:2977] CHIP:DMG: { + [1657911790.232723][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911790.232756][2977:2977] CHIP:DMG: [ + [1657911790.232780][2977:2977] CHIP:DMG: AttributePathIB = + [1657911790.232807][2977:2977] CHIP:DMG: { + [1657911790.232834][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911790.232865][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911790.232898][2977:2977] CHIP:DMG: Attribute = 0x0000_0004, + [1657911790.232931][2977:2977] CHIP:DMG: } + [1657911790.232960][2977:2977] CHIP:DMG: + [1657911790.232985][2977:2977] CHIP:DMG: ], + [1657911790.233012][2977:2977] CHIP:DMG: + [1657911790.233038][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911790.233063][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911790.233086][2977:2977] CHIP:DMG: }, + [1657911790.233162][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911790.233249][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911790.233279][2977:2977] CHIP:DMG: Cluster 300, Attribute 4 is dirty + [1657911790.233300][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0004 (expanded=0) + [1657911790.233328][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911790.233360][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911790.233415][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends StepColor command to TH" @@ -151,40 +235,39 @@ tests: verification: | ./chip-tool colorcontrol step-color 100 100 200 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - - [1657099841.988019][4205:4210] CHIP:DMG: InvokeResponseMessage = - [1657099841.988053][4205:4210] CHIP:DMG: { - [1657099841.988084][4205:4210] CHIP:DMG: suppressResponse = false, - [1657099841.988115][4205:4210] CHIP:DMG: InvokeResponseIBs = - [1657099841.988154][4205:4210] CHIP:DMG: [ - [1657099841.988184][4205:4210] CHIP:DMG: InvokeResponseIB = - [1657099841.988225][4205:4210] CHIP:DMG: { - [1657099841.988257][4205:4210] CHIP:DMG: CommandStatusIB = - [1657099841.988300][4205:4210] CHIP:DMG: { - [1657099841.988337][4205:4210] CHIP:DMG: CommandPathIB = - [1657099841.988382][4205:4210] CHIP:DMG: { - [1657099841.988424][4205:4210] CHIP:DMG: EndpointId = 0x1, - [1657099841.988468][4205:4210] CHIP:DMG: ClusterId = 0x300, - [1657099841.988510][4205:4210] CHIP:DMG: CommandId = 0x9, - [1657099841.988549][4205:4210] CHIP:DMG: }, - [1657099841.988592][4205:4210] CHIP:DMG: - [1657099841.988628][4205:4210] CHIP:DMG: StatusIB = - [1657099841.988672][4205:4210] CHIP:DMG: { - [1657099841.988714][4205:4210] CHIP:DMG: status = 0x00 (SUCCESS), - [1657099841.988757][4205:4210] CHIP:DMG: }, - [1657099841.988798][4205:4210] CHIP:DMG: - [1657099841.988833][4205:4210] CHIP:DMG: }, - [1657099841.988872][4205:4210] CHIP:DMG: - [1657099841.988906][4205:4210] CHIP:DMG: }, - [1657099841.988942][4205:4210] CHIP:DMG: - [1657099841.988972][4205:4210] CHIP:DMG: ], - [1657099841.989008][4205:4210] CHIP:DMG: - [1657099841.989037][4205:4210] CHIP:DMG: InteractionModelRevision = 1 - [1657099841.989068][4205:4210] CHIP:DMG: }, - [1657099841.989137][4205:4210] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0009 Status=0x0 - [1657099841.989186][4205:4210] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657911853.249758][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911853.249810][2977:2977] CHIP:DMG: { + [1657911853.249851][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911853.249932][2977:2977] CHIP:DMG: timedRequest = false, + [1657911853.249980][2977:2977] CHIP:DMG: InvokeRequests = + [1657911853.250039][2977:2977] CHIP:DMG: [ + [1657911853.250083][2977:2977] CHIP:DMG: CommandDataIB = + [1657911853.250150][2977:2977] CHIP:DMG: { + [1657911853.250200][2977:2977] CHIP:DMG: CommandPathIB = + [1657911853.250258][2977:2977] CHIP:DMG: { + [1657911853.250335][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911853.250395][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911853.250473][2977:2977] CHIP:DMG: CommandId = 0x9, + [1657911853.250529][2977:2977] CHIP:DMG: }, + [1657911853.250588][2977:2977] CHIP:DMG: + [1657911853.250655][2977:2977] CHIP:DMG: CommandFields = + [1657911853.250717][2977:2977] CHIP:DMG: { + [1657911853.250784][2977:2977] CHIP:DMG: 0x0 = 100, + [1657911853.250857][2977:2977] CHIP:DMG: 0x1 = 100, + [1657911853.250901][2977:2977] CHIP:DMG: 0x2 = 200, + [1657911853.250943][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911853.250976][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911853.251011][2977:2977] CHIP:DMG: }, + [1657911853.251039][2977:2977] CHIP:DMG: }, + [1657911853.251071][2977:2977] CHIP:DMG: + [1657911853.251103][2977:2977] CHIP:DMG: ], + [1657911853.251135][2977:2977] CHIP:DMG: + [1657911853.251159][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911853.251182][2977:2977] CHIP:DMG: }, + [1657911853.251262][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911853.251311][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911853.251340][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0009 disabled: true - label: "Over TransitionTime, DUT reads CurrentX attribute from TH." @@ -192,10 +275,31 @@ tests: verification: | ./chip-tool colorcontrol read current-x 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099868.222275][4211:4216] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0003 DataVersion: 1806822657 - [1657099868.222338][4211:4216] CHIP:TOO: CurrentX: 1202 + Verify in DUT as client side log: + [1657911771.965429][2977:2977] CHIP:IM: Received Read request + [1657911771.965509][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911771.965536][2977:2977] CHIP:DMG: { + [1657911771.965557][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911771.965583][2977:2977] CHIP:DMG: [ + [1657911771.965606][2977:2977] CHIP:DMG: AttributePathIB = + [1657911771.965631][2977:2977] CHIP:DMG: { + [1657911771.965657][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911771.965695][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911771.965726][2977:2977] CHIP:DMG: Attribute = 0x0000_0003, + [1657911771.965758][2977:2977] CHIP:DMG: } + [1657911771.965786][2977:2977] CHIP:DMG: + [1657911771.965811][2977:2977] CHIP:DMG: ], + [1657911771.965838][2977:2977] CHIP:DMG: + [1657911771.965864][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911771.965889][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911771.965912][2977:2977] CHIP:DMG: }, + [1657911771.965989][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911771.966084][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911771.966114][2977:2977] CHIP:DMG: Cluster 300, Attribute 3 is dirty + [1657911771.966136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) + [1657911771.966164][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911771.966196][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911771.966254][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "Over TransitionTime, DUT reads CurrentY attribute from TH." @@ -203,10 +307,31 @@ tests: verification: | ./chip-tool colorcontrol read current-y 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099888.236645][4219:4224] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0004 DataVersion: 1806822657 - [1657099888.236717][4219:4224] CHIP:TOO: CurrentY: 2005 + Verify in DUT as client side log: + [1657911790.232595][2977:2977] CHIP:IM: Received Read request + [1657911790.232674][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911790.232700][2977:2977] CHIP:DMG: { + [1657911790.232723][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911790.232756][2977:2977] CHIP:DMG: [ + [1657911790.232780][2977:2977] CHIP:DMG: AttributePathIB = + [1657911790.232807][2977:2977] CHIP:DMG: { + [1657911790.232834][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911790.232865][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911790.232898][2977:2977] CHIP:DMG: Attribute = 0x0000_0004, + [1657911790.232931][2977:2977] CHIP:DMG: } + [1657911790.232960][2977:2977] CHIP:DMG: + [1657911790.232985][2977:2977] CHIP:DMG: ], + [1657911790.233012][2977:2977] CHIP:DMG: + [1657911790.233038][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911790.233063][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911790.233086][2977:2977] CHIP:DMG: }, + [1657911790.233162][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911790.233249][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911790.233279][2977:2977] CHIP:DMG: Cluster 300, Attribute 4 is dirty + [1657911790.233300][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0004 (expanded=0) + [1657911790.233328][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911790.233360][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911790.233415][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends StopMoveStep command to TH." @@ -214,37 +339,35 @@ tests: verification: | ./chip-tool colorcontrol stop-move-step 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657099908.880877][4226:4231] CHIP:DMG: InvokeResponseMessage = - [1657099908.880917][4226:4231] CHIP:DMG: { - [1657099908.880956][4226:4231] CHIP:DMG: suppressResponse = false, - [1657099908.880996][4226:4231] CHIP:DMG: InvokeResponseIBs = - [1657099908.881046][4226:4231] CHIP:DMG: [ - [1657099908.881086][4226:4231] CHIP:DMG: InvokeResponseIB = - [1657099908.881138][4226:4231] CHIP:DMG: { - [1657099908.881180][4226:4231] CHIP:DMG: CommandStatusIB = - [1657099908.881234][4226:4231] CHIP:DMG: { - [1657099908.881282][4226:4231] CHIP:DMG: CommandPathIB = - [1657099908.881336][4226:4231] CHIP:DMG: { - [1657099908.881391][4226:4231] CHIP:DMG: EndpointId = 0x1, - [1657099908.881448][4226:4231] CHIP:DMG: ClusterId = 0x300, - [1657099908.881509][4226:4231] CHIP:DMG: CommandId = 0x47, - [1657099908.881561][4226:4231] CHIP:DMG: }, - [1657099908.881618][4226:4231] CHIP:DMG: - [1657099908.881666][4226:4231] CHIP:DMG: StatusIB = - [1657099908.881720][4226:4231] CHIP:DMG: { - [1657099908.881775][4226:4231] CHIP:DMG: status = 0x00 (SUCCESS), - [1657099908.881828][4226:4231] CHIP:DMG: }, - [1657099908.881880][4226:4231] CHIP:DMG: - [1657099908.881926][4226:4231] CHIP:DMG: }, - [1657099908.881966][4226:4231] CHIP:DMG: - [1657099908.882000][4226:4231] CHIP:DMG: }, - [1657099908.882039][4226:4231] CHIP:DMG: - [1657099908.882068][4226:4231] CHIP:DMG: ], - [1657099908.882104][4226:4231] CHIP:DMG: - [1657099908.882133][4226:4231] CHIP:DMG: InteractionModelRevision = 1 - [1657099908.882162][4226:4231] CHIP:DMG: }, - [1657099908.882230][4226:4231] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 Status=0x0 - [1657099908.882278][4226:4231] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + + [1657911876.005800][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911876.005828][2977:2977] CHIP:DMG: { + [1657911876.005852][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911876.005881][2977:2977] CHIP:DMG: timedRequest = false, + [1657911876.005907][2977:2977] CHIP:DMG: InvokeRequests = + [1657911876.005940][2977:2977] CHIP:DMG: [ + [1657911876.005966][2977:2977] CHIP:DMG: CommandDataIB = + [1657911876.005998][2977:2977] CHIP:DMG: { + [1657911876.006027][2977:2977] CHIP:DMG: CommandPathIB = + [1657911876.006061][2977:2977] CHIP:DMG: { + [1657911876.006094][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911876.006128][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911876.006166][2977:2977] CHIP:DMG: CommandId = 0x47, + [1657911876.006197][2977:2977] CHIP:DMG: }, + [1657911876.006231][2977:2977] CHIP:DMG: + [1657911876.006261][2977:2977] CHIP:DMG: CommandFields = + [1657911876.006296][2977:2977] CHIP:DMG: { + [1657911876.006330][2977:2977] CHIP:DMG: 0x0 = 0, + [1657911876.006366][2977:2977] CHIP:DMG: 0x1 = 0, + [1657911876.006399][2977:2977] CHIP:DMG: }, + [1657911876.006428][2977:2977] CHIP:DMG: }, + [1657911876.006462][2977:2977] CHIP:DMG: + [1657911876.006487][2977:2977] CHIP:DMG: ], + [1657911876.006519][2977:2977] CHIP:DMG: + [1657911876.006543][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911876.006568][2977:2977] CHIP:DMG: }, + [1657911876.006639][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911876.006676][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911876.006706][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml index 83c20933c71c9d..19ee17ef5aa102 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml @@ -41,48 +41,70 @@ tests: response: value: 1 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTempPhysicalMinMireds attribute from DUT" + PICS: CC.S.F04 && CC.S.A400b command: "readAttribute" - attribute: "ColorTemperature" + attribute: "ColorTempPhysicalMinMireds" + response: + saveAs: ColorTempPhysicalMinMiredsValue + constraints: + type: uint16 + minValue: 0 + maxValue: 65279 + + - label: "TH reads ColorTempPhysicalMaxMireds attribute from DUT." + PICS: CC.S.F04 && CC.S.A400c + command: "readAttribute" + attribute: "ColorTempPhysicalMaxMireds" response: + saveAs: ColorTempPhysicalMaxMiredsValue constraints: type: uint16 minValue: 0 maxValue: 65279 + - label: "TH reads ColorTemperatureMireds attribute from DUT." + PICS: CC.S.F04 && CC.S.A0007 + command: "readAttribute" + attribute: "ColorTemperature" + response: + constraints: + type: uint16 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue + - label: "Move To Color Temperature command" - PICS: CC.S.C0A.Rsp + PICS: CC.S.F04 && CC.S.C0A.Rsp command: "MoveToColorTemperature" arguments: values: - name: "colorTemperature" value: 100 - name: "TransitionTime" - value: 5 + value: 10 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 700ms" + - label: "Wait 1500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 700 + value: 1500 - label: "Read current color temprature" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: value: 100 constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - label: "Turn off light that we turned on" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml index 0e06aca06cb7eb..c8757584ef0127 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml @@ -40,90 +40,112 @@ tests: response: value: 1 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTempPhysicalMinMireds attribute from DUT" + PICS: CC.S.F04 && CC.S.A400b command: "readAttribute" - attribute: "ColorTemperature" + attribute: "ColorTempPhysicalMinMireds" response: + saveAs: ColorTempPhysicalMinMiredsValue constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: "Move up color temperature command" - PICS: CC.S.C4B.Rsp + - label: "TH reads ColorTempPhysicalMaxMireds attribute from DUT." + PICS: CC.S.F04 && CC.S.A400c + command: "readAttribute" + attribute: "ColorTempPhysicalMaxMireds" + response: + saveAs: ColorTempPhysicalMaxMiredsValue + constraints: + type: uint16 + minValue: 0 + maxValue: 65279 + + - label: "TH reads ColorTemperatureMireds attribute from DUT." + PICS: CC.S.F04 && CC.S.A0007 + command: "readAttribute" + attribute: "ColorTemperature" + response: + constraints: + type: uint16 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue + + - label: "TH sends MoveColorTemperature command to DUT with MoveMode = Up" + PICS: CC.S.F04 && CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: values: - name: "MoveMode" value: 1 - name: "Rate" - value: 10 + value: 20 - name: "ColorTemperatureMinimumMireds" - value: 1 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 255 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 90ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 90 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 95ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 95 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 100ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 100 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Move down color temperature command" - PICS: CC.S.C4B.Rsp + - label: "TH sends MoveColorTemperature command to DUT with MoveMode = Down" + PICS: CC.S.F04 && CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: values: @@ -132,70 +154,70 @@ tests: - name: "Rate" value: 20 - name: "ColorTemperatureMinimumMireds" - value: 1 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 255 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 190ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 190 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 195ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 195 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 200ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 200 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Move up color temperature command" - PICS: CC.S.C4B.Rsp + - label: "TH sends MoveColorTemperature command to DUT with MoveMode = Up" + PICS: CC.S.F04 && CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: values: @@ -204,16 +226,16 @@ tests: - name: "Rate" value: 10 - name: "ColorTemperatureMinimumMireds" - value: 1 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 255 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Stop Color Temperature command" - PICS: CC.S.C4B.Rsp + - label: "TH sends MoveColorTemperature command to DUT with MoveMode = Stop" + PICS: CC.S.F04 && CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: values: @@ -230,62 +252,65 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 90ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 90 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + saveAs: ColorTemperatureValue constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 95ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 95 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + value: ColorTemperatureValue constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 100ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 100 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + value: ColorTemperatureValue constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Move down color temperature command" - PICS: CC.S.C4B.Rsp + - label: "TH sends MoveColorTemperature command to DUT with MoveMode = Down" + PICS: CC.S.F04 && CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: values: @@ -294,16 +319,16 @@ tests: - name: "Rate" value: 20 - name: "ColorTemperatureMinimumMireds" - value: 1 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 255 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Stop Color Temperature command" - PICS: CC.S.C4B.Rsp + - label: "TH sends MoveColorTemperature command to DUT with MoveMode = Stop" + PICS: CC.S.F04 && CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: values: @@ -312,67 +337,70 @@ tests: - name: "Rate" value: 10 - name: "ColorTemperatureMinimumMireds" - value: 1 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 255 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 140ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 140 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + saveAs: ColorTemperatureMoveModeStop constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 145ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 145 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + value: ColorTemperatureMoveModeStop constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - - label: "Wait 150ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 150 + value: 1000 - label: "Read current color temprature attribute from DUT several times" - PICS: CC.S.A0007 + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + value: ColorTemperatureValue constraints: type: uint16 - minValue: 0 - maxValue: 65279 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue - label: "Turn off light that we turned on" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml index 2404ac2e550e22..75c811bf9765fc 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml @@ -40,46 +40,68 @@ tests: response: value: 1 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTempPhysicalMinMireds attribute from DUT" + PICS: CC.S.F04 && CC.S.A400b command: "readAttribute" - attribute: "ColorTemperature" + attribute: "ColorTempPhysicalMinMireds" + response: + saveAs: ColorTempPhysicalMinMiredsValue + constraints: + type: uint16 + minValue: 0 + maxValue: 65279 + + - label: "TH reads ColorTempPhysicalMaxMireds attribute from DUT." + PICS: CC.S.F04 && CC.S.A400c + command: "readAttribute" + attribute: "ColorTempPhysicalMaxMireds" response: + saveAs: ColorTempPhysicalMaxMiredsValue constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: "Step up color temperature command" - PICS: CC.S.C4C.Rsp + - label: "TH reads ColorTemperatureMireds attribute from DUT." + PICS: CC.S.F04 && CC.S.A0007 + command: "readAttribute" + attribute: "ColorTemperature" + response: + constraints: + type: uint16 + minValue: ColorTempPhysicalMinMiredsValue + maxValue: ColorTempPhysicalMaxMiredsValue + + - label: "TH sends StepColorTemperature command to DUT with MoveMode = Up" + PICS: CC.S.F04 && CC.S.C4C.Rsp command: "StepColorTemperature" arguments: values: - name: "StepMode" value: 1 - name: "StepSize" - value: 5 + value: 100 - name: "TransitionTime" - value: 50 + value: 15 - name: "ColorTemperatureMinimumMireds" - value: 5 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 100 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 500 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTemperatureMireds attribute from DUT several times" + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: @@ -88,16 +110,16 @@ tests: minValue: 0 maxValue: 65279 - - label: "Wait 45ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 500 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTemperatureMireds attribute from DUT several times" + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: @@ -106,16 +128,16 @@ tests: minValue: 0 maxValue: 65279 - - label: "Wait 50ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 50 + value: 500 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTemperatureMireds attribute from DUT several times" + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: @@ -124,8 +146,8 @@ tests: minValue: 0 maxValue: 65279 - - label: "Step down color temperature command" - PICS: CC.S.C4C.Rsp + - label: "TH sends StepColorTemperature command to DUT with MoveMode = Down" + PICS: CC.S.F04 && CC.S.C4C.Rsp command: "StepColorTemperature" arguments: values: @@ -136,24 +158,24 @@ tests: - name: "TransitionTime" value: 50 - name: "ColorTemperatureMinimumMireds" - value: 5 + value: ColorTempPhysicalMinMiredsValue - name: "ColorTemperatureMaximumMireds" - value: 100 + value: ColorTempPhysicalMaxMiredsValue - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 500 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTemperatureMireds attribute from DUT several times" + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: @@ -162,16 +184,16 @@ tests: minValue: 0 maxValue: 65279 - - label: "Wait 45ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 500 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTemperatureMireds attribute from DUT several times" + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: @@ -180,16 +202,16 @@ tests: minValue: 0 maxValue: 65279 - - label: "Wait 50ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 50 + value: 500 - - label: "Read current color temprature" - PICS: CC.S.A0007 + - label: "TH reads ColorTemperatureMireds attribute from DUT several times" + PICS: CC.S.F04 && CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml index 1c15250f5ffdaa..df482f27a21cb9 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml @@ -22,151 +22,223 @@ config: tests: - label: - "DUT sends MoveToColorTemperature command to TH an - ColorTemperatureMireds with TransitionTime 300." - PICS: CC.C.C0A.Rsp + "* TH provides a server implementation of Color Control with + F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds, + ColorTempPhysicalMaxMireds * DUT might read attributes like + ColorTempPhysicalMinMireds, ColorTempPhysicalMaxMireds from TH (now or + in later steps) to use those." verification: | - ./chip-tool colorcontrol move-to-color-temperature 150 300 0 0 1 1 + ./chip-tool colorcontrol read color-temp-physical-min-mireds 1 1 + + Verify in DUT as client side log: + [1658215472.478274][3413:3413] CHIP:IM: Received Read request + [1658215472.478456][3413:3413] CHIP:DMG: ReadRequestMessage = + [1658215472.478527][3413:3413] CHIP:DMG: { + [1658215472.478579][3413:3413] CHIP:DMG: AttributePathIBs = + [1658215472.478641][3413:3413] CHIP:DMG: [ + [1658215472.478698][3413:3413] CHIP:DMG: AttributePathIB = + [1658215472.478763][3413:3413] CHIP:DMG: { + [1658215472.478843][3413:3413] CHIP:DMG: Endpoint = 0x1, + [1658215472.478921][3413:3413] CHIP:DMG: Cluster = 0x300, + [1658215472.479000][3413:3413] CHIP:DMG: Attribute = 0x0000_400B, + [1658215472.479071][3413:3413] CHIP:DMG: } + [1658215472.479140][3413:3413] CHIP:DMG: + [1658215472.479202][3413:3413] CHIP:DMG: ], + [1658215472.479271][3413:3413] CHIP:DMG: + [1658215472.479335][3413:3413] CHIP:DMG: isFabricFiltered = true, + [1658215472.479397][3413:3413] CHIP:DMG: InteractionModelRevision = 1 + [1658215472.479453][3413:3413] CHIP:DMG: }, + [1658215472.479633][3413:3413] CHIP:DMG: IM RH moving to [GeneratingReports] + [1658215472.479850][3413:3413] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1658215472.479924][3413:3413] CHIP:DMG: Cluster 300, Attribute 400b is dirty + [1658215472.479976][3413:3413] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_400B (expanded=0) + [1658215472.480044][3413:3413] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1658215472.480118][3413:3413] CHIP:DMG: AccessControl: allowed + - verify on Reference app receives the right response for the data sent in the above commands - - [1657100029.310604][4236:4241] CHIP:DMG: InvokeResponseMessage = - [1657100029.310635][4236:4241] CHIP:DMG: { - [1657100029.310664][4236:4241] CHIP:DMG: suppressResponse = false, - [1657100029.310695][4236:4241] CHIP:DMG: InvokeResponseIBs = - [1657100029.310733][4236:4241] CHIP:DMG: [ - [1657100029.310764][4236:4241] CHIP:DMG: InvokeResponseIB = - [1657100029.310803][4236:4241] CHIP:DMG: { - [1657100029.310836][4236:4241] CHIP:DMG: CommandStatusIB = - [1657100029.310874][4236:4241] CHIP:DMG: { - [1657100029.310910][4236:4241] CHIP:DMG: CommandPathIB = - [1657100029.310954][4236:4241] CHIP:DMG: { - [1657100029.310997][4236:4241] CHIP:DMG: EndpointId = 0x1, - [1657100029.311041][4236:4241] CHIP:DMG: ClusterId = 0x300, - [1657100029.311083][4236:4241] CHIP:DMG: CommandId = 0xa, - [1657100029.311122][4236:4241] CHIP:DMG: }, - [1657100029.311167][4236:4241] CHIP:DMG: - [1657100029.311204][4236:4241] CHIP:DMG: StatusIB = - [1657100029.311244][4236:4241] CHIP:DMG: { - [1657100029.311286][4236:4241] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100029.311327][4236:4241] CHIP:DMG: }, - [1657100029.311368][4236:4241] CHIP:DMG: - [1657100029.311404][4236:4241] CHIP:DMG: }, - [1657100029.311444][4236:4241] CHIP:DMG: - [1657100029.311476][4236:4241] CHIP:DMG: }, - [1657100029.311512][4236:4241] CHIP:DMG: - [1657100029.311541][4236:4241] CHIP:DMG: ], - [1657100029.311577][4236:4241] CHIP:DMG: - [1657100029.311606][4236:4241] CHIP:DMG: InteractionModelRevision = 1 - [1657100029.311635][4236:4241] CHIP:DMG: }, - [1657100029.311705][4236:4241] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_000A Status=0x0 - [1657100029.311754][4236:4241] CHIP:DMG: ICR moving to [AwaitingDe] + ./chip-tool colorcontrol read color-temp-physical-max-mireds 1 1 + + Verify in DUT as client side log: + [1658215497.166720][3413:3413] CHIP:IM: Received Read request + [1658215497.166886][3413:3413] CHIP:DMG: ReadRequestMessage = + [1658215497.166949][3413:3413] CHIP:DMG: { + [1658215497.167001][3413:3413] CHIP:DMG: AttributePathIBs = + [1658215497.167062][3413:3413] CHIP:DMG: [ + [1658215497.167120][3413:3413] CHIP:DMG: AttributePathIB = + [1658215497.167205][3413:3413] CHIP:DMG: { + [1658215497.167273][3413:3413] CHIP:DMG: Endpoint = 0x1, + [1658215497.167349][3413:3413] CHIP:DMG: Cluster = 0x300, + [1658215497.167418][3413:3413] CHIP:DMG: Attribute = 0x0000_400C, + [1658215497.167488][3413:3413] CHIP:DMG: } + [1658215497.167559][3413:3413] CHIP:DMG: + [1658215497.167621][3413:3413] CHIP:DMG: ], + [1658215497.167687][3413:3413] CHIP:DMG: + [1658215497.167750][3413:3413] CHIP:DMG: isFabricFiltered = true, + [1658215497.167810][3413:3413] CHIP:DMG: InteractionModelRevision = 1 + [1658215497.167866][3413:3413] CHIP:DMG: }, + [1658215497.168046][3413:3413] CHIP:DMG: IM RH moving to [GeneratingReports] + [1658215497.168296][3413:3413] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1658215497.168369][3413:3413] CHIP:DMG: Cluster 300, Attribute 400c is dirty + [1658215497.168422][3413:3413] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_400C (expanded=0) + [1658215497.168491][3413:3413] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1658215497.168570][3413:3413] CHIP:DMG: AccessControl: allowed disabled: true - - label: - "Over TransitionTime, DUT reads CurrentColorTemperatureMireds - attribute from TH periodically." - PICS: CC.C.A0007 + - label: "DUT sends MoveToColorTemperature command to TH" + PICS: CC.C.C0A.Rsp verification: | - ./chip-tool colorcontrol read color-temperature 1 1 - - verify on Reference app receives the right response for the data sent in the above commands + ./chip-tool colorcontrol move-to-color-temperature 150 300 0 0 1 1 - [1657100053.392386][4243:4248] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0007 DataVersion: 1806823137 - [1657100053.392464][4243:4248] CHIP:TOO: ColorTemperature: 120 + Verify in DUT as client side log: + [1657911906.102478][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911906.102603][2977:2977] CHIP:DMG: { + [1657911906.102633][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911906.102674][2977:2977] CHIP:DMG: timedRequest = false, + [1657911906.102703][2977:2977] CHIP:DMG: InvokeRequests = + [1657911906.102744][2977:2977] CHIP:DMG: [ + [1657911906.102814][2977:2977] CHIP:DMG: CommandDataIB = + [1657911906.102853][2977:2977] CHIP:DMG: { + [1657911906.102885][2977:2977] CHIP:DMG: CommandPathIB = + [1657911906.102923][2977:2977] CHIP:DMG: { + [1657911906.102964][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911906.103007][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911906.103049][2977:2977] CHIP:DMG: CommandId = 0xa, + [1657911906.103088][2977:2977] CHIP:DMG: }, + [1657911906.103129][2977:2977] CHIP:DMG: + [1657911906.103166][2977:2977] CHIP:DMG: CommandFields = + [1657911906.103205][2977:2977] CHIP:DMG: { + [1657911906.103243][2977:2977] CHIP:DMG: 0x0 = 150, + [1657911906.103285][2977:2977] CHIP:DMG: 0x1 = 300, + [1657911906.103327][2977:2977] CHIP:DMG: 0x2 = 0, + [1657911906.103369][2977:2977] CHIP:DMG: 0x3 = 0, + [1657911906.103406][2977:2977] CHIP:DMG: }, + [1657911906.103440][2977:2977] CHIP:DMG: }, + [1657911906.103479][2977:2977] CHIP:DMG: + [1657911906.103506][2977:2977] CHIP:DMG: ], + [1657911906.103543][2977:2977] CHIP:DMG: + [1657911906.103570][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911906.103600][2977:2977] CHIP:DMG: }, + [1657911906.103683][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911906.103726][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911906.103757][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_000A disabled: true - - label: "DUT sends MoveColorTemperatureMireds command to TH" + - label: "DUT sends MoveColorTemperature command to TH" PICS: CC.C.C4B.Rsp verification: | ./chip-tool colorcontrol move-color-temperature 1 10 5 250 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100088.128957][4250:4255] CHIP:DMG: InvokeResponseMessage = - [1657100088.128993][4250:4255] CHIP:DMG: { - [1657100088.129028][4250:4255] CHIP:DMG: suppressResponse = false, - [1657100088.129073][4250:4255] CHIP:DMG: InvokeResponseIBs = - [1657100088.129119][4250:4255] CHIP:DMG: [ - [1657100088.129155][4250:4255] CHIP:DMG: InvokeResponseIB = - [1657100088.129202][4250:4255] CHIP:DMG: { - [1657100088.129240][4250:4255] CHIP:DMG: CommandStatusIB = - [1657100088.129284][4250:4255] CHIP:DMG: { - [1657100088.129329][4250:4255] CHIP:DMG: CommandPathIB = - [1657100088.129378][4250:4255] CHIP:DMG: { - [1657100088.129428][4250:4255] CHIP:DMG: EndpointId = 0x1, - [1657100088.129481][4250:4255] CHIP:DMG: ClusterId = 0x300, - [1657100088.129533][4250:4255] CHIP:DMG: CommandId = 0x4b, - [1657100088.129587][4250:4255] CHIP:DMG: }, - [1657100088.129640][4250:4255] CHIP:DMG: - [1657100088.129683][4250:4255] CHIP:DMG: StatusIB = - [1657100088.129732][4250:4255] CHIP:DMG: { - [1657100088.129782][4250:4255] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100088.129831][4250:4255] CHIP:DMG: }, - [1657100088.129970][4250:4255] CHIP:DMG: - [1657100088.130016][4250:4255] CHIP:DMG: }, - [1657100088.130070][4250:4255] CHIP:DMG: - [1657100088.130110][4250:4255] CHIP:DMG: }, - [1657100088.130155][4250:4255] CHIP:DMG: - [1657100088.130190][4250:4255] CHIP:DMG: ], - [1657100088.130233][4250:4255] CHIP:DMG: - [1657100088.130269][4250:4255] CHIP:DMG: InteractionModelRevision = 1 - [1657100088.130304][4250:4255] CHIP:DMG: }, - [1657100088.130415][4250:4255] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_004B Status=0x0 - [1657100088.130476][4250:4255] CHIP:DMG: ICR moving to [AwaitingDe] + + Verify in DUT as client side log: + [1657911964.250866][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911964.250894][2977:2977] CHIP:DMG: { + [1657911964.250917][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911964.250952][2977:2977] CHIP:DMG: timedRequest = false, + [1657911964.250991][2977:2977] CHIP:DMG: InvokeRequests = + [1657911964.251026][2977:2977] CHIP:DMG: [ + [1657911964.251050][2977:2977] CHIP:DMG: CommandDataIB = + [1657911964.251090][2977:2977] CHIP:DMG: { + [1657911964.251120][2977:2977] CHIP:DMG: CommandPathIB = + [1657911964.251156][2977:2977] CHIP:DMG: { + [1657911964.251192][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911964.251230][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911964.251260][2977:2977] CHIP:DMG: CommandId = 0x4b, + [1657911964.251283][2977:2977] CHIP:DMG: }, + [1657911964.251328][2977:2977] CHIP:DMG: + [1657911964.251359][2977:2977] CHIP:DMG: CommandFields = + [1657911964.251394][2977:2977] CHIP:DMG: { + [1657911964.251430][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911964.251477][2977:2977] CHIP:DMG: 0x1 = 10, + [1657911964.251516][2977:2977] CHIP:DMG: 0x2 = 5, + [1657911964.251553][2977:2977] CHIP:DMG: 0x3 = 250, + [1657911964.251600][2977:2977] CHIP:DMG: 0x4 = 0, + [1657911964.251639][2977:2977] CHIP:DMG: 0x5 = 0, + [1657911964.251675][2977:2977] CHIP:DMG: }, + [1657911964.251713][2977:2977] CHIP:DMG: }, + [1657911964.251748][2977:2977] CHIP:DMG: + [1657911964.251772][2977:2977] CHIP:DMG: ], + [1657911964.251812][2977:2977] CHIP:DMG: + [1657911964.251838][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911964.251861][2977:2977] CHIP:DMG: }, + [1657911964.251947][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911964.252028][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911964.252083][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_004B disabled: true - - label: - "DUT reads CurrentColorTemperatureMireds attribute from TH several - Times." - PICS: CC.C.A0007 + - label: "DUT sends StepColorTemperature command to TH" + PICS: CC.C.C4C.Rsp verification: | - ./chip-tool colorcontrol read color-temperature 1 1 + ./chip-tool colorcontrol step-color-temperature 1 10 200 5 250 0 0 1 1 + - verify on Reference app receives the right response for the data sent in the above commands + Verify in DUT as client side log: - [1657100106.171543][4257:4262] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0007 DataVersion: 1806823460 - [1657100106.171613][4257:4262] CHIP:TOO: ColorTemperature: 250 + [1657911996.200187][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657911996.200216][2977:2977] CHIP:DMG: { + [1657911996.200238][2977:2977] CHIP:DMG: suppressResponse = false, + [1657911996.200265][2977:2977] CHIP:DMG: timedRequest = false, + [1657911996.200304][2977:2977] CHIP:DMG: InvokeRequests = + [1657911996.200337][2977:2977] CHIP:DMG: [ + [1657911996.200361][2977:2977] CHIP:DMG: CommandDataIB = + [1657911996.200389][2977:2977] CHIP:DMG: { + [1657911996.200424][2977:2977] CHIP:DMG: CommandPathIB = + [1657911996.200465][2977:2977] CHIP:DMG: { + [1657911996.200507][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657911996.200543][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657911996.200592][2977:2977] CHIP:DMG: CommandId = 0x4c, + [1657911996.200626][2977:2977] CHIP:DMG: }, + [1657911996.200659][2977:2977] CHIP:DMG: + [1657911996.200701][2977:2977] CHIP:DMG: CommandFields = + [1657911996.200735][2977:2977] CHIP:DMG: { + [1657911996.200768][2977:2977] CHIP:DMG: 0x0 = 1, + [1657911996.200816][2977:2977] CHIP:DMG: 0x1 = 10, + [1657911996.200850][2977:2977] CHIP:DMG: 0x2 = 200, + [1657911996.200893][2977:2977] CHIP:DMG: 0x3 = 5, + [1657911996.200931][2977:2977] CHIP:DMG: 0x4 = 250, + [1657911996.200967][2977:2977] CHIP:DMG: 0x5 = 0, + [1657911996.201010][2977:2977] CHIP:DMG: 0x6 = 0, + [1657911996.201046][2977:2977] CHIP:DMG: }, + [1657911996.201075][2977:2977] CHIP:DMG: }, + [1657911996.201119][2977:2977] CHIP:DMG: + [1657911996.201144][2977:2977] CHIP:DMG: ], + [1657911996.201176][2977:2977] CHIP:DMG: + [1657911996.201200][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911996.201237][2977:2977] CHIP:DMG: }, + [1657911996.201314][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657911996.201367][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911996.201395][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_004C disabled: true - - label: "DUT sends StepColorTemperature command to TH" - PICS: CC.C.C4C.Rsp + - label: "DUT sends StopMoveStep command to TH." + PICS: CC.C.C47.Rsp verification: | - ./chip-tool colorcontrol step-color-temperature 1 10 200 5 250 0 0 1 1 + ./chip-tool colorcontrol read color-temperature 1 1 + Verify in DUT as client side log: - verify on Reference app receives the right response for the data sent in the above commands - - [1657100128.589195][4265:4270] CHIP:DMG: InvokeResponseMessage = - [1657100128.589219][4265:4270] CHIP:DMG: { - [1657100128.589243][4265:4270] CHIP:DMG: suppressResponse = false, - [1657100128.589275][4265:4270] CHIP:DMG: InvokeResponseIBs = - [1657100128.589305][4265:4270] CHIP:DMG: [ - [1657100128.589329][4265:4270] CHIP:DMG: InvokeResponseIB = - [1657100128.589361][4265:4270] CHIP:DMG: { - [1657100128.589387][4265:4270] CHIP:DMG: CommandStatusIB = - [1657100128.589419][4265:4270] CHIP:DMG: { - [1657100128.589447][4265:4270] CHIP:DMG: CommandPathIB = - [1657100128.589480][4265:4270] CHIP:DMG: { - [1657100128.589514][4265:4270] CHIP:DMG: EndpointId = 0x1, - [1657100128.589552][4265:4270] CHIP:DMG: ClusterId = 0x300, - [1657100128.589588][4265:4270] CHIP:DMG: CommandId = 0x4c, - [1657100128.589621][4265:4270] CHIP:DMG: }, - [1657100128.589657][4265:4270] CHIP:DMG: - [1657100128.589686][4265:4270] CHIP:DMG: StatusIB = - [1657100128.589719][4265:4270] CHIP:DMG: { - [1657100128.589752][4265:4270] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100128.589787][4265:4270] CHIP:DMG: }, - [1657100128.589819][4265:4270] CHIP:DMG: - [1657100128.589851][4265:4270] CHIP:DMG: }, - [1657100128.589883][4265:4270] CHIP:DMG: - [1657100128.589910][4265:4270] CHIP:DMG: }, - [1657100128.589942][4265:4270] CHIP:DMG: - [1657100128.589964][4265:4270] CHIP:DMG: ], - [1657100128.589993][4265:4270] CHIP:DMG: - [1657100128.590016][4265:4270] CHIP:DMG: InteractionModelRevision = 1 - [1657100128.590039][4265:4270] CHIP:DMG: }, - [1657100128.590096][4265:4270] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_004C Status=0x0 - [1657100128.590136][4265:4270] CHIP:DMG: ICR moving to [AwaitingDe] + [1657911929.678926][2977:2977] CHIP:IM: Received Read request + [1657911929.679006][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911929.679032][2977:2977] CHIP:DMG: { + [1657911929.679066][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911929.679092][2977:2977] CHIP:DMG: [ + [1657911929.679116][2977:2977] CHIP:DMG: AttributePathIB = + [1657911929.679154][2977:2977] CHIP:DMG: { + [1657911929.679182][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911929.679213][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911929.679252][2977:2977] CHIP:DMG: Attribute = 0x0000_0007, + [1657911929.679281][2977:2977] CHIP:DMG: } + [1657911929.679308][2977:2977] CHIP:DMG: + [1657911929.679333][2977:2977] CHIP:DMG: ], + [1657911929.679370][2977:2977] CHIP:DMG: + [1657911929.679397][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911929.679422][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911929.679453][2977:2977] CHIP:DMG: }, + [1657911929.679531][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911929.679637][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911929.679677][2977:2977] CHIP:DMG: Cluster 300, Attribute 7 is dirty + [1657911929.679698][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0007 (expanded=0) + [1657911929.679726][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911929.679768][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911929.679827][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: @@ -176,10 +248,32 @@ tests: verification: | ./chip-tool colorcontrol read color-temperature 1 1 - verify on Reference app receives the right response for the data sent in the above commands + Verify in DUT as client side log: - [1657100144.703637][4271:4276] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0007 DataVersion: 1806823781 - [1657100144.703701][4271:4276] CHIP:TOO: ColorTemperature: 250 + [1657911929.678926][2977:2977] CHIP:IM: Received Read request + [1657911929.679006][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657911929.679032][2977:2977] CHIP:DMG: { + [1657911929.679066][2977:2977] CHIP:DMG: AttributePathIBs = + [1657911929.679092][2977:2977] CHIP:DMG: [ + [1657911929.679116][2977:2977] CHIP:DMG: AttributePathIB = + [1657911929.679154][2977:2977] CHIP:DMG: { + [1657911929.679182][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657911929.679213][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657911929.679252][2977:2977] CHIP:DMG: Attribute = 0x0000_0007, + [1657911929.679281][2977:2977] CHIP:DMG: } + [1657911929.679308][2977:2977] CHIP:DMG: + [1657911929.679333][2977:2977] CHIP:DMG: ], + [1657911929.679370][2977:2977] CHIP:DMG: + [1657911929.679397][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657911929.679422][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657911929.679453][2977:2977] CHIP:DMG: }, + [1657911929.679531][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657911929.679637][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657911929.679677][2977:2977] CHIP:DMG: Cluster 300, Attribute 7 is dirty + [1657911929.679698][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_0007 (expanded=0) + [1657911929.679726][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657911929.679768][2977:2977] CHIP:DMG: AccessControl: allowed + [1657911929.679827][2977:2977] CHIP:DMG: Sending report (payload has 37 bytes)... disabled: true - label: "DUT sends StopMoveStep command to TH." @@ -187,37 +281,34 @@ tests: verification: | ./chip-tool colorcontrol stop-move-step 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100165.298276][4277:4282] CHIP:DMG: InvokeResponseMessage = - [1657100165.298307][4277:4282] CHIP:DMG: { - [1657100165.298337][4277:4282] CHIP:DMG: suppressResponse = false, - [1657100165.298395][4277:4282] CHIP:DMG: InvokeResponseIBs = - [1657100165.298439][4277:4282] CHIP:DMG: [ - [1657100165.298470][4277:4282] CHIP:DMG: InvokeResponseIB = - [1657100165.298510][4277:4282] CHIP:DMG: { - [1657100165.298543][4277:4282] CHIP:DMG: CommandStatusIB = - [1657100165.298581][4277:4282] CHIP:DMG: { - [1657100165.298618][4277:4282] CHIP:DMG: CommandPathIB = - [1657100165.298664][4277:4282] CHIP:DMG: { - [1657100165.298707][4277:4282] CHIP:DMG: EndpointId = 0x1, - [1657100165.298750][4277:4282] CHIP:DMG: ClusterId = 0x300, - [1657100165.298796][4277:4282] CHIP:DMG: CommandId = 0x47, - [1657100165.298836][4277:4282] CHIP:DMG: }, - [1657100165.298881][4277:4282] CHIP:DMG: - [1657100165.298917][4277:4282] CHIP:DMG: StatusIB = - [1657100165.298961][4277:4282] CHIP:DMG: { - [1657100165.299004][4277:4282] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100165.299045][4277:4282] CHIP:DMG: }, - [1657100165.299086][4277:4282] CHIP:DMG: - [1657100165.299122][4277:4282] CHIP:DMG: }, - [1657100165.299164][4277:4282] CHIP:DMG: - [1657100165.299197][4277:4282] CHIP:DMG: }, - [1657100165.299237][4277:4282] CHIP:DMG: - [1657100165.299267][4277:4282] CHIP:DMG: ], - [1657100165.299304][4277:4282] CHIP:DMG: - [1657100165.299333][4277:4282] CHIP:DMG: InteractionModelRevision = 1 - [1657100165.299362][4277:4282] CHIP:DMG: }, - [1657100165.299430][4277:4282] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 Status=0x0 - [1657100165.299480][4277:4282] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912016.927414][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912016.927442][2977:2977] CHIP:DMG: { + [1657912016.927464][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912016.927490][2977:2977] CHIP:DMG: timedRequest = false, + [1657912016.927514][2977:2977] CHIP:DMG: InvokeRequests = + [1657912016.927557][2977:2977] CHIP:DMG: [ + [1657912016.927581][2977:2977] CHIP:DMG: CommandDataIB = + [1657912016.927608][2977:2977] CHIP:DMG: { + [1657912016.927642][2977:2977] CHIP:DMG: CommandPathIB = + [1657912016.927675][2977:2977] CHIP:DMG: { + [1657912016.927705][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912016.927739][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912016.927770][2977:2977] CHIP:DMG: CommandId = 0x47, + [1657912016.927809][2977:2977] CHIP:DMG: }, + [1657912016.927841][2977:2977] CHIP:DMG: + [1657912016.927866][2977:2977] CHIP:DMG: CommandFields = + [1657912016.927905][2977:2977] CHIP:DMG: { + [1657912016.927935][2977:2977] CHIP:DMG: 0x0 = 0, + [1657912016.927976][2977:2977] CHIP:DMG: 0x1 = 0, + [1657912016.928008][2977:2977] CHIP:DMG: }, + [1657912016.928035][2977:2977] CHIP:DMG: }, + [1657912016.928090][2977:2977] CHIP:DMG: + [1657912016.928124][2977:2977] CHIP:DMG: ], + [1657912016.928154][2977:2977] CHIP:DMG: + [1657912016.928178][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912016.928201][2977:2977] CHIP:DMG: }, + [1657912016.928282][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912016.928328][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912016.928356][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml index 68504be09001ab..58979af157d6e7 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml @@ -18,6 +18,7 @@ config: nodeId: 0x12344321 cluster: "Color Control" endpoint: 1 + timeout: 150 tests: - label: "Wait for the commissioned device to be retrieved" @@ -39,8 +40,8 @@ tests: response: value: 1 - - label: "Enhanced Move To Hue command" - PICS: CC.S.C40.Rsp + - label: "TH sends EnhancedMoveToHue command to DUT" + PICS: CC.S.F01 && CC.S.C40.Rsp command: "EnhancedMoveToHue" arguments: values: @@ -49,16 +50,14 @@ tests: - name: "Direction" value: 0 - name: "TransitionTime" - value: 1 + value: 0 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -67,8 +66,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Move To Hue command" - PICS: CC.S.C40.Rsp + - label: "TH sends EnhancedMoveToHue command to DUT" + PICS: CC.S.F01 && CC.S.C40.Rsp command: "EnhancedMoveToHue" arguments: values: @@ -83,18 +82,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -103,18 +100,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 295ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -123,28 +118,27 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + value: 1100 constraints: type: uint16 minValue: 0 maxValue: 65535 - - label: "Enhanced Move To Hue command" - PICS: CC.S.C40.Rsp + - label: "TH sends EnhancedMoveToHue command to DUT" + PICS: CC.S.F01 && CC.S.C40.Rsp command: "EnhancedMoveToHue" arguments: values: @@ -159,18 +153,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -179,18 +171,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 295ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -199,28 +189,27 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + value: 1150 constraints: type: uint16 minValue: 0 maxValue: 65535 - - label: "Enhanced Move To Hue command" - PICS: CC.S.C40.Rsp + - label: "TH sends EnhancedMoveToHue command to DUT" + PICS: CC.S.F01 && CC.S.C40.Rsp command: "EnhancedMoveToHue" arguments: values: @@ -235,18 +224,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -255,18 +242,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 295ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -275,28 +260,27 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + value: 1200 constraints: type: uint16 minValue: 0 maxValue: 65535 - - label: "Enhanced Move To Hue command" - PICS: CC.S.C40.Rsp + - label: "TH sends EnhancedMoveToHue command to DUT " + PICS: CC.S.F01 && CC.S.C40.Rsp command: "EnhancedMoveToHue" arguments: values: @@ -311,18 +295,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -331,18 +313,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 295ms" + - label: "Wait 5500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 5500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -351,21 +331,20 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 300ms" + - label: "Wait 20s" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 20000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT periodically" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + value: 1300 constraints: type: uint16 minValue: 0 diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml index fd6d6e68c164c5..5fc32f48434c2b 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml @@ -39,9 +39,9 @@ tests: response: value: 1 - - label: "Check EnhancedCurrentHue attribute from DUT" + - label: "TH reads EnhancedCurrentHue attribute from DUT" command: "readAttribute" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.A4000 attribute: "EnhancedCurrentHue" response: constraints: @@ -49,8 +49,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Move Hue Up command" - PICS: CC.S.C41.Rsp + - label: "TH sends EnhancedMoveHue command to DUT with MoveMode Up" + PICS: CC.S.F01 && CC.S.C41.Rsp command: "EnhancedMoveHue" arguments: values: @@ -63,18 +63,16 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 290ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 290 + value: 1000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times." + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -83,18 +81,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 295ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 295 + value: 1000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times." + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -103,18 +99,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 300ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 300 + value: 1000 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times." + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -123,8 +117,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Move Hue Stop command" - PICS: CC.S.C41.Rsp + - label: "TH sends EnhancedMoveHue command to DUT with MoveMode Stop" + PICS: CC.S.F01 && CC.S.C41.Rsp command: "EnhancedMoveHue" arguments: values: @@ -137,10 +131,8 @@ tests: - name: "OptionsOverride" value: 0 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -149,32 +141,30 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Move Hue Down command" - PICS: CC.S.C41.Rsp + - label: "TH sends EnhancedMoveHue command to DUT with MoveMode Down" + PICS: CC.S.F01 && CC.S.C41.Rsp command: "EnhancedMoveHue" arguments: values: - name: "MoveMode" value: 3 - name: "Rate" - value: 5 + value: 15 - name: "OptionsMask" value: 0 - name: "OptionsOverride" value: 0 - - label: "Wait 40ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 40 + value: 500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -183,18 +173,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 45ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 45 + value: 500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -203,18 +191,16 @@ tests: minValue: 0 maxValue: 65535 - - label: "Wait 50ms" + - label: "Wait 500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 50 + value: 500 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -223,8 +209,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Move Hue Stop command" - PICS: CC.S.C41.Rsp + - label: "TH sends EnhancedMoveHue command to DUT with MoveMode Stop" + PICS: CC.S.F01 && CC.S.C41.Rsp command: "EnhancedMoveHue" arguments: values: @@ -237,10 +223,8 @@ tests: - name: "OptionsOverride" value: 0 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last command" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT several times." + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml index 1193fcd9845039..d2054dd100c021 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml @@ -39,9 +39,9 @@ tests: response: value: 1 - - label: "Reads EnhancedCurrentHue attribute from DUT" + - label: "TH reads EnhancedCurrentHue attribute from DUT" command: "readAttribute" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.A4000 attribute: "EnhancedCurrentHue" response: constraints: @@ -49,8 +49,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Step Hue Up command" - PICS: CC.S.C42.Rsp + - label: "TH sends EnhancedStepHue command to DUT with StepMode Up" + PICS: CC.S.F01 && CC.S.C42.Rsp command: "EnhancedStepHue" arguments: values: @@ -65,17 +65,17 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 10ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1000 - label: "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.A4000 attribute: "EnhancedCurrentHue" response: constraints: @@ -83,8 +83,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced Step Hue Down command" - PICS: CC.S.C42.Rsp + - label: "TH sends EnhancedStepHue command to DUT with StepMode Down" + PICS: CC.S.F01 && CC.S.C42.Rsp command: "EnhancedStepHue" arguments: values: @@ -99,17 +99,17 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 10ms" + - label: "Wait 1000ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1000 - label: "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.A4000 attribute: "EnhancedCurrentHue" response: constraints: diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml index b1ae246fee41d2..9b4068a4fad660 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml @@ -41,8 +41,8 @@ tests: response: value: 1 - - label: "Reads EnhancedCurrentHue attribute from DUT" - PICS: CC.S.A4000 + - label: "TH reads EnhancedCurrentHue attribute from DUT" + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: @@ -51,8 +51,8 @@ tests: minValue: 0 maxValue: 65535 - - label: "Enhanced move to hue and saturation command" - PICS: CC.S.C43.Rsp + - label: "TH sends EnhancedMoveToHueAndSaturation command to DUT" + PICS: CC.S.F01 && CC.S.C43.Rsp command: "EnhancedMoveToHueAndSaturation" arguments: values: @@ -67,21 +67,22 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Wait 10ms" + - label: "Wait 1500ms" cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 10 + value: 1500 - label: "Check EnhancedCurrentHue attribute value matched the value sent by the last command" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + value: 1200 constraints: type: uint16 minValue: 0 diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml index 75b366d538c255..bbf281de9e5372 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml @@ -27,39 +27,39 @@ tests: PICS: CC.C.C40.Rsp verification: | ./chip-tool colorcontrol enhanced-move-to-hue 1000 3 200 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100403.798306][4293:4298] CHIP:DMG: InvokeResponseMessage = - [1657100403.798342][4293:4298] CHIP:DMG: { - [1657100403.798398][4293:4298] CHIP:DMG: suppressResponse = false, - [1657100403.798437][4293:4298] CHIP:DMG: InvokeResponseIBs = - [1657100403.798482][4293:4298] CHIP:DMG: [ - [1657100403.798518][4293:4298] CHIP:DMG: InvokeResponseIB = - [1657100403.798574][4293:4298] CHIP:DMG: { - [1657100403.798613][4293:4298] CHIP:DMG: CommandStatusIB = - [1657100403.798739][4293:4298] CHIP:DMG: { - [1657100403.798783][4293:4298] CHIP:DMG: CommandPathIB = - [1657100403.798834][4293:4298] CHIP:DMG: { - [1657100403.798880][4293:4298] CHIP:DMG: EndpointId = 0x1, - [1657100403.798931][4293:4298] CHIP:DMG: ClusterId = 0x300, - [1657100403.798977][4293:4298] CHIP:DMG: CommandId = 0x40, - [1657100403.799025][4293:4298] CHIP:DMG: }, - [1657100403.799073][4293:4298] CHIP:DMG: - [1657100403.799117][4293:4298] CHIP:DMG: StatusIB = - [1657100403.799165][4293:4298] CHIP:DMG: { - [1657100403.799214][4293:4298] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100403.799267][4293:4298] CHIP:DMG: }, - [1657100403.799315][4293:4298] CHIP:DMG: - [1657100403.799357][4293:4298] CHIP:DMG: }, - [1657100403.799411][4293:4298] CHIP:DMG: - [1657100403.799451][4293:4298] CHIP:DMG: }, - [1657100403.799495][4293:4298] CHIP:DMG: - [1657100403.799530][4293:4298] CHIP:DMG: ], - [1657100403.799573][4293:4298] CHIP:DMG: - [1657100403.799608][4293:4298] CHIP:DMG: InteractionModelRevision = 1 - [1657100403.799643][4293:4298] CHIP:DMG: }, - [1657100403.799724][4293:4298] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0040 Status=0x0 - [1657100403.799782][4293:4298] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912045.703432][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912045.703462][2977:2977] CHIP:DMG: { + [1657912045.703485][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912045.703511][2977:2977] CHIP:DMG: timedRequest = false, + [1657912045.703548][2977:2977] CHIP:DMG: InvokeRequests = + [1657912045.703583][2977:2977] CHIP:DMG: [ + [1657912045.703608][2977:2977] CHIP:DMG: CommandDataIB = + [1657912045.703635][2977:2977] CHIP:DMG: { + [1657912045.703670][2977:2977] CHIP:DMG: CommandPathIB = + [1657912045.703709][2977:2977] CHIP:DMG: { + [1657912045.703737][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912045.703791][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912045.703830][2977:2977] CHIP:DMG: CommandId = 0x40, + [1657912045.703864][2977:2977] CHIP:DMG: }, + [1657912045.703908][2977:2977] CHIP:DMG: + [1657912045.703936][2977:2977] CHIP:DMG: CommandFields = + [1657912045.703967][2977:2977] CHIP:DMG: { + [1657912045.704009][2977:2977] CHIP:DMG: 0x0 = 1000, + [1657912045.704048][2977:2977] CHIP:DMG: 0x1 = 3, + [1657912045.704121][2977:2977] CHIP:DMG: 0x2 = 200, + [1657912045.704164][2977:2977] CHIP:DMG: 0x3 = 0, + [1657912045.704202][2977:2977] CHIP:DMG: 0x4 = 0, + [1657912045.704238][2977:2977] CHIP:DMG: }, + [1657912045.704277][2977:2977] CHIP:DMG: }, + [1657912045.704309][2977:2977] CHIP:DMG: + [1657912045.704333][2977:2977] CHIP:DMG: ], + [1657912045.704374][2977:2977] CHIP:DMG: + [1657912045.704399][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912045.704423][2977:2977] CHIP:DMG: }, + [1657912045.704511][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912045.704551][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912045.704580][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0040 disabled: true - label: @@ -69,10 +69,31 @@ tests: verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100425.785217][4301:4306] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806824664 - [1657100425.785286][4301:4306] CHIP:TOO: EnhancedCurrentHue: 1000 + Verify in DUT as client side log: + [1657912064.296156][2977:2977] CHIP:IM: Received Read request + [1657912064.296261][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657912064.296295][2977:2977] CHIP:DMG: { + [1657912064.296322][2977:2977] CHIP:DMG: AttributePathIBs = + [1657912064.296378][2977:2977] CHIP:DMG: [ + [1657912064.296409][2977:2977] CHIP:DMG: AttributePathIB = + [1657912064.296448][2977:2977] CHIP:DMG: { + [1657912064.296497][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657912064.296538][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657912064.296578][2977:2977] CHIP:DMG: Attribute = 0x0000_4000, + [1657912064.296621][2977:2977] CHIP:DMG: } + [1657912064.296660][2977:2977] CHIP:DMG: + [1657912064.296694][2977:2977] CHIP:DMG: ], + [1657912064.296729][2977:2977] CHIP:DMG: + [1657912064.296774][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657912064.296808][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912064.296837][2977:2977] CHIP:DMG: }, + [1657912064.296942][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912064.297059][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912064.297109][2977:2977] CHIP:DMG: Cluster 300, Attribute 4000 is dirty + [1657912064.297136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4000 (expanded=0) + [1657912064.297171][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912064.297210][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912064.297288][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends MoveEnhanced Hue command to TH" @@ -80,39 +101,39 @@ tests: verification: | ./chip-tool colorcontrol enhanced-move-hue 0 100 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100446.581854][4307:4312] CHIP:DMG: InvokeResponseMessage = - [1657100446.581878][4307:4312] CHIP:DMG: { - [1657100446.581902][4307:4312] CHIP:DMG: suppressResponse = false, - [1657100446.581927][4307:4312] CHIP:DMG: InvokeResponseIBs = - [1657100446.581957][4307:4312] CHIP:DMG: [ - [1657100446.581981][4307:4312] CHIP:DMG: InvokeResponseIB = - [1657100446.582013][4307:4312] CHIP:DMG: { - [1657100446.582038][4307:4312] CHIP:DMG: CommandStatusIB = - [1657100446.582069][4307:4312] CHIP:DMG: { - [1657100446.582097][4307:4312] CHIP:DMG: CommandPathIB = - [1657100446.582133][4307:4312] CHIP:DMG: { - [1657100446.582166][4307:4312] CHIP:DMG: EndpointId = 0x1, - [1657100446.582201][4307:4312] CHIP:DMG: ClusterId = 0x300, - [1657100446.582235][4307:4312] CHIP:DMG: CommandId = 0x41, - [1657100446.582267][4307:4312] CHIP:DMG: }, - [1657100446.582302][4307:4312] CHIP:DMG: - [1657100446.582331][4307:4312] CHIP:DMG: StatusIB = - [1657100446.582364][4307:4312] CHIP:DMG: { - [1657100446.582434][4307:4312] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100446.582466][4307:4312] CHIP:DMG: }, - [1657100446.582498][4307:4312] CHIP:DMG: - [1657100446.582527][4307:4312] CHIP:DMG: }, - [1657100446.582559][4307:4312] CHIP:DMG: - [1657100446.582584][4307:4312] CHIP:DMG: }, - [1657100446.582613][4307:4312] CHIP:DMG: - [1657100446.582636][4307:4312] CHIP:DMG: ], - [1657100446.582664][4307:4312] CHIP:DMG: - [1657100446.582687][4307:4312] CHIP:DMG: InteractionModelRevision = 1 - [1657100446.582710][4307:4312] CHIP:DMG: }, - [1657100446.582768][4307:4312] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0041 Status=0x0 - [1657100446.582808][4307:4312] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + + [1657912085.345044][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912085.345072][2977:2977] CHIP:DMG: { + [1657912085.345094][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912085.345120][2977:2977] CHIP:DMG: timedRequest = false, + [1657912085.345144][2977:2977] CHIP:DMG: InvokeRequests = + [1657912085.345175][2977:2977] CHIP:DMG: [ + [1657912085.345199][2977:2977] CHIP:DMG: CommandDataIB = + [1657912085.345228][2977:2977] CHIP:DMG: { + [1657912085.345256][2977:2977] CHIP:DMG: CommandPathIB = + [1657912085.345290][2977:2977] CHIP:DMG: { + [1657912085.345320][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912085.345355][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912085.345388][2977:2977] CHIP:DMG: CommandId = 0x41, + [1657912085.345418][2977:2977] CHIP:DMG: }, + [1657912085.345451][2977:2977] CHIP:DMG: + [1657912085.345479][2977:2977] CHIP:DMG: CommandFields = + [1657912085.345510][2977:2977] CHIP:DMG: { + [1657912085.345542][2977:2977] CHIP:DMG: 0x0 = 0, + [1657912085.345574][2977:2977] CHIP:DMG: 0x1 = 100, + [1657912085.345607][2977:2977] CHIP:DMG: 0x2 = 0, + [1657912085.345639][2977:2977] CHIP:DMG: 0x3 = 0, + [1657912085.345671][2977:2977] CHIP:DMG: }, + [1657912085.345698][2977:2977] CHIP:DMG: }, + [1657912085.345730][2977:2977] CHIP:DMG: + [1657912085.345753][2977:2977] CHIP:DMG: ], + [1657912085.345784][2977:2977] CHIP:DMG: + [1657912085.345807][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912085.345829][2977:2977] CHIP:DMG: }, + [1657912085.345899][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912085.345935][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912085.345962][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0041 disabled: true - label: "DUT reads CurrentEnhanced Hue attribute from TH several Times." @@ -120,10 +141,31 @@ tests: verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100425.785217][4301:4306] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806824664 - [1657100425.785286][4301:4306] CHIP:TOO: EnhancedCurrentHue: 1000 + Verify in DUT as client side log: + [1657912064.296156][2977:2977] CHIP:IM: Received Read request + [1657912064.296261][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657912064.296295][2977:2977] CHIP:DMG: { + [1657912064.296322][2977:2977] CHIP:DMG: AttributePathIBs = + [1657912064.296378][2977:2977] CHIP:DMG: [ + [1657912064.296409][2977:2977] CHIP:DMG: AttributePathIB = + [1657912064.296448][2977:2977] CHIP:DMG: { + [1657912064.296497][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657912064.296538][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657912064.296578][2977:2977] CHIP:DMG: Attribute = 0x0000_4000, + [1657912064.296621][2977:2977] CHIP:DMG: } + [1657912064.296660][2977:2977] CHIP:DMG: + [1657912064.296694][2977:2977] CHIP:DMG: ], + [1657912064.296729][2977:2977] CHIP:DMG: + [1657912064.296774][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657912064.296808][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912064.296837][2977:2977] CHIP:DMG: }, + [1657912064.296942][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912064.297059][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912064.297109][2977:2977] CHIP:DMG: Cluster 300, Attribute 4000 is dirty + [1657912064.297136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4000 (expanded=0) + [1657912064.297171][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912064.297210][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912064.297288][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends StepEnhanced Hue command to TH" @@ -131,39 +173,39 @@ tests: verification: | ./chip-tool colorcontrol enhanced-step-hue 1 1000 200 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100579.604087][4383:4388] CHIP:DMG: InvokeResponseMessage = - [1657100579.604116][4383:4388] CHIP:DMG: { - [1657100579.604145][4383:4388] CHIP:DMG: suppressResponse = false, - [1657100579.604173][4383:4388] CHIP:DMG: InvokeResponseIBs = - [1657100579.604209][4383:4388] CHIP:DMG: [ - [1657100579.604237][4383:4388] CHIP:DMG: InvokeResponseIB = - [1657100579.604274][4383:4388] CHIP:DMG: { - [1657100579.604303][4383:4388] CHIP:DMG: CommandStatusIB = - [1657100579.604356][4383:4388] CHIP:DMG: { - [1657100579.604396][4383:4388] CHIP:DMG: CommandPathIB = - [1657100579.604437][4383:4388] CHIP:DMG: { - [1657100579.604477][4383:4388] CHIP:DMG: EndpointId = 0x1, - [1657100579.604517][4383:4388] CHIP:DMG: ClusterId = 0x300, - [1657100579.604556][4383:4388] CHIP:DMG: CommandId = 0x42, - [1657100579.604593][4383:4388] CHIP:DMG: }, - [1657100579.604635][4383:4388] CHIP:DMG: - [1657100579.604669][4383:4388] CHIP:DMG: StatusIB = - [1657100579.604708][4383:4388] CHIP:DMG: { - [1657100579.604749][4383:4388] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100579.604787][4383:4388] CHIP:DMG: }, - [1657100579.604824][4383:4388] CHIP:DMG: - [1657100579.604858][4383:4388] CHIP:DMG: }, - [1657100579.604896][4383:4388] CHIP:DMG: - [1657100579.604924][4383:4388] CHIP:DMG: }, - [1657100579.604958][4383:4388] CHIP:DMG: - [1657100579.604985][4383:4388] CHIP:DMG: ], - [1657100579.605018][4383:4388] CHIP:DMG: - [1657100579.605045][4383:4388] CHIP:DMG: InteractionModelRevision = 1 - [1657100579.605071][4383:4388] CHIP:DMG: }, - [1657100579.605137][4383:4388] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0042 Status=0x0 - [1657100579.605184][4383:4388] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912123.677693][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912123.677720][2977:2977] CHIP:DMG: { + [1657912123.677742][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912123.677769][2977:2977] CHIP:DMG: timedRequest = false, + [1657912123.677802][2977:2977] CHIP:DMG: InvokeRequests = + [1657912123.677836][2977:2977] CHIP:DMG: [ + [1657912123.677860][2977:2977] CHIP:DMG: CommandDataIB = + [1657912123.677901][2977:2977] CHIP:DMG: { + [1657912123.677926][2977:2977] CHIP:DMG: CommandPathIB = + [1657912123.677957][2977:2977] CHIP:DMG: { + [1657912123.677996][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912123.678030][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912123.678061][2977:2977] CHIP:DMG: CommandId = 0x42, + [1657912123.678097][2977:2977] CHIP:DMG: }, + [1657912123.678130][2977:2977] CHIP:DMG: + [1657912123.678158][2977:2977] CHIP:DMG: CommandFields = + [1657912123.678188][2977:2977] CHIP:DMG: { + [1657912123.678229][2977:2977] CHIP:DMG: 0x0 = 1, + [1657912123.678304][2977:2977] CHIP:DMG: 0x1 = 1000, + [1657912123.678339][2977:2977] CHIP:DMG: 0x2 = 200, + [1657912123.678372][2977:2977] CHIP:DMG: 0x3 = 0, + [1657912123.678413][2977:2977] CHIP:DMG: 0x4 = 0, + [1657912123.678443][2977:2977] CHIP:DMG: }, + [1657912123.678484][2977:2977] CHIP:DMG: }, + [1657912123.678515][2977:2977] CHIP:DMG: + [1657912123.678538][2977:2977] CHIP:DMG: ], + [1657912123.678578][2977:2977] CHIP:DMG: + [1657912123.678602][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912123.678625][2977:2977] CHIP:DMG: }, + [1657912123.678704][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912123.678741][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912123.678778][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0042 disabled: true - label: @@ -172,22 +214,70 @@ tests: verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100597.877581][4390:4396] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806826991 - [1657100597.877653][4390:4396] CHIP:TOO: EnhancedCurrentHue: 1905 + Verify in DUT as client side log: + [1657912064.296156][2977:2977] CHIP:IM: Received Read request + [1657912064.296261][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657912064.296295][2977:2977] CHIP:DMG: { + [1657912064.296322][2977:2977] CHIP:DMG: AttributePathIBs = + [1657912064.296378][2977:2977] CHIP:DMG: [ + [1657912064.296409][2977:2977] CHIP:DMG: AttributePathIB = + [1657912064.296448][2977:2977] CHIP:DMG: { + [1657912064.296497][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657912064.296538][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657912064.296578][2977:2977] CHIP:DMG: Attribute = 0x0000_4000, + [1657912064.296621][2977:2977] CHIP:DMG: } + [1657912064.296660][2977:2977] CHIP:DMG: + [1657912064.296694][2977:2977] CHIP:DMG: ], + [1657912064.296729][2977:2977] CHIP:DMG: + [1657912064.296774][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657912064.296808][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912064.296837][2977:2977] CHIP:DMG: }, + [1657912064.296942][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912064.297059][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912064.297109][2977:2977] CHIP:DMG: Cluster 300, Attribute 4000 is dirty + [1657912064.297136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4000 (expanded=0) + [1657912064.297171][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912064.297210][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912064.297288][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends EnhancedMoveToHueAndSaturation command to TH." PICS: CC.C.C43.Rsp verification: | ./chip-tool colorcontrol enhanced-move-to-hue-and-saturation 2500 100 200 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1649667723.974929][9413:9418] CHIP:DMG: StatusIB = - [1649667723.974986][9413:9418] CHIP:DMG: { - [1649667723.975047][9413:9418] CHIP:DMG: status = 0x00 (SUCCESS), - [1649667723.975096][9413:9418] CHIP:DMG: }, + Verify in DUT as client side log: + [1657912153.500024][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912153.500080][2977:2977] CHIP:DMG: { + [1657912153.500108][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912153.500139][2977:2977] CHIP:DMG: timedRequest = false, + [1657912153.500180][2977:2977] CHIP:DMG: InvokeRequests = + [1657912153.500217][2977:2977] CHIP:DMG: [ + [1657912153.500244][2977:2977] CHIP:DMG: CommandDataIB = + [1657912153.500288][2977:2977] CHIP:DMG: { + [1657912153.500317][2977:2977] CHIP:DMG: CommandPathIB = + [1657912153.500352][2977:2977] CHIP:DMG: { + [1657912153.500398][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912153.500437][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912153.500472][2977:2977] CHIP:DMG: CommandId = 0x43, + [1657912153.500512][2977:2977] CHIP:DMG: }, + [1657912153.500550][2977:2977] CHIP:DMG: + [1657912153.500579][2977:2977] CHIP:DMG: CommandFields = + [1657912153.500610][2977:2977] CHIP:DMG: { + [1657912153.500656][2977:2977] CHIP:DMG: 0x0 = 2500, + [1657912153.500694][2977:2977] CHIP:DMG: 0x1 = 100, + [1657912153.500731][2977:2977] CHIP:DMG: 0x2 = 200, + [1657912153.500779][2977:2977] CHIP:DMG: 0x3 = 0, + [1657912153.500815][2977:2977] CHIP:DMG: 0x4 = 0, + [1657912153.500861][2977:2977] CHIP:DMG: }, + [1657912153.500893][2977:2977] CHIP:DMG: }, + [1657912153.500928][2977:2977] CHIP:DMG: + [1657912153.500964][2977:2977] CHIP:DMG: ], + [1657912153.501001][2977:2977] CHIP:DMG: + [1657912153.501028][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912153.501054][2977:2977] CHIP:DMG: }, + [1657912153.501143][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912153.501195][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912153.501227][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0043 disabled: true - label: @@ -196,10 +286,31 @@ tests: verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100626.671635][4405:4410] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806827373 - [1657100626.671707][4405:4410] CHIP:TOO: EnhancedCurrentHue: 2153 + Verify in DUT as client side log: + [1657912064.296156][2977:2977] CHIP:IM: Received Read request + [1657912064.296261][2977:2977] CHIP:DMG: ReadRequestMessage = + [1657912064.296295][2977:2977] CHIP:DMG: { + [1657912064.296322][2977:2977] CHIP:DMG: AttributePathIBs = + [1657912064.296378][2977:2977] CHIP:DMG: [ + [1657912064.296409][2977:2977] CHIP:DMG: AttributePathIB = + [1657912064.296448][2977:2977] CHIP:DMG: { + [1657912064.296497][2977:2977] CHIP:DMG: Endpoint = 0x1, + [1657912064.296538][2977:2977] CHIP:DMG: Cluster = 0x300, + [1657912064.296578][2977:2977] CHIP:DMG: Attribute = 0x0000_4000, + [1657912064.296621][2977:2977] CHIP:DMG: } + [1657912064.296660][2977:2977] CHIP:DMG: + [1657912064.296694][2977:2977] CHIP:DMG: ], + [1657912064.296729][2977:2977] CHIP:DMG: + [1657912064.296774][2977:2977] CHIP:DMG: isFabricFiltered = true, + [1657912064.296808][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912064.296837][2977:2977] CHIP:DMG: }, + [1657912064.296942][2977:2977] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912064.297059][2977:2977] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912064.297109][2977:2977] CHIP:DMG: Cluster 300, Attribute 4000 is dirty + [1657912064.297136][2977:2977] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4000 (expanded=0) + [1657912064.297171][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912064.297210][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912064.297288][2977:2977] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT sends StopMoveStep command to TH." @@ -207,37 +318,34 @@ tests: verification: | ./chip-tool colorcontrol stop-move-step 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100646.786860][4412:4417] CHIP:DMG: InvokeResponseMessage = - [1657100646.786904][4412:4417] CHIP:DMG: { - [1657100646.786948][4412:4417] CHIP:DMG: suppressResponse = false, - [1657100646.786993][4412:4417] CHIP:DMG: InvokeResponseIBs = - [1657100646.787048][4412:4417] CHIP:DMG: [ - [1657100646.787092][4412:4417] CHIP:DMG: InvokeResponseIB = - [1657100646.787150][4412:4417] CHIP:DMG: { - [1657100646.787197][4412:4417] CHIP:DMG: CommandStatusIB = - [1657100646.787261][4412:4417] CHIP:DMG: { - [1657100646.787315][4412:4417] CHIP:DMG: CommandPathIB = - [1657100646.787376][4412:4417] CHIP:DMG: { - [1657100646.787438][4412:4417] CHIP:DMG: EndpointId = 0x1, - [1657100646.787502][4412:4417] CHIP:DMG: ClusterId = 0x300, - [1657100646.787565][4412:4417] CHIP:DMG: CommandId = 0x47, - [1657100646.787625][4412:4417] CHIP:DMG: }, - [1657100646.787691][4412:4417] CHIP:DMG: - [1657100646.787744][4412:4417] CHIP:DMG: StatusIB = - [1657100646.787804][4412:4417] CHIP:DMG: { - [1657100646.787854][4412:4417] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100646.787894][4412:4417] CHIP:DMG: }, - [1657100646.787934][4412:4417] CHIP:DMG: - [1657100646.787974][4412:4417] CHIP:DMG: }, - [1657100646.788021][4412:4417] CHIP:DMG: - [1657100646.788056][4412:4417] CHIP:DMG: }, - [1657100646.788093][4412:4417] CHIP:DMG: - [1657100646.788121][4412:4417] CHIP:DMG: ], - [1657100646.788157][4412:4417] CHIP:DMG: - [1657100646.788186][4412:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657100646.788214][4412:4417] CHIP:DMG: }, - [1657100646.788283][4412:4417] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 Status=0x0 - [1657100646.788331][4412:4417] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912172.988756][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912172.988782][2977:2977] CHIP:DMG: { + [1657912172.988805][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912172.988840][2977:2977] CHIP:DMG: timedRequest = false, + [1657912172.988864][2977:2977] CHIP:DMG: InvokeRequests = + [1657912172.988895][2977:2977] CHIP:DMG: [ + [1657912172.988919][2977:2977] CHIP:DMG: CommandDataIB = + [1657912172.988957][2977:2977] CHIP:DMG: { + [1657912172.988982][2977:2977] CHIP:DMG: CommandPathIB = + [1657912172.989014][2977:2977] CHIP:DMG: { + [1657912172.989054][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912172.989088][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912172.989120][2977:2977] CHIP:DMG: CommandId = 0x47, + [1657912172.989161][2977:2977] CHIP:DMG: }, + [1657912172.989193][2977:2977] CHIP:DMG: + [1657912172.989221][2977:2977] CHIP:DMG: CommandFields = + [1657912172.989250][2977:2977] CHIP:DMG: { + [1657912172.989290][2977:2977] CHIP:DMG: 0x0 = 0, + [1657912172.989323][2977:2977] CHIP:DMG: 0x1 = 0, + [1657912172.989354][2977:2977] CHIP:DMG: }, + [1657912172.989390][2977:2977] CHIP:DMG: }, + [1657912172.989420][2977:2977] CHIP:DMG: + [1657912172.989443][2977:2977] CHIP:DMG: ], + [1657912172.989483][2977:2977] CHIP:DMG: + [1657912172.989508][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912172.989530][2977:2977] CHIP:DMG: }, + [1657912172.989608][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912172.989646][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912172.989682][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0047 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml index 9a97a89609648d..d05d0a49ed19d7 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml @@ -39,7 +39,7 @@ tests: response: value: 1 - - label: "Move hue up command" + - label: "TH sends MoveHue command to DUT" PICS: CC.S.C01.Rsp command: "MoveHue" arguments: @@ -53,7 +53,7 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads CurrentHue attribute from DUT" + - label: "TH reads CurrentHue attribute from DUT" PICS: CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" @@ -63,7 +63,7 @@ tests: minValue: 0 maxValue: 254 - - label: "Stop Move Step command" + - label: "TH sends StopMoveStep command to DUT" PICS: CC.S.C47.Rsp command: "StopMoveStep" arguments: @@ -73,11 +73,12 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads CurrentHue attribute from DUT" + - label: "TH reads CurrentHue attribute from DUT" PICS: CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: + saveAs: CurrentHueValue constraints: type: uint8 minValue: 0 @@ -91,19 +92,18 @@ tests: - name: "ms" value: 100 - - label: - "Check current hue attribute value matched the value sent by the last - attribute" + - label: "TH reads CurrentHue attribute from DUT" PICS: CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: + value: CurrentHueValue constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Move saturation up command" + - label: "TH sends MoveSaturation command to DUT" PICS: CC.S.C04.Rsp command: "MoveSaturation" arguments: @@ -117,9 +117,7 @@ tests: - name: "OptionsOverride" value: 0 - - label: - "Check Saturation attribute value matched the value sent by the last - command" + - label: "TH reads CurrentSaturation attribute from DUT" PICS: CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" @@ -129,7 +127,7 @@ tests: minValue: 0 maxValue: 254 - - label: "Stop Move Step command" + - label: "TH sends StopMoveStep command to DUT" PICS: CC.S.C47.Rsp command: "StopMoveStep" arguments: @@ -139,11 +137,12 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads CurrentSaturation attribute from DUT." + - label: "TH reads CurrentSaturation attribute from DUT" command: "readAttribute" PICS: CC.S.A0001 attribute: "CurrentSaturation" response: + saveAs: CurrentSaturationValue constraints: type: uint8 minValue: 0 @@ -157,19 +156,18 @@ tests: - name: "ms" value: 100 - - label: - "Check Saturation attribute value matched the value sent by the last - attribute" + - label: "TH reads CurrentSaturation attribute from DUT" PICS: CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: + value: CurrentSaturationValue constraints: type: uint8 minValue: 0 maxValue: 254 - - label: "Move Color command" + - label: "TH sends MoveColor command to DUT" PICS: CC.S.C08.Rsp command: "MoveColor" arguments: @@ -183,7 +181,7 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads CurrentX attribute from DUT" + - label: "TH reads CurrentX attribute from DUT" PICS: CC.S.A0003 command: "readAttribute" attribute: "CurrentX" @@ -193,7 +191,7 @@ tests: minValue: 0 maxValue: 65279 - - label: "Reads CurrentY attribute from DUT" + - label: "TH reads CurrentY attribute from DUT" PICS: CC.S.A0004 command: "readAttribute" attribute: "CurrentY" @@ -203,7 +201,7 @@ tests: minValue: 0 maxValue: 65279 - - label: "Stop Move Step command" + - label: "TH sends StopMoveStep command to DUT" PICS: CC.S.C47.Rsp command: "StopMoveStep" arguments: @@ -213,21 +211,23 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads CurrentX attribute from DUT" + - label: "TH reads CurrentX attribute from DUT" PICS: CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: + saveAs: CurrentXValue constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: "Reads CurrentY attribute from DUT" + - label: "TH reads CurrentY attribute from DUT" PICS: CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: + saveAs: CurrentYValue constraints: type: uint16 minValue: 0 @@ -241,31 +241,29 @@ tests: - name: "ms" value: 100 - - label: - "Check current x attribute value matched the value sent by the last - attribute" + - label: "TH reads CurrentY attribute from DUT" PICS: CC.S.A0003 command: "readAttribute" attribute: "CurrentX" response: + value: CurrentXValue constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: - "Check current y attribute value matched the value sent by the last - attribute" + - label: "TH reads CurrentY attribute from DUT" PICS: CC.S.A0004 command: "readAttribute" attribute: "CurrentY" response: + value: CurrentYValue constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: "Move up color temperature command" + - label: "TH sends MoveColorTemperature command to DUT" PICS: CC.S.C4B.Rsp command: "MoveColorTemperature" arguments: @@ -283,7 +281,7 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads current color temprature from DUT" + - label: "TH reads ColorTemperatureMireds attribute from DUT" PICS: CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" @@ -293,7 +291,7 @@ tests: minValue: 0 maxValue: 65279 - - label: "Stop Move Step command" + - label: "TH sends StopMoveStep command to DUT" PICS: CC.S.C47.Rsp command: "StopMoveStep" arguments: @@ -303,11 +301,12 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads current color temprature from DUT" + - label: "TH reads ColorTemperatureMireds attribute from DUT" PICS: CC.S.A0007 command: "readAttribute" attribute: "ColorTemperature" response: + saveAs: ColorTemperatureMiredsValue constraints: type: uint16 minValue: 0 @@ -328,12 +327,13 @@ tests: command: "readAttribute" attribute: "ColorTemperature" response: + value: ColorTemperatureMiredsValue constraints: type: uint16 minValue: 0 maxValue: 65279 - - label: "Enhanced Move Hue Up command" + - label: "TH sends EnhancedMoveHue command to DUT." PICS: CC.S.C41.Rsp command: "EnhancedMoveHue" arguments: @@ -347,7 +347,7 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads EnhancedCurrentHue attribute value from DUT" + - label: "TH reads EnhancedCurrentHue attribute from DUT" PICS: CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" @@ -357,7 +357,7 @@ tests: minValue: 0 maxValue: 65535 - - label: "Stop Move Step command" + - label: "TH sends StopMoveStep command to DUT" PICS: CC.S.C47.Rsp command: "StopMoveStep" arguments: @@ -367,11 +367,12 @@ tests: - name: "OptionsOverride" value: 0 - - label: "Reads EnhancedCurrentHue attribute value from DUT" + - label: "TH reads EnhancedCurrentHue attribute from DUT" PICS: CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + saveAs: EnhancedCurrentHueValue constraints: type: uint16 minValue: 0 @@ -385,13 +386,12 @@ tests: - name: "ms" value: 100 - - label: - "Check EnhancedCurrentHue attribute value matched the value sent by - the last attribute" + - label: "TH reads EnhancedCurrentHue attribute from DUT" PICS: CC.S.A4000 command: "readAttribute" attribute: "EnhancedCurrentHue" response: + value: EnhancedCurrentHueValue constraints: type: uint16 minValue: 0 diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_1.yaml index 1c3a6386fc99e9..30ab329b518a5f 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_9_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_9_1.yaml @@ -222,7 +222,7 @@ tests: attribute: "ColorLoopStartEnhancedHue" PICS: CC.S.A4005 response: - saveAs: ColorLoopStartEnhancedHue + saveAs: ColorLoopStartEnhancedHueStep5d - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" @@ -231,7 +231,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue + minValue: ColorLoopStartEnhancedHueStep5d maxValue: 65535 - label: "Wait for 30S" @@ -249,7 +249,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue + minValue: ColorLoopStartEnhancedHueStep5d maxValue: 65535 - label: "Sends ColorLoopSet Command - Set all Attributes" @@ -284,14 +284,14 @@ tests: attribute: "ColorLoopStoredEnhancedHue" PICS: CC.S.A4006 response: - saveAs: ColorLoopStoredEnhancedHueValue1 + saveAs: ColorLoopStoredEnhancedHueStep6c - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" PICS: CC.S.A4000 response: - value: ColorLoopStoredEnhancedHueValue1 + value: ColorLoopStoredEnhancedHueStep6c - label: "Sends ColorLoopSet Command - Set all Attributes" command: "ColorLoopSet" @@ -367,7 +367,7 @@ tests: attribute: "ColorLoopStartEnhancedHue" PICS: CC.S.A4005 response: - saveAs: ColorLoopStartEnhancedHue2 + saveAs: ColorLoopStartEnhancedHueStep8d - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" @@ -376,7 +376,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue2 + minValue: ColorLoopStartEnhancedHueStep8d maxValue: 65535 - label: "Wait for 30S" @@ -394,7 +394,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue2 + minValue: ColorLoopStartEnhancedHueStep8d maxValue: 65535 - label: "Sends ColorLoopSet Command - Set all Attributes" @@ -429,14 +429,14 @@ tests: attribute: "ColorLoopStoredEnhancedHue" PICS: CC.S.A4006 response: - saveAs: ColorLoopStoredEnhancedHueValue2 + saveAs: ColorLoopStoredEnhancedHueStep9c - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" PICS: CC.S.A4000 response: - value: ColorLoopStoredEnhancedHueValue2 + value: ColorLoopStoredEnhancedHueStep9c - label: "Enhanced Move To Hue command" command: "EnhancedMoveToHue" @@ -543,7 +543,7 @@ tests: attribute: "ColorLoopStartEnhancedHue" PICS: CC.S.A4005 response: - saveAs: ColorLoopStartEnhancedHue3 + saveAs: ColorLoopStartEnhancedHueStep12d - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" @@ -552,7 +552,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue3 + minValue: ColorLoopStartEnhancedHueStep12d maxValue: 65535 - label: "Wait for 30S" @@ -570,7 +570,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue3 + minValue: ColorLoopStartEnhancedHueStep12d maxValue: 65535 - label: "Sends ColorLoopSet Command - Set all Attributes" @@ -605,14 +605,14 @@ tests: attribute: "ColorLoopStoredEnhancedHue" PICS: CC.S.A4006 response: - saveAs: ColorLoopStoredEnhancedHueValue3 + saveAs: ColorLoopStoredEnhancedHueStep13c - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" PICS: CC.S.A4000 response: - value: ColorLoopStoredEnhancedHueValue3 + value: ColorLoopStoredEnhancedHueStep13c - label: "Sends ColorLoopSet Command - Set all Attributes" command: "ColorLoopSet" @@ -688,7 +688,7 @@ tests: attribute: "ColorLoopStartEnhancedHue" PICS: CC.S.A4005 response: - saveAs: ColorLoopStartEnhancedHue4 + saveAs: ColorLoopStartEnhancedHueStep15d - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" @@ -697,7 +697,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue3 + minValue: ColorLoopStartEnhancedHueStep15d maxValue: 65535 - label: "Wait for 30S" @@ -715,7 +715,7 @@ tests: response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue4 + minValue: ColorLoopStartEnhancedHueStep15d maxValue: 65535 - label: "Sends ColorLoopSet Command - Set all Attributes" @@ -750,14 +750,14 @@ tests: attribute: "ColorLoopStoredEnhancedHue" PICS: CC.S.A4006 response: - saveAs: ColorLoopStoredEnhancedHue4 + saveAs: ColorLoopStoredEnhancedHueStep16b - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" PICS: CC.S.A4000 response: - value: ColorLoopStoredEnhancedHue4 + value: ColorLoopStoredEnhancedHueStep16b - label: "Turn Off light for color control tests" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_2.yaml index 6677f80a07296c..2ec011abdabfca 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_9_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_9_2.yaml @@ -46,7 +46,7 @@ tests: "Precondition : Set DUT EnhancedCurrentHue to 0x4000 using EnhancedMoveToHue command" command: "EnhancedMoveToHue" - PICS: CC.S.C40.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C40.Rsp arguments: values: - name: "enhancedHue" @@ -70,7 +70,7 @@ tests: - label: "Sends ColorLoopSet Command - Set all Attributes" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -91,34 +91,34 @@ tests: - label: "Read ColorLoopActive attribute from DUT" command: "readAttribute" attribute: "ColorLoopActive" - PICS: CC.S.A4002 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4002 response: value: 0 - label: "Read ColorLoopDirection attribute from DUT." command: "readAttribute" attribute: "ColorLoopDirection" - PICS: CC.S.A4003 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4003 response: value: 0 - label: "Read ColorLoopTime attribute from DUT." command: "readAttribute" attribute: "ColorLoopTime" - PICS: CC.S.A4004 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4004 response: value: 30 - label: "Read ColorLoopStartEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStartEnhancedHue" - PICS: CC.S.A4005 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4005 response: value: 160 - label: "Color Loop Set Command - Set all Attributes" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -139,14 +139,14 @@ tests: - label: "Read ColorLoopActive attribute from DUT." command: "readAttribute" attribute: "ColorLoopActive" - PICS: CC.S.A4002 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4002 response: value: 1 - label: "Read ColorLoopStoredEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStoredEnhancedHue" - PICS: CC.S.A4006 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4006 response: value: 16384 @@ -161,14 +161,14 @@ tests: - label: "Read ColorLoopStartEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStartEnhancedHue" - PICS: CC.S.A4005 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4005 response: saveAs: ColorLoopStartEnhancedHueValue - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 @@ -186,7 +186,7 @@ tests: - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 @@ -195,7 +195,7 @@ tests: - label: "Color Loop Set Command - Start Color Loop" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -216,7 +216,7 @@ tests: - label: "Read ColorLoopDirection attribute from DUT." command: "readAttribute" attribute: "ColorLoopDirection" - PICS: CC.S.A4003 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4003 response: value: 1 @@ -231,18 +231,18 @@ tests: - label: "Read ColorLoopStartEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStartEnhancedHue" - PICS: CC.S.A4005 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4005 response: - saveAs: ColorLoopStartEnhancedHue1 + saveAs: ColorLoopStartEnhancedHue - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue1 + minValue: ColorLoopStartEnhancedHue maxValue: 65535 - label: "Wait for 30S" @@ -256,16 +256,16 @@ tests: - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 - minValue: ColorLoopStartEnhancedHue1 + minValue: ColorLoopStartEnhancedHue maxValue: 65535 - label: "Color Loop Set Command - Start Color Loop" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -286,13 +286,13 @@ tests: - label: "Read ColorLoopActive attribute from DUT" command: "readAttribute" attribute: "ColorLoopActive" - PICS: CC.S.A4002 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4002 response: value: 0 - label: "Read ColorLoopStoredEnhancedHue attribute from DUT." command: "readAttribute" - PICS: CC.S.A4006 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4006 attribute: "ColorLoopStoredEnhancedHue" response: saveAs: ColorLoopStoredEnhancedHueValue @@ -300,7 +300,7 @@ tests: - label: "Read EnhancedCurrentHue attribute from DUT." command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: value: ColorLoopStoredEnhancedHueValue diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_3.yaml index 52c888d5b48644..413036ca4df292 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_9_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_9_3.yaml @@ -45,7 +45,7 @@ tests: "Precondition : Set DUT EnhancedCurrentHue to 0x4000 using EnhancedMoveToHue command" command: "EnhancedMoveToHue" - PICS: CC.S.C40.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C40.Rsp arguments: values: - name: "enhancedHue" @@ -69,7 +69,7 @@ tests: - label: "Sends ColorLoopSet Command - Set all Attributes" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -90,34 +90,34 @@ tests: - label: "Read ColorLoopActive attribute from DUT" command: "readAttribute" attribute: "ColorLoopActive" - PICS: CC.S.A4002 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4002 response: value: 0 - label: "Read ColorLoopDirection attribute from DUT." command: "readAttribute" attribute: "ColorLoopDirection" - PICS: CC.S.A4003 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4003 response: value: 0 - label: "Read ColorLoopTime attribute from DUT." command: "readAttribute" attribute: "ColorLoopTime" - PICS: CC.S.A4004 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4004 response: value: 30 - label: "Read ColorLoopStartEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStartEnhancedHue" - PICS: CC.S.A4005 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4005 response: value: 160 - label: "Color Loop Set Command - Set all Attributes" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -138,14 +138,14 @@ tests: - label: "Read ColorLoopActive attribute from DUT." command: "readAttribute" attribute: "ColorLoopActive" - PICS: CC.S.A4002 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4002 response: value: 1 - label: "Read ColorLoopStoredEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStoredEnhancedHue" - PICS: CC.S.A4006 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4006 response: value: 16384 @@ -160,14 +160,14 @@ tests: - label: "Read ColorLoopStartEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStartEnhancedHue" - PICS: CC.S.A4005 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4005 response: saveAs: ColorLoopStartEnhancedHueValue - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 @@ -185,7 +185,7 @@ tests: - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 @@ -194,7 +194,7 @@ tests: - label: "Color Loop Set Command - Start Color Loop" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -215,7 +215,7 @@ tests: - label: "Read ColorLoopTime attribute from DUT." command: "readAttribute" attribute: "ColorLoopTime" - PICS: CC.S.A4004 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4004 response: value: 60 @@ -230,7 +230,7 @@ tests: - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 @@ -248,7 +248,7 @@ tests: - label: "Read EnhancedCurrentHue attribute from DUT" command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: constraints: type: uint16 @@ -257,7 +257,7 @@ tests: - label: "Color Loop Set Command - Start Color Loop" command: "ColorLoopSet" - PICS: CC.S.C44.Rsp + PICS: CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp arguments: values: - name: "updateFlags" @@ -278,21 +278,21 @@ tests: - label: "Read ColorLoopActive attribute from DUT" command: "readAttribute" attribute: "ColorLoopActive" - PICS: CC.S.A4002 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4002 response: value: 0 - label: "Read ColorLoopStoredEnhancedHue attribute from DUT." command: "readAttribute" attribute: "ColorLoopStoredEnhancedHue" - PICS: CC.S.A4006 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4006 response: saveAs: ColorLoopStoredEnhancedHueValue - label: "Read EnhancedCurrentHue attribute from DUT." command: "readAttribute" attribute: "EnhancedCurrentHue" - PICS: CC.S.A4000 + PICS: CC.S.F01 && CC.S.F02 && CC.S.A4000 response: value: ColorLoopStoredEnhancedHueValue diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml index 1a46b564b1b959..d5a01993e3380e 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml @@ -25,72 +25,78 @@ tests: verification: | ./chip-tool onoff on 1 1 - [1657100775.227841][4422:4427] CHIP:DMG: InvokeResponseMessage = - [1657100775.227865][4422:4427] CHIP:DMG: { - [1657100775.227889][4422:4427] CHIP:DMG: suppressResponse = false, - [1657100775.227913][4422:4427] CHIP:DMG: InvokeResponseIBs = - [1657100775.227944][4422:4427] CHIP:DMG: [ - [1657100775.227968][4422:4427] CHIP:DMG: InvokeResponseIB = - [1657100775.227999][4422:4427] CHIP:DMG: { - [1657100775.228027][4422:4427] CHIP:DMG: CommandStatusIB = - [1657100775.228059][4422:4427] CHIP:DMG: { - [1657100775.228088][4422:4427] CHIP:DMG: CommandPathIB = - [1657100775.228121][4422:4427] CHIP:DMG: { - [1657100775.228154][4422:4427] CHIP:DMG: EndpointId = 0x1, - [1657100775.228189][4422:4427] CHIP:DMG: ClusterId = 0x6, - [1657100775.228222][4422:4427] CHIP:DMG: CommandId = 0x1, - [1657100775.228254][4422:4427] CHIP:DMG: }, - [1657100775.228289][4422:4427] CHIP:DMG: - [1657100775.228318][4422:4427] CHIP:DMG: StatusIB = - [1657100775.228350][4422:4427] CHIP:DMG: { - [1657100775.228383][4422:4427] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100775.228417][4422:4427] CHIP:DMG: }, - [1657100775.228452][4422:4427] CHIP:DMG: - [1657100775.228482][4422:4427] CHIP:DMG: }, - [1657100775.228513][4422:4427] CHIP:DMG: - [1657100775.228540][4422:4427] CHIP:DMG: }, - [1657100775.228570][4422:4427] CHIP:DMG: - [1657100775.228592][4422:4427] CHIP:DMG: ], - [1657100775.228621][4422:4427] CHIP:DMG: - [1657100775.228645][4422:4427] CHIP:DMG: InteractionModelRevision = 1 - [1657100775.228668][4422:4427] CHIP:DMG: }, - [1657100775.228727][4422:4427] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1657100775.228763][4422:4427] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912254.685769][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912254.685812][2977:2977] CHIP:DMG: { + [1657912254.685849][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912254.685891][2977:2977] CHIP:DMG: timedRequest = false, + [1657912254.685945][2977:2977] CHIP:DMG: InvokeRequests = + [1657912254.685994][2977:2977] CHIP:DMG: [ + [1657912254.686033][2977:2977] CHIP:DMG: CommandDataIB = + [1657912254.686097][2977:2977] CHIP:DMG: { + [1657912254.686138][2977:2977] CHIP:DMG: CommandPathIB = + [1657912254.686190][2977:2977] CHIP:DMG: { + [1657912254.686255][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912254.686310][2977:2977] CHIP:DMG: ClusterId = 0x6, + [1657912254.686361][2977:2977] CHIP:DMG: CommandId = 0x1, + [1657912254.686424][2977:2977] CHIP:DMG: }, + [1657912254.686480][2977:2977] CHIP:DMG: + [1657912254.686523][2977:2977] CHIP:DMG: CommandFields = + [1657912254.686572][2977:2977] CHIP:DMG: { + [1657912254.686621][2977:2977] CHIP:DMG: }, + [1657912254.686679][2977:2977] CHIP:DMG: }, + [1657912254.686727][2977:2977] CHIP:DMG: + [1657912254.686765][2977:2977] CHIP:DMG: ], + [1657912254.686812][2977:2977] CHIP:DMG: + [1657912254.686866][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912254.686904][2977:2977] CHIP:DMG: }, + [1657912254.687011][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o + [1657912254.687066][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912254.687110][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 + [1657912254.687171][2977:2977] CHIP:ZCL: On/Off set value: 1 1 + [1657912254.687213][2977:2977] CHIP:ZCL: Toggle on/off from 0 to 1 + [1657912254.687251][2977:2977] CHIP:ZCL: On Command - OffWaitTime : 0 + [1657912254.687307][2977:2977] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a51673a9 + [1657912254.687353][2977:2977] CHIP:ZCL: On/Toggle Command - Stop Timer + [1657912254.687388][2977:2977] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a51673aa + ./chip-tool colorcontrol enhanced-move-to-hue 16384 0 0 0 0 1 1 - [1657100804.250439][4428:4433] CHIP:DMG: InvokeResponseMessage = - [1657100804.250465][4428:4433] CHIP:DMG: { - [1657100804.250489][4428:4433] CHIP:DMG: suppressResponse = false, - [1657100804.250514][4428:4433] CHIP:DMG: InvokeResponseIBs = - [1657100804.250544][4428:4433] CHIP:DMG: [ - [1657100804.250569][4428:4433] CHIP:DMG: InvokeResponseIB = - [1657100804.250601][4428:4433] CHIP:DMG: { - [1657100804.250627][4428:4433] CHIP:DMG: CommandStatusIB = - [1657100804.250661][4428:4433] CHIP:DMG: { - [1657100804.250691][4428:4433] CHIP:DMG: CommandPathIB = - [1657100804.250728][4428:4433] CHIP:DMG: { - [1657100804.250766][4428:4433] CHIP:DMG: EndpointId = 0x1, - [1657100804.250805][4428:4433] CHIP:DMG: ClusterId = 0x300, - [1657100804.250842][4428:4433] CHIP:DMG: CommandId = 0x40, - [1657100804.250878][4428:4433] CHIP:DMG: }, - [1657100804.250917][4428:4433] CHIP:DMG: - [1657100804.250946][4428:4433] CHIP:DMG: StatusIB = - [1657100804.250983][4428:4433] CHIP:DMG: { - [1657100804.251017][4428:4433] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100804.251052][4428:4433] CHIP:DMG: }, - [1657100804.251086][4428:4433] CHIP:DMG: - [1657100804.251115][4428:4433] CHIP:DMG: }, - [1657100804.251148][4428:4433] CHIP:DMG: - [1657100804.251173][4428:4433] CHIP:DMG: }, - [1657100804.251202][4428:4433] CHIP:DMG: - [1657100804.251226][4428:4433] CHIP:DMG: ], - [1657100804.251255][4428:4433] CHIP:DMG: - [1657100804.251279][4428:4433] CHIP:DMG: InteractionModelRevision = 1 - [1657100804.251302][4428:4433] CHIP:DMG: }, - [1657100804.251360][4428:4433] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0040 Status=0x0 - [1657100804.251400][4428:4433] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912325.922452][2977:2977] CHIP:DMG: InvokeRequestMessage = + [1657912325.922480][2977:2977] CHIP:DMG: { + [1657912325.922503][2977:2977] CHIP:DMG: suppressResponse = false, + [1657912325.922529][2977:2977] CHIP:DMG: timedRequest = false, + [1657912325.922553][2977:2977] CHIP:DMG: InvokeRequests = + [1657912325.922596][2977:2977] CHIP:DMG: [ + [1657912325.922622][2977:2977] CHIP:DMG: CommandDataIB = + [1657912325.922649][2977:2977] CHIP:DMG: { + [1657912325.922673][2977:2977] CHIP:DMG: CommandPathIB = + [1657912325.922720][2977:2977] CHIP:DMG: { + [1657912325.922753][2977:2977] CHIP:DMG: EndpointId = 0x1, + [1657912325.922787][2977:2977] CHIP:DMG: ClusterId = 0x300, + [1657912325.922820][2977:2977] CHIP:DMG: CommandId = 0x40, + [1657912325.922862][2977:2977] CHIP:DMG: }, + [1657912325.922896][2977:2977] CHIP:DMG: + [1657912325.922922][2977:2977] CHIP:DMG: CommandFields = + [1657912325.922953][2977:2977] CHIP:DMG: { + [1657912325.922986][2977:2977] CHIP:DMG: 0x0 = 16384, + [1657912325.923030][2977:2977] CHIP:DMG: 0x1 = 0, + [1657912325.923064][2977:2977] CHIP:DMG: 0x2 = 0, + [1657912325.923097][2977:2977] CHIP:DMG: 0x3 = 0, + [1657912325.923138][2977:2977] CHIP:DMG: 0x4 = 0, + [1657912325.923171][2977:2977] CHIP:DMG: }, + [1657912325.923200][2977:2977] CHIP:DMG: }, + [1657912325.923240][2977:2977] CHIP:DMG: + [1657912325.923265][2977:2977] CHIP:DMG: ], + [1657912325.923296][2977:2977] CHIP:DMG: + [1657912325.923319][2977:2977] CHIP:DMG: InteractionModelRevision = 1 + [1657912325.923351][2977:2977] CHIP:DMG: }, + [1657912325.923425][2977:2977] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912325.923477][2977:2977] CHIP:DMG: AccessControl: allowed + [1657912325.923507][2977:2977] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0040 disabled: true - label: @@ -100,79 +106,169 @@ tests: PICS: CC.C.C44.Rsp verification: | ./chip-tool colorcontrol color-loop-set 15 0 0 30 160 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657100829.032257][4435:4441] CHIP:DMG: InvokeResponseMessage = - [1657100829.032304][4435:4441] CHIP:DMG: { - [1657100829.032350][4435:4441] CHIP:DMG: suppressResponse = false, - [1657100829.032396][4435:4441] CHIP:DMG: InvokeResponseIBs = - [1657100829.032454][4435:4441] CHIP:DMG: [ - [1657100829.032500][4435:4441] CHIP:DMG: InvokeResponseIB = - [1657100829.032561][4435:4441] CHIP:DMG: { - [1657100829.032611][4435:4441] CHIP:DMG: CommandStatusIB = - [1657100829.032671][4435:4441] CHIP:DMG: { - [1657100829.032725][4435:4441] CHIP:DMG: CommandPathIB = - [1657100829.032793][4435:4441] CHIP:DMG: { - [1657100829.032857][4435:4441] CHIP:DMG: EndpointId = 0x1, - [1657100829.032928][4435:4441] CHIP:DMG: ClusterId = 0x300, - [1657100829.032994][4435:4441] CHIP:DMG: CommandId = 0x44, - [1657100829.033059][4435:4441] CHIP:DMG: }, - [1657100829.033127][4435:4441] CHIP:DMG: - [1657100829.033182][4435:4441] CHIP:DMG: StatusIB = - [1657100829.033241][4435:4441] CHIP:DMG: { - [1657100829.033287][4435:4441] CHIP:DMG: status = 0x00 (SUCCESS), - [1657100829.033339][4435:4441] CHIP:DMG: }, - [1657100829.033399][4435:4441] CHIP:DMG: - [1657100829.033438][4435:4441] CHIP:DMG: }, - [1657100829.033484][4435:4441] CHIP:DMG: - [1657100829.033521][4435:4441] CHIP:DMG: }, - [1657100829.033562][4435:4441] CHIP:DMG: - [1657100829.033593][4435:4441] CHIP:DMG: ], - [1657100829.033633][4435:4441] CHIP:DMG: - [1657100829.033666][4435:4441] CHIP:DMG: InteractionModelRevision = 1 - [1657100829.033697][4435:4441] CHIP:DMG: }, - [1657100829.033773][4435:4441] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0044 Status=0x0 - [1657100829.033826][4435:4441] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912387.432732][3126:3126] CHIP:DMG: InvokeRequestMessage = + [1657912387.432781][3126:3126] CHIP:DMG: { + [1657912387.432823][3126:3126] CHIP:DMG: suppressResponse = false, + [1657912387.432872][3126:3126] CHIP:DMG: timedRequest = false, + [1657912387.432917][3126:3126] CHIP:DMG: InvokeRequests = + [1657912387.432978][3126:3126] CHIP:DMG: [ + [1657912387.433023][3126:3126] CHIP:DMG: CommandDataIB = + [1657912387.433078][3126:3126] CHIP:DMG: { + [1657912387.433130][3126:3126] CHIP:DMG: CommandPathIB = + [1657912387.433192][3126:3126] CHIP:DMG: { + [1657912387.433250][3126:3126] CHIP:DMG: EndpointId = 0x1, + [1657912387.433311][3126:3126] CHIP:DMG: ClusterId = 0x300, + [1657912387.433372][3126:3126] CHIP:DMG: CommandId = 0x44, + [1657912387.433429][3126:3126] CHIP:DMG: }, + [1657912387.433489][3126:3126] CHIP:DMG: + [1657912387.433541][3126:3126] CHIP:DMG: CommandFields = + [1657912387.433595][3126:3126] CHIP:DMG: { + [1657912387.433660][3126:3126] CHIP:DMG: 0x0 = 15, + [1657912387.433722][3126:3126] CHIP:DMG: 0x1 = 0, + [1657912387.433778][3126:3126] CHIP:DMG: 0x2 = 0, + [1657912387.433846][3126:3126] CHIP:DMG: 0x3 = 30, + [1657912387.433914][3126:3126] CHIP:DMG: 0x4 = 160, + [1657912387.433974][3126:3126] CHIP:DMG: 0x5 = 0, + [1657912387.434040][3126:3126] CHIP:DMG: 0x6 = 0, + [1657912387.434101][3126:3126] CHIP:DMG: }, + [1657912387.434152][3126:3126] CHIP:DMG: }, + [1657912387.434213][3126:3126] CHIP:DMG: + [1657912387.434257][3126:3126] CHIP:DMG: ], + [1657912387.434312][3126:3126] CHIP:DMG: + [1657912387.434354][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912387.434397][3126:3126] CHIP:DMG: }, + [1657912387.434514][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912387.434575][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912387.434626][3126:3126] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0044 disabled: true - label: "DUT read ColorLoopActive attribute from TH." PICS: CC.C.A4002 verification: | ./chip-tool colorcontrol read color-loop-active 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657100849.171372][4443:4448] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4002 DataVersion: 1806828076 - [1657100849.171444][4443:4448] CHIP:TOO: ColorLoopActive: 0 + Verify in DUT as client side log: + [1657912416.547714][3126:3126] CHIP:IM: Received Read request + [1657912416.547842][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912416.547890][3126:3126] CHIP:DMG: { + [1657912416.547930][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912416.547986][3126:3126] CHIP:DMG: [ + [1657912416.548031][3126:3126] CHIP:DMG: AttributePathIB = + [1657912416.548116][3126:3126] CHIP:DMG: { + [1657912416.548167][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912416.548231][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912416.548292][3126:3126] CHIP:DMG: Attribute = 0x0000_4002, + [1657912416.548356][3126:3126] CHIP:DMG: } + [1657912416.548410][3126:3126] CHIP:DMG: + [1657912416.548464][3126:3126] CHIP:DMG: ], + [1657912416.548516][3126:3126] CHIP:DMG: + [1657912416.548564][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912416.548610][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912416.548653][3126:3126] CHIP:DMG: }, + [1657912416.548787][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912416.548947][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912416.549000][3126:3126] CHIP:DMG: Cluster 300, Attribute 4002 is dirty + [1657912416.549040][3126:3126] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4002 (expanded=0) + [1657912416.549091][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912416.549147][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912416.549237][3126:3126] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT read ColorLoopDirection attribute from TH." PICS: CC.C.A4003 verification: | ./chip-tool colorcontrol read color-loop-direction 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657100868.557450][4449:4454] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4003 DataVersion: 1806828076 - [1657100868.557533][4449:4454] CHIP:TOO: ColorLoopDirection: 0 + Verify in DUT as client side log: + [1657912446.661818][3126:3126] CHIP:IM: Received Read request + [1657912446.661940][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912446.661989][3126:3126] CHIP:DMG: { + [1657912446.662029][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912446.662076][3126:3126] CHIP:DMG: [ + [1657912446.662120][3126:3126] CHIP:DMG: AttributePathIB = + [1657912446.662174][3126:3126] CHIP:DMG: { + [1657912446.662225][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912446.662282][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912446.662345][3126:3126] CHIP:DMG: Attribute = 0x0000_4003, + [1657912446.662407][3126:3126] CHIP:DMG: } + [1657912446.662462][3126:3126] CHIP:DMG: + [1657912446.662511][3126:3126] CHIP:DMG: ], + [1657912446.662563][3126:3126] CHIP:DMG: + [1657912446.662610][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912446.662656][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912446.662695][3126:3126] CHIP:DMG: }, + [1657912446.662822][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912446.662971][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912446.663023][3126:3126] CHIP:DMG: Cluster 300, Attribute 4003 is dirty + [1657912446.663064][3126:3126] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4003 (expanded=0) + [1657912446.663114][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912446.663169][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912446.663260][3126:3126] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT read ColorLoopTime attribute from TH." PICS: CC.C.A4004 verification: | ./chip-tool colorcontrol read color-loop-time 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657100887.731783][4455:4460] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4004 DataVersion: 1806828076 - [1657100887.731858][4455:4460] CHIP:TOO: ColorLoopTime: 30 + Verify in DUT as client side log: + [1657912469.590293][3126:3126] CHIP:IM: Received Read request + [1657912469.590419][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912469.590466][3126:3126] CHIP:DMG: { + [1657912469.590499][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912469.590546][3126:3126] CHIP:DMG: [ + [1657912469.590590][3126:3126] CHIP:DMG: AttributePathIB = + [1657912469.590639][3126:3126] CHIP:DMG: { + [1657912469.590690][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912469.590748][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912469.590809][3126:3126] CHIP:DMG: Attribute = 0x0000_4004, + [1657912469.590861][3126:3126] CHIP:DMG: } + [1657912469.590913][3126:3126] CHIP:DMG: + [1657912469.590959][3126:3126] CHIP:DMG: ], + [1657912469.591009][3126:3126] CHIP:DMG: + [1657912469.591056][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912469.591101][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912469.591143][3126:3126] CHIP:DMG: }, + [1657912469.591267][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912469.591410][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912469.591461][3126:3126] CHIP:DMG: Cluster 300, Attribute 4004 is dirty + [1657912469.591500][3126:3126] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4004 (expanded=0) + [1657912469.591545][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912469.591599][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912469.591688][3126:3126] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT read ColorLoopStartEnhancedHue attribute from TH." PICS: CC.C.A4005 verification: | ./chip-tool colorcontrol read color-loop-start-enhanced-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657100907.253262][4463:4468] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4005 DataVersion: 1806828076 - [1657100907.253326][4463:4468] CHIP:TOO: ColorLoopStartEnhancedHue: 160 + Verify in DUT as client side log: + [1657912490.104534][3126:3126] CHIP:IM: Received Read request + [1657912490.104664][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912490.104713][3126:3126] CHIP:DMG: { + [1657912490.104753][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912490.104801][3126:3126] CHIP:DMG: [ + [1657912490.104844][3126:3126] CHIP:DMG: AttributePathIB = + [1657912490.104893][3126:3126] CHIP:DMG: { + [1657912490.104945][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912490.105003][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912490.105059][3126:3126] CHIP:DMG: Attribute = 0x0000_4005, + [1657912490.105112][3126:3126] CHIP:DMG: } + [1657912490.105164][3126:3126] CHIP:DMG: + [1657912490.105211][3126:3126] CHIP:DMG: ], + [1657912490.105263][3126:3126] CHIP:DMG: + [1657912490.105311][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912490.105357][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912490.105400][3126:3126] CHIP:DMG: }, + [1657912490.105531][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912490.105679][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912490.105731][3126:3126] CHIP:DMG: Cluster 300, Attribute 4005 is dirty + [1657912490.105771][3126:3126] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4005 (expanded=0) + [1657912490.105821][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912490.105877][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912490.105967][3126:3126] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: @@ -181,59 +277,98 @@ tests: PICS: CC.C.C44.Rsp verification: | ./chip-tool colorcontrol color-loop-set 1 1 0 0 0 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657101008.744866][4475:4480] CHIP:DMG: InvokeResponseMessage = - [1657101008.744891][4475:4480] CHIP:DMG: { - [1657101008.744915][4475:4480] CHIP:DMG: suppressResponse = false, - [1657101008.744940][4475:4480] CHIP:DMG: InvokeResponseIBs = - [1657101008.744971][4475:4480] CHIP:DMG: [ - [1657101008.744995][4475:4480] CHIP:DMG: InvokeResponseIB = - [1657101008.745027][4475:4480] CHIP:DMG: { - [1657101008.745053][4475:4480] CHIP:DMG: CommandStatusIB = - [1657101008.745084][4475:4480] CHIP:DMG: { - [1657101008.745113][4475:4480] CHIP:DMG: CommandPathIB = - [1657101008.745148][4475:4480] CHIP:DMG: { - [1657101008.745183][4475:4480] CHIP:DMG: EndpointId = 0x1, - [1657101008.745222][4475:4480] CHIP:DMG: ClusterId = 0x300, - [1657101008.745252][4475:4480] CHIP:DMG: CommandId = 0x44, - [1657101008.745284][4475:4480] CHIP:DMG: }, - [1657101008.745317][4475:4480] CHIP:DMG: - [1657101008.745345][4475:4480] CHIP:DMG: StatusIB = - [1657101008.745378][4475:4480] CHIP:DMG: { - [1657101008.745411][4475:4480] CHIP:DMG: status = 0x00 (SUCCESS), - [1657101008.745443][4475:4480] CHIP:DMG: }, - [1657101008.745474][4475:4480] CHIP:DMG: - [1657101008.745502][4475:4480] CHIP:DMG: }, - [1657101008.745534][4475:4480] CHIP:DMG: - [1657101008.745559][4475:4480] CHIP:DMG: }, - [1657101008.745588][4475:4480] CHIP:DMG: - [1657101008.745611][4475:4480] CHIP:DMG: ], - [1657101008.745640][4475:4480] CHIP:DMG: - [1657101008.745664][4475:4480] CHIP:DMG: InteractionModelRevision = 1 - [1657101008.745687][4475:4480] CHIP:DMG: }, - [1657101008.745743][4475:4480] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0044 Status=0x0 - [1657101008.745784][4475:4480] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + [1657912520.093793][3126:3126] CHIP:DMG: InvokeRequestMessage = + [1657912520.093822][3126:3126] CHIP:DMG: { + [1657912520.093845][3126:3126] CHIP:DMG: suppressResponse = false, + [1657912520.093872][3126:3126] CHIP:DMG: timedRequest = false, + [1657912520.093896][3126:3126] CHIP:DMG: InvokeRequests = + [1657912520.093928][3126:3126] CHIP:DMG: [ + [1657912520.093952][3126:3126] CHIP:DMG: CommandDataIB = + [1657912520.093989][3126:3126] CHIP:DMG: { + [1657912520.094015][3126:3126] CHIP:DMG: CommandPathIB = + [1657912520.094046][3126:3126] CHIP:DMG: { + [1657912520.094079][3126:3126] CHIP:DMG: EndpointId = 0x1, + [1657912520.094112][3126:3126] CHIP:DMG: ClusterId = 0x300, + [1657912520.094144][3126:3126] CHIP:DMG: CommandId = 0x44, + [1657912520.094173][3126:3126] CHIP:DMG: }, + [1657912520.094199][3126:3126] CHIP:DMG: + [1657912520.094225][3126:3126] CHIP:DMG: CommandFields = + [1657912520.094255][3126:3126] CHIP:DMG: { + [1657912520.094286][3126:3126] CHIP:DMG: 0x0 = 1, + [1657912520.094316][3126:3126] CHIP:DMG: 0x1 = 1, + [1657912520.094342][3126:3126] CHIP:DMG: 0x2 = 0, + [1657912520.094367][3126:3126] CHIP:DMG: 0x3 = 0, + [1657912520.094492][3126:3126] CHIP:DMG: 0x4 = 0, + [1657912520.094533][3126:3126] CHIP:DMG: 0x5 = 0, + [1657912520.094565][3126:3126] CHIP:DMG: 0x6 = 0, + [1657912520.094597][3126:3126] CHIP:DMG: }, + [1657912520.094626][3126:3126] CHIP:DMG: }, + [1657912520.094660][3126:3126] CHIP:DMG: + [1657912520.094683][3126:3126] CHIP:DMG: ], + [1657912520.094715][3126:3126] CHIP:DMG: + [1657912520.094739][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912520.094762][3126:3126] CHIP:DMG: }, + [1657912520.094835][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912520.094872][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912520.094900][3126:3126] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0044 disabled: true - label: "DUT read ColorLoopActive attribute from TH." PICS: CC.C.A4002 verification: | ./chip-tool colorcontrol read color-loop-active 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657101042.207152][4483:4488] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4002 DataVersion: 1806829078 - [1657101042.207223][4483:4488] CHIP:TOO: ColorLoopActive: 1 + Verify in DUT as client side log: + + [1657912750.645121][3126:3126] CHIP:IM: Received Read request + [1657912750.645210][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912750.645332][3126:3126] CHIP:DMG: { + [1657912750.645356][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912750.645382][3126:3126] CHIP:DMG: [ + [1657912750.645406][3126:3126] CHIP:DMG: AttributePathIB = + [1657912750.645436][3126:3126] CHIP:DMG: { + [1657912750.645465][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912750.645503][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912750.645531][3126:3126] CHIP:DMG: Attribute = 0x0000_4002, + [1657912750.645555][3126:3126] CHIP:DMG: } + [1657912750.645584][3126:3126] CHIP:DMG: + [1657912750.645615][3126:3126] CHIP:DMG: ], + [1657912750.645643][3126:3126] CHIP:DMG: + [1657912750.645667][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912750.645692][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912750.645715][3126:3126] CHIP:DMG: }, + [1657912750.645801][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912750.645917][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912750.646000][3126:3126] CHIP:DMG: Cluster 300, Attribute 4002 is dirty disabled: true - label: "DUT read ColorLoopStoredEnhancedHue attribute from TH." PICS: CC.C.A4006 verification: | ./chip-tool colorcontrol read color-loop-stored-enhanced-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657101062.166998][4489:4494] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4006 DataVersion: 1806829675 - [1657101062.167065][4489:4494] CHIP:TOO: ColorLoopStoredEnhancedHue: 16384 + Verify in DUT as client side log: + [1657912783.463733][3126:3126] CHIP:IM: Received Read request + [1657912783.463816][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912783.463844][3126:3126] CHIP:DMG: { + [1657912783.463865][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912783.463891][3126:3126] CHIP:DMG: [ + [1657912783.463915][3126:3126] CHIP:DMG: AttributePathIB = + [1657912783.463943][3126:3126] CHIP:DMG: { + [1657912783.463970][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912783.464005][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912783.464042][3126:3126] CHIP:DMG: Attribute = 0x0000_4006, + [1657912783.464140][3126:3126] CHIP:DMG: } + [1657912783.464177][3126:3126] CHIP:DMG: + [1657912783.464208][3126:3126] CHIP:DMG: ], + [1657912783.464237][3126:3126] CHIP:DMG: + [1657912783.464264][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912783.464289][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912783.464312][3126:3126] CHIP:DMG: }, + [1657912783.464399][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912783.464546][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912783.464582][3126:3126] CHIP:DMG: Cluster 300, Attribute 4006 is dirty disabled: true - label: @@ -241,10 +376,27 @@ tests: PICS: CC.C.A4000 verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657101080.876810][4496:4501] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806830233 - [1657101080.876876][4496:4501] CHIP:TOO: EnhancedCurrentHue: 39918 + Verify in DUT as client side log: + [1657912801.027600][3126:3126] CHIP:IM: Received Read request + [1657912801.027717][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912801.027761][3126:3126] CHIP:DMG: { + [1657912801.027803][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912801.027909][3126:3126] CHIP:DMG: [ + [1657912801.027952][3126:3126] CHIP:DMG: AttributePathIB = + [1657912801.027999][3126:3126] CHIP:DMG: { + [1657912801.028046][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912801.028135][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912801.028262][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, + [1657912801.028320][3126:3126] CHIP:DMG: } + [1657912801.028372][3126:3126] CHIP:DMG: + [1657912801.028425][3126:3126] CHIP:DMG: ], + [1657912801.028472][3126:3126] CHIP:DMG: + [1657912801.028516][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912801.028607][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912801.028653][3126:3126] CHIP:DMG: }, + [1657912801.028777][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912801.028982][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912801.029035][3126:3126] CHIP:DMG: Cluster 300, Attribute 4000 is dirty disabled: true - label: @@ -253,10 +405,27 @@ tests: PICS: CC.C.A4000 verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657101098.688681][4502:4507] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806830767 - [1657101098.688757][4502:4507] CHIP:TOO: EnhancedCurrentHue: 1034 + Verify in DUT as client side log: + [1657912801.027600][3126:3126] CHIP:IM: Received Read request + [1657912801.027717][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912801.027761][3126:3126] CHIP:DMG: { + [1657912801.027803][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912801.027909][3126:3126] CHIP:DMG: [ + [1657912801.027952][3126:3126] CHIP:DMG: AttributePathIB = + [1657912801.027999][3126:3126] CHIP:DMG: { + [1657912801.028046][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912801.028135][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912801.028262][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, + [1657912801.028320][3126:3126] CHIP:DMG: } + [1657912801.028372][3126:3126] CHIP:DMG: + [1657912801.028425][3126:3126] CHIP:DMG: ], + [1657912801.028472][3126:3126] CHIP:DMG: + [1657912801.028516][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912801.028607][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912801.028653][3126:3126] CHIP:DMG: }, + [1657912801.028777][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912801.028982][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912801.029035][3126:3126] CHIP:DMG: Cluster 300, Attribute 4000 is dirty disabled: true - label: @@ -265,57 +434,99 @@ tests: PICS: CC.C.C44.Rsp verification: | ./chip-tool colorcontrol color-loop-set 1 0 0 0 0 0 0 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657101121.817411][4508:4513] CHIP:DMG: InvokeResponseMessage = - [1657101121.817450][4508:4513] CHIP:DMG: { - [1657101121.817490][4508:4513] CHIP:DMG: suppressResponse = false, - [1657101121.817529][4508:4513] CHIP:DMG: InvokeResponseIBs = - [1657101121.817579][4508:4513] CHIP:DMG: [ - [1657101121.817619][4508:4513] CHIP:DMG: InvokeResponseIB = - [1657101121.817672][4508:4513] CHIP:DMG: { - [1657101121.817715][4508:4513] CHIP:DMG: CommandStatusIB = - [1657101121.817772][4508:4513] CHIP:DMG: { - [1657101121.817820][4508:4513] CHIP:DMG: CommandPathIB = - [1657101121.817875][4508:4513] CHIP:DMG: { - [1657101121.817929][4508:4513] CHIP:DMG: EndpointId = 0x1, - [1657101121.817986][4508:4513] CHIP:DMG: ClusterId = 0x300, - [1657101121.818046][4508:4513] CHIP:DMG: CommandId = 0x44, - [1657101121.818105][4508:4513] CHIP:DMG: }, - [1657101121.818164][4508:4513] CHIP:DMG: - [1657101121.818212][4508:4513] CHIP:DMG: StatusIB = - [1657101121.818270][4508:4513] CHIP:DMG: { - [1657101121.818325][4508:4513] CHIP:DMG: status = 0x00 (SUCCESS), - [1657101121.818413][4508:4513] CHIP:DMG: }, - [1657101121.818466][4508:4513] CHIP:DMG: - [1657101121.818505][4508:4513] CHIP:DMG: }, - [1657101121.818562][4508:4513] CHIP:DMG: - [1657101121.818597][4508:4513] CHIP:DMG: }, - [1657101121.818637][4508:4513] CHIP:DMG: - [1657101121.818668][4508:4513] CHIP:DMG: ], - [1657101121.818707][4508:4513] CHIP:DMG: - [1657101121.818738][4508:4513] CHIP:DMG: InteractionModelRevision = 1 - [1657101121.818769][4508:4513] CHIP:DMG: }, - [1657101121.818845][4508:4513] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0044 Status=0x0 - [1657101121.818898][4508:4513] CHIP:DMG: ICR moving to [AwaitingDe] + Verify in DUT as client side log: + + [1657912615.862118][3126:3126] CHIP:DMG: InvokeRequestMessage = + [1657912615.862168][3126:3126] CHIP:DMG: { + [1657912615.862209][3126:3126] CHIP:DMG: suppressResponse = false, + [1657912615.862258][3126:3126] CHIP:DMG: timedRequest = false, + [1657912615.862305][3126:3126] CHIP:DMG: InvokeRequests = + [1657912615.862365][3126:3126] CHIP:DMG: [ + [1657912615.862409][3126:3126] CHIP:DMG: CommandDataIB = + [1657912615.862463][3126:3126] CHIP:DMG: { + [1657912615.862510][3126:3126] CHIP:DMG: CommandPathIB = + [1657912615.862565][3126:3126] CHIP:DMG: { + [1657912615.862626][3126:3126] CHIP:DMG: EndpointId = 0x1, + [1657912615.862687][3126:3126] CHIP:DMG: ClusterId = 0x300, + [1657912615.862745][3126:3126] CHIP:DMG: CommandId = 0x44, + [1657912615.862806][3126:3126] CHIP:DMG: }, + [1657912615.862865][3126:3126] CHIP:DMG: + [1657912615.862913][3126:3126] CHIP:DMG: CommandFields = + [1657912615.862968][3126:3126] CHIP:DMG: { + [1657912615.863027][3126:3126] CHIP:DMG: 0x0 = 1, + [1657912615.863084][3126:3126] CHIP:DMG: 0x1 = 0, + [1657912615.863142][3126:3126] CHIP:DMG: 0x2 = 0, + [1657912615.863202][3126:3126] CHIP:DMG: 0x3 = 0, + [1657912615.863263][3126:3126] CHIP:DMG: 0x4 = 0, + [1657912615.863323][3126:3126] CHIP:DMG: 0x5 = 0, + [1657912615.863383][3126:3126] CHIP:DMG: 0x6 = 0, + [1657912615.863436][3126:3126] CHIP:DMG: }, + [1657912615.863481][3126:3126] CHIP:DMG: }, + [1657912615.863538][3126:3126] CHIP:DMG: + [1657912615.863582][3126:3126] CHIP:DMG: ], + [1657912615.863638][3126:3126] CHIP:DMG: + [1657912615.863682][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912615.863725][3126:3126] CHIP:DMG: }, + [1657912615.863845][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o + [1657912615.863906][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912615.863955][3126:3126] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0300 Command=0x0000_0044 disabled: true - label: "DUT read ColorLoopActive attribute from TH." PICS: CC.C.A4002 verification: | ./chip-tool colorcontrol read color-loop-active 1 1 - verify on Reference app receives the right response for the data sent in the above commands - [1657101141.547930][4516:4521] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4002 DataVersion: 1806831459 - [1657101141.547994][4516:4521] CHIP:TOO: ColorLoopActive: 0 + Verify in DUT as client side log: + [1657912416.547714][3126:3126] CHIP:IM: Received Read request + [1657912416.547842][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912416.547890][3126:3126] CHIP:DMG: { + [1657912416.547930][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912416.547986][3126:3126] CHIP:DMG: [ + [1657912416.548031][3126:3126] CHIP:DMG: AttributePathIB = + [1657912416.548116][3126:3126] CHIP:DMG: { + [1657912416.548167][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912416.548231][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912416.548292][3126:3126] CHIP:DMG: Attribute = 0x0000_4002, + [1657912416.548356][3126:3126] CHIP:DMG: } + [1657912416.548410][3126:3126] CHIP:DMG: + [1657912416.548464][3126:3126] CHIP:DMG: ], + [1657912416.548516][3126:3126] CHIP:DMG: + [1657912416.548564][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912416.548610][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912416.548653][3126:3126] CHIP:DMG: }, + [1657912416.548787][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912416.548947][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912416.549000][3126:3126] CHIP:DMG: Cluster 300, Attribute 4002 is dirty + [1657912416.549040][3126:3126] CHIP:DMG: Reading attribute: Cluster=0x0000_0300 Endpoint=1 AttributeId=0x0000_4002 (expanded=0) + [1657912416.549091][3126:3126] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=v + [1657912416.549147][3126:3126] CHIP:DMG: AccessControl: allowed + [1657912416.549237][3126:3126] CHIP:DMG: Sending report (payload has 38 bytes)... disabled: true - label: "DUT read EnhancedCurrentHue attribute from TH." PICS: CC.C.A4000 verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - verify on Reference app receives the right response for the data sent in the above commands - - [1657101157.473704][4522:4527] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_4000 DataVersion: 1806831459 - [1657101157.473769][4522:4527] CHIP:TOO: EnhancedCurrentHue: 16384 + Verify in DUT as client side log: + [1657912801.027600][3126:3126] CHIP:IM: Received Read request + [1657912801.027717][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657912801.027761][3126:3126] CHIP:DMG: { + [1657912801.027803][3126:3126] CHIP:DMG: AttributePathIBs = + [1657912801.027909][3126:3126] CHIP:DMG: [ + [1657912801.027952][3126:3126] CHIP:DMG: AttributePathIB = + [1657912801.027999][3126:3126] CHIP:DMG: { + [1657912801.028046][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657912801.028135][3126:3126] CHIP:DMG: Cluster = 0x300, + [1657912801.028262][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, + [1657912801.028320][3126:3126] CHIP:DMG: } + [1657912801.028372][3126:3126] CHIP:DMG: + [1657912801.028425][3126:3126] CHIP:DMG: ], + [1657912801.028472][3126:3126] CHIP:DMG: + [1657912801.028516][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657912801.028607][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657912801.028653][3126:3126] CHIP:DMG: }, + [1657912801.028777][3126:3126] CHIP:DMG: IM RH moving to [GeneratingReports] + [1657912801.028982][3126:3126] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1657912801.029035][3126:3126] CHIP:DMG: Cluster 300, Attribute 4000 is dirty disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml index 3acefeff94fb68..cbeacb670c8dbb 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml @@ -37,7 +37,7 @@ tests: constraints: type: uint16 - - label: "Read the optional global attribute: FeatureMap" + - label: "Read the global attribute: FeatureMap" PICS: CHANNEL.S.CL || CHANNEL.S.LI command: "readAttribute" attribute: "FeatureMap" @@ -83,21 +83,43 @@ tests: type: list contains: [2] - - label: "Read the global attribute: AcceptedCommandList" + - label: "Read the optional command(ChangeChannel) in AcceptedCommandList" + PICS: CHANNEL.S.C00.Rsp command: "readAttribute" attribute: "AcceptedCommandList" response: constraints: type: list - contains: [0, 2, 3] + contains: [0] + + - label: + "Read the optional command(ChangeChannelByNumber) in + AcceptedCommandList" + PICS: CHANNEL.S.C02.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [2] + + - label: "Read the optional command(SkipChannel) in AcceptedCommandList" + PICS: CHANNEL.S.C03.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [3] - label: "Read the global attribute: GeneratedCommandList" + PICS: CHANNEL.S.C01.Tx command: "readAttribute" attribute: "GeneratedCommandList" response: constraints: type: list - contains: [] + contains: [1] #issue #11053 disabled steps below Global attributes missing from YAML framework - label: diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_2.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_2.yaml index b61d2c2cbed40b..907eb82d7b032d 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_2.yaml @@ -43,7 +43,7 @@ tests: type: list - label: "TH sends a ChangeChannelByNumber command" - PICS: CHANNEL.S.C0002 + PICS: CHANNEL.S.C02.Rsp command: "ChangeChannelByNumber" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_3.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_3.yaml index 6778836d2183bd..bc1d705bd0daab 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_3.yaml @@ -59,7 +59,7 @@ tests: value: [majorNumber: majornumber, minorNumber: minornumber] - label: "Sends a SkipChannel command to the DUT" - PICS: CHANNEL.S.C0003 + PICS: CHANNEL.S.C03.Rsp command: "SkipChannel" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml index 989788ff921502..706496f82a2721 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml @@ -38,7 +38,7 @@ tests: constraints: type: uint16 - - label: "Read the optional global attribute: FeatureMap" + - label: "Read the global attribute: FeatureMap" PICS: CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP command: "readAttribute" attribute: "FeatureMap" @@ -49,7 +49,6 @@ tests: maxValue: 3 - label: "Read the global attribute: AttributeList" - PICS: CONTENTLAUNCHER.S.A0000 && CONTENTLAUNCHER.S.A0001 command: "readAttribute" attribute: "AttributeList" response: diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml index 615ae2c6cd986d..143dcc82ca8ed2 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml @@ -439,6 +439,24 @@ tests: [1655979686.741451][22876:22881] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' disabled: true + #Verify that DUT Completes the commissioning process successfully + - label: "TH1 responds with a well-formed AttestationResponse Command" + verification: | + Both on DUT and TH side + DUT as commissioner side: + + [1655979694.071847][22876:22881] CHIP:CTL: Received CommissioningComplete response, errorCode=0 + [1655979694.071913][22876:22881] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1655979694.071968][22876:22881] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1655979694.072031][22876:22881] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1655979694.072081][22876:22881] CHIP:DIS: Closing all BLE connections + [1655979694.072136][22876:22881] CHIP:IN: Clearing BLE pending packets. + [1655979694.072268][22876:22881] CHIP:BLE: Auto-closing end point's BLE connection. + [1655979694.072328][22876:22881] CHIP:DL: Closing BLE GATT connection (con 0xffffa806f3f0) + [1655979694.072477][22876:22881] CHIP:CTL: Successfully finished commissioning step 'Cleanup' + [1655979694.072547][22876:22881] CHIP:TOO: Device commissioning completed with success + disabled: true + - label: "Factory Reset TH1 so that it is commissionable again" verification: | Both on DUT and TH side @@ -716,3 +734,11 @@ tests: verification: | See above disabled: true + + #Verify that the Nonce_1 and Nonce_2 are different. + - label: + "TH1 records the AttestationNonce received in AttestationRequest as + Nonce_2" + verification: | + Verify the value of NONCE in step 9 and 3 are different + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml index 908777d73e20b4..fadf56f23425c4 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml @@ -23,10 +23,12 @@ config: endpoint: 0 tests: - - label: "Power up the TH Device and put the TH Device in pairing mode" + - label: + "Power up the TH Device and put the TH Device in commissioning mode" verification: | - sudo ./chip-all-clusters-app - + 1. Launch TH that has NFC tag + $ sudo ./chip-all-clusters-app + ... [1646286638.375844][11651:11651] CHIP:DL: Device Configuration: [1646286638.375960][11651:11651] CHIP:DL: Serial Number: TEST_SN [1646286638.376016][11651:11651] CHIP:DL: Vendor Id: 65521 (0xFFF1) @@ -38,12 +40,12 @@ tests: [1646286638.377664][11651:11651] CHIP:DL: Device Type: 65535 (0xFFFF) [1646286638.377771][11651:11651] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] [1646286638.377865][11651:11651] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1646286638.377915][11651:11651] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 + [1646286638.377915][11651:11651] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 [1646286638.377986][11651:11651] CHIP:SVR: Manual pairing code: [34970112332] [1646286638.378089][11651:11651] CHIP:SVR: Long manual pairing code: [749701123365521327694] disabled: true - label: "Bring the DUT close to the NFC tag for the TH Device" verification: | - Vendor specific field testcase + Vendor specific field testcase as chip-all-clusters-app does not have an NFC tag to scan disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml index 7df34462215563..0a3fd6db64b3fd 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml @@ -24,64 +24,33 @@ config: tests: - label: - "If (PICS_DT_CTRL_CONCATENATED_QR_CODE_1), scan larger QR code that - will support the commissioning of all the devices" + "Scan larger QR code that will support the commissioning of all the TH + devices" PICS: MCORE.DD.CTRL_CONCATENATED_QR_CODE_1 verification: | - '' ./chip-all-clusters-app - - - [1646286638.375844][11651:11651] CHIP:DL: Device Configuration: - [1646286638.375960][11651:11651] CHIP:DL: Serial Number: TEST_SN - [1646286638.376016][11651:11651] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1646286638.376066][11651:11651] CHIP:DL: Product Id: 32769 (0x8001) - [1646286638.376153][11651:11651] CHIP:DL: Hardware Version: 0 - [1646286638.377458][11651:11651] CHIP:DL: Setup Pin Code: 20202021 - [1646286638.377541][11651:11651] CHIP:DL: Setup Discriminator: 3840 (0xF00) - [1646286638.377611][11651:11651] CHIP:DL: Manufacturing Date: (not set) - [1646286638.377664][11651:11651] CHIP:DL: Device Type: 65535 (0xFFFF) - [1646286638.377771][11651:11651] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] - [1646286638.377865][11651:11651] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1646286638.377915][11651:11651] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 - [1646286638.377986][11651:11651] CHIP:SVR: Manual pairing code: [34970112332] - [1646286638.378089][11651:11651] CHIP:SVR: Long manual pairing code: [749701123365521327694] - - - - - ./chip-tool payload parse-setup-payload MT:-24J042C00KA0648G00 - [1646287790.029238][8190:8190] CHIP:SPL: Parsing base38Representation: MT:-24J042C00KA0648G00 - [1646287790.029368][8190:8190] CHIP:SPL: CommissioningFlow: 0 - [1646287790.029393][8190:8190] CHIP:SPL: VendorID: 65521 - [1646287790.029413][8190:8190] CHIP:SPL: Version: 0 - [1646287790.029432][8190:8190] CHIP:SPL: ProductID: 32769 - [1646287790.029451][8190:8190] CHIP:SPL: Discriminator: 3840 - [1646287790.029469][8190:8190] CHIP:SPL: SetUpPINCode: 20202021 - [1646287790.029488][8190:8190] CHIP:SPL: RendezvousInformation: 2 - disabled: true - - - label: "If (PICS_DT_CTRL_CONCATENATED_QR_CODE_1)" - PICS: MCORE.DD.CTRL_CONCATENATED_QR_CODE_1 - verification: | - Vendor specific field testcase - disabled: true - - - label: - "If !(PICS_DT_CTRL_CONCATENATED_QR_CODE_1) && - PICS_DT_CTRL_CONCATENATED_QR_CODE_2" - PICS: - "!MCORE.DD.CTRL_CONCATENATED_QR_CODE_1 && - MCORE.DD.CTRL_CONCATENATED_QR_CODE_2" - verification: | - Vendor specific field testcase - disabled: true - - - label: - "If !(PICS_DT_CTRL_CONCATENATED_QR_CODE_1) && - !(PICS_DT_CTRL_CONCATENATED_QR_CODE_2)" - PICS: - "!MCORE.DD.CTRL_CONCATENATED_QR_CODE_1 && - !MCORE.DD.CTRL_CONCATENATED_QR_CODE_2" - verification: | - Vendor specific field testcase + Out of Scope for V1.0 as Concatenated QR codes are not supported yet + https://github.com/project-chip/connectedhomeip/issues/5331 + + 1. Lauch TH chip-all-clusters-app + ubuntu@matter-7:~/Apr18_dut/connectedhomeip/examples/all-clusters-app/linux/out/all-clusters-app$ sudo ./chip-all-clusters-app --wifi + + [13293:13293] CHIP:DL: Device Configuration: + [1653306603.740569][13293:13293] CHIP:DL: Serial Number: TEST_SN + [1653306603.740607][13293:13293] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1653306603.740644][13293:13293] CHIP:DL: Product Id: 32769 (0x8001) + [1653306603.740676][13293:13293] CHIP:DL: Hardware Version: 0 + [1653306603.740700][13293:13293] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1653306603.740722][13293:13293] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1653306603.740752][13293:13293] CHIP:DL: Manufacturing Date: (not set) + [1653306603.740777][13293:13293] CHIP:DL: Device Type: 65535 (0xFFFF) + [1653306603.740798][13293:13293] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1653306603.740846][13293:13293] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] + [1653306603.740877][13293:13293] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1653306603.740898][13293:13293] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 + [1653306603.740929][13293:13293] CHIP:SVR: Manual pairing code: [34970112332] + [1653306603.740951][13293:13293] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1653306603.741000][13293:13293] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1653306603.741028][13293:13293] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1653306603.741049][13293:13293] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 + [1653306603.741081][13293:13293] CHIP:SVR: Manual pairing code: [749701123365521327694] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml index 9b46d0b310964f..49a47c61f600d7 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml @@ -25,19 +25,31 @@ config: tests: - label: "Scan the DUTs QR code using the TH." verification: | - 1. Run DUT. Example for DUT=all-clusters app + 1. Run DUT. Example for DUT=all-clusters-app $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 + ... + [1657213978.633542][366513:366513] CHIP:DL: Device Configuration: + [1657213978.633637][366513:366513] CHIP:DL: Serial Number: (not set) + [1657213978.633681][366513:366513] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1657213978.633721][366513:366513] CHIP:DL: Product Id: 32769 (0x8001) + [1657213978.633773][366513:366513] CHIP:DL: Hardware Version: 0 + [1657213978.633815][366513:366513] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1657213978.633875][366513:366513] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1657213978.633927][366513:366513] CHIP:DL: Manufacturing Date: (not set) + [1657213978.633985][366513:366513] CHIP:DL: Device Type: 65535 (0xFFFF) + [1657213978.634025][366513:366513] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1657213978.634100][366513:366513] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] 2. Parse onboarding payload using TH=chip-tool - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 - [1651193251086] [15494:447566] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00 - [1651193251087] [15494:447566] CHIP: [SPL] CommissioningFlow: 0 - [1651193251087] [15494:447566] CHIP: [SPL] VendorID: 65521 - [1651193251087] [15494:447566] CHIP: [SPL] Version: 0 - [1651193251087] [15494:447566] CHIP: [SPL] ProductID: 32769 - [1651193251087] [15494:447566] CHIP: [SPL] Discriminator: 3840 - [1651193251087] [15494:447566] CHIP: [SPL] SetUpPINCode: 20202021 - [1651193251087] [15494:447566] CHIP: [SPL] RendezvousInformation: 4 + $ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 + [1657214153060] [29000:16610528] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00 + [1657214153060] [29000:16610528] CHIP: [SPL] Version: 0 + [1657214153060] [29000:16610528] CHIP: [SPL] VendorID: 65521 + [1657214153060] [29000:16610528] CHIP: [SPL] ProductID: 32769 + [1657214153060] [29000:16610528] CHIP: [SPL] Custom flow: 0 (STANDARD) + [1657214153060] [29000:16610528] CHIP: [SPL] Capabilities: 0x04 (On IP network) + [1657214153060] [29000:16610528] CHIP: [SPL] Discriminator: 3840 + [1657214153060] [29000:16610528] CHIP: [SPL] Passcode: 20202021 disabled: true - label: @@ -53,19 +65,17 @@ tests: "If CommissioningCustomFlow field in Step 2 = 0 (Standard Commissioning Flow), reboot the DUT device" verification: | - 1. Verify DUT is advertising in commissioning mode. On DUT, + 1. Verify DUT is advertising in commissioning mode. On DUT, verify through commissioning - $ ./out/chip-tool/chip-tool discover commissionables - [1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32 - [1651192893436] [15304:442604] CHIP: [DIS] Vendor ID: 65521 - [1651192893436] [15304:442604] CHIP: [DIS] Product ID: 32769 - [1651192893436] [15304:442604] CHIP: [DIS] Long Discriminator: 3840 - [1651192893436] [15304:442604] CHIP: [DIS] Pairing Hint: 33 - [1651192893436] [15304:442604] CHIP: [DIS] Hostname: DCA6328D6E320000 - [1651192893436] [15304:442604] CHIP: [DIS] Instance Name: 914762134DA8E7D1 - [1651192893436] [15304:442604] CHIP: [DIS] IP Address #1: fe80::dea6:32ff:fe8d:6e32 - [1651192893436] [15304:442604] CHIP: [DIS] Port: 5540 - [1651192893436] [15304:442604] CHIP: [DIS] Commissioning Mode: 1 - [1651192893436] [15304:442604] CHIP: [DIS] Mrp Interval idle: 5000 ms - [1651192893436] [15304:442604] CHIP: [DIS] Mrp Interval active: 300 ms + $ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + ... + [1657214364908] [29006:16612760] CHIP: [CTL] Starting commissioning discovery over DNS-SD + [1657214364908] [29006:16612760] CHIP: [DL] Browsing for: _matterc._udp,_L3840 + [1657214365080] [29006:16612761] CHIP: [DL] Mdns: OnBrowseAdd name: E5EFE5FB9DC494B9, type: _matterc._udp., domain: local., interface: 7 + [1657214365080] [29006:16612761] CHIP: [DL] Resolve type=_matterc._udp name=E5EFE5FB9DC494B9 interface=7 + [1657214365080] [29006:16612761] CHIP: [DL] Mdns : OnNewInterface hostname:DCA6328D2B9F0000.local. fullname:E5EFE5FB9DC494B9._matterc._udp.local. interface: 7 + [1657214365082] [29006:16612761] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2 + [1657214365082] [29006:16612761] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fe80::1e81:3e0:3865:2d29 + [1657214365082] [29006:16612761] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.10 + [1657214365082] [29006:16612761] CHIP: [CTL] Discovered device to be commissioned over DNS-SD disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml index 7e3257491440e0..dda362c1378f00 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml @@ -27,7 +27,7 @@ tests: verification: | 1. Verify DUT is NOT advertising in commissioning mode. On DUT, the DUT should not show up - $ ./out/chip-tool/chip-tool discover commissionables + $ ./chip-tool discover commissionables disabled: true - label: "Scan the DUTs QR code from the previous step using the TH." @@ -36,7 +36,7 @@ tests: $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 2. Parse onboarding payload using TH=chip-tool - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 + $ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 [1651193251086] [15494:447566] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00 [1651193251087] [15494:447566] CHIP: [SPL] CommissioningFlow: 1 [1651193251087] [15494:447566] CHIP: [SPL] VendorID: 65521 @@ -64,7 +64,7 @@ tests: 2. Verify DUT is advertising in commissioning mode. On DUT, - $ ./out/chip-tool/chip-tool discover commissionables + $ ./chip-tool discover commissionables [1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32 [1651192893436] [15304:442604] CHIP: [DIS] Vendor ID: 65521 [1651192893436] [15304:442604] CHIP: [DIS] Product ID: 32769 diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml index ac7ae83602bec6..4cbbb65801c4dc 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml @@ -27,7 +27,7 @@ tests: verification: | 1. Verify DUT is NOT advertising in commissioning mode. On DUT, the DUT should not show up - $ ./out/chip-tool/chip-tool discover commissionables + $ ./chip-tool discover commissionables disabled: true - label: "Scan the DUTs QR code from the previous step using the TH." @@ -36,7 +36,7 @@ tests: $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 2. Parse onboarding payload using TH=chip-tool - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 + $ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 [1651193251086] [15494:447566] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00 [1651193251087] [15494:447566] CHIP: [SPL] CommissioningFlow: 2 [1651193251087] [15494:447566] CHIP: [SPL] VendorID: 65521 @@ -52,8 +52,9 @@ tests: CommissioningCustomFlowUrl field of the DCL. Verify that the CommissioningCustomFlow field is set to a value = 2" verification: | - 1. Verify CommissioningCustomFlow=1 - 2. Verify CommissioningModeInitialStepsHint contains a valid, non-zero integer + 1. Verify CommissioningCustomFlow=2 + 2. Verify CommissioningModeInitialStepsHint has bit 0 (Power Cycle) set to 0 and bit 1 (Device Manufacturer URL) set to 1 + 3. Verify CommissioningModeInitialStepsHint contains a valid, non-zero integer disabled: true - label: @@ -64,7 +65,7 @@ tests: 2. Verify DUT is advertising in commissioning mode. On DUT, - $ ./out/chip-tool/chip-tool discover commissionables + $ ./chip-tool discover commissionables [1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32 [1651192893436] [15304:442604] CHIP: [DIS] Vendor ID: 65521 [1651192893436] [15304:442604] CHIP: [DIS] Product ID: 32769 diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml index 7b141c0887ce64..afd18c0f80739d 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml @@ -29,7 +29,7 @@ tests: verification: | 1. Parse payload for DUT1 - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 + $ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 [1651194471211] [16050:465158] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00 [1651194471211] [16050:465158] CHIP: [SPL] CommissioningFlow: 0 [1651194471211] [16050:465158] CHIP: [SPL] VendorID: 65521 @@ -42,7 +42,7 @@ tests: - label: "Using the TH, parse the Onboarding payload from previous step and - verify that the Descriminator and Passcode for DUT1 are present." + verify that the Discriminator and Passcode for DUT1 are present." verification: | DUT1 Descriminator: 3840 DUT1 Passcode: 20202021 @@ -54,7 +54,7 @@ tests: verification: | 1. Parse payload for DUT2 - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J0IRV01WCCN68G00 + $ ./chip-tool payload parse-setup-payload MT:-24J0IRV01WCCN68G00 [1651194577916] [16053:466154] CHIP: [SPL] Parsing base38Representation: MT:-24J0IRV01WCCN68G00 [1651194577916] [16053:466154] CHIP: [SPL] CommissioningFlow: 0 [1651194577916] [16053:466154] CHIP: [SPL] VendorID: 65521 @@ -67,21 +67,21 @@ tests: - label: "Using the TH, parse the Onboarding payload from previous step and - verify that the Descriminator and Passcode for DUT2 are present." + verify that the Discriminator and Passcode for DUT2 are present." verification: | DUT2 Descriminator: 3841 DUT2 Passcode: 20212022 disabled: true - label: - "Compare the Descriminator values for DUT1 (Step 1.b) and DUT2 (Step + "Compare the Discriminator values for DUT1 (Step 1.b) and DUT2 (Step 2.b)" verification: | - 1. Verify DUT1 Descriminator does not equal DUT2 Descriminator + 1. Verify DUT1 Descriminator in Step 1.b is NOT equal to DUT2 Descriminator in Step 2.b disabled: true - label: "Compare the Passcode values for DUT1 (Step 1.b) and DUT2 (Step 2.b)" verification: | - 1. Verify DUT1 Passcode does not equal DUT2 Passcode + Verify DUT1 Passcode in step 1b is not equal DUT2 Passcode in step 2b disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml index 63830076c49f14..1041553a11821c 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml @@ -41,12 +41,12 @@ tests: [1653306603.740798][13293:13293] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1653306603.740846][13293:13293] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] [1653306603.740877][13293:13293] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1653306603.740898][13293:13293] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 + [1653306603.740898][13293:13293] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 [1653306603.740929][13293:13293] CHIP:SVR: Manual pairing code: [34970112332] [1653306603.740951][13293:13293] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== [1653306603.741000][13293:13293] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] [1653306603.741028][13293:13293] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1653306603.741049][13293:13293] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 + [1653306603.741049][13293:13293] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 [1653306603.741081][13293:13293] CHIP:SVR: Manual pairing code: [749701123365521327694] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01) @@ -54,17 +54,18 @@ tests: CHIP:DL: Device Type: 65535 (0xFFFF) CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 + CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 CHIP:SVR: Manual pairing code: [34970112332] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 + CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 2. Parse the DUT's QR Code using the TH commissioner: chip-tool ubuntu@matter-7:~/Apr18_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J048N01KA0648G00 + Verify in DUT as client side: [1650266365.939678][10146:10146] CHIP:SPL: CommissioningFlow: 2 [1650266365.939704][10146:10146] CHIP:SPL: VendorID: 65521 [1650266365.939724][10146:10146] CHIP:SPL: Version: 0 @@ -80,6 +81,7 @@ tests: verification: | ./chip-tool pairing code 1 MT:-24J042C00KA0648G00 + Verify in DUT as client side: CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 CHIP:CTL: Received CommissioningComplete response, errorCode=0 CHIP:CTL: Successfully finished commissioning step 'SendComplete' @@ -89,3 +91,36 @@ tests: CHIP:TOO: Device commissioning completed with success CHIP:DMG: ICR moving to [AwaitingDe] disabled: true + + - label: + 'Scan the TH Devices QR code (that includes the additional TLV data) + using DUT. Using the example provided above, the payload would be + "MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40".' + PICS: MCORE.DD.SCAN_QR_CODE + verification: | + 1. Get QR code from TH as server side: + $ ./out/all-clusters-app/chip-all-clusters-app + ... + [1657211128.302755][365927:365927] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] + [1657211128.302783][365927:365927] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657211128.302804][365927:365927] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 + + 2. Build TLV Data into TH's QR code + $ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --tlvBytes hex:152C000A3132333435363738393018 + [1657211213125] [28612:16578643] CHIP: [TOO] QR Code: MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40 + disabled: true + + - label: + "Using the DUT, parse the THs QR code to onboard the TH Device onto + the Matter network." + verification: | + ./chip-tool pairing code 1 MT:-24J0AFN00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40 + + Verify in DUT as client side: + [1657210956708] [28601:16575811] CHIP: [CTL] Received CommissioningComplete response, errorCode=0 + [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657210956708] [28601:16575811] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657210956708] [28601:16575811] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657210956709] [28601:16575811] CHIP: [TOO] Device commissioning completed with success + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml index 9f3d1c65ffc459..19f9ae2248436d 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml @@ -27,31 +27,35 @@ tests: "Provide the 11-digit/21-digit Manual Pairing Code from the TH Device in text, speech or any format supported by DUT" verification: | - 1. Launch all-clusters-app on the raspi , get the Manual Pairing code from the log, Controller should be able to parse the Manual Pairing code + 1. Launch all-clusters-app on the raspi , get the Manual Pairing code from the log - ubuntu@matter-7:~/Apr18_dut/connectedhomeip/examples/all-clusters-app/linux/out/all-clusters-app$ sudo ./chip-all-clusters-app --wifi --discriminator 3841 + ubuntu@matter-7:~/Apr18_dut/connectedhomeip/examples/all-clusters-app/linux/out/all-clusters-app$ sudo ./chip-all-clusters-app --wifi - CHIP:SPT: PASE PBKDF iterations set to 1000 - CHIP:SPT: LinuxCommissionableDataProvider didn't get a PASE salt, generating one. - CHIP:DL: Device Configuration: - CHIP:DL: Serial Number: TEST_SN - CHIP:DL: Vendor Id: 65521 (0xFFF1) - CHIP:DL: Product Id: 32769 (0x8001) - CHIP:DL: Hardware Version: 0 - CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01) - CHIP:DL: Manufacturing Date: (not set) - CHIP:DL: Device Type: 65535 (0xFFFF) - CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00] - CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 - CHIP:SVR: Manual pairing code: [34970112332] - CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00] - CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 + [13293:13293] CHIP:DL: Device Configuration: + [1653306603.740569][13293:13293] CHIP:DL: Serial Number: TEST_SN + [1653306603.740607][13293:13293] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1653306603.740644][13293:13293] CHIP:DL: Product Id: 32769 (0x8001) + [1653306603.740676][13293:13293] CHIP:DL: Hardware Version: 0 + [1653306603.740700][13293:13293] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1653306603.740722][13293:13293] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1653306603.740752][13293:13293] CHIP:DL: Manufacturing Date: (not set) + [1653306603.740777][13293:13293] CHIP:DL: Device Type: 65535 (0xFFFF) + [1653306603.740798][13293:13293] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1653306603.740846][13293:13293] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] + [1653306603.740877][13293:13293] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1653306603.740898][13293:13293] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 + [1653306603.740929][13293:13293] CHIP:SVR: Manual pairing code: [34970112332] + [1653306603.740951][13293:13293] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1653306603.741000][13293:13293] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1653306603.741028][13293:13293] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1653306603.741049][13293:13293] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 + [1653306603.741081][13293:13293] CHIP:SVR: Manual pairing code: [749701123365521327694] + 2. Parse 11-digit Manual Pairing code ubuntu@matter-7:~/Apr18_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload 34970112332 + + Verify in DUT as client side: CHIP:SPL: Parsing decimalRepresentation: 34970112332 CHIP:SPL: CommissioningFlow: 0 CHIP:SPL: VendorID: 0 @@ -61,7 +65,10 @@ tests: CHIP:SPL: SetUpPINCode: 20202021 CHIP:SPL: RendezvousInformation: 0 + 3. Parse 21-digit Manual Pairing code ubuntu@matter-7:~/Apr18_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload 749701123365521327694 + + Verify in DUT as client side: CHIP:SPL: Parsing decimalRepresentation: 749701123365521327694 CHIP:SPL: CommissioningFlow: 2 CHIP:SPL: VendorID: 65521 @@ -70,4 +77,18 @@ tests: CHIP:SPL: Discriminator: 3840 CHIP:SPL: SetUpPINCode: 20202021 CHIP:SPL: RendezvousInformation: 0 + + 4. Parse payload by commissioning the TH + ./chip-tool pairing code 1 34970112332 + + Verify in DUT as client side: + [1653556303.582797][4071:4076] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 + [1653556303.582850][4071:4076] CHIP:CTL: Received CommissioningComplete response, errorCode=0 + [1653556303.582891][4071:4076] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1653556303.582927][4071:4076] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1653556303.582964][4071:4076] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1653556303.583040][4071:4076] CHIP:CTL: Successfully finished commissioning step 'Cleanup' + [1653556303.583110][4071:4076] CHIP:TOO: Device commissioning completed with success + [1653556303.583209][4071:4076] CHIP:DMG: ICR moving to [AwaitingDe] + [1653556303.583255][4071:4076] CHIP:EM: Sending Standalone Ack for MessageCounter:9735725 on exchange 24476i disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml index 18c6edcbc079f2..d97e50beb3830a 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml @@ -41,12 +41,12 @@ tests: [1653471956.972509][10713:10713] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1653471956.972546][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00] [1653471956.972579][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1653471956.972600][10713:10713] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 + [1653471956.972600][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 [1653471956.972632][10713:10713] CHIP:SVR: Manual pairing code: [34970112332] [1653471956.972654][10713:10713] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== [1653471956.972715][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00] [1653471956.972748][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1653471956.972769][10713:10713] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 + [1653471956.972769][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 [1653471956.972803][10713:10713] CHIP:SVR: Manual pairing code: [749701123365521327694] @@ -244,8 +244,8 @@ tests: disabled: true - label: - "If (PICS_WIFI) or (PICS_THREAD), Commissioner SHALL configure - regulatory information in the Commissionee." + "Commissioner SHALL configure regulatory information in the + Commissionee." PICS: MCORE.DD.WIRELESS verification: | Verify on TH Log: diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml index 2bc80b4dc717f8..936e6943fe2c1b 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml @@ -29,16 +29,16 @@ tests: verification: | 1. Parse the TH Onboarding Payload using the DUT commissioner - Example using chip-too as a DUT: - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00 - [1651077458589] [91233:65331701] CHIP: [SPL] Parsing base38Representation: MT:-24J029Q00KA0648G00 - [1651077458590] [91233:65331701] CHIP: [SPL] CommissioningFlow: 2 - [1651077458590] [91233:65331701] CHIP: [SPL] VendorID: 65521 - [1651077458590] [91233:65331701] CHIP: [SPL] Version: 0 - [1651077458590] [91233:65331701] CHIP: [SPL] ProductID: 32769 - [1651077458590] [91233:65331701] CHIP: [SPL] Discriminator: 3840 - [1651077458590] [91233:65331701] CHIP: [SPL] SetUpPINCode: 20202021 - [1651077458590] [91233:65331701] CHIP: [SPL] RendezvousInformation: 4 + Example using chip-tool as a DUT: + $ ./chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00 + [1657230447725] [31078:16782733] CHIP: [SPL] Parsing base38Representation: MT:-24J029Q00KA0648G00 + [1657230447725] [31078:16782733] CHIP: [SPL] Version: 0 + [1657230447725] [31078:16782733] CHIP: [SPL] VendorID: 65521 + [1657230447725] [31078:16782733] CHIP: [SPL] ProductID: 32769 + [1657230447725] [31078:16782733] CHIP: [SPL] Custom flow: 2 (CUSTOM) + [1657230447725] [31078:16782733] CHIP: [SPL] Capabilities: 0x04 (On IP network) + [1657230447725] [31078:16782733] CHIP: [SPL] Discriminator: 3840 + [1657230447725] [31078:16782733] CHIP: [SPL] Passcode: 20202021 2. Verify that the Commissioning Flow is set to 2 (Custom Flow) disabled: true @@ -53,26 +53,15 @@ tests: - label: "Using the instructions located at the CommissioningCustomFlowURL from the DCL, DUT guides the user in next steps to prepare the commissionee - (TH) for commisssioning" + (TH) for commissioning" verification: | 1. Follow instructions for commissioning using the URL contained in the DCL disabled: true - label: "DUT commissions TH" verification: | - 1. Verify commissioning was successful + $ ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 - TH all-clusters-app: - [1651103591.176135][8940:8940] CHIP:SVR: Commissioning completed successfully - [1651103591.176179][8940:8940] CHIP:DIS: Updating services using commissioning mode 0 - - DUT chip-tool: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J029Q00KA0648G00 - - [1651103591085] [94586:65580481] CHIP: [CTL] Received CommissioningComplete response - [1651103591085] [94586:65580481] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651103591085] [94586:65580481] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651103591085] [94586:65580481] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651103591085] [94586:65580481] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651103591085] [94586:65580481] CHIP: [TOO] Device commissioning completed with success + [1657578523795] [9610:351965] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657578523795] [9610:351965] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml index 85e9e0c6f4dbee..8d65d3338b3e5e 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml @@ -28,62 +28,53 @@ tests: has the Custom Flow field set to 0 and supports BLE for its Discovery Capability. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_BLE + PICS: MCORE.DD.DISCOVERY_BLE verification: | - $ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 + $ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 --ble-device 1 ... - [1651101335.714230][22353:22353] CHIP:DL: Device Configuration: - [1651101335.722064][22353:22353] CHIP:DL: Serial Number: TEST_SN - [1651101335.722638][22353:22353] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1651101335.723167][22353:22353] CHIP:DL: Product Id: 32769 (0x8001) - [1651101335.723712][22353:22353] CHIP:DL: Hardware Version: 0 - [1651101335.724228][22353:22353] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1651101335.724756][22353:22353] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1651101335.725226][22353:22353] CHIP:DL: Manufacturing Date: (not set) - [1651101335.725721][22353:22353] CHIP:DL: Device Type: 65535 (0xFFFF) - [1651101335.733693][22353:22353] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== - [1651101335.734598][22353:22353] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] - [1651101335.735182][22353:22353] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1651101335.735618][22353:22353] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 - - - ubuntu@ubuntu:~/apps$ ./chip-tool payload parse-setup-payload MT:-24J0YXE00KA0648G00 - [1653562354.037031][4312:4312] CHIP:SPL: Parsing base38Representation: MT:-24J0YXE00KA0648G00 - [1653562354.037218][4312:4312] CHIP:SPL: Version: 0 - [1653562354.037243][4312:4312] CHIP:SPL: VendorID: 65521 - [1653562354.037263][4312:4312] CHIP:SPL: ProductID: 32769 - [1653562354.037283][4312:4312] CHIP:SPL: Custom flow: 2 (CUSTOM) - [1653562354.037337][4312:4312] CHIP:SPL: Capabilities: 0x02 (BLE) - [1653562354.037359][4312:4312] CHIP:SPL: Discriminator: 3840 - [1653562354.037378][4312:4312] CHIP:SPL: Passcode: 20202021 + [1657232267.387816][370320:370320] CHIP:DL: Device Configuration: + [1657232267.387853][370320:370320] CHIP:DL: Serial Number: (not set) + [1657232267.387907][370320:370320] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1657232267.387942][370320:370320] CHIP:DL: Product Id: 32769 (0x8001) + [1657232267.387974][370320:370320] CHIP:DL: Hardware Version: 0 + [1657232267.387996][370320:370320] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1657232267.388017][370320:370320] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1657232267.388045][370320:370320] CHIP:DL: Manufacturing Date: (not set) + [1657232267.388067][370320:370320] CHIP:DL: Device Type: 65535 (0xFFFF) + [1657232267.388101][370320:370320] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1657232267.388128][370320:370320] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657232267.388148][370320:370320] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 + [1657232267.388182][370320:370320] CHIP:SVR: Manual pairing code: [749701123365521327694] disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT. + Note: chip-tool does not support physically scanning QR codes disabled: true - label: "Using the DUT, parse the THs QR code and follow any steps needed for the Commissioner/Commissionee to complete the commissioning process using BLE" - PICS: MCORE.DD.DT_BLE + PICS: MCORE.DD.DISCOVERY_BLE verification: | TH Commissionee: - [1651101510.975272][22353:22353] CHIP:SVR: Commissioning completed successfully - [1651101510.975318][22353:22353] CHIP:DIS: Updating services using commissioning mode 0 + [1657232374.956508][370357:370357] CHIP:DL: HandlePlatformSpecificBLEEvent 32784 + [1657232374.956534][370357:370357] CHIP:SVR: Commissioning completed successfully + [1657232374.956577][370357:370357] CHIP:DIS: Updating services using commissioning mode 0 DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J042C00KA0648G00 - - [1651101510810] [94338:65557180] CHIP: [CTL] Received CommissioningComplete response - [1651101510810] [94338:65557180] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651101510810] [94338:65557180] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651101510810] [94338:65557180] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651101510810] [94338:65557180] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651101510810] [94338:65557180] CHIP: [TOO] Device commissioning completed with success + $ ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 + + [1657232374820] [31379:16804218] CHIP: [CTL] Received CommissioningComplete response, errorCode=0 + [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657232374820] [31379:16804218] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [TOO] Device commissioning completed with success disabled: true - label: @@ -92,7 +83,7 @@ tests: Discovery Capability and is already on the same IP network as the DUT commissioner. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_IP + PICS: MCORE.DD.DISCOVERY_IP verification: | $ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 0 --capabilities 4 @@ -107,18 +98,6 @@ tests: [1651105420.610886][27312:27312] CHIP:DL: Device Type: 65535 (0xFFFF) [1651105420.610907][27312:27312] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1651105420.610962][27312:27312] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] - - - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00 - [1653998998.287050][2941:2941] CHIP:SPL: Parsing base38Representation: MT:-24J0AFN00KA0648G00 - [1653998998.287266][2941:2941] CHIP:SPL: Version: 0 - [1653998998.287293][2941:2941] CHIP:SPL: VendorID: 65521 - [1653998998.287313][2941:2941] CHIP:SPL: ProductID: 32769 - [1653998998.287332][2941:2941] CHIP:SPL: Custom flow: 0 (STANDARD) - [1653998998.287354][2941:2941] CHIP:SPL: Capabilities: 0x04 (On IP network) - [1653998998.287374][2941:2941] CHIP:SPL: Discriminator: 3840 - [1653998998.287394][2941:2941] CHIP:SPL: Passcode: 20202021 - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ disabled: true - label: "Scan the QR code from the previous step using the DUT." @@ -131,7 +110,7 @@ tests: "Using the DUT, parse the THs QR code and follow any steps needed for the Commissioner/Commissionee to complete the commissioning process using IP Network" - PICS: MCORE.DD.DT_IP + PICS: MCORE.DD.DISCOVERY_IP verification: | TH Commissionee: @@ -139,7 +118,7 @@ tests: [1651105530.973215][27371:27371] CHIP:DIS: Updating services using commissioning mode 0 DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0AFN00KA0648G00 + $ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651105530854] [95067:65607294] CHIP: [CTL] Received CommissioningComplete response [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' @@ -154,14 +133,17 @@ tests: has the Custom Flow field set to 0 and supports SoftAP for its Discovery Capability. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_SOFTAP + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - BLOCKED: SoftAP commissioning not currently supported + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | + Out of Scope for V1.0 + SoftAP commissioning not currently supported 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes disabled: true @@ -169,7 +151,8 @@ tests: "Using the DUT, parse the THs QR code and follow any steps needed for the Commissioner/Commissionee to complete the commissioning process using SoftAP" - PICS: MCORE.DD.DT_SOFTAP + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - BLOCKED: SoftAP commissioning not currently supported + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml index 47a5969efc6af6..5565421d5de04e 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml @@ -29,74 +29,56 @@ tests: Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_BLE + PICS: MCORE.DD.DISCOVERY_BLE verification: | - $ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 --custom-flow 1 + $ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 --custom-flow 1 --ble-device 1 ... - [1651101726.415743][23212:23212] CHIP:DL: Device Configuration: - [1651101726.415810][23212:23212] CHIP:DL: Serial Number: TEST_SN - [1651101726.415845][23212:23212] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1651101726.415880][23212:23212] CHIP:DL: Product Id: 32769 (0x8001) - [1651101726.415911][23212:23212] CHIP:DL: Hardware Version: 0 - [1651101726.415933][23212:23212] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1651101726.415954][23212:23212] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1651101726.415983][23212:23212] CHIP:DL: Manufacturing Date: (not set) - [1651101726.416004][23212:23212] CHIP:DL: Device Type: 65535 (0xFFFF) - [1651101726.416046][23212:23212] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== - [1651101726.416115][23212:23212] CHIP:SVR: SetupQRCode: [MT:-24J00ID00KA0648G00] - - - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J00ID00KA0648G00 - [1653992397.769301][2532:2532] CHIP:SPL: Parsing base38Representation: MT:-24J00ID00KA0648G00 - [1653992397.769449][2532:2532] CHIP:SPL: Version: 0 - [1653992397.769476][2532:2532] CHIP:SPL: VendorID: 65521 - [1653992397.769496][2532:2532] CHIP:SPL: ProductID: 32769 - [1653992397.769515][2532:2532] CHIP:SPL: Custom flow: 1 (USER ACTION REQUIRED) - [1653992397.769537][2532:2532] CHIP:SPL: Capabilities: 0x02 (BLE) - [1653992397.769558][2532:2532] CHIP:SPL: Discriminator: 3840 - [1653992397.769577][2532:2532] CHIP:SPL: Passcode: 20202021 + [1657234110.765139][370717:370717] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1657234110.765249][370717:370717] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1657234110.765314][370717:370717] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657234110.765364][370717:370717] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - - label: "DUT parses QR code and DUT presents User with a pairing hint." - PICS: MCORE.DD.DT_BLE + - label: "DUT parses QR code." + PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Follow the steps given in the TH's pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network - ./chip-tool pairing code 1 MT:-24J00ID00KA0648G00 - - [1653992449.765427][2535:2540] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:748: CHIP Error 0x0000002D: Not Implemented at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:450 - [1653992449.765485][2535:2540] CHIP:CTL: Stopping commissioning discovery over DNS-SD - [1653992449.765541][2535:2540] CHIP:TOO: Secure Pairing Failed + On DUT=chip-tool: + ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Follow any steps from the resources provided by the pairing hint for - putting the TH Commissionee into commissioning mode and to complete - the commissioning process using BLE." - PICS: MCORE.DD.DT_BLE + "Follow any steps from the resources provided by the pairing hint or + by the THs manufacturer for putting the TH Commissionee device into + commissioning mode and to complete the commissioning process using + BLE." + PICS: MCORE.DD.DISCOVERY_BLE verification: | TH Commissionee: [1651101988.943015][23212:23212] CHIP:SVR: Commissioning completed successfully [1651101988.943058][23212:23212] CHIP:DIS: Updating services using commissioning mode 0 - DUT Commissioner: - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3840 - - - - [1651101988809] [94439:65564515] CHIP: [CTL] Received CommissioningComplete response - [1651101988809] [94439:65564515] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651101988809] [94439:65564515] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651101988809] [94439:65564515] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651101988809] [94439:65564515] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651101988809] [94439:65564515] CHIP: [TOO] Device commissioning completed with success + On DUT Commissioner=chip-tool: + ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success disabled: true - label: @@ -105,63 +87,55 @@ tests: its Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_IP + PICS: MCORE.DD.DISCOVERY_IP verification: | $ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 1 --capabilities 4 - [1651105004.718882][27096:27096] CHIP:DL: Device Configuration: - [1651105004.718943][27096:27096] CHIP:DL: Serial Number: TEST_SN - [1651105004.718975][27096:27096] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1651105004.719010][27096:27096] CHIP:DL: Product Id: 32769 (0x8001) - [1651105004.719040][27096:27096] CHIP:DL: Hardware Version: 0 - [1651105004.719062][27096:27096] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1651105004.719083][27096:27096] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1651105004.719111][27096:27096] CHIP:DL: Manufacturing Date: (not set) - [1651105004.719133][27096:27096] CHIP:DL: Device Type: 65535 (0xFFFF) - [1651105004.719153][27096:27096] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== - [1651105004.719209][27096:27096] CHIP:SVR: SetupQRCode: [MT:-24J06VO00KA0648G00] - - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J06VO00KA0648G00 - [1653996764.810698][2819:2819] CHIP:SPL: Parsing base38Representation: MT:-24J06VO00KA0648G00 - [1653996764.810876][2819:2819] CHIP:SPL: Version: 0 - [1653996764.810903][2819:2819] CHIP:SPL: VendorID: 65521 - [1653996764.810923][2819:2819] CHIP:SPL: ProductID: 32769 - [1653996764.810943][2819:2819] CHIP:SPL: Custom flow: 1 (USER ACTION REQUIRED) - [1653996764.810966][2819:2819] CHIP:SPL: Capabilities: 0x04 (On IP network) - [1653996764.810987][2819:2819] CHIP:SPL: Discriminator: 3840 - [1653996764.811006][2819:2819] CHIP:SPL: Passcode: 20202021 - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ + [1657234233.898170][370755:370755] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1657234233.898195][370755:370755] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] + [1657234233.898227][370755:370755] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657234233.898248][370755:370755] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - - label: "DUT parses QR code and DUT presents User with a pairing hint." - PICS: MCORE.DD.DT_IP + - label: "DUT parses QR code." + PICS: MCORE.DD.DISCOVERY_IP verification: | 1. Follow the steps given in the TH's pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network + + + On DUT=chip-tool: + ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Follow any steps from the resources provided by the pairing hint for - putting the TH Commissionee into commissioning mode and to complete - the commissioning process using IP Network." - PICS: MCORE.DD.DT_IP + "Follow any steps from the resources provided by the pairing hint or + by the THs manufacturer for putting the TH Commissionee device into + commissioning mode and to complete the commissioning process using IP + Network." + PICS: MCORE.DD.DISCOVERY_IP verification: | TH all-clusters-app: - [1651105158.168056][27096:27096] CHIP:SVR: Commissioning completed successfully - [1651105158.168100][27096:27096] CHIP:DIS: Updating services using commissioning mode 0 - - DUT chip-tool: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J06VO00KA0648G00 - [1651105158065] [95045:65602272] CHIP: [CTL] Received CommissioningComplete response - [1651105158065] [95045:65602272] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651105158065] [95045:65602272] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651105158065] [95045:65602272] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651105158065] [95045:65602272] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651105158065] [95045:65602272] CHIP: [TOO] Device commissioning completed with success + [1657234324.992098][370755:370755] CHIP:SVR: Commissioning completed successfully + [1657234324.992146][370755:370755] CHIP:DIS: Updating services using commissioning mode 0 + + On DUT=chip-tool: + ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success disabled: true - label: @@ -170,28 +144,33 @@ tests: Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_SOFTAP + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - BLOCKED: SoftAP commissioning not currently supported + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - - label: "DUT parses QR code and DUT presents User with a pairing hint." - PICS: MCORE.DD.DT_SOFTAP + - label: "DUT parses QR code." + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - 1. Follow the steps given in the TH's pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - label: - "Follow any steps from the resources provided by the pairing hint for - putting the TH Commissionee into commissioning mode and to complete - the commissioning process using SoftAP." - PICS: MCORE.DD.DT_SOFTAP + "Follow any steps from the resources provided by the pairing hint or + by the THs manufacturer for putting the TH Commissionee device into + commissioning mode and to complete the commissioning process using + SoftAP." + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - BLOCKED: SoftAP commissioning not currently supported + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml index b1e3b486e9e2eb..8bce578a417fc0 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml @@ -28,66 +28,49 @@ tests: the Custom Flow field set to 2 and supports BLE for its Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_BLE + PICS: MCORE.DD.DISCOVERY_BLE verification: | $ ./out/ble/all-clusters-app/chip-all-clusters-app --custom-flow 2 --capabilities 2 - [1651103874.314141][26507:26507] CHIP:DL: Device Configuration: - [1651103874.314196][26507:26507] CHIP:DL: Serial Number: TEST_SN - [1651103874.314264][26507:26507] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1651103874.314305][26507:26507] CHIP:DL: Product Id: 32769 (0x8001) - [1651103874.314337][26507:26507] CHIP:DL: Hardware Version: 0 - [1651103874.314362][26507:26507] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1651103874.314383][26507:26507] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1651103874.314412][26507:26507] CHIP:DL: Manufacturing Date: (not set) - [1651103874.314434][26507:26507] CHIP:DL: Device Type: 65535 (0xFFFF) - [1651103874.314502][26507:26507] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] - - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J0YXE00KA0648G00 - [1653997840.457937][2875:2875] CHIP:SPL: Parsing base38Representation: MT:-24J0YXE00KA0648G00 - [1653997840.458108][2875:2875] CHIP:SPL: Version: 0 - [1653997840.458134][2875:2875] CHIP:SPL: VendorID: 65521 - [1653997840.458155][2875:2875] CHIP:SPL: ProductID: 32769 - [1653997840.458175][2875:2875] CHIP:SPL: Custom flow: 2 (CUSTOM) - [1653997840.458197][2875:2875] CHIP:SPL: Capabilities: 0x02 (BLE) - [1653997840.458218][2875:2875] CHIP:SPL: Discriminator: 3840 - [1653997840.458237][2875:2875] CHIP:SPL: Passcode: 20202021 - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ + [1657235055.253604][370941:370941] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1657235055.253688][370941:370941] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1657235055.253736][370941:370941] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657235055.253774][370941:370941] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - - label: - "DUT parses QR code and DUT presents User with a URL in the pairing - hint." - PICS: MCORE.DD.DT_BLE + - label: "DUT parses QR code." + PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Follow the steps given in the TH's URL to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network + + On DUT=chip-tool: + ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 + [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657235087918] [31502:16832693] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Follow any steps from the URL provided by the pairing hint for - putting the TH Commissionee into commissioning mode, for triggering - the DUT Commissioner for commissioning, and for completing the - commissioning process using BLE." - PICS: MCORE.DD.DT_BLE + "User should follow any steps from the CommissioningCustomFlowUrl + within the THs DCL, unless the DUT has alternative means to guide the + user to successful commissioning, for putting the TH Commissionee into + commissioning mode, for triggering the DUT Commissioner for + commissioning, and for completing the commissioning process using BLE." + PICS: MCORE.DD.DISCOVERY_BLE verification: | TH all-clusters-app: - [1651104141.533461][26507:26507] CHIP:SVR: Commissioning completed successfully - [1651104141.533498][26507:26507] CHIP:DIS: Updating services using commissioning mode 0 + [1657235088.040328][370941:370941] CHIP:SVR: Commissioning completed successfully + [1657235088.040371][370941:370941] CHIP:DIS: Updating services using commissioning mode 0 - DUT chip-tool: $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0YXE00KA0648G00 - - [1651104141454] [94607:65586111] CHIP: [CTL] Received CommissioningComplete response - [1651104141454] [94607:65586111] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651104141454] [94607:65586111] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651104141454] [94607:65586111] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651104141454] [94607:65586111] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651104141454] [94607:65586111] CHIP: [TOO] Device commissioning completed with success + DUT chip-tool: $ ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 + [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657235087918] [31502:16832693] CHIP: [TOO] Device commissioning completed with success disabled: true - label: @@ -96,70 +79,51 @@ tests: Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_IP + PICS: MCORE.DD.DISCOVERY_IP verification: | $ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 2 --capabilities 4 - [1651103447.175705][8940:8940] CHIP:DL: Device Configuration: - [1651103447.175762][8940:8940] CHIP:DL: Serial Number: TEST_SN - [1651103447.175804][8940:8940] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1651103447.175846][8940:8940] CHIP:DL: Product Id: 32769 (0x8001) - [1651103447.175883][8940:8940] CHIP:DL: Hardware Version: 0 - [1651103447.175911][8940:8940] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1651103447.175937][8940:8940] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1651103447.175971][8940:8940] CHIP:DL: Manufacturing Date: (not set) - [1651103447.175998][8940:8940] CHIP:DL: Device Type: 65535 (0xFFFF) - [1651103447.176023][8940:8940] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== - [1651103447.176084][8940:8940] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] - - - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00 - [1653998683.950764][2924:2924] CHIP:SPL: Parsing base38Representation: MT:-24J029Q00KA0648G00 - [1653998683.951071][2924:2924] CHIP:SPL: Version: 0 - [1653998683.951203][2924:2924] CHIP:SPL: VendorID: 65521 - [1653998683.951256][2924:2924] CHIP:SPL: ProductID: 32769 - [1653998683.951305][2924:2924] CHIP:SPL: Custom flow: 2 (CUSTOM) - [1653998683.951357][2924:2924] CHIP:SPL: Capabilities: 0x04 (On IP network) - [1653998683.951451][2924:2924] CHIP:SPL: Discriminator: 3840 - [1653998683.951498][2924:2924] CHIP:SPL: Passcode: 20202021 - ubuntu@ubuntu:~/may30_cntrl/connectedhomeip/examples/chip-tool/out/debug$ - " + [1657235141.663008][370963:370963] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1657235141.663082][370963:370963] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] + [1657235141.663133][370963:370963] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657235141.663189][370963:370963] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - - label: - "DUT parses QR code and DUT presents User with a URL in the pairing - hint." - PICS: MCORE.DD.DT_IP + - label: "DUT parses QR code." + PICS: MCORE.DD.DISCOVERY_IP verification: | 1. Follow the steps given in the TH's URL to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network + + On DUT=chip-tool: + ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 + [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Follow any steps from the URL provided by the pairing hint for - putting the TH Commissionee into commissioning mode, for triggering - the DUT Commissioner for commissioning, and for completing the - commissioning process using IP Network." - PICS: MCORE.DD.DT_IP + "User should follow any steps from the CommissioningCustomFlowUrl + within the THs DCL, unless the DUT has alternative means to guide the + user to successful commissioning, for putting the TH Commissionee into + commissioning mode, for triggering the DUT Commissioner for + commissioning, and for completing the commissioning process using IP + Network." + PICS: MCORE.DD.DISCOVERY_IP verification: | TH all-clusters-app: - [1651103591.176135][8940:8940] CHIP:SVR: Commissioning completed successfully - [1651103591.176179][8940:8940] CHIP:DIS: Updating services using commissioning mode 0 + [1657235198.977848][370963:370963] CHIP:SVR: Commissioning completed successfully + [1657235198.977943][370963:370963] CHIP:DIS: Updating services using commissioning mode 0 DUT chip-tool: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J029Q00KA0648G00 - - [1651103591085] [94586:65580481] CHIP: [CTL] Received CommissioningComplete response - [1651103591085] [94586:65580481] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651103591085] [94586:65580481] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651103591085] [94586:65580481] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651103591085] [94586:65580481] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651103591085] [94586:65580481] CHIP: [TOO] Device commissioning completed with success + $ ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 + [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success disabled: true - label: @@ -167,31 +131,35 @@ tests: the Custom Flow field set to 2 and supports SoftAP for its Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." - PICS: MCORE.DD.DT_SOFTAP + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - BLOCKED: SoftAP commissioning not currently supported + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - label: "Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - - label: - "DUT parses QR code and DUT presents User with a URL in the pairing - hint." - PICS: MCORE.DD.DT_SOFTAP + - label: "DUT parses QR code." + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - 1. Follow the steps given in the TH's URL to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true - label: - "Follow any steps from the URL provided by the pairing hint for - putting the TH Commissionee into commissioning mode, for triggering - the DUT Commissioner for commissioning, and for completing the - commissioning process using SoftAP." - PICS: MCORE.DD.DT_SOFTAP + "User should follow any steps from the CommissioningCustomFlowUrl + within the THs DCL, unless the DUT has alternative means to guide the + user to successful commissioning, for putting the TH Commissionee into + commissioning mode, for triggering the DUT Commissioner for + commissioning, and for completing the commissioning process using + SoftAP." + PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - BLOCKED: SoftAP commissioning not currently supported + Out of Scope for V1.0 + SoftAP commissioning not currently supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml index 9deb8df0c00e28..bedb54e49c8399 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml @@ -27,17 +27,19 @@ tests: verification: | $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 - [1654000392.120361][3962:3962] CHIP:DL: Device Configuration: - [1654000392.120522][3962:3962] CHIP:DL: Serial Number: (not set) - [1654000392.120578][3962:3962] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1654000392.120631][3962:3962] CHIP:DL: Product Id: 32769 (0x8001) - [1654000392.120677][3962:3962] CHIP:DL: Hardware Version: 0 - [1654000392.120711][3962:3962] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1654000392.120742][3962:3962] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1654000392.120783][3962:3962] CHIP:DL: Manufacturing Date: (not set) - [1654000392.120816][3962:3962] CHIP:DL: Device Type: 65535 (0xFFFF) - [1654000392.120846][3962:3962] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== - [1654000392.120891][3962:3962] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1657235470.970680][371041:371041] CHIP:DL: Device Configuration: + [1657235470.970772][371041:371041] CHIP:DL: Serial Number: (not set) + [1657235470.970811][371041:371041] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1657235470.970845][371041:371041] CHIP:DL: Product Id: 32769 (0x8001) + [1657235470.970892][371041:371041] CHIP:DL: Hardware Version: 0 + [1657235470.970929][371041:371041] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1657235470.970984][371041:371041] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1657235470.971031][371041:371041] CHIP:DL: Manufacturing Date: (not set) + [1657235470.971095][371041:371041] CHIP:DL: Device Type: 65535 (0xFFFF) + [1657235470.971147][371041:371041] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1657235470.971199][371041:371041] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] + [1657235470.971258][371041:371041] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657235470.971293][371041:371041] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 disabled: true - label: @@ -45,120 +47,42 @@ tests: but substituting out the current Version String with an invalid Version String (i.e. '010' or any non-zero 3-bit value)" verification: | - MT:034J029Q00KA0648G00 + 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code + $ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --version 2 + [1657235626568] [31698:16839018] CHIP: [TOO] QR Code: MT:034J029Q00KA0648G00 disabled: true - label: "Scan/read the QR code, generated in the previous step, using the DUT" verification: | - $ ./out/chip-tool/chip-tool pairing code 1 MT:034J029Q00KA0648G00 + TH all-clusters-app: + [1657235198.977848][370963:370963] CHIP:SVR: Commissioning completed successfully + [1657235198.977943][370963:370963] CHIP:DIS: Updating services using commissioning mode 0 - ERROR: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument + DUT chip-tool: + $ ./chip-tool pairing code 1 MT:034J029Q00KA0648G00 + [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Using the QR code from Step 1, generate a new QR code using all the - same Onboarding Payload components except for the Custom Flow field, - set it to 1: User-Intent Commissioning Flow" - PICS: MCORE.DD.USER_INTENT_COMM_FLOW + "Using the QR code from Step 1, ensure the THs Discovery Capability + bit string is NOT set to BLE for discovery (i.e. set to OnNetwork + discovery capability)" + PICS: MCORE.DD.DISCOVERY_BLE verification: | - MT:-24J06VO00KA0648G00 + 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code + $ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --rendezvous 4 + [1657235754393] [31702:16840391] CHIP: [TOO] QR Code: MT:-24J029Q00KA0648G00 disabled: true - - label: - "Scan/read the QR code, generated in the previous step, using the DUT" - PICS: MCORE.DD.USER_INTENT_COMM_FLOW - verification: | - ERROR: chip-tool allows pairing to all-clusters-app when QR code contains user-intent flow but device uses custom commissioning flow - - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J06VO00KA0648G00 - disabled: true - - - label: - "Using the QR code from Step 1, generate a new QR code using all the - same Onboarding Payload components except for the Custom Flow field, - set it to 2: Custom Commissioning Flow" - PICS: MCORE.DD.CUSTOM_COMM_FLOW - verification: | - MT:-24J029Q00KA0648G00 - disabled: true - - - label: - "Scan/read the QR code, generated in the previous step, using the DUT" - PICS: MCORE.DD.CUSTOM_COMM_FLOW - verification: | - ERROR: chip-tool allows pairing to all-clusters-app when QR code contains custom commissioning flow but device uses standard commissioning flow - - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J029Q00KA0648G00 - disabled: true - - - label: - "Commissioning Flow - Reserved: Using the QR code from Step 1, - generate a new QR code using all the same Onboarding Payload - components except for the Custom Flow field, set it to 3: Reserved" - verification: | - MT:-24J0-OR00KA0648G00 - disabled: true - - - label: - "Scan/read the QR code, generated in the previous step, using the DUT" - verification: | - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J0-OR00KA0648G00 - - ERROR: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - disabled: true - - - label: - "Using the QR code from Step 1, generate a new QR code using all the - same Onboarding Payload components except for the Discovery Capability - bit string, set it to BLE for discovery" - PICS: MCORE.DD.DT_BLE + - label: "Scan/read the QR code of the TH device using the DUT" + PICS: MCORE.DD.DISCOVERY_BLE verification: | - MT:-24J0YXE00KA0648G00 - disabled: true - - - label: - "Scan/read the QR code, generated in the previous step, using the DUT" - PICS: MCORE.DD.DT_BLE - verification: | - ERROR: chip-tool allows pairing to all-clusters-app when QR code contains BLE Discovery but device uses IP Discovery - - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 - disabled: true - - - label: - "Using the QR code from Step 1, generate a new QR code using all the - same Onboarding Payload components except for the Discovery Capability - bit string, set it to IP Network for discovery" - PICS: MCORE.DD.DT_IP - verification: | - MT:-24J029Q00KA0648G00 - disabled: true - - - label: - "Scan/read the QR code, generated in the previous step, using the DUT" - PICS: MCORE.DD.DT_IP - verification: | - ERROR: chip-tool allows pairing to all-clusters-app when QR code contains IP Discovery but device uses BLE Discovery - - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00KA0648G00 - disabled: true - - - label: - "Discovery Capability - Reserved: Using the QR code from Step 1, - generate a new QR code using all the same Onboarding Payload - components except for the Discovery Capability bit string, set it to - non-zeros" - verification: | - MT:-24J0EZA10KA0648G00 - disabled: true - - - label: - "Scan/read the QR code, generated in the previous step, using the DUT" - verification: | - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J0EZA10KA0648G00 - - ERROR: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument + ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 + [1657235905214] [31706:16841970] CHIP: [CTL] Discovered device to be commissioned over DNS-SD + ... + [1657235906071] [31706:16841969] CHIP: [TOO] Device commissioning completed with success disabled: true - label: @@ -194,51 +118,51 @@ tests: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00OC0000000 + $ ./chip-tool pairing code 1 MT:-24J029Q00OC0000000 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00KMSP0Z800 + $ ./chip-tool pairing code 1 MT:-24J029Q00KMSP0Z800 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00GWID1WH00 + $ ./chip-tool pairing code 1 MT:-24J029Q00GWID1WH00 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00C4912TQ00 + $ ./chip-tool pairing code 1 MT:-24J029Q00C4912TQ00 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q008E.Q2QZ00 + $ ./chip-tool pairing code 1 MT:-24J029Q008E.Q2QZ00 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q004ORE3N610 + $ ./chip-tool pairing code 1 MT:-24J029Q004ORE3N610 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q000YH24KF10 + $ ./chip-tool pairing code 1 MT:-24J029Q000YH24KF10 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00Y58S4HO10 + $ ./chip-tool pairing code 1 MT:-24J029Q00Y58S4HO10 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00UF-F5EX10 + $ ./chip-tool pairing code 1 MT:-24J029Q00UF-F5EX10 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00QPQ36B420 + $ ./chip-tool pairing code 1 MT:-24J029Q00QPQ36B420 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q004QG46Y900 + $ ./chip-tool pairing code 1 MT:-24J029Q004QG46Y900 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument - $ ./out/chip-tool/chip-tool pairing code 1 MT:-24J029Q00YX018EW10 + $ ./chip-tool pairing code 1 MT:-24J029Q00YX018EW10 Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument disabled: true @@ -253,6 +177,6 @@ tests: - label: "Scan/read the QR code, generated in the previous step, using the DUT" verification: | - $ ./out/chip-tool/chip-tool pairing code 1 AB:-24J029Q00KA0648G00 - [1651179728083] [11173:253719] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed + $ ./chip-tool pairing code 1 AB:-24J029Q00KA0648G00 + [1657236169984] [31732:16844455] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml index 711fe24a9b3434..8a6326fd83ebd2 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml @@ -29,6 +29,7 @@ tests: Matter spec. documentation - VID_PID_PRESENT bit string set to 0" PICS: MCORE.DD.11_MANUAL_PC verification: | + On TH Commissionee: $ ./out/ble/all-clusters-app/chip-all-clusters-app [1651108891.390266][30833:30833] CHIP:DL: Device Configuration: [1651108891.390455][30833:30833] CHIP:DL: Serial Number: TEST_SN @@ -42,7 +43,7 @@ tests: [1651108891.390744][30833:30833] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1651108891.390809][30833:30833] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] [1651108891.390848][30833:30833] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1651108891.390876][30833:30833] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00 + [1651108891.390876][30833:30833] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00 [1651108891.390917][30833:30833] CHIP:SVR: Manual pairing code: [34970112332] disabled: true @@ -53,12 +54,12 @@ tests: process." PICS: MCORE.DD.11_MANUAL_PC verification: | - TH Commissionee: + On TH Commissionee: [1651109112.909458][30833:30833] CHIP:SVR: Commissioning completed successfully [1651109112.909503][30833:30833] CHIP:DIS: Updating services using commissioning mode 0 - DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing manualcode 1 34970112332 + On DUT Commissioner: + $ ./chip-tool pairing code 1 34970112332 [1651109112823] [95528:65650355] CHIP: [CTL] Received CommissioningComplete response [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' @@ -77,6 +78,7 @@ tests: Identifier")' PICS: MCORE.DD.21_MANUAL_PC verification: | + On TH Commissionee: $ ./out/ble/all-clusters-app/chip-all-clusters-app [1651109167.022364][30980:30980] CHIP:DL: Device Configuration: @@ -91,12 +93,12 @@ tests: [1651109167.022753][30980:30980] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1651109167.022825][30980:30980] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] [1651109167.022868][30980:30980] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1651109167.022898][30980:30980] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00 + [1651109167.022898][30980:30980] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00 [1651109167.022942][30980:30980] CHIP:SVR: Manual pairing code: [34970112332] [1651109167.022974][30980:30980] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== [1651109167.023050][30980:30980] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] [1651109167.023090][30980:30980] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1651109167.023120][30980:30980] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 + [1651109167.023120][30980:30980] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 [1651109167.023167][30980:30980] CHIP:SVR: Manual pairing code: [749701123365521327694] disabled: true @@ -107,12 +109,12 @@ tests: process." PICS: MCORE.DD.21_MANUAL_PC verification: | - TH Commissionee: + On TH Commissionee: [1651109219.100167][30980:30980] CHIP:SVR: Commissioning completed successfully [1651109219.100213][30980:30980] CHIP:DIS: Updating services using commissioning mode 0 - DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing manualcode 1 749701123365521327694 + On DUT Commissioner: + $ ./chip-tool pairing code 1 749701123365521327694 [1651109219028] [95536:65652322] CHIP: [CTL] Received CommissioningComplete response [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml index 50230bea87e811..210dff6fb66575 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml @@ -28,6 +28,7 @@ tests: DUT in any format supported by DUT" PICS: MCORE.DD.11_MANUAL_PC verification: | + On TH: $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 [1651180718.960383][13218:13218] CHIP:DL: Device Configuration: @@ -42,7 +43,7 @@ tests: [1651180718.960671][13218:13218] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1651180718.960729][13218:13218] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] [1651180718.960760][13218:13218] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1651180718.960781][13218:13218] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00 + [1651180718.960781][13218:13218] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00 [1651180718.960814][13218:13218] CHIP:SVR: Manual pairing code: [34970112332] disabled: true @@ -52,7 +53,9 @@ tests: 2" PICS: MCORE.DD.11_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool payload verhoeff-generate 8497011233 + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code + + $ ./chip-tool payload verhoeff-generate 8497011233 [1651186243492] [13415:349553] CHIP: [SPL] Generating Character for: 84970112331 [1651186243492] [13415:349553] CHIP: [SPL] Generated Char: 1 Manual Code: 84970112331 @@ -63,7 +66,7 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.11_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 84970112331 + $ ./chip-tool pairing code 1 84970112331 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument disabled: true @@ -74,7 +77,7 @@ tests: invalid VID_PID_PRESENT set to 1" PICS: MCORE.DD.11_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 0xF00 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 2 --force-short-code 1 + $ ./chip-tool payload generate-manualcode --discriminator 0xF00 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 2 --force-short-code 1 [1651181048462] [11611:269469] CHIP: [TOO] Manual Code: 74970112334 disabled: true @@ -83,7 +86,7 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.11_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 74970112334 + $ ./chip-tool pairing code 1 74970112334 [1651184274318] [12512:321250] CHIP: [SPL] Failed decoding base10. Input length 10 was not expected length 20 ... @@ -100,6 +103,11 @@ tests: "Discriminator value")' PICS: MCORE.DD.11_MANUAL_PC verification: | + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code + + $ ./chip-tool payload generate-manualcode --existing-payload 34970112332 --discriminator 0xE00 + [1657236763262] [31784:16850989] CHIP: [TOO] Manual Code: 33331712336 + Manual Code: 33331712336 disabled: true @@ -108,7 +116,8 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.11_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 33331712336 + On DUT=chip-tool: + $ ./chip-tool pairing code 1 33331712336 [1654001605.517505][3200:3205] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:748: CHIP Error 0x0000002D: Not Implemented at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:450 [1654001605.517563][3200:3205] CHIP:CTL: Stopping commissioning discovery over DNS-SD @@ -128,51 +137,51 @@ tests: 1. Use these as examples of how to generate manual codes with invalid passcodes "34915200008" (00000000), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 00000000 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 00000000 [1651182185732] [11790:282099] CHIP: [TOO] Manual Code: 34915200008 "35191106788" (11111111), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 11111111 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 11111111 [1651182284292] [11799:283222] CHIP: [TOO] Manual Code: 35191106788 "35467013565" (22222222), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 22222222 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 22222222 [1651182331458] [11817:283904] CHIP: [TOO] Manual Code: 35467013565 "35742920344" (33333333), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 33333333 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 33333333 [1651182345419] [11876:284294] CHIP: [TOO] Manual Code: 35742920344 "36018827124" (44444444), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 44444444 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 44444444 [1651182362963] [11944:284816] CHIP: [TOO] Manual Code: 36018827124 "36294733900" (55555555), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 55555555 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 55555555 [1651182375363] [11945:284938] CHIP: [TOO] Manual Code: 36294733900 "34932240691" (66666666), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 66666666 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 66666666 [1651182395140] [11958:285261] CHIP: [TOO] Manual Code: 34932240691 "35208147474" (77777777), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 77777777 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 77777777 [1651182411341] [11966:285478] CHIP: [TOO] Manual Code: 35208147474 "35484054250" (88888888), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 88888888 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 88888888 [1651182422264] [11967:285581] CHIP: [TOO] Manual Code: 35484054250 "35759961037" (99999999), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 99999999 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 99999999 [1651182431755] [11968:285672] CHIP: [TOO] Manual Code: 35759961037 "35767807533" (12345678), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 12345678 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 12345678 [1651182443511] [11969:285786] CHIP: [TOO] Manual Code: 35767807533 "36545753496" (87654321), - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 87654321 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 87654321 [1651182459737] [11970:285960] CHIP: [TOO] Manual Code: 36545753496 disabled: true @@ -182,51 +191,51 @@ tests: PICS: MCORE.DD.11_MANUAL_PC verification: | (00000000) - $ ./out/chip-tool/chip-tool pairing code 1 34915200008 + $ ./chip-tool pairing code 1 34915200008 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (11111111) - $ ./out/chip-tool/chip-tool pairing code 1 35191106788 + $ ./chip-tool pairing code 1 35191106788 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (22222222) - $ ./out/chip-tool/chip-tool pairing code 1 35467013565 + $ ./chip-tool pairing code 1 35467013565 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (33333333) - $ ./out/chip-tool/chip-tool pairing code 1 35742920344 + $ ./chip-tool pairing code 1 35742920344 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (44444444) - $ ./out/chip-tool/chip-tool pairing code 1 36018827124 + $ ./chip-tool pairing code 1 36018827124 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (55555555) - $ ./out/chip-tool/chip-tool pairing code 1 36294733900 + $ ./chip-tool pairing code 1 36294733900 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (66666666) - $ ./out/chip-tool/chip-tool pairing code 1 34932240691 + $ ./chip-tool pairing code 1 34932240691 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (77777777) - $ ./out/chip-tool/chip-tool pairing code 1 35208147474 + $ ./chip-tool pairing code 1 35208147474 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (88888888) - $ ./out/chip-tool/chip-tool pairing code 1 35484054250 + $ ./chip-tool pairing code 1 35484054250 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (99999999) - $ ./out/chip-tool/chip-tool pairing code 1 35759961037 + $ ./chip-tool pairing code 1 35759961037 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (12345678) - $ ./out/chip-tool/chip-tool pairing code 1 35767807533 + $ ./chip-tool pairing code 1 35767807533 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument (87654321) - $ ./out/chip-tool/chip-tool pairing code 1 36545753496 + $ ./chip-tool pairing code 1 36545753496 Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument disabled: true @@ -238,6 +247,8 @@ tests: and Product IDs (VID_PID_Present == 0))" PICS: MCORE.DD.11_MANUAL_PC verification: | + 1. Change the last digit of the manual pairing code to a different digit + Manual Code: 34970112331 disabled: true @@ -246,7 +257,7 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.11_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 34970112331 - - [1651184084907] [12271:316118] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed + On DUT=chip-tool: + $ ./chip-tool pairing code 1 34970112331 + [1657586218401] [10710:465838] CHIP: [TOO] Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml index 736f05ce0804ba..afe697535574b4 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml @@ -28,18 +28,28 @@ tests: DUT in any format supported by DUT" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 - - [1651165486.365306][4112:4112] CHIP:DL: Device Configuration: - [1651165486.365374][4112:4112] CHIP:DL: Serial Number: TEST_SN - [1651165486.365415][4112:4112] CHIP:DL: Vendor Id: 65521 (0xFFF1) - [1651165486.365449][4112:4112] CHIP:DL: Product Id: 32769 (0x8001) - [1651165486.365479][4112:4112] CHIP:DL: Hardware Version: 0 - [1651165486.365502][4112:4112] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 - [1651165486.365522][4112:4112] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) - [1651165486.365549][4112:4112] CHIP:DL: Manufacturing Date: (not set) - [1651165486.365570][4112:4112] CHIP:DL: Device Type: 65535 (0xFFFF) - [1651165486.365646][4112:4112] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00] + On TH: + $ ./out/all-clusters-app/chip-all-clusters-app + + [1657203632.334400][13827:13827] CHIP:DL: Device Configuration: + [1657203632.334663][13827:13827] CHIP:DL: Serial Number: (not set) + [1657203632.334724][13827:13827] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1657203632.334801][13827:13827] CHIP:DL: Product Id: 32769 (0x8001) + [1657203632.334879][13827:13827] CHIP:DL: Hardware Version: 0 + [1657203632.334934][13827:13827] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1657203632.334983][13827:13827] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1657203632.335054][13827:13827] CHIP:DL: Manufacturing Date: (not set) + [1657203632.335109][13827:13827] CHIP:DL: Device Type: 65535 (0xFFFF) + [1657203632.335158][13827:13827] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1657203632.335234][13827:13827] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00] + [1657203632.335298][13827:13827] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657203632.335348][13827:13827] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 + [1657203632.335420][13827:13827] CHIP:SVR: Manual pairing code: [34970112332] + [1657203632.335470][13827:13827] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1657203632.335532][13827:13827] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00] + [1657203632.335589][13827:13827] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1657203632.335637][13827:13827] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 + [1657203632.335712][13827:13827] CHIP:SVR: Manual pairing code: [749701123365521327694] disabled: true - label: @@ -48,10 +58,13 @@ tests: 2" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ chip-tool/out/debug$ ./chip-tool payload verhoeff-generate 849701123365521327693 - [1652423715.746979][23816:23816] CHIP:SPL: Generating Character for: 849701123365521327693 - [1652423715.747112][23816:23816] CHIP:SPL: Generated Char: 0 - $ chip-tool/out/debug$ + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code + + $ ./chip-tool payload verhoeff-generate 84970112336552132769 + [1657238290868] [31968:16868160] CHIP: [SPL] Generating Character for: 84970112336552132769 + [1657238290868] [31968:16868160] CHIP: [SPL] Generated Char: 3 + + Manual code: 8497011233655213276930 disabled: true - label: @@ -59,12 +72,9 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 849701123365521327693 - - [1651186987544] [13533:359998] CHIP: [SPL] Failed decoding base10. Input length 20 was not expected length 10 - ... + $ ./chip-tool pairing code 1 849701123365521327693 - Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument + [1657238348848] [31971:16868925] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument disabled: true - label: @@ -73,7 +83,8 @@ tests: invalid VID_PID_PRESENT set to 0" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool payload verhoeff-generate 34970112336552132769 + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code + $ ./chip-tool payload verhoeff-generate 34970112336552132769 [1651186492744] [13434:353094] CHIP: [SPL] Generating Character for: 34970112336552132769 [1651186492744] [13434:353094] CHIP: [SPL] Generated Char: 6 @@ -85,11 +96,11 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 349701123365521327696 + $ ./chip-tool pairing code 1 349701123365521327696 - [1651187185899] [13557:362337] CHIP: [SPL] Failed decoding base10. Input length 20 was not expected length 10 + [1657238541643] [31975:16871084] CHIP: [SPL] Failed decoding base10. Input length 20 was not expected length 10 ... - [1651187185900] [13557:362333] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:63: CHIP Error 0x0000001E: Invalid string length + [1657238541644] [31975:16871079] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:63: CHIP Error 0x0000001E: Invalid string length disabled: true - label: @@ -102,10 +113,10 @@ tests: "Discriminator value")' PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool payload verhoeff-generate 733317123365521327692 - [1651186243492] [13415:349553] CHIP: [SPL] Generating Character for: 8497011233 - [1651186243492] [13415:349553] CHIP: [SPL] Generated Char: 1 - Manual Code: 733317123365521327692 + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code + + $ ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --discriminator 3584 + [1657238783501] [31989:16873588] CHIP: [TOO] Manual Code: 733317123365521327692 disabled: true - label: @@ -113,7 +124,7 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 733317123365521327692 + $ ./chip-tool pairing code 1 733317123365521327692 [1655814152.716988][3723:3726] CHIP:CTL: Commissioning discovery over BLE failed: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:829: CHIP Error 0x00000032: Timeout [1655814152.717099][3723:3726] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:829: CHIP Error 0x00000032: Timeout at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:270 @@ -132,10 +143,12 @@ tests: 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321" PICS: MCORE.DD.21_MANUAL_PC verification: | - 1. Use this as an example of how to generate a manual code with an invalid passcode + 1. Use this as an example of how to generate a manual code with an invalid passcode. In this example the invalid passcode=00000000 + + Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 1 --allow-invalid-payload 1 --setup-pin-code 00000000 - [1651188323732] [14068:388953] CHIP: [TOO] Manual Code: 749152000065521327698 + $ ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --setup-pin-code 00000000 + [1657239062245] [32164:16876812] CHIP: [TOO] Manual Code: 749152000065521327698 disabled: true - label: @@ -144,61 +157,61 @@ tests: PICS: MCORE.DD.21_MANUAL_PC verification: | (00000000) - $ ./out/chip-tool/chip-tool pairing code 1 749152000065521327698 + $ ./chip-tool pairing code 1 749152000065521327698 [1651187937232] [13896:372977] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:161: CHIP Error 0x0000002F: Invalid argument (11111111) - $ ./out/chip-tool/chip-tool pairing code 1 751911067865521327698 + $ ./chip-tool pairing code 1 751911067865521327698 [1655814240.531424][3747:3747] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (22222222) - $ ./out/chip-tool/chip-tool pairing code 1 754670135665521327694 + $ ./chip-tool pairing code 1 754670135665521327694 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (33333333) - $ ./out/chip-tool/chip-tool pairing code 1 757429203465521327699 + $ ./chip-tool pairing code 1 757429203465521327699 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (44444444) - $ ./out/chip-tool/chip-tool pairing code 1 760188271265521327697 + $ ./chip-tool pairing code 1 760188271265521327697 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (55555555) - $ ./out/chip-tool/chip-tool pairing code 1 762947339065521327695 + $ ./chip-tool pairing code 1 762947339065521327695 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (66666666) - $ ./out/chip-tool/chip-tool pairing code 1 749322406965521327695 + $ ./chip-tool pairing code 1 749322406965521327695 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (77777777) - $ ./out/chip-tool/chip-tool pairing code 1 752081474765521327697 + $ ./chip-tool pairing code 1 752081474765521327697 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (88888888) - $ ./out/chip-tool/chip-tool pairing code 1 754840542565521327693 + $ ./chip-tool pairing code 1 754840542565521327693 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (99999999) - $ ./out/chip-tool/chip-tool pairing code 1 757599610365521327695 + $ ./chip-tool pairing code 1 757599610365521327695 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (12345678) - $ ./out/chip-tool/chip-tool pairing code 1 757678075365521327695 + $ ./chip-tool pairing code 1 757678075365521327695 [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument (87654321) - $ ./out/chip-tool/chip-tool pairing code 1 765457534965521327696 + $ ./chip-tool pairing code 1 765457534965521327696 [1655814323.718122][3761:3761] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument disabled: true @@ -213,7 +226,7 @@ tests: verification: | 1. Use this as an example of how to generate a manual code with an invalid vendor IDs - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 1 + $ ./chip-tool payload generate-manualcode --discriminator 3840 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 1 [1651189120686] [14218:398626] CHIP: [TOO] Manual Code: 749701123365521327694 disabled: true @@ -223,22 +236,18 @@ tests: PICS: MCORE.DD.21_MANUAL_PC verification: | (0xFFF1) - $ ./out/chip-tool/chip-tool pairing manualcode 1 749701123365521327694 - Error: chip-tool pairs to chip-all-clusters-app with this invalid vendor ID but that is expected of chip-tool + $ ./chip-tool pairing code 1 749701123365521327694 (0xFFF2) - $ ./out/chip-tool/chip-tool pairing manualcode 1 749701123365522327692 - Error: chip-tool pairs to chip-all-clusters-app with this invalid vendor ID but that is expected of chip-tool + $ ./chip-tool pairing code 1 749701123365522327692 (0xFFF3) - $ ./out/chip-tool/chip-tool pairing manualcode 1 749701123365523327697 - Error: chip-tool pairs to chip-all-clusters-app with this invalid vendor ID but that is expected of chip-tool + $ ./chip-tool pairing code 1 749701123365523327697 (0xFFF4) - $ ./out/chip-tool/chip-tool pairing manualcode 1 749701123365524327693 - Error: chip-tool pairs to chip-all-clusters-app with this invalid vendor ID but that is expected of chip-tool + $ ./chip-tool pairing code 1 749701123365524327693 disabled: true - label: @@ -248,8 +257,10 @@ tests: Identifier")' PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool payload generate-manualcode --discriminator 3840 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x0000 --commissioning-mode 1 --allow-invalid-payload 1 - [1651187401077] [13610:366251] CHIP: [TOO] Manual Code: 749701123365521000006 + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code + + $ ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --product-id 0x0000 + [1657239418656] [32180:16880488] CHIP: [TOO] Manual Code: 749701123365521000006 disabled: true - label: @@ -257,9 +268,10 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing manualcode 1 749701123365521000006 + On DUT: + $ ./chip-tool pairing code 1 749701123365521000006 - [1655380389.096806][35861:35861] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument + [1657239565895] [32193:16881922] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument disabled: true - label: @@ -270,7 +282,9 @@ tests: Product IDs included (VID_PID_Present == 1))" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool payload verhoeff-verify 749701123365521327693 20 + 1. Use chip-tool's "payload verhoeff-verify" command to help verify that the check-digit is invalid + + $ ./chip-tool payload verhoeff-verify 749701123365521327693 20 [1651187504088] [13629:367627] CHIP: [SPL] Verifying Manual Code: 74970112336552132769 [1651187504088] [13629:367627] CHIP: [SPL] 749701123365521327693 is INVALID at position 20 disabled: true @@ -280,7 +294,7 @@ tests: the DUT in any format supported by the DUT" PICS: MCORE.DD.21_MANUAL_PC verification: | - $ ./out/chip-tool/chip-tool pairing code 1 749701123365521327693 + $ ./chip-tool pairing code 1 749701123365521327693 [1651187528666] [13631:367920] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml index 198e053c05ee6d..1b901be800df83 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml @@ -27,74 +27,37 @@ tests: "Place TH1 into commissioning mode using the TH manufacturers means to be discovered by a commissioner" verification: | - After launching all-clusters-app using discriminator 3841 using below command - sudo ./chip-all-clusters-app --wifi --discriminator 3841 - - ./chip-tool discover commissionables - [1654068872.283184][8000:8005] CHIP:DL: Avahi resolve found - [1654068872.283316][8000:8005] CHIP:DIS: Hostname: E45F010F19FF0000 - [1654068872.283374][8000:8005] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe0f:19ff - [1654068872.283419][8000:8005] CHIP:DIS: Port: 5540 - [1654068872.283460][8000:8005] CHIP:DIS: Mrp Interval idle: 5000 ms - [1654068872.283503][8000:8005] CHIP:DIS: Mrp Interval active: 300 ms - [1654068872.283563][8000:8005] CHIP:DIS: Vendor ID: 65521 - [1654068872.283605][8000:8005] CHIP:DIS: Product ID: 32769 - [1654068872.283646][8000:8005] CHIP:DIS: Long Discriminator: 3844 - [1654068872.283687][8000:8005] CHIP:DIS: Pairing Hint: 33 - [1654068872.283728][8000:8005] CHIP:DIS: Instance Name: C50FE94C4952D393 - [1654068872.283768][8000:8005] CHIP:DIS: Commissioning Mode: 1 - [1654068872.285052][8000:8005] CHIP:DL: Avahi resolve found - [1654068872.285156][8000:8005] CHIP:DIS: Hostname: E45F010F27530000 - [1654068872.285211][8000:8005] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe0f:2755 - [1654068872.285254][8000:8005] CHIP:DIS: Port: 5540 - [1654068872.285296][8000:8005] CHIP:DIS: Mrp Interval idle: 5000 ms - [1654068872.285337][8000:8005] CHIP:DIS: Mrp Interval active: 300 ms - [1654068872.285378][8000:8005] CHIP:DIS: Vendor ID: 65521 - [1654068872.285418][8000:8005] CHIP:DIS: Product ID: 32769 - [1654068872.285458][8000:8005] CHIP:DIS: Long Discriminator: 3841 - [1654068872.285498][8000:8005] CHIP:DIS: Pairing Hint: 33 - [1654068872.285538][8000:8005] CHIP:DIS: Instance Name: DC47D37251924E87 - [1654068872.285579][8000:8005] CHIP:DIS: Commissioning Mode: 1 + 1. After launching all-clusters-app using discriminator 3841 using below command + $ ./out/all-clusters-app/chip-all-clusters-app --wifi --discriminator 3841 + + $ dns-sd -B _matterc._udp,_L3841 + Browsing for _matterc._udp,_L3841 + DATE: ---Thu 07 Jul 2022--- + 17:39:06.762 ...STARTING... + Timestamp A/R Flags if Domain Service Type Instance Name + 17:39:06.764 Add 2 7 local. _matterc._udp. 930430C7C701B844 disabled: true - label: "Place TH2 into commissioning mode using the TH manufacturers means to be discovered by a commissioner" verification: | - After launching all-clusters-app using discriminator 3844 using below command + 1. After launching all-clusters-app using discriminator 3844 using below command sudo ./chip-all-clusters-app --wifi --discriminator 3844 - ./chip-tool discover commissionables - [1654068872.283184][8000:8005] CHIP:DL: Avahi resolve found - [1654068872.283316][8000:8005] CHIP:DIS: Hostname: E45F010F19FF0000 - [1654068872.283374][8000:8005] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe0f:19ff - [1654068872.283419][8000:8005] CHIP:DIS: Port: 5540 - [1654068872.283460][8000:8005] CHIP:DIS: Mrp Interval idle: 5000 ms - [1654068872.283503][8000:8005] CHIP:DIS: Mrp Interval active: 300 ms - [1654068872.283563][8000:8005] CHIP:DIS: Vendor ID: 65521 - [1654068872.283605][8000:8005] CHIP:DIS: Product ID: 32769 - [1654068872.283646][8000:8005] CHIP:DIS: Long Discriminator: 3844 - [1654068872.283687][8000:8005] CHIP:DIS: Pairing Hint: 33 - [1654068872.283728][8000:8005] CHIP:DIS: Instance Name: C50FE94C4952D393 - [1654068872.283768][8000:8005] CHIP:DIS: Commissioning Mode: 1 - [1654068872.285052][8000:8005] CHIP:DL: Avahi resolve found - [1654068872.285156][8000:8005] CHIP:DIS: Hostname: E45F010F27530000 - [1654068872.285211][8000:8005] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe0f:2755 - [1654068872.285254][8000:8005] CHIP:DIS: Port: 5540 - [1654068872.285296][8000:8005] CHIP:DIS: Mrp Interval idle: 5000 ms - [1654068872.285337][8000:8005] CHIP:DIS: Mrp Interval active: 300 ms - [1654068872.285378][8000:8005] CHIP:DIS: Vendor ID: 65521 - [1654068872.285418][8000:8005] CHIP:DIS: Product ID: 32769 - [1654068872.285458][8000:8005] CHIP:DIS: Long Discriminator: 3841 - [1654068872.285498][8000:8005] CHIP:DIS: Pairing Hint: 33 - [1654068872.285538][8000:8005] CHIP:DIS: Instance Name: DC47D37251924E87 - [1654068872.285579][8000:8005] CHIP:DIS: Commissioning Mode: 1 + $ dns-sd -B _matterc._udp,_L3844 + Browsing for _matterc._udp,_L3844 + DATE: ---Thu 07 Jul 2022--- + 17:39:35.265 ...STARTING... + Timestamp A/R Flags if Domain Service Type Instance Name + 17:40:17.959 Add 2 7 local. _matterc._udp. 8F1FEB734CE46129 disabled: true - label: "Scan TH1s QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - label: @@ -103,24 +66,21 @@ tests: the TH Commissionees method of device discovery" verification: | TH1 Commissionee: - [1651109784.452770][31207:31207] CHIP:SVR: Commissioning completed successfully - [1651109784.452813][31207:31207] CHIP:DIS: Updating services using commissioning mode 0 + [1657240914.891250][372173:372173] CHIP:SVR: Commissioning completed successfully + [1657240914.891297][372173:372173] CHIP:DIS: Updating services using commissioning mode 0 DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0AFN00KA0648G00 - - [1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response - [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651109784376] [95553:65657838] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651109784376] [95553:65657838] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651109784376] [95553:65657838] CHIP: [TOO] Device commissioning completed with success + $ ./chip-tool pairing code 1 MT:-24J0IRV01KA0648G00 + + [1657240914764] [32262:16895870] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657240914764] [32262:16895870] CHIP: [TOO] Device commissioning completed with success disabled: true - label: "Scan TH2s QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - label: @@ -129,34 +89,30 @@ tests: the TH Commissionees method of device discovery" verification: | TH2 Commissionee: - [1651109919.159014][11588:11588] CHIP:SVR: Commissioning completed successfully - [1651109919.159067][11588:11588] CHIP:DIS: Updating services using commissioning mode 0 + [1657240985.801360][112581:112581] CHIP:SVR: Commissioning completed successfully + [1657240985.801406][112581:112581] CHIP:DIS: Updating services using commissioning mode 0 DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 2 MT:-24J04QI14KA0648G00 - - [1651109919079] [95563:65659558] CHIP: [CTL] Received CommissioningComplete response - [1651109919079] [95563:65659558] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' - [1651109919079] [95563:65659558] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' - [1651109919079] [95563:65659558] CHIP: [CTL] Performing next commissioning step 'Cleanup' - [1651109919079] [95563:65659558] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' - [1651109919079] [95563:65659558] CHIP: [TOO] Device commissioning completed with success + $ ./chip-tool pairing code 2 MT:-24J04QI14KA0648G00 + + [1657240985682] [32264:16896797] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1657240985682] [32264:16896797] CHIP: [TOO] Device commissioning completed with success disabled: true - label: "Verify the Commissioner can still interact with TH1 (ex: Read any clusters attribute from TH1)" verification: | - $ ./out/chip-tool/chip-tool basic read reachable 1 0 - [1651110057235] [95634:65662038] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0011 DataVersion: 3647361086 - [1651110057235] [95634:65662038] CHIP: [TOO] Reachable: TRUE + $ ./chip-tool basic read reachable 1 0 + [1657241043430] [32266:16897416] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0011 DataVersion: 131004400 + [1657241043432] [32266:16897416] CHIP: [TOO] Reachable: TRUE disabled: true - label: "Verify the Commissioner can still interact with TH2 (ex: Read any clusters attribute from TH2)" verification: | - $ ./out/chip-tool/chip-tool basic read reachable 2 0 - [1651110080978] [95636:65662333] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0011 DataVersion: 3234420698 - [1651110080978] [95636:65662333] CHIP: [TOO] Reachable: TRUE + $ ./chip-tool basic read reachable 2 0 + [1657241066927] [32267:16897671] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0011 DataVersion: 2450774961 + [1657241066927] [32267:16897671] CHIP: [TOO] Reachable: TRUE disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml index 62f2f9ba508e9d..5e98def66a667d 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml @@ -42,7 +42,7 @@ tests: [1651111142.370760][32024:32024] CHIP:SVR: SetupQRCode: [MT:-24J0ALY01KA0648G00] TH Commissioner: - $ ./out/chip-tool/chip-tool discover commissionables + $ ./chip-tool discover commissionables [1651111150395] [95835:65674062] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2 [1651111150395] [95835:65674062] CHIP: [DIS] Vendor ID: 65521 @@ -70,7 +70,7 @@ tests: [1651111335.475204][32130:32130] CHIP:DIS: Updating services using commissioning mode 0 TH Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0ALY01KA0648G00 + $ ./chip-tool pairing code 1 MT:-24J0ALY01KA0648G00 [1651111335378] [95843:65675989] CHIP: [CTL] Received CommissioningComplete response [1651111335378] [95843:65675989] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' @@ -84,6 +84,7 @@ tests: "Using TH Commissioner, unpair the DUT Commissionee from the Matter network." verification: | + TH Commissioner: ./chip-tool operationalcredentials remove-fabric 1 1 0 CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 @@ -103,7 +104,7 @@ tests: 2. On RasPi DUT $ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3841 On TH chip-tool: - $ ./out/chip-tool/chip-tool discover commissionables + $ ./chip-tool discover commissionables [1651111576350] [95850:65678872] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2 [1651111576350] [95850:65678872] CHIP: [DIS] Vendor ID: 65521 [1651111576350] [95850:65678872] CHIP: [DIS] Product ID: 32769 @@ -130,7 +131,7 @@ tests: [1651111614.006893][32259:32259] CHIP:DIS: Updating services using commissioning mode 0 TH Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0ALY01KA0648G00 + $ ./chip-tool pairing code 1 MT:-24J0ALY01KA0648G00 [1651111613912] [95856:65679504] CHIP: [CTL] Received CommissioningComplete response [1651111613912] [95856:65679504] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml index 6689e63f294300..f05fba9c1d176b 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml @@ -51,8 +51,8 @@ tests: disabled: true - label: - "If (PICS_WIFI) or (PICS_THREAD), Commissioner SHALL configure - regulatory information in the Commissionee." + "Commissioner SHALL configure regulatory information in the + Commissionee." PICS: MCORE.DD.WIRELESS verification: | On TH: @@ -337,7 +337,7 @@ tests: "Commissioning channel between the Commissioner and Commissionee is terminated." verification: | - + 1. Terminate the connection between the Commissionee and the Commissioner. (i.e. remove network access or terminate commissioning process) disabled: true - label: "Commissioner starts discovery of DUT using Operational Discovery" diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml index 64d2ad99a54fb2..bc6adc2aa8c083 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml @@ -45,7 +45,8 @@ tests: - label: "Scan THs QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - label: @@ -58,7 +59,7 @@ tests: [1651109784.452813][31207:31207] CHIP:DIS: Updating services using commissioning mode 0 DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0AFN00KA0648G00 + $ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' @@ -105,7 +106,8 @@ tests: - label: "Scan THs QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | - 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes disabled: true - label: @@ -118,7 +120,7 @@ tests: [1651110724.759869][31791:31791] CHIP:DIS: Updating services using commissioning mode 0 DUT Commissioner: - $ ./out/chip-tool/chip-tool pairing qrcode 1 MT:-24J0AFN00KA0648G00 + $ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651110724689] [95810:65669790] CHIP: [CTL] Received CommissioningComplete response [1651110724689] [95810:65669790] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml new file mode 100644 index 00000000000000..17a468d0c195b7 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml @@ -0,0 +1,105 @@ +# Copyright (c) 2021 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 3.3.21. [TC-DD-3.21] Commissioning Flow - Commission Multiple-Endpoint + Device [DUT - Commissioner] + +config: + nodeId: 0x12344321 + cluster: "Basic" + endpoint: 0 + +tests: + - label: + "Place TH into commissioning mode using the TH manufacturers means to + be discovered by the DUT Commissioner" + verification: | + $ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3840 + + [1651109580.413197][31207:31207] CHIP:DL: Device Configuration: + [1651109580.413259][31207:31207] CHIP:DL: Serial Number: TEST_SN + [1651109580.413294][31207:31207] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1651109580.413327][31207:31207] CHIP:DL: Product Id: 32769 (0x8001) + [1651109580.413358][31207:31207] CHIP:DL: Hardware Version: 0 + [1651109580.413380][31207:31207] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1651109580.413401][31207:31207] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00) + [1651109580.413428][31207:31207] CHIP:DL: Manufacturing Date: (not set) + [1651109580.413450][31207:31207] CHIP:DL: Device Type: 65535 (0xFFFF) + [1651109580.413470][31207:31207] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1651109580.413525][31207:31207] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] + disabled: true + + - label: "Scan THs QR code using the DUT Commissioner." + PICS: MCORE.DD.SCAN_QR_CODE + verification: | + 1. Verify the QR code is scanned by DUT + Note: chip-tool does not support physically scanning QR codes + disabled: true + + - label: + "DUT parses THs QR code. Follow any steps needed for the + Commissioner/Commissionee to complete the commissioning process over + the TH Commissionees method of device discovery" + verification: | + TH Commissionee: + [1651109784.452770][31207:31207] CHIP:SVR: Commissioning completed successfully + [1651109784.452813][31207:31207] CHIP:DIS: Updating services using commissioning mode 0 + + DUT Commissioner: + $ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + + [1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response + [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109784376] [95553:65657838] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [TOO] Device commissioning completed with success + disabled: true + + - label: + "For each TH Endpoint that implements the On/Off light device, verify + that the DUT acknowledges the existence of the Endpoint through DUT + issuing an On command to the respective Endpoint (e.g. through some + user action to trigger such command)." + verification: | + 1. Send 'on' command from Commissioner to TH Endpoint 1 + On DUT=chip-tool: + $ ./chip-tool onoff on 1 1 + [...] + [1657930715416] [56399:2451384] CHIP: [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 + + On TH=all-clusters-app: + [...] + [1657930715.432295][2911:2911] CHIP:ZCL: On/Off set value: 1 1 + [1657930715.432341][2911:2911] CHIP:ZCL: Toggle on/off from 0 to 1 + [1657930715.432383][2911:2911] CHIP:ZCL: On Command - OffWaitTime : 0 + [1657930715.432422][2911:2911] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to ce1d8e1f + [1657930715.432468][2911:2911] CHIP:ZCL: On/Toggle Command - Stop Timer + [1657930715.432509][2911:2911] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to ce1d8e20 + + + 2. Send 'on' command from Commissioner to TH Endpoint 2 + On DUT=chip-tool: + $ ./chip-tool onoff on 1 2 + [...] + [1657930953792] [56404:2453640] CHIP: [DMG] Received Command Response Status for Endpoint=2 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 + + On TH=all-clusters-app: + [...] + [1657930953.816805][2911:2911] CHIP:ZCL: On/Off set value: 2 1 + [1657930953.816841][2911:2911] CHIP:ZCL: Toggle on/off from 0 to 1 + [1657930953.816870][2911:2911] CHIP:DMG: Endpoint 2, Cluster 0x0000_0006 update version to 6475f591 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml index f328055332e329..8ef9bcd4ab55bb 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml @@ -76,16 +76,29 @@ tests: - label: "DUT is instructed to start the commissioning procedure with the TH - found at step 2" + found at Step 3" verification: | - This particular step is Out of scope for V1.0 + Out of scope for V1.0 - IDM functionality - https://github.com/CHIP-Specifications/chip-test-plans/issues/1312 + https://github.com/project-chip/connectedhomeip/issues/11004 disabled: true - label: "TH verifies the Identification Declaration message" verification: | - This particular step is Out of scope for V1.0 + Out of scope for V1.0 - IDM functionality - https://github.com/CHIP-Specifications/chip-test-plans/issues/1312 + https://github.com/project-chip/connectedhomeip/issues/11004 + disabled: true + + - label: "TH start the commissioning procedure with DUT" + verification: | + ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2755 5640 + + [1653559159.021348][4240:4246] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 + [1653559159.021432][4240:4246] CHIP:CTL: Received CommissioningComplete response, errorCode=0 + [1653559159.021499][4240:4246] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1653559159.021554][4240:4246] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1653559159.021611][4240:4246] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1653559159.021725][4240:4246] CHIP:CTL: Successfully finished commissioning step 'Cleanup' + [1653559159.021790][4240:4246] CHIP:TOO: Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml index c2e2d53dfa8054..770b44590833f3 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml @@ -32,7 +32,7 @@ tests: disabled: true - label: - "TH start scanning for available commissioners using Commissioner + "TH starts scanning for available commissioners using Commissioner Discovery" verification: | ubuntu@ubuntu:~/may23_cntrl/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matterd._udp @@ -53,26 +53,26 @@ tests: - label: "TH is instructed to start the commissioning procedure with the DUT - found at step 2" + found at Step 2" verification: | - This particular step is Out of scope for V1.0 + Out of scope for V1.0 - IDM functionality - https://github.com/CHIP-Specifications/chip-test-plans/issues/1312 + https://github.com/project-chip/connectedhomeip/issues/11004 disabled: true - - label: "DUT verify the Identification Declaration message" + - label: "DUT verifies the Identification Declaration message" verification: | - This particular step is Out of scope for V1.0 + Out of scope for V1.0 - IDM functionality - https://github.com/CHIP-Specifications/chip-test-plans/issues/1312 + https://github.com/project-chip/connectedhomeip/issues/11004 disabled: true - - label: "By any means DUT prompt user for onboarding payload" + - label: "By any means, DUT prompts user for onboarding payload" verification: | disabled: true - - label: "DUT start the commissioning procedure with TH" + - label: "DUT starts the commissioning procedure with TH" verification: | ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2755 5640 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml index fcebf4f8047175..7fc5d4dbbc766c 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml @@ -25,7 +25,8 @@ tests: "Commissioner has regulatory and fabric information available and has accurate date, time and timezone" verification: | - On DUT: sudo ./chip-all-clusters-app --wifi --discriminator 3841 + On TH: + sudo ./chip-all-clusters-app --wifi --discriminator 3841 [1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000 [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn't get a PASE salt, generating one. @@ -41,162 +42,24 @@ tests: [1653471956.972509][10713:10713] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== [1653471956.972546][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00] [1653471956.972579][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1653471956.972600][10713:10713] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 + [1653471956.972600][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 [1653471956.972632][10713:10713] CHIP:SVR: Manual pairing code: [34970112332] [1653471956.972654][10713:10713] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== [1653471956.972715][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00] [1653471956.972748][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: - [1653471956.972769][10713:10713] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 + [1653471956.972769][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 [1653471956.972803][10713:10713] CHIP:SVR: Manual pairing code: [749701123365521327694] - - connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool discover commissionables - Waiting for device responses... - CHIP:CTL: Generating ICAC - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT START ==== - CHIP:DL: AUDIT: * Validate buf1 and buf2 are <<>> - CHIP:DL: AUDIT: * Validate r1 and r2 are <<>> - CHIP:DL: AUDIT: * buf1: 3BE3E264C0A0A053248E93609D22044A - CHIP:DL: AUDIT: * buf2: E69C8767AD6B60907AD3633E774F38EB - CHIP:DL: AUDIT: * r1: 0x2A0E6454 r2: 0x16315893 - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT END ==== - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-9yXPat) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/reboot-count = 23 (0x17) - CHIP:DL: Got Ethernet interface: eth0 - CHIP:DL: Found the primary Ethernet interface:eth0 - CHIP:DL: Got WiFi interface: wlan0 - CHIP:DL: Failed to reset WiFi statistic counts - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: TransportMgr initialized - CHIP:DIS: Init fabric pairing table with server storage - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-zgCtZd) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/GlobalMCTR = 25000 (0x61A8) - CHIP:CTL: System State Initialized... - CHIP:DL: MDNS failed to join multicast group on veth5731933 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethbf7bfa6 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethcf434e5 for address type IPv4: ../th - CHIP:ZCL: Using ZAP configuration... - CHIP:DIS: Verifying the received credentials - CHIP:IN: Generating compressed fabric ID using uncompressed fabric ID 0x0000000000000000 - CHIP:IN: 0x04, 0x66, 0xd6, 0xcf, 0x4c, 0x1e, 0x11, 0xc3, - CHIP:IN: 0x52, 0x4f, 0xa6, 0x8c, 0x6e, 0x65, 0x46, 0xdc, - CHIP:IN: 0x90, 0x1b, 0x5f, 0x42, 0x9f, 0x69, 0xd1, 0xb7, - CHIP:IN: 0x7d, 0xf3, 0x6b, 0x54, 0x12, 0x6c, 0x12, 0x59, - CHIP:IN: 0x5b, 0xc3, 0x07, 0x1c, 0x5c, 0xf4, 0x4e, 0x5f, - CHIP:IN: 0x71, 0x06, 0x9a, 0xbb, 0x2f, 0xef, 0x20, 0x0d, - CHIP:IN: 0x0e, 0x9b, 0x26, 0x3e, 0x8d, 0x46, 0x09, 0xd8, - CHIP:IN: 0xfd, 0xa1, 0xc0, 0x10, 0x4f, 0x05, 0x14, 0x99, - CHIP:IN: 0x22, - CHIP:IN: Generated compressed fabric ID - CHIP:IN: 0x4a, 0x53, 0x1e, 0x52, 0x06, 0xed, 0x06, 0xda, - CHIP:DIS: Added new fabric at index: 1, Initialized: 1 - CHIP:DIS: Assigned compressed fabric ID: 0x4A531E5206ED06DA, node ID: 0x000000000001B669 - CHIP:CTL: Joined the fabric at index 1. Compressed fabric ID is: 0x4A531E5206ED06DA - CHIP:DL: CHIP task running - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - - - connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 - - connectedhomeip/examples/chip-tool/out/debug$ sudo ./chip-tool basic read product-name 1 0 + On DUT: + ./chip-tool pairing code 1 MT:-24J0CEK01KA0648G00 + ... + [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293 + [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device , LSID:47293 PSID:201! + [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake + [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD + [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success + [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' disabled: true - label: @@ -204,152 +67,26 @@ tests: discovery mode applicable for the DUT. If (MCORE.DD.DT_IP), TH device is advertising over IP Network using DNS-based Service Discovery (DNS-SD)" - PICS: MCORE.DD.DT_IP + PICS: MCORE.DD.DISCOVERY_IP verification: | - Verify on DUT: - - ./chip-tool discover commissionables - Waiting for device responses... - CHIP:CTL: Generating ICAC - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT START ==== - CHIP:DL: AUDIT: * Validate buf1 and buf2 are <<>> - CHIP:DL: AUDIT: * Validate r1 and r2 are <<>> - CHIP:DL: AUDIT: * buf1: 3BE3E264C0A0A053248E93609D22044A - CHIP:DL: AUDIT: * buf2: E69C8767AD6B60907AD3633E774F38EB - CHIP:DL: AUDIT: * r1: 0x2A0E6454 r2: 0x16315893 - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT END ==== - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-9yXPat) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/reboot-count = 23 (0x17) - CHIP:DL: Got Ethernet interface: eth0 - CHIP:DL: Found the primary Ethernet interface:eth0 - CHIP:DL: Got WiFi interface: wlan0 - CHIP:DL: Failed to reset WiFi statistic counts - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: TransportMgr initialized - CHIP:DIS: Init fabric pairing table with server storage - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-zgCtZd) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/GlobalMCTR = 25000 (0x61A8) - CHIP:CTL: System State Initialized... - CHIP:DL: MDNS failed to join multicast group on veth5731933 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethbf7bfa6 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethcf434e5 for address type IPv4: ../th - CHIP:ZCL: Using ZAP configuration... - CHIP:DIS: Verifying the received credentials - CHIP:IN: Generating compressed fabric ID using uncompressed fabric ID 0x0000000000000000 - CHIP:IN: 0x04, 0x66, 0xd6, 0xcf, 0x4c, 0x1e, 0x11, 0xc3, - CHIP:IN: 0x52, 0x4f, 0xa6, 0x8c, 0x6e, 0x65, 0x46, 0xdc, - CHIP:IN: 0x90, 0x1b, 0x5f, 0x42, 0x9f, 0x69, 0xd1, 0xb7, - CHIP:IN: 0x7d, 0xf3, 0x6b, 0x54, 0x12, 0x6c, 0x12, 0x59, - CHIP:IN: 0x5b, 0xc3, 0x07, 0x1c, 0x5c, 0xf4, 0x4e, 0x5f, - CHIP:IN: 0x71, 0x06, 0x9a, 0xbb, 0x2f, 0xef, 0x20, 0x0d, - CHIP:IN: 0x0e, 0x9b, 0x26, 0x3e, 0x8d, 0x46, 0x09, 0xd8, - CHIP:IN: 0xfd, 0xa1, 0xc0, 0x10, 0x4f, 0x05, 0x14, 0x99, - CHIP:IN: 0x22, - CHIP:IN: Generated compressed fabric ID - CHIP:IN: 0x4a, 0x53, 0x1e, 0x52, 0x06, 0xed, 0x06, 0xda, - CHIP:DIS: Added new fabric at index: 1, Initialized: 1 - CHIP:DIS: Assigned compressed fabric ID: 0x4A531E5206ED06DA, node ID: 0x000000000001B669 - CHIP:CTL: Joined the fabric at index 1. Compressed fabric ID is: 0x4A531E5206ED06DA - CHIP:DL: CHIP task running - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 + On DUT: + ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + ... + [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293 + [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device , LSID:47293 PSID:201! + [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake + [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD + [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success + [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' + + + On TH: + $ ./out/all-clusters-app/chip-all-clusters-app + ... + [1657226543.948995][369114:369114] CHIP:IN: SecureSession[0xaaaab60788e0]: Activated - Type:1 LSID:201 + [1657226543.949023][369114:369114] CHIP:IN: New secure session created for device , LSID:201 PSID:47293! + [1657226543.949048][369114:369114] CHIP:SVR: Commissioning completed session establishment step disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml index 10590e2df572f6..22c1fafbdceb5f 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml @@ -26,7 +26,7 @@ tests: "Commissioner has regulatory and fabric information available and has accurate date, time and timezone" verification: | - + 1. Manually verify that the time, date and timezone is accurate for the DUT Commissioner disabled: true - label: @@ -38,7 +38,6 @@ tests: On DUT: start commissioning process(need to obtain the Thread dataset first) ./chip-tool pairing ble-thread 1 hex:0e080000000000010000000300000f35060004001fffe0020811111111222222220708fd27e57b1b1e22d9051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6f01021234041061e1206d2c2b46e079eb775f41fc72190c0402a0fff8 20202021 3840 - ,, disabled: true - label: @@ -62,7 +61,14 @@ tests: Commissionee." PICS: MCORE.DD.WIRELESS verification: | - Need chip-tool implementation + Verify on DUT Log: + + Performing next commissioning step 'ConfigRegulatory' + [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config + [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) + + Verify on TH: + NVS set: chip-config/regulatory-location = 0 (0x0) disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml index 6948b45f5b129b..0ab2c671825069 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml @@ -27,321 +27,65 @@ tests: "Commissioner has regulatory and fabric information available and has accurate date, time and timezone" verification: | - On DUT: sudo ./chip-all-clusters-app - - - On Controller: ./chip-tool discover commissionables - - 1. Connect the device to Ethernet - 2. Disover the device using CHIP Tool . ./chip-tool discover commissionables - 3. connect -ip , - 4. Once device is provisioned, read 'Product Name' attribute from the Basic cluster. Example:./chip-tool basic read product-name 1 0 - - Reference : below Full log for the above commands (click on this cell if you like to see complete log) - - - connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool discover commissionables - Waiting for device responses... - CHIP:CTL: Generating ICAC - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT START ==== - CHIP:DL: AUDIT: * Validate buf1 and buf2 are <<>> - CHIP:DL: AUDIT: * Validate r1 and r2 are <<>> - CHIP:DL: AUDIT: * buf1: 3BE3E264C0A0A053248E93609D22044A - CHIP:DL: AUDIT: * buf2: E69C8767AD6B60907AD3633E774F38EB - CHIP:DL: AUDIT: * r1: 0x2A0E6454 r2: 0x16315893 - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT END ==== - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-9yXPat) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/reboot-count = 23 (0x17) - CHIP:DL: Got Ethernet interface: eth0 - CHIP:DL: Found the primary Ethernet interface:eth0 - CHIP:DL: Got WiFi interface: wlan0 - CHIP:DL: Failed to reset WiFi statistic counts - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: TransportMgr initialized - CHIP:DIS: Init fabric pairing table with server storage - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-zgCtZd) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/GlobalMCTR = 25000 (0x61A8) - CHIP:CTL: System State Initialized... - CHIP:DL: MDNS failed to join multicast group on veth5731933 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethbf7bfa6 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethcf434e5 for address type IPv4: ../th - CHIP:ZCL: Using ZAP configuration... - CHIP:DIS: Verifying the received credentials - CHIP:IN: Generating compressed fabric ID using uncompressed fabric ID 0x0000000000000000 - CHIP:IN: 0x04, 0x66, 0xd6, 0xcf, 0x4c, 0x1e, 0x11, 0xc3, - CHIP:IN: 0x52, 0x4f, 0xa6, 0x8c, 0x6e, 0x65, 0x46, 0xdc, - CHIP:IN: 0x90, 0x1b, 0x5f, 0x42, 0x9f, 0x69, 0xd1, 0xb7, - CHIP:IN: 0x7d, 0xf3, 0x6b, 0x54, 0x12, 0x6c, 0x12, 0x59, - CHIP:IN: 0x5b, 0xc3, 0x07, 0x1c, 0x5c, 0xf4, 0x4e, 0x5f, - CHIP:IN: 0x71, 0x06, 0x9a, 0xbb, 0x2f, 0xef, 0x20, 0x0d, - CHIP:IN: 0x0e, 0x9b, 0x26, 0x3e, 0x8d, 0x46, 0x09, 0xd8, - CHIP:IN: 0xfd, 0xa1, 0xc0, 0x10, 0x4f, 0x05, 0x14, 0x99, - CHIP:IN: 0x22, - CHIP:IN: Generated compressed fabric ID - CHIP:IN: 0x4a, 0x53, 0x1e, 0x52, 0x06, 0xed, 0x06, 0xda, - CHIP:DIS: Added new fabric at index: 1, Initialized: 1 - CHIP:DIS: Assigned compressed fabric ID: 0x4A531E5206ED06DA, node ID: 0x000000000001B669 - CHIP:CTL: Joined the fabric at index 1. Compressed fabric ID is: 0x4A531E5206ED06DA - CHIP:DL: CHIP task running - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - - - connectedhomeip/examples/chip-tool/out/debug$ sudo ./chip-tool pairing ethernet 112233 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540 - - - - - connectedhomeip/examples/chip-tool/out/debug$ sudo ./chip-tool basic read product-name 0x000000000001B669 0 - - ,, + On TH: + sudo ./chip-all-clusters-app --wifi --discriminator 3841 + + [1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000 + [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn't get a PASE salt, generating one. + [1653471956.972152][10713:10713] CHIP:DL: Device Configuration: + [1653471956.972270][10713:10713] CHIP:DL: Serial Number: TEST_SN + [1653471956.972315][10713:10713] CHIP:DL: Vendor Id: 65521 (0xFFF1) + [1653471956.972354][10713:10713] CHIP:DL: Product Id: 32769 (0x8001) + [1653471956.972388][10713:10713] CHIP:DL: Hardware Version: 0 + [1653471956.972413][10713:10713] CHIP:DL: Setup Pin Code (0 for UNKNOWN/ERROR): 20202021 + [1653471956.972435][10713:10713] CHIP:DL: Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01) + [1653471956.972464][10713:10713] CHIP:DL: Manufacturing Date: (not set) + [1653471956.972488][10713:10713] CHIP:DL: Device Type: 65535 (0xFFFF) + [1653471956.972509][10713:10713] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ==== + [1653471956.972546][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00] + [1653471956.972579][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1653471956.972600][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00 + [1653471956.972632][10713:10713] CHIP:SVR: Manual pairing code: [34970112332] + [1653471956.972654][10713:10713] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ==== + [1653471956.972715][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00] + [1653471956.972748][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: + [1653471956.972769][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00 + [1653471956.972803][10713:10713] CHIP:SVR: Manual pairing code: [749701123365521327694] + + On DUT: + ./chip-tool pairing code 1 MT:-24J0CEK01KA0648G00 + ... + [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293 + [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device , LSID:47293 PSID:201! + [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake + [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD + [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success + [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' disabled: true - label: "Commissioner and Commissionee discover each other and connect via the discovery mode applicable for the DUT." verification: | - Verify on DUT: - - ./chip-tool discover commissionables - Waiting for device responses... - CHIP:CTL: Generating ICAC - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT START ==== - CHIP:DL: AUDIT: * Validate buf1 and buf2 are <<>> - CHIP:DL: AUDIT: * Validate r1 and r2 are <<>> - CHIP:DL: AUDIT: * buf1: 3BE3E264C0A0A053248E93609D22044A - CHIP:DL: AUDIT: * buf2: E69C8767AD6B60907AD3633E774F38EB - CHIP:DL: AUDIT: * r1: 0x2A0E6454 r2: 0x16315893 - CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT END ==== - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-9yXPat) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/reboot-count = 23 (0x17) - CHIP:DL: Got Ethernet interface: eth0 - CHIP:DL: Found the primary Ethernet interface:eth0 - CHIP:DL: Got WiFi interface: wlan0 - CHIP:DL: Failed to reset WiFi statistic counts - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: UDP::Init bind&listen port=5541 - CHIP:IN: UDP::Init bound to port=5541 - CHIP:IN: TransportMgr initialized - CHIP:DIS: Init fabric pairing table with server storage - CHIP:DL: writing settings to file (/tmp/chip_counters.ini-zgCtZd) - CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - CHIP:DL: NVS set: chip-counters/GlobalMCTR = 25000 (0x61A8) - CHIP:CTL: System State Initialized... - CHIP:DL: MDNS failed to join multicast group on veth5731933 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethbf7bfa6 for address type IPv4: ../th - CHIP:DL: MDNS failed to join multicast group on vethcf434e5 for address type IPv4: ../th - CHIP:ZCL: Using ZAP configuration... - CHIP:DIS: Verifying the received credentials - CHIP:IN: Generating compressed fabric ID using uncompressed fabric ID 0x0000000000000000 - CHIP:IN: 0x04, 0x66, 0xd6, 0xcf, 0x4c, 0x1e, 0x11, 0xc3, - CHIP:IN: 0x52, 0x4f, 0xa6, 0x8c, 0x6e, 0x65, 0x46, 0xdc, - CHIP:IN: 0x90, 0x1b, 0x5f, 0x42, 0x9f, 0x69, 0xd1, 0xb7, - CHIP:IN: 0x7d, 0xf3, 0x6b, 0x54, 0x12, 0x6c, 0x12, 0x59, - CHIP:IN: 0x5b, 0xc3, 0x07, 0x1c, 0x5c, 0xf4, 0x4e, 0x5f, - CHIP:IN: 0x71, 0x06, 0x9a, 0xbb, 0x2f, 0xef, 0x20, 0x0d, - CHIP:IN: 0x0e, 0x9b, 0x26, 0x3e, 0x8d, 0x46, 0x09, 0xd8, - CHIP:IN: 0xfd, 0xa1, 0xc0, 0x10, 0x4f, 0x05, 0x14, 0x99, - CHIP:IN: 0x22, - CHIP:IN: Generated compressed fabric ID - CHIP:IN: 0x4a, 0x53, 0x1e, 0x52, 0x06, 0xed, 0x06, 0xda, - CHIP:DIS: Added new fabric at index: 1, Initialized: 1 - CHIP:DIS: Assigned compressed fabric ID: 0x4A531E5206ED06DA, node ID: 0x000000000001B669 - CHIP:CTL: Joined the fabric at index 1. Compressed fabric ID is: 0x4A531E5206ED06DA - CHIP:DL: CHIP task running - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Attempt to mDNS broadcast failed: ../third_party/connectedhomeip/src/inet/UDP - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 - CHIP:DIS: Discovered Node: - CHIP:DIS: Host name: EEAABADABAD0DDCA - CHIP:DIS: Port: 5540 - CHIP:DIS: Long discriminator: 3840 - CHIP:DIS: Vendor ID: 9050 - CHIP:DIS: Product ID: 65279 - CHIP:DIS: Commissioning Mode 1 - CHIP:DIS: Device Type 0 - CHIP:DIS: Device Name - CHIP:DIS: Rotating Id 00007C5F6E176CD40F68685D100A1CF8A98B - CHIP:DIS: Pairing Instruction - CHIP:DIS: Pairing Hint 0x21 - CHIP:DIS: Address 0: 2402:e280:2108:181:dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 1: fe80::dea6:32ff:fef9:f0a1 - CHIP:DIS: Address 2: 192.168.1.12 + On DUT: + ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + ... + [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293 + [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device , LSID:47293 PSID:201! + [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake + [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD + [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success + [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' + + + On TH: + $ ./out/all-clusters-app/chip-all-clusters-app + ... + [1657226543.948995][369114:369114] CHIP:IN: SecureSession[0xaaaab60788e0]: Activated - Type:1 LSID:201 + [1657226543.949023][369114:369114] CHIP:IN: New secure session created for device , LSID:201 PSID:47293! + [1657226543.949048][369114:369114] CHIP:SVR: Commissioning completed session establishment step disabled: true - label: @@ -558,7 +302,14 @@ tests: Commissionee." PICS: MCORE.DD.WIRELESS verification: | - Need test step review, potentially not a hard requirement so would not be required in test case + Verify on DUT Log: + + Performing next commissioning step 'ConfigRegulatory' + [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config + [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) + + Verify on TH: + NVS set: chip-config/regulatory-location = 0 (0x0) disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml index 1e0500759afca0..77b93736de59bc 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml @@ -27,7 +27,7 @@ tests: "Commissioner has regulatory and fabric information available and has accurate date, time and timezone" verification: | - + 1. Manually verify that the time, date and timezone is accurate for the DUT Commissioner disabled: true - label: @@ -39,7 +39,6 @@ tests: On DUT: start commissioning process(need to obtain the Thread dataset first) ./chip-tool pairing ble-thread 1 hex:0e080000000000010000000300000f35060004001fffe0020811111111222222220708fd27e57b1b1e22d9051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6f01021234041061e1206d2c2b46e079eb775f41fc72190c0402a0fff8 20202021 3840 - ,, disabled: true - label: @@ -63,8 +62,14 @@ tests: Commissionee." PICS: MCORE.DD.WIRELESS verification: | - On DUT: - CHIP:CTL: Setting Regulatory Config + Verify on DUT Log: + + Performing next commissioning step 'ConfigRegulatory' + [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config + [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) + + Verify on TH: + NVS set: chip-config/regulatory-location = 0 (0x0) disabled: true - label: @@ -380,7 +385,14 @@ tests: Commissionee." PICS: MCORE.DD.WIRELESS verification: | - Need test step review, potentially not a hard requirement so would not be required in test case + Verify on DUT Log: + + Performing next commissioning step 'ConfigRegulatory' + [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config + [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) + + Verify on TH: + NVS set: chip-config/regulatory-location = 0 (0x0) disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml index 2028db0de9b25c..f8d1c497fbe84b 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml @@ -25,15 +25,15 @@ tests: - label: "TH receives Onboarding Payload from the DUT" verification: | 1. Parse the DUT's QR Code using the TH commissioner: chip-tool - $ ./out/chip-tool/chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00 - [1651077458589] [91233:65331701] CHIP: [SPL] Parsing base38Representation: MT:-24J029Q00KA0648G00 - [1651077458590] [91233:65331701] CHIP: [SPL] CommissioningFlow: 2 - [1651077458590] [91233:65331701] CHIP: [SPL] VendorID: 65521 - [1651077458590] [91233:65331701] CHIP: [SPL] Version: 0 - [1651077458590] [91233:65331701] CHIP: [SPL] ProductID: 32769 - [1651077458590] [91233:65331701] CHIP: [SPL] Discriminator: 3840 - [1651077458590] [91233:65331701] CHIP: [SPL] SetUpPINCode: 20202021 - [1651077458590] [91233:65331701] CHIP: [SPL] RendezvousInformation: 4 + $ ./chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00 + [1657230447725] [31078:16782733] CHIP: [SPL] Parsing base38Representation: MT:-24J029Q00KA0648G00 + [1657230447725] [31078:16782733] CHIP: [SPL] Version: 0 + [1657230447725] [31078:16782733] CHIP: [SPL] VendorID: 65521 + [1657230447725] [31078:16782733] CHIP: [SPL] ProductID: 32769 + [1657230447725] [31078:16782733] CHIP: [SPL] Custom flow: 2 (CUSTOM) + [1657230447725] [31078:16782733] CHIP: [SPL] Capabilities: 0x04 (On IP network) + [1657230447725] [31078:16782733] CHIP: [SPL] Discriminator: 3840 + [1657230447725] [31078:16782733] CHIP: [SPL] Passcode: 20202021 2. Verify that the CommissioningFlow is set to 2 (Custom Flow) disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_2_3.yaml index aef885fe6add0a..c8520908ff3a39 100644 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_2_3.yaml @@ -40,39 +40,57 @@ tests: command: "readAttribute" attribute: "BeaconLostCount" response: - value: 0 + constraints: + type: uint32 + minValue: 0 + maxValue: 4294967295 - label: "Reads BeaconRxCount attribute from DUT" PICS: PICS_SKIP_SAMPLE_APP && DGWIFI.S.C00.Rsp command: "readAttribute" attribute: "BeaconRxCount" response: - value: 0 + constraints: + type: uint32 + minValue: 0 + maxValue: 4294967295 - label: "Reads PacketMulticastRxCount attribute from DUT" PICS: PICS_SKIP_SAMPLE_APP && DGWIFI.S.C00.Rsp command: "readAttribute" attribute: "PacketMulticastRxCount" response: - value: 0 + constraints: + type: uint32 + minValue: 0 + maxValue: 4294967295 - label: "Reads PacketMulticastTxCount attribute from DUT" PICS: PICS_SKIP_SAMPLE_APP && DGWIFI.S.C00.Rsp command: "readAttribute" attribute: "PacketMulticastTxCount" response: - value: 0 + constraints: + type: uint32 + minValue: 0 + maxValue: 4294967295 - label: "Reads PacketUnicastRxCount attribute from DUT" PICS: PICS_SKIP_SAMPLE_APP && DGWIFI.S.C00.Rsp command: "readAttribute" attribute: "PacketUnicastRxCount" response: - value: 0 + constraints: + type: uint32 + minValue: 0 + maxValue: 4294967295 - label: "Reads PacketUnicastTxCount attribute from DUT" PICS: PICS_SKIP_SAMPLE_APP && DGWIFI.S.C00.Rsp command: "readAttribute" attribute: "PacketUnicastTxCount" response: - value: 0 + constraints: + type: uint32 + minValue: 0 + maxValue: 4294967295 diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml index c2df2b48e3e2ed..7d7aa0e979a0e8 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml @@ -38,7 +38,7 @@ tests: constraints: type: uint16 - - label: "Read the optional global attribute: FeatureMap" + - label: "Read the global attribute: FeatureMap" PICS: KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK command: "readAttribute" attribute: "FeatureMap" diff --git a/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml index 10f10b40948ffa..fa578cd9145de2 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml @@ -85,7 +85,7 @@ tests: type: list contains: [2] - - label: "Read the optonal attribute(MinLevel) in AttributeList" + - label: "Read the optonal attribute(MaxLevel) in AttributeList" PICS: LVL.S.A0003 command: "readAttribute" attribute: "AttributeList" diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml index b6f4088fd15da6..5a5cbfe3c5fb47 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml @@ -28,37 +28,6 @@ tests: - name: "nodeId" value: nodeId - # Temporary - see #13551 - - label: "Precondition: Reset level to 254" - PICS: PICS_SDK_CI_ONLY - command: "MoveToLevel" - arguments: - values: - - name: "level" - value: 254 - - name: "transitionTime" - value: 0 - - name: "optionMask" - value: 1 - - name: "optionOverride" - value: 1 - - - label: "Wait 100ms" - PICS: PICS_SDK_CI_ONLY - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 100 - - - label: "Precondition: Reads the CurrentLevel attribute" - PICS: LVL.S.A0000 - command: "readAttribute" - attribute: "current level" - response: - value: 254 - - label: "Reads the CurrentLevel attribute" PICS: LVL.S.A0000 command: "readAttribute" @@ -95,7 +64,7 @@ tests: command: "readAttribute" attribute: "min level" response: - saveAs: MinLevelValue1 + saveAs: MinLevelFeatureMapNotSupportedValue constraints: type: uint8 minValue: 0 @@ -117,10 +86,10 @@ tests: command: "readAttribute" attribute: "max level" response: - saveAs: MaxLevelValue1 + saveAs: MaxLevelFeatureMapNotSupportedValue constraints: type: uint8 - minValue: MinLevelValue1 + minValue: MinLevelFeatureMapNotSupportedValue maxValue: 254 - label: "Step 4b & 4C Reads the CurrentLevel attribute" @@ -140,8 +109,8 @@ tests: response: constraints: type: uint8 - minValue: MinLevelValue1 - maxValue: MaxLevelValue1 + minValue: MinLevelFeatureMapNotSupportedValue + maxValue: MaxLevelFeatureMapNotSupportedValue - label: "Reads the CurrentFrequency attribute" PICS: LVL.S.A0004 @@ -212,8 +181,8 @@ tests: response: constraints: type: uint8 - minValue: MinLevelValue1 - maxValue: MaxLevelValue1 + minValue: MinLevelFeatureMapNotSupportedValue + maxValue: MaxLevelFeatureMapNotSupportedValue - label: "Reads the OnTransitionTime attribute " PICS: LVL.S.A0012 diff --git a/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml index df5043401010d4..7e87c9785e43cf 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml @@ -188,28 +188,6 @@ tests: response: value: 64 - - label: "Reset level to 254" - PICS: LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000 - command: "MoveToLevel" - arguments: - values: - - name: "level" - value: 254 - - name: "transitionTime" - value: 0 - - name: "optionMask" - value: 1 - - name: "optionOverride" - value: 1 - - - label: "Wait 100ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 100 - - label: "Precondition send Off Command" cluster: "On/Off" PICS: OO.S.C00.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml index f9dadfe58fbc15..9545b773649e5d 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml @@ -156,7 +156,6 @@ tests: - name: "ms" value: 5000 - # For lighting Device type current level minimal value is 1 - label: "reads CurrentLevel attribute from DUT" PICS: LVL.S.C05.Rsp && LVL.S.A0000 command: "readAttribute" @@ -213,28 +212,6 @@ tests: - name: "expectedValue" value: "y" - - label: "Reset level to 254" - PICS: LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000 - command: "MoveToLevel" - arguments: - values: - - name: "level" - value: 254 - - name: "transitionTime" - value: 0 - - name: "optionMask" - value: 1 - - name: "optionOverride" - value: 1 - - - label: "Wait 100ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 100 - - label: "Precondition send Off Command" cluster: "On/Off" PICS: OO.S.C00.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml index abcf91204efe42..333b9c1d65b31f 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml @@ -53,12 +53,26 @@ tests: maxValue: 255 - label: "Sends MoveToLevelWithOnOff command to DUT" - PICS: LVL.S.C04.Rsp + PICS: LVL.S.C04.Rsp && LVL.S.A0002 command: "MoveToLevelWithOnOff" arguments: values: - name: "level" - value: MinlevelValue + value: MinlevelValue + 1 + - name: "transitionTime" + value: 0 + - name: "optionMask" + value: 1 + - name: "optionOverride" + value: 1 + + - label: "Sends MoveToLevelWithOnOff command to DUT" + PICS: LVL.S.C04.Rsp && !LVL.S.A0002 + command: "MoveToLevelWithOnOff" + arguments: + values: + - name: "level" + value: 2 - name: "transitionTime" value: 0 - name: "optionMask" @@ -71,13 +85,24 @@ tests: command: "readAttribute" attribute: "current level" response: - value: MinlevelValue + value: MinlevelValue + 1 saveAs: CurrentlevelValue constraints: type: uint8 minValue: 0 maxValue: 255 + - label: "Reads current level attribute from DUT" + PICS: LVL.S.A0000 && !LVL.S.A0002 + command: "readAttribute" + attribute: "current level" + response: + value: 2 + constraints: + type: uint8 + minValue: 0 + maxValue: 255 + - label: "Sends step up command to DUT" PICS: LVL.S.C02.Rsp && LVL.S.M.VarRate command: "Step" @@ -143,27 +168,12 @@ tests: response: value: CurrentlevelValue - - label: "Reset level to 254" - PICS: LVL.S.C00.Rsp - command: "MoveToLevel" - arguments: - values: - - name: "level" - value: 254 - - name: "transitionTime" - value: 0 - - name: "optionMask" - value: 1 - - name: "optionOverride" - value: 1 - - - label: "Wait 100ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 100 + - label: "Reads current level attribute from DUT" + PICS: LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 + command: "readAttribute" + attribute: "current level" + response: + value: 2 - label: "Precondition send Off Command" cluster: "On/Off" diff --git a/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml index 9058552ff93319..016f5ac594be7a 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml @@ -181,28 +181,6 @@ tests: maxValue: 55 notValue: CurrentLevelValue - - label: "Reset level to 254" - PICS: LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000 - command: "MoveToLevel" - arguments: - values: - - name: "level" - value: 254 - - name: "transitionTime" - value: 0 - - name: "optionMask" - value: 1 - - name: "optionOverride" - value: 1 - - - label: "Wait 100ms" - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 100 - - label: "Precondition send Off Command" cluster: "On/Off" PICS: OO.S.C00.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml index b711c27431e241..db0296b2ffb8ba 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml @@ -38,7 +38,7 @@ tests: constraints: type: uint16 - - label: "Read the optional global attribute: FeatureMap" + - label: "Read the global attribute: FeatureMap" PICS: MEDIAINPUT.S.NU command: "readAttribute" attribute: "FeatureMap" diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml index 07337bb8e6371e..5ac838f7fb8c94 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml @@ -38,7 +38,7 @@ tests: constraints: type: uint16 - - label: "Read the optional global attribute: FeatureMap" + - label: "Read the global attribute: FeatureMap" PICS: MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS command: "readAttribute" attribute: "FeatureMap" @@ -118,6 +118,77 @@ tests: type: list contains: [0, 1, 2] + - label: "Read the optional command(StartOver) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C03.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [3] + + - label: "Read the optional command(Previous) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C04.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [4] + + - label: "Read the optional command(Next) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C05.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [5] + + - label: "Read the optional command(Rewind) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C06.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [6] + - label: "Read the optional command(FastForward) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C07.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [7] + + - label: "Read the optional command(SkipForward) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C08.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [8] + + - label: "Read the optional command(SkipBackward) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C09.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [9] + + - label: "Read the optional command(Seek) in AcceptedCommandList" + PICS: MEDIAPLAYBACK.S.C0B.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [11] + - label: "Read the global attribute: GeneratedCommandList" command: "readAttribute" attribute: "GeneratedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_1.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_1.yaml index 2ef5ef5cf3cd42..0e2707ab7826ea 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_1.yaml @@ -64,7 +64,7 @@ tests: - name: "expectedValue" value: "y" - - label: "Reads the playback state attribute" + - label: "Reads the CurrentState attribute" PICS: MEDIAPLAYBACK.S.A0000 command: "readAttribute" attribute: "CurrentState" @@ -90,7 +90,7 @@ tests: - name: "expectedValue" value: "y" - - label: "Reads the playback state attribute" + - label: "Reads the CurrentState attribute" command: "readAttribute" attribute: "CurrentState" response: @@ -115,7 +115,7 @@ tests: - name: "expectedValue" value: "y" - - label: "Reads the playback state attribute" + - label: "Reads the CurrentState attribute" PICS: MEDIAPLAYBACK.S.A0000 command: "readAttribute" attribute: "CurrentState" diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_2.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_2.yaml index f26c10f8e38e64..8a2918e2d7c264 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_2.yaml @@ -72,7 +72,7 @@ tests: value: 0 - label: "Sends a StartOver command to the DUT" - PICS: MEDIAPLAYBACK.S.C0003 + PICS: MEDIAPLAYBACK.S.C03.Rsp command: "StartOver" response: values: @@ -91,7 +91,7 @@ tests: value: "y" - label: "Sends a Next command to the DUT" - PICS: MEDIAPLAYBACK.S.C0005 + PICS: MEDIAPLAYBACK.S.C05.Rsp command: "Next" response: values: @@ -111,7 +111,7 @@ tests: value: "y" - label: "Sends a Previous command to the DUT" - PICS: MEDIAPLAYBACK.S.C0004 + PICS: MEDIAPLAYBACK.S.C04.Rsp command: "Previous" response: values: @@ -132,7 +132,7 @@ tests: value: "y" - label: "Sends a SkipForward command to the DUT " - PICS: MEDIAPLAYBACK.S.C0008 + PICS: MEDIAPLAYBACK.S.C08.Rsp command: "SkipForward" arguments: values: @@ -163,7 +163,7 @@ tests: value: 10000 - label: "Sends a SkipBackward command to the DUT " - PICS: MEDIAPLAYBACK.S.C0009 + PICS: MEDIAPLAYBACK.S.C09.Rsp command: "SkipBackward" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml index d2cd64bb010a38..15b6cf62ae264d 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml @@ -42,7 +42,7 @@ tests: value: 0 - label: "Sends a Seek command" - PICS: MEDIAPLAYBACK.S.C000B + PICS: MEDIAPLAYBACK.S.C0B.Rsp command: "Seek" arguments: values: @@ -142,7 +142,7 @@ tests: - label: "Sends a Seek command Position value beyond the furthest valid position" - PICS: MEDIAPLAYBACK.S.C000B + PICS: MEDIAPLAYBACK.S.C0B.Rsp command: "Seek" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml index 94697c546a6a75..43c14b0bc586ec 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml @@ -53,7 +53,7 @@ tests: value: 0 - label: "Sends a FastForward command" - PICS: MEDIAPLAYBACK.S.C0007 + PICS: MEDIAPLAYBACK.S.C07.Rsp command: "FastForward" response: values: @@ -75,7 +75,7 @@ tests: value: 1 - label: "Sends a FastForward command" - PICS: MEDIAPLAYBACK.S.C0007 + PICS: MEDIAPLAYBACK.S.C07.Rsp command: "FastForward" response: values: @@ -90,7 +90,7 @@ tests: value: 2 - label: "Sends a Rewind command to the DUT" - PICS: MEDIAPLAYBACK.S.C0006 + PICS: MEDIAPLAYBACK.S.C06.Rsp command: "Rewind" response: values: @@ -113,7 +113,7 @@ tests: [1655114487.018421][41855:41860] CHIP:EM: Sending Standalone Ack for MessageCounter:163883813 on exchange 24959 cluster: "LogCommands" command: "UserPrompt" - PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0007 + PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.C07.Rsp arguments: values: - name: "message" @@ -122,7 +122,7 @@ tests: value: "y" - label: "Sends a Rewind command to the DUT" - PICS: MEDIAPLAYBACK.S.C0006 + PICS: MEDIAPLAYBACK.S.C06.Rsp command: "Rewind" response: values: @@ -175,7 +175,7 @@ tests: [1655460522.133751][12273:12278] CHIP:TOO: } cluster: "LogCommands" command: "UserPrompt" - PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0007 + PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.C07.Rsp arguments: values: - name: "message" @@ -195,7 +195,7 @@ tests: [1655460483.177228][12225:12230] CHIP:TOO: } cluster: "LogCommands" command: "UserPrompt" - PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0006 + PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.C06.Rsp arguments: values: - name: "message" diff --git a/src/app/tests/suites/certification/Test_TC_OO_2_3.yaml b/src/app/tests/suites/certification/Test_TC_OO_2_3.yaml index 956cb07d6fdeb9..514e7fd4c53dda 100644 --- a/src/app/tests/suites/certification/Test_TC_OO_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_OO_2_3.yaml @@ -294,8 +294,8 @@ tests: PICS: OO.S.A4001 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - label: "9b:Reads OffWaitTime attribute from DUT" command: "readAttribute" @@ -389,8 +389,8 @@ tests: PICS: OO.S.A4001 response: constraints: - minValue: 270 - maxValue: 325 + minValue: 255 + maxValue: 345 - label: "10e:Reads OffWaitTime attribute from DUT" command: "readAttribute" @@ -437,8 +437,8 @@ tests: PICS: OO.S.A4002 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - label: "Wait 10000ms" cluster: "DelayCommands" @@ -480,8 +480,8 @@ tests: PICS: OO.S.A4002 response: constraints: - minValue: 180 - maxValue: 220 + minValue: 170 + maxValue: 230 - label: "Wait 10000ms" cluster: "DelayCommands" @@ -570,8 +570,8 @@ tests: PICS: OO.S.A4002 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - label: "Wait 30000ms" cluster: "DelayCommands" @@ -683,7 +683,9 @@ tests: attribute: "OnTime" PICS: OO.S.A4001 response: - value: 300 + constraints: + minValue: 255 + maxValue: 345 - label: "17c:Reads OffWaitTime attribute from DUT" command: "readAttribute" @@ -743,29 +745,26 @@ tests: - name: "OffWaitTime" value: 300 - # Issue 19159 onOff value mismatch: expected 1 but got 0 - label: "18b:Reads OnOff attribute from DUT" command: "readAttribute" attribute: "OnOff" - PICS: OO.S.A0000 && PICS_SKIP_SAMPLE_APP + PICS: OO.S.A0000 response: value: 1 - # Issue 19159 onTime value mismatch: expected 300 but got 0 - label: "18b:Reads OnTime attribute from DUT" command: "readAttribute" attribute: "OnTime" - PICS: OO.S.A4001 && PICS_SKIP_SAMPLE_APP + PICS: OO.S.A4001 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - # Issue 19159 OffWaitTime value mismatch: expected 300 but got 0 - label: "18b:Reads OffWaitTime attribute from DUT" command: "readAttribute" attribute: "OffWaitTime" - PICS: OO.S.A4002 && PICS_SKIP_SAMPLE_APP + PICS: OO.S.A4002 response: value: 300 @@ -822,8 +821,8 @@ tests: PICS: OO.S.A4001 response: constraints: - minValue: 180 - maxValue: 220 + minValue: 170 + maxValue: 230 - label: "19c:Reads OffWaitTime attribute from DUT" command: "readAttribute" @@ -856,8 +855,8 @@ tests: PICS: OO.S.A4002 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - label: "21a:Sends OnWithTimedOff command to DUT" command: "OnWithTimedOff" @@ -891,8 +890,8 @@ tests: PICS: OO.S.A4002 && PICS_SKIP_SAMPLE_APP response: constraints: - minValue: 180 - maxValue: 220 + minValue: 170 + maxValue: 230 - label: "22a:Send On Command" PICS: OO.S.C01.Rsp @@ -963,8 +962,8 @@ tests: PICS: OO.S.A4002 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - label: "Wait 40000ms" cluster: "DelayCommands" @@ -995,7 +994,7 @@ tests: response: constraints: minValue: 0 - maxValue: 10 + maxValue: 15 - label: "24a:Sends OnWithTimedOff command to DUT" command: "OnWithTimedOff" @@ -1022,8 +1021,8 @@ tests: PICS: OO.S.A4001 response: constraints: - minValue: 270 - maxValue: 320 + minValue: 255 + maxValue: 345 - label: "24b:Reads OffWaitTime attribute from DUT" command: "readAttribute" @@ -1061,7 +1060,7 @@ tests: response: constraints: minValue: 0 - maxValue: 10 + maxValue: 15 - label: "Send Off Command" command: "Off" diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml index 1364c831d5edad..1463163543a05d 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml @@ -24,6 +24,7 @@ tests: - label: "Factory Reset DUT (to ensure NOC list is empty at the beginning of the following steps)" + PICS: MCORE.FACTORY_RESET verification: | On both DUT and TH side sudo rm -rf /tmp/chip_* diff --git a/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml index efbf0b32677ac1..48832a0e44245a 100644 --- a/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml @@ -62,7 +62,7 @@ tests: response: constraints: type: list - contains: [3, 4, 5, 7, 8, 9, 10] + contains: [5] - label: "Read the Feature related(PS.S.F01-BAT) attribute in AttributeList" PICS: PS.S.F01 @@ -71,7 +71,7 @@ tests: response: constraints: type: list - contains: [11, 12, 13, 14, 15, 16, 17, 18] + contains: [14, 15, 16] - label: "Read the Feature related(PS.S.F02-RECHG) attribute in AttributeList" @@ -81,7 +81,7 @@ tests: response: constraints: type: list - contains: [26, 27, 28, 29, 30] + contains: [26, 28] - label: "Read the Feature related(PS.S.F03-REPLC) attribute in AttributeList" @@ -91,7 +91,7 @@ tests: response: constraints: type: list - contains: [19, 20, 21, 22, 23, 24, 25] + contains: [19, 25] - label: "Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml index fc9ef9b9d6ac79..88ca49f5849156 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml @@ -65,7 +65,7 @@ tests: response: constraints: type: list - contains: [5, 6, 7, 17, 23, 24] + contains: [17] - label: "Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in @@ -87,12 +87,12 @@ tests: response: constraints: type: list - contains: [3, 4, 8, 18, 21, 22] + contains: [18] - label: "Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in AttributeList" - PICS: TSTAT.S.F01 && TSTAT.S.F01 + PICS: TSTAT.S.F01 && TSTAT.S.F02 command: "readAttribute" attribute: "AttributeList" response: @@ -120,7 +120,7 @@ tests: response: constraints: type: list - contains: [25, 30] + contains: [25] - label: "Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 5ceff16ef6679b..4460c54a835fa0 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -322,9 +322,10 @@ CHANNEL.S.LI=1 CHANNEL.S.A0000=1 CHANNEL.S.A0001=1 CHANNEL.S.A0002=1 -CHANNEL.S.C0000=1 -CHANNEL.S.C0002=1 -CHANNEL.S.C0003=1 +CHANNEL.S.C00.Rsp=1 +CHANNEL.S.C02.Rsp=1 +CHANNEL.S.C03.Rsp=1 +CHANNEL.S.C01.Tx=1 MEDIAPLAYBACK.S.A0000=1 MEDIAPLAYBACK.S.A0001=1 @@ -337,14 +338,15 @@ MEDIAPLAYBACK.S.A0006=1 MEDIAPLAYBACK.S.C0000=1 MEDIAPLAYBACK.S.C0001=1 MEDIAPLAYBACK.S.C0002=1 -MEDIAPLAYBACK.S.C0003=1 -MEDIAPLAYBACK.S.C0004=1 -MEDIAPLAYBACK.S.C0005=1 -MEDIAPLAYBACK.S.C0006=1 -MEDIAPLAYBACK.S.C0007=1 -MEDIAPLAYBACK.S.C0008=1 -MEDIAPLAYBACK.S.C0009=1 -MEDIAPLAYBACK.S.C000B=1 +MEDIAPLAYBACK.S.C03.Rsp=1 +MEDIAPLAYBACK.S.C04.Rsp=1 +MEDIAPLAYBACK.S.C05.Rsp=1 +MEDIAPLAYBACK.S.C06.Rsp=1 +MEDIAPLAYBACK.S.C07.Rsp=1 +MEDIAPLAYBACK.S.C08.Rsp=1 +MEDIAPLAYBACK.S.C09.Rsp=1 +MEDIAPLAYBACK.S.C0B.Rsp=1 + MEDIAPLAYBACK.C.C0000=1 MEDIAPLAYBACK.C.C0001=1 @@ -583,17 +585,19 @@ PICS_MF=1 PICS_MF_BCM=1 CADMIN.UserInterfaceDisplay=1 CADMIN.AudioInterface=1 -CADMIN.S.C0000=1 -CADMIN.S.C0001=1 -CADMIN.S.C0002=1 +CADMIN.S.C00.Rsp=1 +CADMIN.S.C01.Rsp=1 +CADMIN.S.C02.Rsp=1 OPCREDS.S.C0a.Rsp=1 OPCREDS.S.A0001=1 BINFO.S.A0005=1 CADMIN.S.A0000=1 -CADMIN.C.C0000=1 -CADMIN.C.C0001=1 -CADMIN.C.C0002=1 +CADMIN.C.C00.Tx=1 +CADMIN.C.C01.Tx=1 +CADMIN.C.C02.Tx=1 CADMIN.C.A0000=1 +CADMIN.S=1 +CADMIN.C=1 OPCREDS.C.C0a.Tx=1 OPCREDS.C.A0001=1 BINFO.C.A0005=1 @@ -741,7 +745,7 @@ GRPKEY.C.C00.Tx=1 G.C.C00.Tx=1 #Device Discovery -MCORE.DD.DT_SOFTAP=0 +MCORE.DD.DISCOVERY_SOFTAP=0 MCORE.DD.WIFI=0 MCORE.DD.BLE=1 MCORE.DD.CHIP_DEV=1 @@ -763,7 +767,7 @@ MCORE.DD.COMMISSIONER=1 MCORE.DD.CUSTOM_COMM_FLOW=1 MCORE.DD.DT_BLE=1 MCORE.DD.CONTROLLER=1 -MCORE.DD.DT_IP=1 +MCORE.DD.DISCOVERY_IP=1 MCORE.DD.STANDARD_COMM_FLOW=1 MCORE.DD.USER_INTENT_COMM_FLOW=1 MCORE.DD.CUSTOM_COMM_FLOW=1 @@ -774,6 +778,9 @@ MCORE.DD.SCAN_NFC=1 MCORE.DD.SCAN_QR_CODE=1 MCORE.DD.THREAD=1 MCORE.DD.WIRELESS=1 +MCORE.DD.TXT_KEY_VP=1 +MCORE.DD.TXT_KEY_DT=1 +MCORE.DD.DISCOVERY_BLE=1 #Ethernet Network Diagnostics Cluster DGETH.S.C00.Rsp=1 @@ -1284,6 +1291,7 @@ CNET.C.C08.Tx=1 #Node Operational Credential #Server Attributes +MCORE.FACTORY_RESET=1 OPCREDS.S.A0000=1 OPCREDS.S.A0001=1 OPCREDS.S.A0002=1 diff --git a/src/app/tests/suites/tests.js b/src/app/tests/suites/tests.js index cacacfc207b398..edcb79614284c5 100644 --- a/src/app/tests/suites/tests.js +++ b/src/app/tests/suites/tests.js @@ -63,6 +63,7 @@ function getManualTests() { "Test_TC_DD_3_18", "Test_TC_DD_3_19", "Test_TC_DD_3_20", + "Test_TC_DD_3_21", ]; const Groups = [ @@ -372,6 +373,8 @@ function getManualTests() { "Test_TC_CC_7_5", "Test_TC_CC_9_4", // Slow tests that should not run in CI because they take many minutes each + "Test_TC_CC_3_1", + "Test_TC_CC_7_1", "Test_TC_CC_9_1", "Test_TC_CC_9_2", "Test_TC_CC_9_3", @@ -579,7 +582,6 @@ function getTests() { const ColorControl = [ "Test_TC_CC_1_1", "Test_TC_CC_2_1", - "Test_TC_CC_3_1", "Test_TC_CC_3_2", "Test_TC_CC_3_3", "Test_TC_CC_4_1", @@ -592,7 +594,6 @@ function getTests() { "Test_TC_CC_6_1", "Test_TC_CC_6_2", "Test_TC_CC_6_3", - "Test_TC_CC_7_1", "Test_TC_CC_7_2", "Test_TC_CC_7_3", "Test_TC_CC_7_4", diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index c6e69f87e5b770..084f5b14dfd7d7 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -40,7 +40,6 @@ class TestList : public Command printf("Test_TC_ACT_1_1\n"); printf("Test_TC_CC_1_1\n"); printf("Test_TC_CC_2_1\n"); - printf("Test_TC_CC_3_1\n"); printf("Test_TC_CC_3_2\n"); printf("Test_TC_CC_3_3\n"); printf("Test_TC_CC_4_1\n"); @@ -53,7 +52,6 @@ class TestList : public Command printf("Test_TC_CC_6_1\n"); printf("Test_TC_CC_6_2\n"); printf("Test_TC_CC_6_3\n"); - printf("Test_TC_CC_7_1\n"); printf("Test_TC_CC_7_2\n"); printf("Test_TC_CC_7_3\n"); printf("Test_TC_CC_7_4\n"); @@ -271,6 +269,7 @@ class ManualTestList : public Command printf("Test_TC_DD_3_18\n"); printf("Test_TC_DD_3_19\n"); printf("Test_TC_DD_3_20\n"); + printf("Test_TC_DD_3_21\n"); printf("TestGroupDemoCommand\n"); printf("TestGroupDemoConfig\n"); printf("Test_TC_G_1_1\n"); @@ -494,6 +493,8 @@ class ManualTestList : public Command printf("Test_TC_CC_6_4\n"); printf("Test_TC_CC_7_5\n"); printf("Test_TC_CC_9_4\n"); + printf("Test_TC_CC_3_1\n"); + printf("Test_TC_CC_7_1\n"); printf("Test_TC_CC_9_1\n"); printf("Test_TC_CC_9_2\n"); printf("Test_TC_CC_9_3\n"); @@ -2298,7 +2299,7 @@ class Test_TC_ACT_1_1Suite : public TestCommand class Test_TC_CC_1_1Suite : public TestCommand { public: - Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 15, credsIssuerConfig) + Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 7, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -2372,85 +2373,6 @@ class Test_TC_CC_1_1Suite : public TestCommand } break; case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - } - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); - } - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); - } - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); - } - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); - } - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - } - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "list")); - } - break; - case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2458,7 +2380,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "list")); } break; - case 13: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2470,7 +2392,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "list")); } break; - case 14: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -2514,65 +2436,17 @@ class Test_TC_CC_1_1Suite : public TestCommand true, chip::NullOptional); } case 4: { - LogStep(4, "Read the feature dependent attribute(CC.S.F00) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 5: { - LogStep(5, "Read the feature dependent attribute(CC.S.F03) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 6: { - LogStep(6, "Read the feature dependent attribute(CC.S.F04) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 7: { - LogStep(7, "Read the feature dependent attribute(CC.S.F04) or ColorTemperatureMireds in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 8: { - LogStep(8, "Read the feature dependent attribute(CC.S.F01) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 9: { - LogStep(9, "Read the feature dependent attribute(CC.S.F02) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 10: { - LogStep(10, "Read the feature dependent attribute(CC.S.F00) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 11: { - LogStep(11, "Read the feature dependent attribute(CC.S.F00) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 12: { - LogStep(12, "Read the global attribute: AcceptedCommandList"); + LogStep(4, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Read the global attribute: GeneratedCommandList"); + case 5: { + LogStep(5, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, + case 6: { + LogStep(6, "Read EventList attribute from the DUT and Verify that the DUT response provides a list of supported events."); VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -2869,183 +2743,75 @@ class Test_TC_CC_2_1Suite : public TestCommand break; case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - } + shouldContinue = true; break; case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - } + shouldContinue = true; break; case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - } + shouldContinue = true; break; case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - } + shouldContinue = true; break; case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - } + shouldContinue = true; break; case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } + shouldContinue = true; break; case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - } + shouldContinue = true; break; case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -3181,13 +2947,13 @@ class Test_TC_CC_2_1Suite : public TestCommand } case 1: { LogStep(1, "TH reads CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0000 && CC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0001 && CC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -3199,13 +2965,13 @@ class Test_TC_CC_2_1Suite : public TestCommand } case 4: { LogStep(4, "TH reads CurrentX attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0003 && CC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 5: { LogStep(5, "TH reads CurrentY attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0004 && CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } @@ -3223,7 +2989,7 @@ class Test_TC_CC_2_1Suite : public TestCommand } case 8: { LogStep(8, "TH reads ColorTemperatureMireds attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0007 && CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } @@ -3241,43 +3007,43 @@ class Test_TC_CC_2_1Suite : public TestCommand } case 11: { LogStep(11, "TH reads EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000 && CC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 12: { LogStep(12, "TH reads EnhancedColorMode attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.F02 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, true, chip::NullOptional); } case 13: { LogStep(13, "TH reads ColorLoopActive attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4002 && CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, true, chip::NullOptional); } case 14: { LogStep(14, "TH reads ColorLoopDirection attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4003 && CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, true, chip::NullOptional); } case 15: { LogStep(15, "TH reads ColorLoopTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4004 && CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, true, chip::NullOptional); } case 16: { LogStep(16, "TH reads ColorLoopStartEnhancedHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4005 && CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 17: { LogStep(17, "TH reads ColorLoopStoredEnhancedHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4006 && CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } @@ -3294,25 +3060,25 @@ class Test_TC_CC_2_1Suite : public TestCommand } case 20: { LogStep(20, "TH reads ColorTempPhysicalMinMireds attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A400b && CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMinMireds::Id, true, chip::NullOptional); } case 21: { LogStep(21, "TH reads ColorTempPhysicalMaxMireds attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A400c && CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id, true, chip::NullOptional); } case 22: { LogStep(22, "TH reads CoupleColorTempToLevelMinMireds attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A400d && CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id, true, chip::NullOptional); } case 23: { LogStep(23, "TH reads StartUpColorTemperatureMireds attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4010 && CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::StartUpColorTemperatureMireds::Id, true, chip::NullOptional); } @@ -3323,112 +3089,220 @@ class Test_TC_CC_2_1Suite : public TestCommand true, chip::NullOptional); } case 25: { - LogStep(25, "TH reads Primary1X attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1X::Id, true, - chip::NullOptional); + LogStep(25, + "TH reads Primary1X attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 1 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 26: { - LogStep(26, "TH reads Primary1Y attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1Y::Id, true, - chip::NullOptional); + LogStep(26, + "TH reads Primary1Y attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 1 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 27: { - LogStep(27, "TH reads Primary1Intensity attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1Intensity::Id, - true, chip::NullOptional); + LogStep(27, + "TH reads Primary1Intensity attribute from DUT and Verify that the DUT response contains an uint8 if " + "NumberOfPrimaries is 1 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 28: { - LogStep(28, "TH reads Primary2X attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2X::Id, true, - chip::NullOptional); + LogStep(28, + "TH reads Primary2X attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 2 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 29: { - LogStep(29, "TH reads Primary2Y attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2Y::Id, true, - chip::NullOptional); + LogStep(29, + "TH reads Primary2Y attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 2 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 30: { - LogStep(30, "TH reads Primary2Intensity attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2Intensity::Id, - true, chip::NullOptional); + LogStep(30, + "TH reads Primary2Intensity attribute from DUT and Verify that the DUT response contains an uint8 if " + "NumberOfPrimaries is 2 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 31: { - LogStep(31, "TH reads Primary3X attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3X::Id, true, - chip::NullOptional); + LogStep(31, + "TH reads Primary3X attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 3 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 32: { - LogStep(32, "TH reads Primary3Y attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3Y::Id, true, - chip::NullOptional); + LogStep(32, + "TH reads Primary3Y attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 3 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 33: { - LogStep(33, "TH reads Primary3Intensity attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3Intensity::Id, - true, chip::NullOptional); + LogStep(33, + "TH reads Primary3Intensity attribute from DUT and Verify that the DUT response contains an uint8 if " + "NumberOfPrimaries is 3 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 34: { - LogStep(34, "TH reads Primary4X attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4X::Id, true, - chip::NullOptional); + LogStep(34, + "TH reads Primary4X attribute from DUT Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] if " + "NumberOfPrimaries is 4 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 35: { - LogStep(35, "TH reads Primary4Y attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4Y::Id, true, - chip::NullOptional); + LogStep(35, + "TH reads Primary4Y attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 4 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 36: { - LogStep(36, "TH reads Primary4Intensity attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4Intensity::Id, - true, chip::NullOptional); + LogStep(36, + "TH reads Primary4Intensity attribute from DUT and Verify that the DUT response contains an uint8 if " + "NumberOfPrimaries is 4 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 37: { - LogStep(37, "TH reads Primary5X attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5X::Id, true, - chip::NullOptional); + LogStep(37, + "TH reads Primary5X attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 5 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 38: { - LogStep(38, "TH reads Primary5Y attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5Y::Id, true, - chip::NullOptional); + LogStep(38, + "TH reads Primary5Y attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 5 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 39: { - LogStep(39, "TH reads Primary5Intensity attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5Intensity::Id, - true, chip::NullOptional); + LogStep(39, + "TH reads Primary5Intensity attribute from DUT and Verify that the DUT response contains an uint8 if " + "NumberOfPrimaries is 5 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 40: { - LogStep(40, "TH reads Primary6X attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6X::Id, true, - chip::NullOptional); + LogStep(40, + "TH reads Primary6X attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 6 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 41: { - LogStep(41, "TH reads Primary6Y attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6Y::Id, true, - chip::NullOptional); + LogStep(41, + "TH reads Primary6Y attribute from DUT and Verify that the DUT response contains an uint16 [Min:0 Max:0xfeff] " + "if NumberOfPrimaries is 6 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 42: { - LogStep(42, "TH reads Primary6Intensity attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6Intensity::Id, - true, chip::NullOptional); + LogStep(42, + "TH reads Primary6Intensity attribute from DUT and Verify that the DUT response contains an uint8 if " + "NumberOfPrimaries is 6 or more"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && CC.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 43: { LogStep(43, "TH reads WhitePointX attribute from DUT"); @@ -3501,10 +3375,10 @@ class Test_TC_CC_2_1Suite : public TestCommand } }; -class Test_TC_CC_3_1Suite : public TestCommand +class Test_TC_CC_3_2Suite : public TestCommand { public: - Test_TC_CC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_1", 34, credsIssuerConfig) + Test_TC_CC_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_2", 30, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -3512,7 +3386,7 @@ class Test_TC_CC_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_3_1Suite() {} + ~Test_TC_CC_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -3525,6 +3399,9 @@ class Test_TC_CC_3_1Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + uint8_t CurrentHueValue; + uint8_t CurrentHueValueAfterStopmode; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -3622,6 +3499,7 @@ class Test_TC_CC_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentHueValue = value; } break; case 14: @@ -3633,16 +3511,17 @@ class Test_TC_CC_3_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + VerifyOrReturn(CheckValue("currentHue", value, CurrentHueValue)); } break; case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -3652,9 +3531,6 @@ class Test_TC_CC_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); } break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -3685,9 +3561,12 @@ class Test_TC_CC_3_1Suite : public TestCommand break; case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -3695,11 +3574,9 @@ class Test_TC_CC_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentHueValueAfterStopmode = value; } break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -3709,43 +3586,13 @@ class Test_TC_CC_3_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + VerifyOrReturn(CheckValue("currentHue", value, CurrentHueValueAfterStopmode)); } break; case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 29: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 31: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 32: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -3789,236 +3636,206 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 3: { LogStep(3, "Reads CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Move to hue shortest distance command"); - VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Move hue up command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; - value.hue = 150U; - value.direction = static_cast(0); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; + value.moveMode = static_cast(1); + value.rate = 50U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, chip::NullOptional ); } case 5: { - LogStep(5, "Wait 290ms"); + LogStep(5, "Wait 3000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } case 6: { LogStep(6, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Wait 295ms"); + LogStep(7, "Wait 2000"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 2000UL; return WaitForMs(kIdentityAlpha, value); } case 8: { LogStep(8, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Wait 300ms"); + LogStep(9, "Wait 3000"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } case 10: { LogStep(10, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Move to hue longest distance command"); - VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Move hue stop command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; - value.hue = 200U; - value.direction = static_cast(1); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; + value.moveMode = static_cast(0); + value.rate = 50U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, chip::NullOptional ); } case 12: { - LogStep(12, "Wait 290ms"); + LogStep(12, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 13: { LogStep(13, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Wait 295ms"); + LogStep(14, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 15: { LogStep(15, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Wait 300ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs(kIdentityAlpha, value); - } - case 17: { - LogStep(17, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 18: { - LogStep(18, "Move to hue up command"); - VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Move hue down command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; - value.hue = 250U; - value.direction = static_cast(2); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; + value.moveMode = static_cast(3); + value.rate = 50U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, chip::NullOptional ); } - case 19: { - LogStep(19, "Wait 290ms"); + case 17: { + LogStep(17, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 20: { - LogStep(20, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 18: { + LogStep(18, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Wait 295ms"); + case 19: { + LogStep(19, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 22: { - LogStep(22, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 20: { + LogStep(20, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "Wait 300ms"); + case 21: { + LogStep(21, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 24: { - LogStep(24, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 22: { + LogStep(22, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Move to hue down command"); - VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 23: { + LogStep(23, "Move hue stop command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; - value.hue = 225U; - value.direction = static_cast(3); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; + value.moveMode = static_cast(0); + value.rate = 50U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, chip::NullOptional ); } - case 26: { - LogStep(26, "Wait 290ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; - return WaitForMs(kIdentityAlpha, value); - } - case 27: { - LogStep(27, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 28: { - LogStep(28, "Wait 295ms"); + case 24: { + LogStep(24, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 25: { + LogStep(25, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "Wait 300ms"); + case 26: { + LogStep(26, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 31: { - LogStep(31, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 27: { + LogStep(27, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "Turn off light that we turned on"); + case 28: { + LogStep(28, "Turn off light that we turned on"); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional ); } - case 33: { - LogStep(33, "Check on/off attribute value is false after off command"); + case 29: { + LogStep(29, "Check on/off attribute value is false after off command"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } @@ -4026,10 +3843,10 @@ class Test_TC_CC_3_1Suite : public TestCommand } }; -class Test_TC_CC_3_2Suite : public TestCommand +class Test_TC_CC_3_3Suite : public TestCommand { public: - Test_TC_CC_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_2", 34, credsIssuerConfig) + Test_TC_CC_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_3", 12, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -4037,528 +3854,7 @@ class Test_TC_CC_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - bool value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onOff", value, 1)); - } - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 26: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 27: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 29: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 31: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 32: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 33: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - bool value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onOff", value, 0)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Turn on light for color control tests"); - ListFreer listFreer; - chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional - - ); - } - case 2: { - LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); - } - case 3: { - LogStep(3, "Reads CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 4: { - LogStep(4, "Move hue up command"); - VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; - value.moveMode = static_cast(1); - value.rate = 50U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, - chip::NullOptional - - ); - } - case 5: { - LogStep(5, "Wait 140ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs(kIdentityAlpha, value); - } - case 6: { - LogStep(6, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 7: { - LogStep(7, "Wait 145ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs(kIdentityAlpha, value); - } - case 8: { - LogStep(8, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 9: { - LogStep(9, "Wait 150ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs(kIdentityAlpha, value); - } - case 10: { - LogStep(10, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 11: { - LogStep(11, "Move hue stop command"); - VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; - value.moveMode = static_cast(0); - value.rate = 50U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, - chip::NullOptional - - ); - } - case 12: { - LogStep(12, "Wait 140ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs(kIdentityAlpha, value); - } - case 13: { - LogStep(13, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 14: { - LogStep(14, "Wait 145ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs(kIdentityAlpha, value); - } - case 15: { - LogStep(15, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 16: { - LogStep(16, "Wait 150ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs(kIdentityAlpha, value); - } - case 17: { - LogStep(17, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 18: { - LogStep(18, "Move hue down command"); - VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; - value.moveMode = static_cast(3); - value.rate = 50U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, - chip::NullOptional - - ); - } - case 19: { - LogStep(19, "Wait 140ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs(kIdentityAlpha, value); - } - case 20: { - LogStep(20, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 21: { - LogStep(21, "Wait 145ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs(kIdentityAlpha, value); - } - case 22: { - LogStep(22, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 23: { - LogStep(23, "Wait 150ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs(kIdentityAlpha, value); - } - case 24: { - LogStep(24, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 25: { - LogStep(25, "Move hue stop command"); - VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; - value.moveMode = static_cast(0); - value.rate = 50U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, - chip::NullOptional - - ); - } - case 26: { - LogStep(26, "Wait 140ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs(kIdentityAlpha, value); - } - case 27: { - LogStep(27, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 28: { - LogStep(28, "Wait 145ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs(kIdentityAlpha, value); - } - case 29: { - LogStep(29, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 30: { - LogStep(30, "Wait 150ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs(kIdentityAlpha, value); - } - case 31: { - LogStep(31, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); - } - case 32: { - LogStep(32, "Turn off light that we turned on"); - ListFreer listFreer; - chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional - - ); - } - case 33: { - LogStep(33, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CC_3_3Suite : public TestCommand -{ -public: - Test_TC_CC_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_3", 12, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_CC_3_3Suite() {} + ~Test_TC_CC_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -4689,13 +3985,13 @@ class Test_TC_CC_3_3Suite : public TestCommand } case 3: { LogStep(3, "Reads CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Step hue up command"); - VerifyOrDo(!ShouldSkip("CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepHue::Type value; value.stepMode = static_cast(1); @@ -4717,13 +4013,13 @@ class Test_TC_CC_3_3Suite : public TestCommand } case 6: { LogStep(6, "Over TransitionTime,Read CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Step hue down command"); - VerifyOrDo(!ShouldSkip("CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepHue::Type value; value.stepMode = static_cast(3); @@ -4745,7 +4041,7 @@ class Test_TC_CC_3_3Suite : public TestCommand } case 9: { LogStep(9, "Over TransitionTime,Read CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } @@ -4867,9 +4163,7 @@ class Test_TC_CC_4_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + VerifyOrReturn(CheckValue("currentSaturation", value, 90U)); } break; case 11: @@ -4919,17 +4213,17 @@ class Test_TC_CC_4_1Suite : public TestCommand } case 3: { LogStep(3, "Check Saturation attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Move to saturation command"); - VerifyOrDo(!ShouldSkip("CC.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveToSaturation::Type value; value.saturation = 90U; - value.transitionTime = 10U; + value.transitionTime = 15U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToSaturation::Id, @@ -4938,41 +4232,41 @@ class Test_TC_CC_4_1Suite : public TestCommand ); } case 5: { - LogStep(5, "Wait 6ms"); + LogStep(5, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 6UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } case 6: { LogStep(6, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Wait 8ms"); + LogStep(7, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 8UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } case 8: { LogStep(8, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Wait 10ms"); + LogStep(9, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 10: { LogStep(10, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -4996,7 +4290,7 @@ class Test_TC_CC_4_1Suite : public TestCommand class Test_TC_CC_4_2Suite : public TestCommand { public: - Test_TC_CC_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_4_2", 48, credsIssuerConfig) + Test_TC_CC_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_4_2", 38, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -5017,6 +4311,10 @@ class Test_TC_CC_4_2Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + uint8_t CurrentSaturationStep4d; + uint8_t CurrentSaturationStep5b; + uint8_t CurrentSaturationStep5d; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -5163,54 +4461,12 @@ class Test_TC_CC_4_2Suite : public TestCommand break; case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 29: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -5218,44 +4474,29 @@ class Test_TC_CC_4_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentSaturationStep4d = value; } break; - case 30: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 31: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + VerifyOrReturn(CheckValue("currentSaturation", value, CurrentSaturationStep4d)); } break; - case 32: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 33: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 34: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } break; - case 35: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 36: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -5263,44 +4504,31 @@ class Test_TC_CC_4_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentSaturationStep5b = value; } break; - case 37: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 38: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, CurrentSaturationStep5b)); } break; - case 39: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 40: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; - case 41: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - } - break; - case 42: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 43: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -5308,26 +4536,25 @@ class Test_TC_CC_4_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentSaturationStep5d = value; } break; - case 44: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 45: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + VerifyOrReturn(CheckValue("currentSaturation", value, CurrentSaturationStep5d)); } break; - case 46: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 47: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -5370,18 +4597,18 @@ class Test_TC_CC_4_2Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Check Saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Move saturation up command"); - VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH sends MoveSaturation command to DUT with MoveMode Up"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; value.moveMode = static_cast(1); - value.rate = 5U; + value.rate = 15U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, @@ -5390,51 +4617,51 @@ class Test_TC_CC_4_2Suite : public TestCommand ); } case 5: { - LogStep(5, "Wait 40ms"); + LogStep(5, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 6: { - LogStep(6, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "TH reads CurrentSaturation attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Wait 45ms"); + LogStep(7, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 8: { - LogStep(8, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "TH reads CurrentSaturation attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Wait 50ms"); + LogStep(9, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 10: { - LogStep(10, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "TH reads CurrentSaturation attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Move saturation down command"); - VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "TH sends MoveSaturation command to DUT with MoveMode Down"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; value.moveMode = static_cast(3); - value.rate = 5U; + value.rate = 10U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, @@ -5443,51 +4670,51 @@ class Test_TC_CC_4_2Suite : public TestCommand ); } case 12: { - LogStep(12, "Wait 40ms"); + LogStep(12, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 13: { - LogStep(13, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "TH reads CurrentSaturation attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Wait 45ms"); + LogStep(14, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 15: { - LogStep(15, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "TH reads CurrentSaturation attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Wait 50ms"); + LogStep(16, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 17: { - LogStep(17, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "TH reads CurrentSaturation attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Move saturation up command"); - VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "TH sends MoveSaturation command to DUT with MoveMode Up to the Maximum allowed Saturation"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; value.moveMode = static_cast(1); - value.rate = 5U; + value.rate = 100U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, @@ -5496,51 +4723,25 @@ class Test_TC_CC_4_2Suite : public TestCommand ); } case 19: { - LogStep(19, "Wait 40ms"); + LogStep(19, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 20: { - LogStep(20, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Wait 45ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; - return WaitForMs(kIdentityAlpha, value); - } - case 22: { - LogStep(22, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, - true, chip::NullOptional); - } - case 23: { - LogStep(23, "Wait 50ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; - return WaitForMs(kIdentityAlpha, value); - } - case 24: { - LogStep(24, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, - true, chip::NullOptional); - } - case 25: { - LogStep(25, "Move saturation stop command"); - VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "TH sends MoveSaturation command to DUT with MoveMode Stop before Saturation reaches the Maximum allowed."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; value.moveMode = static_cast(0); - value.rate = 5U; + value.rate = 50U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, @@ -5548,52 +4749,39 @@ class Test_TC_CC_4_2Suite : public TestCommand ); } - case 26: { - LogStep(26, "Wait 40ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs(kIdentityAlpha, value); - } - case 27: { - LogStep(27, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, - true, chip::NullOptional); - } - case 28: { - LogStep(28, "Wait 45ms"); + case 22: { + LogStep(22, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 23: { + LogStep(23, "TH reads CurrentSaturation attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "Wait 50ms"); + case 24: { + LogStep(24, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 31: { - LogStep(31, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 25: { + LogStep(25, "CurrentSaturation value Stops incrementing"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "Move saturation down command"); - VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 26: { + LogStep(26, "TH sends MoveSaturation command to DUT with MoveMode Down to the Minimum allowed Saturation"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; value.moveMode = static_cast(3); - value.rate = 5U; + value.rate = 10U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, @@ -5601,52 +4789,39 @@ class Test_TC_CC_4_2Suite : public TestCommand ); } - case 33: { - LogStep(33, "Wait 40ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs(kIdentityAlpha, value); - } - case 34: { - LogStep(34, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, - true, chip::NullOptional); - } - case 35: { - LogStep(35, "Wait 45ms"); + case 27: { + LogStep(27, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 36: { - LogStep(36, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 28: { + LogStep(28, "TH reads CurrentSaturation attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } - case 37: { - LogStep(37, "Wait 50ms"); + case 29: { + LogStep(29, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 38: { - LogStep(38, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 30: { + LogStep(30, "TH reads CurrentSaturation attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } - case 39: { - LogStep(39, "Move saturation stop command"); - VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 31: { + LogStep(31, "TH sends MoveSaturation command to DUT with MoveMode Stop before Saturation reaches the Minimum allowed"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; value.moveMode = static_cast(0); - value.rate = 5U; + value.rate = 10U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, @@ -5654,55 +4829,42 @@ class Test_TC_CC_4_2Suite : public TestCommand ); } - case 40: { - LogStep(40, "Wait 40ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs(kIdentityAlpha, value); - } - case 41: { - LogStep(41, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, - true, chip::NullOptional); - } - case 42: { - LogStep(42, "Wait 45ms"); + case 32: { + LogStep(32, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 43: { - LogStep(43, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 33: { + LogStep(33, "TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } - case 44: { - LogStep(44, "Wait 50ms"); + case 34: { + LogStep(34, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 45: { - LogStep(45, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 35: { + LogStep(35, "CurrentSaturation value Stops decrementing"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } - case 46: { - LogStep(46, "Turn off light that we turned on"); + case 36: { + LogStep(36, "Turn off light that we turned on"); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional ); } - case 47: { - LogStep(47, "Check on/off attribute value is false after off command"); + case 37: { + LogStep(37, "Check on/off attribute value is false after off command"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } @@ -5851,14 +5013,14 @@ class Test_TC_CC_4_3Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step saturation up command"); - VerifyOrDo(!ShouldSkip("CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH sends StepSaturation command to DUT with StepMode Up"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepSaturation::Type value; value.stepMode = static_cast(1); @@ -5872,21 +5034,21 @@ class Test_TC_CC_4_3Suite : public TestCommand ); } case 5: { - LogStep(5, "Wait 10ms"); + LogStep(5, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 6: { - LogStep(6, "Over TransitionTime,Read CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Over TransitionTime,TH read CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step saturation down command"); - VerifyOrDo(!ShouldSkip("CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "TH sends StepSaturation command to DUT with StepMode Down"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepSaturation::Type value; value.stepMode = static_cast(3); @@ -5900,15 +5062,15 @@ class Test_TC_CC_4_3Suite : public TestCommand ); } case 8: { - LogStep(8, "Wait 10ms"); + LogStep(8, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 9: { - LogStep(9, "Over TransitionTime,Reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Over TransitionTime,TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -6073,20 +5235,20 @@ class Test_TC_CC_4_4Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Check current hue attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads CurrentHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Check Saturation attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Move To current hue and saturation command"); - VerifyOrDo(!ShouldSkip("CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "TH sends MoveToHueAndSaturation command to DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::Type value; value.hue = 40U; @@ -6100,21 +5262,21 @@ class Test_TC_CC_4_4Suite : public TestCommand ); } case 6: { - LogStep(6, "Wait 10ms"); + LogStep(6, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 7: { - LogStep(7, "Check current hue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Over TransitionTime, TH reads CurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Check current saturation attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Over TransitionTime, TH reads CurrentSaturation attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -6218,6 +5380,7 @@ class Test_TC_CC_5_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentX", value, 200U)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); @@ -6228,6 +5391,7 @@ class Test_TC_CC_5_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentY", value, 300U)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); @@ -6279,25 +5443,25 @@ class Test_TC_CC_5_1Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Check current x attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Check current y attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Move to Color command"); - VerifyOrDo(!ShouldSkip("CC.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "TH sends MoveToColor command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveToColor::Type value; value.colorX = 200U; value.colorY = 300U; - value.transitionTime = 20U; + value.transitionTime = 10U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id, value, @@ -6306,21 +5470,21 @@ class Test_TC_CC_5_1Suite : public TestCommand ); } case 6: { - LogStep(6, "Wait 20ms"); + LogStep(6, "Wait 1500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 20UL; + value.ms = 1500UL; return WaitForMs(kIdentityAlpha, value); } case 7: { - LogStep(7, "Check current x attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Over TransitionTime, TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Check current y attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Over TransitionTime, TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } @@ -6508,20 +5672,20 @@ class Test_TC_CC_5_2Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Check current x attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Check current y attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Move Color command"); - VerifyOrDo(!ShouldSkip("CC.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "TH sends MoveColor command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColor::Type value; value.rateX = 15; @@ -6534,27 +5698,27 @@ class Test_TC_CC_5_2Suite : public TestCommand ); } case 6: { - LogStep(6, "Wait 150ms"); + LogStep(6, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 7: { - LogStep(7, "Check current x attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Check current y attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Stop Move Step command"); - VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "TH sends StopMoveStep command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0U; @@ -6565,14 +5729,14 @@ class Test_TC_CC_5_2Suite : public TestCommand ); } case 10: { - LogStep(10, "Check current x attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Check current y attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } @@ -6737,25 +5901,25 @@ class Test_TC_CC_5_3Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Check current x attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Check current y attribute value matched before any change"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step Color command"); - VerifyOrDo(!ShouldSkip("CC.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "TH sends StepColor command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepColor::Type value; value.stepX = 15; value.stepY = 20; - value.transitionTime = 50U; + value.transitionTime = 10U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id, value, @@ -6764,21 +5928,21 @@ class Test_TC_CC_5_3Suite : public TestCommand ); } case 6: { - LogStep(6, "Wait 50ms"); + LogStep(6, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 7: { - LogStep(7, "Check current x attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Over TransitionTime, TH reads CurrentX attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Check current y attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Over TransitionTime, TH reads CurrentY attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F03 && CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } @@ -6802,7 +5966,7 @@ class Test_TC_CC_5_3Suite : public TestCommand class Test_TC_CC_6_1Suite : public TestCommand { public: - Test_TC_CC_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_1", 9, credsIssuerConfig) + Test_TC_CC_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -6823,6 +5987,9 @@ class Test_TC_CC_6_1Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + uint16_t ColorTempPhysicalMinMiredsValue; + uint16_t ColorTempPhysicalMaxMiredsValue; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -6858,30 +6025,52 @@ class Test_TC_CC_6_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTempPhysicalMinMiredsValue = value; } break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTempPhysicalMaxMiredsValue = value; + } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); + } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValue("colorTemperature", value, 100U)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -6924,18 +6113,30 @@ class Test_TC_CC_6_1Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads ColorTempPhysicalMinMireds attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorTempPhysicalMinMireds::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads ColorTempPhysicalMaxMireds attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads ColorTemperatureMireds attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 4: { - LogStep(4, "Move To Color Temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C0A.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 6: { + LogStep(6, "Move To Color Temperature command"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C0A.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveToColorTemperature::Type value; value.colorTemperature = 100U; - value.transitionTime = 5U; + value.transitionTime = 10U; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColorTemperature::Id, @@ -6943,29 +6144,29 @@ class Test_TC_CC_6_1Suite : public TestCommand ); } - case 5: { - LogStep(5, "Wait 700ms"); + case 7: { + LogStep(7, "Wait 1500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 700UL; + value.ms = 1500UL; return WaitForMs(kIdentityAlpha, value); } - case 6: { - LogStep(6, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 8: { + LogStep(8, "Read current color temprature"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Turn off light that we turned on"); + case 9: { + LogStep(9, "Turn off light that we turned on"); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional ); } - case 8: { - LogStep(8, "Check on/off attribute value is false after off command"); + case 10: { + LogStep(10, "Check on/off attribute value is false after off command"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } @@ -6976,7 +6177,7 @@ class Test_TC_CC_6_1Suite : public TestCommand class Test_TC_CC_6_2Suite : public TestCommand { public: - Test_TC_CC_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_2", 36, credsIssuerConfig) + Test_TC_CC_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_2", 38, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -6997,6 +6198,11 @@ class Test_TC_CC_6_2Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + uint16_t ColorTempPhysicalMinMiredsValue; + uint16_t ColorTempPhysicalMaxMiredsValue; + uint16_t ColorTemperatureValue; + uint16_t ColorTemperatureMoveModeStop; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -7032,25 +6238,33 @@ class Test_TC_CC_6_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTempPhysicalMinMiredsValue = value; } break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTempPhysicalMaxMiredsValue = value; + } break; case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -7061,8 +6275,8 @@ class Test_TC_CC_6_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; case 9: @@ -7075,27 +6289,27 @@ class Test_TC_CC_6_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 13: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -7106,8 +6320,8 @@ class Test_TC_CC_6_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; case 16: @@ -7120,29 +6334,29 @@ class Test_TC_CC_6_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); + } break; case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } break; case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -7154,8 +6368,9 @@ class Test_TC_CC_6_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); + ColorTemperatureValue = value; } break; case 24: @@ -7167,30 +6382,32 @@ class Test_TC_CC_6_2Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorTemperature", value, ColorTemperatureValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorTemperature", value, ColorTemperatureValue)); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); + } break; case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); - } break; case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -7202,8 +6419,9 @@ class Test_TC_CC_6_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); + ColorTemperatureMoveModeStop = value; } break; case 32: @@ -7215,15 +6433,31 @@ class Test_TC_CC_6_2Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorTemperature", value, ColorTemperatureMoveModeStop)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorTemperature", value, ColorTemperatureValue)); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); + } + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -7266,20 +6500,32 @@ class Test_TC_CC_6_2Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads ColorTempPhysicalMinMireds attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorTempPhysicalMinMireds::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads ColorTempPhysicalMaxMireds attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads ColorTemperatureMireds attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 4: { - LogStep(4, "Move up color temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 6: { + LogStep(6, "TH sends MoveColorTemperature command to DUT with MoveMode = Up"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; value.moveMode = static_cast(1); - value.rate = 10U; - value.colorTemperatureMinimumMireds = 1U; - value.colorTemperatureMaximumMireds = 255U; + value.rate = 20U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, @@ -7287,54 +6533,54 @@ class Test_TC_CC_6_2Suite : public TestCommand ); } - case 5: { - LogStep(5, "Wait 90ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 90UL; - return WaitForMs(kIdentityAlpha, value); - } - case 6: { - LogStep(6, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, - true, chip::NullOptional); - } case 7: { - LogStep(7, "Wait 95ms"); + LogStep(7, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 95UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 8: { LogStep(8, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Wait 100ms"); + LogStep(9, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 10: { LogStep(10, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Move down color temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Wait 1000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "Read current color temprature attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); + } + case 13: { + LogStep(13, "TH sends MoveColorTemperature command to DUT with MoveMode = Down"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; value.moveMode = static_cast(3); value.rate = 20U; - value.colorTemperatureMinimumMireds = 1U; - value.colorTemperatureMaximumMireds = 255U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, @@ -7342,54 +6588,54 @@ class Test_TC_CC_6_2Suite : public TestCommand ); } - case 12: { - LogStep(12, "Wait 190ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 190UL; - return WaitForMs(kIdentityAlpha, value); - } - case 13: { - LogStep(13, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, - true, chip::NullOptional); - } case 14: { - LogStep(14, "Wait 195ms"); + LogStep(14, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 195UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 15: { LogStep(15, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Wait 200ms"); + LogStep(16, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 200UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 17: { LogStep(17, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Move up color temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Wait 1000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 19: { + LogStep(19, "Read current color temprature attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); + } + case 20: { + LogStep(20, "TH sends MoveColorTemperature command to DUT with MoveMode = Up"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; value.moveMode = static_cast(1); value.rate = 10U; - value.colorTemperatureMinimumMireds = 1U; - value.colorTemperatureMaximumMireds = 255U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, @@ -7397,9 +6643,9 @@ class Test_TC_CC_6_2Suite : public TestCommand ); } - case 19: { - LogStep(19, "Stop Color Temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "TH sends MoveColorTemperature command to DUT with MoveMode = Stop"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; value.moveMode = static_cast(0); @@ -7413,54 +6659,54 @@ class Test_TC_CC_6_2Suite : public TestCommand ); } - case 20: { - LogStep(20, "Wait 90ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 90UL; - return WaitForMs(kIdentityAlpha, value); - } - case 21: { - LogStep(21, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, - true, chip::NullOptional); - } case 22: { - LogStep(22, "Wait 95ms"); + LogStep(22, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 95UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 23: { LogStep(23, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Wait 100ms"); + LogStep(24, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 25: { LogStep(25, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Move down color temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Wait 1000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 27: { + LogStep(27, "Read current color temprature attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); + } + case 28: { + LogStep(28, "TH sends MoveColorTemperature command to DUT with MoveMode = Down"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; value.moveMode = static_cast(3); value.rate = 20U; - value.colorTemperatureMinimumMireds = 1U; - value.colorTemperatureMaximumMireds = 255U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, @@ -7468,15 +6714,15 @@ class Test_TC_CC_6_2Suite : public TestCommand ); } - case 27: { - LogStep(27, "Stop Color Temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 29: { + LogStep(29, "TH sends MoveColorTemperature command to DUT with MoveMode = Stop"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; value.moveMode = static_cast(0); value.rate = 10U; - value.colorTemperatureMinimumMireds = 1U; - value.colorTemperatureMaximumMireds = 255U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, @@ -7484,55 +6730,55 @@ class Test_TC_CC_6_2Suite : public TestCommand ); } - case 28: { - LogStep(28, "Wait 140ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs(kIdentityAlpha, value); - } - case 29: { - LogStep(29, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, - true, chip::NullOptional); - } case 30: { - LogStep(30, "Wait 145ms"); + LogStep(30, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 31: { LogStep(31, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 32: { - LogStep(32, "Wait 150ms"); + LogStep(32, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 33: { LogStep(33, "Read current color temprature attribute from DUT several times"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 34: { - LogStep(34, "Turn off light that we turned on"); + LogStep(34, "Wait 1000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 35: { + LogStep(35, "Read current color temprature attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); + } + case 36: { + LogStep(36, "Turn off light that we turned on"); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional ); } - case 35: { - LogStep(35, "Check on/off attribute value is false after off command"); + case 37: { + LogStep(37, "Check on/off attribute value is false after off command"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } @@ -7543,7 +6789,7 @@ class Test_TC_CC_6_2Suite : public TestCommand class Test_TC_CC_6_3Suite : public TestCommand { public: - Test_TC_CC_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_3", 20, credsIssuerConfig) + Test_TC_CC_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_3", 22, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -7564,6 +6810,9 @@ class Test_TC_CC_6_3Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + uint16_t ColorTempPhysicalMinMiredsValue; + uint16_t ColorTempPhysicalMaxMiredsValue; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -7599,25 +6848,33 @@ class Test_TC_CC_6_3Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTempPhysicalMinMiredsValue = value; } break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTempPhysicalMaxMiredsValue = value; + } break; case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue)); } break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -7647,13 +6904,10 @@ class Test_TC_CC_6_3Suite : public TestCommand } break; case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 13: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -7663,6 +6917,9 @@ class Test_TC_CC_6_3Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); } break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -7693,8 +6950,22 @@ class Test_TC_CC_6_3Suite : public TestCommand break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + } + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -7737,21 +7008,33 @@ class Test_TC_CC_6_3Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads ColorTempPhysicalMinMireds attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorTempPhysicalMinMireds::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads ColorTempPhysicalMaxMireds attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads ColorTemperatureMireds attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 4: { - LogStep(4, "Step up color temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4C.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 6: { + LogStep(6, "TH sends StepColorTemperature command to DUT with MoveMode = Up"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4C.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepColorTemperature::Type value; value.stepMode = static_cast(1); - value.stepSize = 5U; - value.transitionTime = 50U; - value.colorTemperatureMinimumMireds = 5U; - value.colorTemperatureMaximumMireds = 100U; + value.stepSize = 100U; + value.transitionTime = 15U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id, @@ -7759,55 +7042,55 @@ class Test_TC_CC_6_3Suite : public TestCommand ); } - case 5: { - LogStep(5, "Wait 40ms"); + case 7: { + LogStep(7, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 6: { - LogStep(6, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 8: { + LogStep(8, "TH reads ColorTemperatureMireds attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Wait 45ms"); + case 9: { + LogStep(9, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 8: { - LogStep(8, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 10: { + LogStep(10, "TH reads ColorTemperatureMireds attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Wait 50ms"); + case 11: { + LogStep(11, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 10: { - LogStep(10, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 12: { + LogStep(12, "TH reads ColorTemperatureMireds attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Step down color temperature command"); - VerifyOrDo(!ShouldSkip("CC.S.C4C.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 13: { + LogStep(13, "TH sends StepColorTemperature command to DUT with MoveMode = Down"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.C4C.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StepColorTemperature::Type value; value.stepMode = static_cast(3); value.stepSize = 5U; value.transitionTime = 50U; - value.colorTemperatureMinimumMireds = 5U; - value.colorTemperatureMaximumMireds = 100U; + value.colorTemperatureMinimumMireds = ColorTempPhysicalMinMiredsValue; + value.colorTemperatureMaximumMireds = ColorTempPhysicalMaxMiredsValue; value.optionsMask = 0U; value.optionsOverride = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id, @@ -7815,55 +7098,55 @@ class Test_TC_CC_6_3Suite : public TestCommand ); } - case 12: { - LogStep(12, "Wait 40ms"); + case 14: { + LogStep(14, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 13: { - LogStep(13, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 15: { + LogStep(15, "TH reads ColorTemperatureMireds attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Wait 45ms"); + case 16: { + LogStep(16, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 15: { - LogStep(15, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 17: { + LogStep(17, "TH reads ColorTemperatureMireds attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Wait 50ms"); + case 18: { + LogStep(18, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 17: { - LogStep(17, "Read current color temprature"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 19: { + LogStep(19, "TH reads ColorTemperatureMireds attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "Turn off light that we turned on"); + case 20: { + LogStep(20, "Turn off light that we turned on"); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional ); } - case 19: { - LogStep(19, "Check on/off attribute value is false after off command"); + case 21: { + LogStep(21, "Check on/off attribute value is false after off command"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } @@ -7871,10 +7154,10 @@ class Test_TC_CC_6_3Suite : public TestCommand } }; -class Test_TC_CC_7_1Suite : public TestCommand +class Test_TC_CC_7_2Suite : public TestCommand { public: - Test_TC_CC_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_1", 35, credsIssuerConfig) + Test_TC_CC_7_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_2", 24, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -7882,7 +7165,7 @@ class Test_TC_CC_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_7_1Suite() {} + ~Test_TC_CC_7_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -7923,54 +7206,6 @@ class Test_TC_CC_7_1Suite : public TestCommand } break; case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -7980,14 +7215,14 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 12: + case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 13: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 14: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -7997,11 +7232,11 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 15: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 16: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8011,11 +7246,11 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 17: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 18: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8025,14 +7260,10 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 20: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; - case 21: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8042,25 +7273,14 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 23: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } break; - case 24: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 25: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8070,14 +7290,11 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 26: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 27: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 28: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8087,11 +7304,11 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 29: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 30: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8101,11 +7318,10 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 31: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; - case 32: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8115,10 +7331,10 @@ class Test_TC_CC_7_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 33: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 34: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -8161,252 +7377,167 @@ class Test_TC_CC_7_1Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Enhanced Move To Hue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; - value.enhancedHue = 1025U; - value.direction = static_cast(0); - value.transitionTime = 1U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value, chip::NullOptional - - ); - } - case 4: { - LogStep(4, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Enhanced Move To Hue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 4: { + LogStep(4, "TH sends EnhancedMoveHue command to DUT with MoveMode Up"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; - value.enhancedHue = 1100U; - value.direction = static_cast(0); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; + value.moveMode = static_cast(1); + value.rate = 50U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value, chip::NullOptional + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional ); } - case 6: { - LogStep(6, "Wait 290ms"); + case 5: { + LogStep(5, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 7: { - LogStep(7, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 6: { + LogStep(6, "TH reads EnhancedCurrentHue attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Wait 295ms"); + case 7: { + LogStep(7, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 9: { - LogStep(9, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 8: { + LogStep(8, "TH reads EnhancedCurrentHue attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Wait 300ms"); + case 9: { + LogStep(9, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 10: { + LogStep(10, "TH reads EnhancedCurrentHue attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Enhanced Move To Hue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 11: { + LogStep(11, "TH sends EnhancedMoveHue command to DUT with MoveMode Stop"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; - value.enhancedHue = 1150U; - value.direction = static_cast(1); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; + value.moveMode = static_cast(0); + value.rate = 0U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value, chip::NullOptional + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional ); } - case 13: { - LogStep(13, "Wait 290ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; - return WaitForMs(kIdentityAlpha, value); - } - case 14: { - LogStep(14, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 15: { - LogStep(15, "Wait 295ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; - return WaitForMs(kIdentityAlpha, value); - } - case 16: { - LogStep(16, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 17: { - LogStep(17, "Wait 300ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs(kIdentityAlpha, value); - } - case 18: { - LogStep(18, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 12: { + LogStep(12, "TH reads EnhancedCurrentHue attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "Enhanced Move To Hue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 13: { + LogStep(13, "TH sends EnhancedMoveHue command to DUT with MoveMode Down"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; - value.enhancedHue = 1200U; - value.direction = static_cast(2); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; + value.moveMode = static_cast(3); + value.rate = 15U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value, chip::NullOptional + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional ); } - case 20: { - LogStep(20, "Wait 290ms"); + case 14: { + LogStep(14, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 21: { - LogStep(21, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 15: { + LogStep(15, "TH reads EnhancedCurrentHue attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "Wait 295ms"); + case 16: { + LogStep(16, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 23: { - LogStep(23, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 17: { + LogStep(17, "TH reads EnhancedCurrentHue attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Wait 300ms"); + case 18: { + LogStep(18, "Wait 500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 500UL; return WaitForMs(kIdentityAlpha, value); } - case 25: { - LogStep(25, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 19: { + LogStep(19, "TH reads EnhancedCurrentHue attribute from DUT several times"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "Enhanced Move To Hue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 20: { + LogStep(20, "TH sends EnhancedMoveHue command to DUT with MoveMode Stop"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; - value.enhancedHue = 1300U; - value.direction = static_cast(3); - value.transitionTime = 300U; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; + value.moveMode = static_cast(0); + value.rate = 0U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value, chip::NullOptional + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional ); } - case 27: { - LogStep(27, "Wait 290ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; - return WaitForMs(kIdentityAlpha, value); - } - case 28: { - LogStep(28, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 29: { - LogStep(29, "Wait 295ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; - return WaitForMs(kIdentityAlpha, value); - } - case 30: { - LogStep(30, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 31: { - LogStep(31, "Wait 300ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs(kIdentityAlpha, value); - } - case 32: { - LogStep(32, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "TH reads EnhancedCurrentHue attribute from DUT several times."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } - case 33: { - LogStep(33, "Turn off light that we turned on"); + case 22: { + LogStep(22, "Turn off light that we turned on"); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional ); } - case 34: { - LogStep(34, "Check on/off attribute value is false after off command"); + case 23: { + LogStep(23, "Check on/off attribute value is false after off command"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } @@ -8414,10 +7545,10 @@ class Test_TC_CC_7_1Suite : public TestCommand } }; -class Test_TC_CC_7_2Suite : public TestCommand +class Test_TC_CC_7_3Suite : public TestCommand { public: - Test_TC_CC_7_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_2", 24, credsIssuerConfig) + Test_TC_CC_7_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_3", 12, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -8425,7 +7556,7 @@ class Test_TC_CC_7_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_7_2Suite() {} + ~Test_TC_CC_7_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -8494,94 +7625,12 @@ class Test_TC_CC_7_2Suite : public TestCommand break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -8591,10 +7640,10 @@ class Test_TC_CC_7_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 22: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 23: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -8637,373 +7686,64 @@ class Test_TC_CC_7_2Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Check EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Enhanced Move Hue Up command"); - VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH sends EnhancedStepHue command to DUT with StepMode Up"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; - value.moveMode = static_cast(1); - value.rate = 50U; + chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::Type value; + value.stepMode = static_cast(0); + value.stepSize = 50U; + value.transitionTime = 1U; value.optionsMask = 0U; value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, value, chip::NullOptional ); } case 5: { - LogStep(5, "Wait 290ms"); + LogStep(5, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 6: { - LogStep(6, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Wait 295ms"); + LogStep(7, "TH sends EnhancedStepHue command to DUT with StepMode Down"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; - return WaitForMs(kIdentityAlpha, value); + chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::Type value; + value.stepMode = static_cast(1); + value.stepSize = 75U; + value.transitionTime = 1U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, value, + chip::NullOptional + + ); } case 8: { - LogStep(8, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 9: { - LogStep(9, "Wait 300ms"); + LogStep(8, "Wait 1000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs(kIdentityAlpha, value); - } - case 10: { - LogStep(10, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 11: { - LogStep(11, "Enhanced Move Hue Stop command"); - VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; - value.moveMode = static_cast(0); - value.rate = 0U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, - chip::NullOptional - - ); - } - case 12: { - LogStep(12, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 13: { - LogStep(13, "Enhanced Move Hue Down command"); - VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; - value.moveMode = static_cast(3); - value.rate = 5U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, - chip::NullOptional - - ); - } - case 14: { - LogStep(14, "Wait 40ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs(kIdentityAlpha, value); - } - case 15: { - LogStep(15, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 16: { - LogStep(16, "Wait 45ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; - return WaitForMs(kIdentityAlpha, value); - } - case 17: { - LogStep(17, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 18: { - LogStep(18, "Wait 50ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; - return WaitForMs(kIdentityAlpha, value); - } - case 19: { - LogStep(19, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 20: { - LogStep(20, "Enhanced Move Hue Stop command"); - VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; - value.moveMode = static_cast(0); - value.rate = 0U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, - chip::NullOptional - - ); - } - case 21: { - LogStep(21, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 22: { - LogStep(22, "Turn off light that we turned on"); - ListFreer listFreer; - chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional - - ); - } - case 23: { - LogStep(23, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CC_7_3Suite : public TestCommand -{ -public: - Test_TC_CC_7_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_3", 12, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_CC_7_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - bool value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onOff", value, 1)); - } - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - bool value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onOff", value, 0)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Turn on light for color control tests"); - ListFreer listFreer; - chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional - - ); - } - case 2: { - LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); - } - case 3: { - LogStep(3, "Reads EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 4: { - LogStep(4, "Enhanced Step Hue Up command"); - VerifyOrDo(!ShouldSkip("CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::Type value; - value.stepMode = static_cast(0); - value.stepSize = 50U; - value.transitionTime = 1U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, value, - chip::NullOptional - - ); - } - case 5: { - LogStep(5, "Wait 10ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; - return WaitForMs(kIdentityAlpha, value); - } - case 6: { - LogStep(6, "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 7: { - LogStep(7, "Enhanced Step Hue Down command"); - VerifyOrDo(!ShouldSkip("CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::Type value; - value.stepMode = static_cast(1); - value.stepSize = 75U; - value.transitionTime = 1U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, value, - chip::NullOptional - - ); - } - case 8: { - LogStep(8, "Wait 10ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } case 9: { LogStep(9, "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } @@ -9097,6 +7837,7 @@ class Test_TC_CC_7_4Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 1200U)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); @@ -9148,14 +7889,14 @@ class Test_TC_CC_7_4Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Reads EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "TH reads EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Enhanced move to hue and saturation command"); - VerifyOrDo(!ShouldSkip("CC.S.C43.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "TH sends EnhancedMoveToHueAndSaturation command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C43.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Type value; value.enhancedHue = 1200U; @@ -9169,15 +7910,15 @@ class Test_TC_CC_7_4Suite : public TestCommand ); } case 5: { - LogStep(5, "Wait 10ms"); + LogStep(5, "Wait 1500ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1500UL; return WaitForMs(kIdentityAlpha, value); } case 6: { LogStep(6, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } @@ -9222,6 +7963,13 @@ class Test_TC_CC_8_1Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + uint8_t CurrentHueValue; + uint8_t CurrentSaturationValue; + uint16_t CurrentXValue; + uint16_t CurrentYValue; + uint16_t ColorTemperatureMiredsValue; + uint16_t EnhancedCurrentHueValue; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -9273,6 +8021,7 @@ class Test_TC_CC_8_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentHueValue = value; } break; case 7: @@ -9284,6 +8033,7 @@ class Test_TC_CC_8_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentHue", value, CurrentHueValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); @@ -9313,6 +8063,7 @@ class Test_TC_CC_8_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + CurrentSaturationValue = value; } break; case 13: @@ -9324,6 +8075,7 @@ class Test_TC_CC_8_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentSaturation", value, CurrentSaturationValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); @@ -9363,6 +8115,7 @@ class Test_TC_CC_8_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + CurrentXValue = value; } break; case 20: @@ -9373,6 +8126,7 @@ class Test_TC_CC_8_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + CurrentYValue = value; } break; case 21: @@ -9384,6 +8138,7 @@ class Test_TC_CC_8_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentX", value, CurrentXValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); @@ -9394,6 +8149,7 @@ class Test_TC_CC_8_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentY", value, CurrentYValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); @@ -9423,6 +8179,7 @@ class Test_TC_CC_8_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); + ColorTemperatureMiredsValue = value; } break; case 28: @@ -9434,6 +8191,7 @@ class Test_TC_CC_8_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorTemperature", value, ColorTemperatureMiredsValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65279U)); @@ -9463,6 +8221,7 @@ class Test_TC_CC_8_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + EnhancedCurrentHueValue = value; } break; case 34: @@ -9474,6 +8233,7 @@ class Test_TC_CC_8_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, EnhancedCurrentHueValue)); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); @@ -9525,7 +8285,7 @@ class Test_TC_CC_8_1Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Move hue up command"); + LogStep(3, "TH sends MoveHue command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveHue::Type value; @@ -9539,13 +8299,13 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 4: { - LogStep(4, "Reads CurrentHue attribute from DUT"); + LogStep(4, "TH reads CurrentHue attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Stop Move Step command"); + LogStep(5, "TH sends StopMoveStep command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; @@ -9557,7 +8317,7 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 6: { - LogStep(6, "Reads CurrentHue attribute from DUT"); + LogStep(6, "TH reads CurrentHue attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); @@ -9570,13 +8330,13 @@ class Test_TC_CC_8_1Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 8: { - LogStep(8, "Check current hue attribute value matched the value sent by the last attribute"); + LogStep(8, "TH reads CurrentHue attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Move saturation up command"); + LogStep(9, "TH sends MoveSaturation command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type value; @@ -9590,13 +8350,13 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 10: { - LogStep(10, "Check Saturation attribute value matched the value sent by the last command"); + LogStep(10, "TH reads CurrentSaturation attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Stop Move Step command"); + LogStep(11, "TH sends StopMoveStep command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; @@ -9608,7 +8368,7 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 12: { - LogStep(12, "Reads CurrentSaturation attribute from DUT."); + LogStep(12, "TH reads CurrentSaturation attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); @@ -9621,13 +8381,13 @@ class Test_TC_CC_8_1Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 14: { - LogStep(14, "Check Saturation attribute value matched the value sent by the last attribute"); + LogStep(14, "TH reads CurrentSaturation attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Move Color command"); + LogStep(15, "TH sends MoveColor command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColor::Type value; @@ -9641,19 +8401,19 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 16: { - LogStep(16, "Reads CurrentX attribute from DUT"); + LogStep(16, "TH reads CurrentX attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "Reads CurrentY attribute from DUT"); + LogStep(17, "TH reads CurrentY attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Stop Move Step command"); + LogStep(18, "TH sends StopMoveStep command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; @@ -9665,13 +8425,13 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 19: { - LogStep(19, "Reads CurrentX attribute from DUT"); + LogStep(19, "TH reads CurrentX attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Reads CurrentY attribute from DUT"); + LogStep(20, "TH reads CurrentY attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); @@ -9684,19 +8444,19 @@ class Test_TC_CC_8_1Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 22: { - LogStep(22, "Check current x attribute value matched the value sent by the last attribute"); + LogStep(22, "TH reads CurrentY attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Check current y attribute value matched the value sent by the last attribute"); + LogStep(23, "TH reads CurrentY attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Move up color temperature command"); + LogStep(24, "TH sends MoveColorTemperature command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C4B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type value; @@ -9712,13 +8472,13 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 25: { - LogStep(25, "Reads current color temprature from DUT"); + LogStep(25, "TH reads ColorTemperatureMireds attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Stop Move Step command"); + LogStep(26, "TH sends StopMoveStep command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; @@ -9730,7 +8490,7 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 27: { - LogStep(27, "Reads current color temprature from DUT"); + LogStep(27, "TH reads ColorTemperatureMireds attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, true, chip::NullOptional); @@ -9749,7 +8509,7 @@ class Test_TC_CC_8_1Suite : public TestCommand true, chip::NullOptional); } case 30: { - LogStep(30, "Enhanced Move Hue Up command"); + LogStep(30, "TH sends EnhancedMoveHue command to DUT."); VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type value; @@ -9763,13 +8523,13 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 31: { - LogStep(31, "Reads EnhancedCurrentHue attribute value from DUT"); + LogStep(31, "TH reads EnhancedCurrentHue attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 32: { - LogStep(32, "Stop Move Step command"); + LogStep(32, "TH sends StopMoveStep command to DUT"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; @@ -9781,7 +8541,7 @@ class Test_TC_CC_8_1Suite : public TestCommand ); } case 33: { - LogStep(33, "Reads EnhancedCurrentHue attribute value from DUT"); + LogStep(33, "TH reads EnhancedCurrentHue attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); @@ -9794,7 +8554,7 @@ class Test_TC_CC_8_1Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 35: { - LogStep(35, "Check EnhancedCurrentHue attribute value matched the value sent by the last attribute"); + LogStep(35, "TH reads EnhancedCurrentHue attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); @@ -14182,7 +12942,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand true, chip::NullOptional); } case 7: { - LogStep(7, "Read the optonal attribute(MinLevel) in AttributeList"); + LogStep(7, "Read the optonal attribute(MaxLevel) in AttributeList"); VerifyOrDo(!ShouldSkip("LVL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); @@ -14247,7 +13007,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand class Test_TC_LVL_2_1Suite : public TestCommand { public: - Test_TC_LVL_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_2_1", 24, credsIssuerConfig) + Test_TC_LVL_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_2_1", 21, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -14270,9 +13030,9 @@ class Test_TC_LVL_2_1Suite : public TestCommand uint8_t CurrentLevelValue; uint8_t MinLevelValue; - uint8_t MinLevelValue1; + uint8_t MinLevelFeatureMapNotSupportedValue; uint8_t MaxLevelValue; - uint8_t MaxLevelValue1; + uint8_t MaxLevelFeatureMapNotSupportedValue; uint16_t MinFrequencyValue; uint16_t MaxFrequencyValue; @@ -14293,21 +13053,6 @@ class Test_TC_LVL_2_1Suite : public TestCommand shouldContinue = true; break; case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("currentLevel", value, 254U)); - } - break; - case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -14318,7 +13063,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand CurrentLevelValue = value; } break; - case 5: + case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -14328,7 +13073,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 6: + case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -14338,7 +13083,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand MinLevelValue = value; } break; - case 7: + case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -14346,10 +13091,10 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); - MinLevelValue1 = value; + MinLevelFeatureMapNotSupportedValue = value; } break; - case 8: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -14360,18 +13105,18 @@ class Test_TC_LVL_2_1Suite : public TestCommand MaxLevelValue = value; } break; - case 9: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelValue1)); + VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelFeatureMapNotSupportedValue)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); - MaxLevelValue1 = value; + MaxLevelFeatureMapNotSupportedValue = value; } break; - case 10: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -14381,17 +13126,17 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxLevelValue)); } break; - case 11: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelValue1)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxLevelValue1)); + VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelFeatureMapNotSupportedValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxLevelFeatureMapNotSupportedValue)); } break; - case 12: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -14401,7 +13146,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 13: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -14412,7 +13157,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand MinFrequencyValue = value; } break; - case 14: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -14423,7 +13168,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand MaxFrequencyValue = value; } break; - case 15: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -14433,7 +13178,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxFrequencyValue)); } break; - case 16: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -14443,7 +13188,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 17: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -14453,17 +13198,17 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxLevelValue)); } break; - case 18: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelValue1)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxLevelValue1)); + VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelFeatureMapNotSupportedValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxLevelFeatureMapNotSupportedValue)); } break; - case 19: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -14473,7 +13218,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 20: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -14483,7 +13228,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 21: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -14493,7 +13238,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 22: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -14502,7 +13247,7 @@ class Test_TC_LVL_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "", "map8")); } break; - case 23: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -14535,149 +13280,121 @@ class Test_TC_LVL_2_1Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Precondition: Reset level to 254"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value; - value.level = 254U; - value.transitionTime = 0U; - value.optionMask = 1U; - value.optionOverride = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, - chip::NullOptional - - ); - } - case 2: { - LogStep(2, "Wait 100ms"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "Precondition: Reads the CurrentLevel attribute"); + LogStep(1, "Reads the CurrentLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, chip::NullOptional); } - case 4: { - LogStep(4, "Reads the CurrentLevel attribute"); - VerifyOrDo(!ShouldSkip("LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, - chip::NullOptional); - } - case 5: { - LogStep(5, "Reads the RemainingTime attribute"); + case 2: { + LogStep(2, "Reads the RemainingTime attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Reads the MinLevel attribute"); + case 3: { + LogStep(3, "Reads the MinLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0002 && LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Reads the MinLevel attribute"); + case 4: { + LogStep(4, "Reads the MinLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0002 && !LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Reads the MaxLevel attribute"); + case 5: { + LogStep(5, "Reads the MaxLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0003 && LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Reads the MaxLevel attribute"); + case 6: { + LogStep(6, "Reads the MaxLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0003 && !LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 4b & 4C Reads the CurrentLevel attribute"); + case 7: { + LogStep(7, "Step 4b & 4C Reads the CurrentLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.F01 && LVL.S.A0002 && LVL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Step 4b & 4C Reads the CurrentLevel attribute"); + case 8: { + LogStep(8, "Step 4b & 4C Reads the CurrentLevel attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0002 && LVL.S.A0003 && !LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Reads the CurrentFrequency attribute"); + case 9: { + LogStep(9, "Reads the CurrentFrequency attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Reads the MinFrequency attribute"); + case 10: { + LogStep(10, "Reads the MinFrequency attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Reads the MaxFrequency attribute"); + case 11: { + LogStep(11, "Reads the MaxFrequency attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Step 7b & 7C Reads the CurrentFrequency attribute"); + case 12: { + LogStep(12, "Step 7b & 7C Reads the CurrentFrequency attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0004 && LVL.S.A0005 && LVL.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Reads the OnOffTransitionTime attribute"); + case 13: { + LogStep(13, "Reads the OnOffTransitionTime attribute"); VerifyOrDo(!ShouldSkip("LVL.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Reads the OnLevel attribute "); + case 14: { + LogStep(14, "Reads the OnLevel attribute "); VerifyOrDo(!ShouldSkip("LVL.S.F01 && LVL.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "Reads the OnLevel attribute "); + case 15: { + LogStep(15, "Reads the OnLevel attribute "); VerifyOrDo(!ShouldSkip("LVL.S.A0011 && !LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "Reads the OnTransitionTime attribute "); + case 16: { + LogStep(16, "Reads the OnTransitionTime attribute "); VerifyOrDo(!ShouldSkip("LVL.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "Reads the OffTransitionTime attribute "); + case 17: { + LogStep(17, "Reads the OffTransitionTime attribute "); VerifyOrDo(!ShouldSkip("LVL.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Reads the DefaultMoveRate attribute "); + case 18: { + LogStep(18, "Reads the DefaultMoveRate attribute "); VerifyOrDo(!ShouldSkip("LVL.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "Reads the Options attribute "); + case 19: { + LogStep(19, "Reads the Options attribute "); VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "Reads the StartUpCurrentLevel attribute "); + case 20: { + LogStep(20, "Reads the StartUpCurrentLevel attribute "); VerifyOrDo(!ShouldSkip("LVL.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id, true, chip::NullOptional); @@ -15076,7 +13793,7 @@ class Test_TC_LVL_2_2Suite : public TestCommand class Test_TC_LVL_3_1Suite : public TestCommand { public: - Test_TC_LVL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_3_1", 22, credsIssuerConfig) + Test_TC_LVL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_3_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -15218,13 +13935,6 @@ class Test_TC_LVL_3_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -15394,28 +14104,7 @@ class Test_TC_LVL_3_1Suite : public TestCommand chip::NullOptional); } case 18: { - LogStep(18, "Reset level to 254"); - VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value; - value.level = 254U; - value.transitionTime = 0U; - value.optionMask = 1U; - value.optionOverride = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, - chip::NullOptional - - ); - } - case 19: { - LogStep(19, "Wait 100ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs(kIdentityAlpha, value); - } - case 20: { - LogStep(20, "Precondition send Off Command"); + LogStep(18, "Precondition send Off Command"); VerifyOrDo(!ShouldSkip("OO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; @@ -15423,8 +14112,8 @@ class Test_TC_LVL_3_1Suite : public TestCommand ); } - case 21: { - LogStep(21, "Check on/off attribute value is false after off command"); + case 19: { + LogStep(19, "Check on/off attribute value is false after off command"); VerifyOrDo(!ShouldSkip("OO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } @@ -15436,7 +14125,7 @@ class Test_TC_LVL_3_1Suite : public TestCommand class Test_TC_LVL_4_1Suite : public TestCommand { public: - Test_TC_LVL_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_4_1", 22, credsIssuerConfig) + Test_TC_LVL_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_4_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -15579,13 +14268,6 @@ class Test_TC_LVL_4_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -15769,28 +14451,7 @@ class Test_TC_LVL_4_1Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 18: { - LogStep(18, "Reset level to 254"); - VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value; - value.level = 254U; - value.transitionTime = 0U; - value.optionMask = 1U; - value.optionOverride = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, - chip::NullOptional - - ); - } - case 19: { - LogStep(19, "Wait 100ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs(kIdentityAlpha, value); - } - case 20: { - LogStep(20, "Precondition send Off Command"); + LogStep(18, "Precondition send Off Command"); VerifyOrDo(!ShouldSkip("OO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; @@ -15798,8 +14459,8 @@ class Test_TC_LVL_4_1Suite : public TestCommand ); } - case 21: { - LogStep(21, "Check on/off attribute value is false after off command"); + case 19: { + LogStep(19, "Check on/off attribute value is false after off command"); VerifyOrDo(!ShouldSkip("OO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } @@ -15811,7 +14472,7 @@ class Test_TC_LVL_4_1Suite : public TestCommand class Test_TC_LVL_5_1Suite : public TestCommand { public: - Test_TC_LVL_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_5_1", 16, credsIssuerConfig) + Test_TC_LVL_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_5_1", 17, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -15877,25 +14538,39 @@ class Test_TC_LVL_5_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("currentLevel", value, MinlevelValue)); + VerifyOrReturn(CheckValue("currentLevel", value, static_cast(MinlevelValue + 1))); VerifyOrReturn(CheckConstraintType("value", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); CurrentlevelValue = value; } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentLevel", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); + } break; - case 7: + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -15905,14 +14580,14 @@ class Test_TC_LVL_5_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 68U)); } break; - case 9: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 10: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -15920,17 +14595,18 @@ class Test_TC_LVL_5_1Suite : public TestCommand VerifyOrReturn(CheckValue("currentLevel", value, CurrentlevelValue)); } break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentLevel", value, 2U)); + } break; case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -15982,10 +14658,10 @@ class Test_TC_LVL_5_1Suite : public TestCommand } case 4: { LogStep(4, "Sends MoveToLevelWithOnOff command to DUT"); - VerifyOrDo(!ShouldSkip("LVL.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LVL.S.C04.Rsp && LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value; - value.level = MinlevelValue; + value.level = static_cast(MinlevelValue + 1); value.transitionTime = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id, value, chip::NullOptional @@ -15993,13 +14669,31 @@ class Test_TC_LVL_5_1Suite : public TestCommand ); } case 5: { - LogStep(5, "Reads current level attribute from DUT"); + LogStep(5, "Sends MoveToLevelWithOnOff command to DUT"); + VerifyOrDo(!ShouldSkip("LVL.S.C04.Rsp && !LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value; + value.level = 2U; + value.transitionTime = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id, + value, chip::NullOptional + + ); + } + case 6: { + LogStep(6, "Reads current level attribute from DUT"); VerifyOrDo(!ShouldSkip("LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Sends step up command to DUT"); + case 7: { + LogStep(7, "Reads current level attribute from DUT"); + VerifyOrDo(!ShouldSkip("LVL.S.A0000 && !LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Sends step up command to DUT"); VerifyOrDo(!ShouldSkip("LVL.S.C02.Rsp && LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LevelControl::Commands::Step::Type value; @@ -16013,21 +14707,21 @@ class Test_TC_LVL_5_1Suite : public TestCommand ); } - case 7: { - LogStep(7, "Wait 4000ms"); + case 9: { + LogStep(9, "Wait 4000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 4000UL; return WaitForMs(kIdentityAlpha, value); } - case 8: { - LogStep(8, "Reads current level attribute from DUT"); + case 10: { + LogStep(10, "Reads current level attribute from DUT"); VerifyOrDo(!ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Sends a StepWithOnOff command"); + case 11: { + LogStep(11, "Sends a StepWithOnOff command"); VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type value; @@ -16039,42 +14733,27 @@ class Test_TC_LVL_5_1Suite : public TestCommand ); } - case 10: { - LogStep(10, "Wait 4000ms"); + case 12: { + LogStep(12, "Wait 4000ms"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 4000UL; return WaitForMs(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Reads current level attribute from DUT"); + case 13: { + LogStep(13, "Reads current level attribute from DUT"); VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Reset level to 254"); - VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value; - value.level = 254U; - value.transitionTime = 0U; - value.optionMask = 1U; - value.optionOverride = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, - chip::NullOptional - - ); - } - case 13: { - LogStep(13, "Wait 100ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs(kIdentityAlpha, value); - } case 14: { - LogStep(14, "Precondition send Off Command"); + LogStep(14, "Reads current level attribute from DUT"); + VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); + } + case 15: { + LogStep(15, "Precondition send Off Command"); VerifyOrDo(!ShouldSkip("OO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; @@ -16082,8 +14761,8 @@ class Test_TC_LVL_5_1Suite : public TestCommand ); } - case 15: { - LogStep(15, "Check on/off attribute value is false after off command"); + case 16: { + LogStep(16, "Check on/off attribute value is false after off command"); VerifyOrDo(!ShouldSkip("OO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } @@ -16095,7 +14774,7 @@ class Test_TC_LVL_5_1Suite : public TestCommand class Test_TC_LVL_6_1Suite : public TestCommand { public: - Test_TC_LVL_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_6_1", 20, credsIssuerConfig) + Test_TC_LVL_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_6_1", 18, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -16222,13 +14901,6 @@ class Test_TC_LVL_6_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -16396,28 +15068,7 @@ class Test_TC_LVL_6_1Suite : public TestCommand chip::NullOptional); } case 16: { - LogStep(16, "Reset level to 254"); - VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value; - value.level = 254U; - value.transitionTime = 0U; - value.optionMask = 1U; - value.optionOverride = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, - chip::NullOptional - - ); - } - case 17: { - LogStep(17, "Wait 100ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs(kIdentityAlpha, value); - } - case 18: { - LogStep(18, "Precondition send Off Command"); + LogStep(16, "Precondition send Off Command"); VerifyOrDo(!ShouldSkip("OO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OnOff::Commands::Off::Type value; @@ -16425,8 +15076,8 @@ class Test_TC_LVL_6_1Suite : public TestCommand ); } - case 19: { - LogStep(19, "Check on/off attribute value is false after off command"); + case 17: { + LogStep(17, "Check on/off attribute value is false after off command"); VerifyOrDo(!ShouldSkip("OO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } @@ -16732,7 +15383,7 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand true, chip::NullOptional); } case 2: { - LogStep(2, "Read the optional global attribute: FeatureMap"); + LogStep(2, "Read the global attribute: FeatureMap"); VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, @@ -16920,7 +15571,7 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand ApplicationLauncher::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { - LogStep(2, "Read the optional global attribute: FeatureMap"); + LogStep(2, "Read the global attribute: FeatureMap"); VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.AP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); @@ -17121,7 +15772,7 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand chip::NullOptional); } case 2: { - LogStep(2, "Read the optional global attribute: FeatureMap"); + LogStep(2, "Read the global attribute: FeatureMap"); VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.NU"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::FeatureMap::Id, true, chip::NullOptional); @@ -17337,7 +15988,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand { public: Test_TC_CHANNEL_1_6Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CHANNEL_1_6", 10, credsIssuerConfig) + TestCommand("Test_TC_CHANNEL_1_6", 12, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -17440,8 +16091,6 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 8: @@ -17450,9 +16099,28 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -17484,7 +16152,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::NullOptional); } case 2: { - LogStep(2, "Read the optional global attribute: FeatureMap"); + LogStep(2, "Read the global attribute: FeatureMap"); VerifyOrDo(!ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); @@ -17515,17 +16183,31 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::NullOptional); } case 7: { - LogStep(7, "Read the global attribute: AcceptedCommandList"); + LogStep(7, "Read the optional command(ChangeChannel) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, + LogStep(8, "Read the optional command(ChangeChannelByNumber) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, + LogStep(9, "Read the optional command(SkipChannel) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 10: { + LogStep(10, "Read the global attribute: GeneratedCommandList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, + chip::NullOptional); + } + case 11: { + LogStep(11, "Read EventList attribute from the DUT and Verify that the DUT response provides a list of supported events."); VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -17544,7 +16226,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand { public: Test_TC_MEDIAPLAYBACK_1_7Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAPLAYBACK_1_7", 13, credsIssuerConfig) + TestCommand("Test_TC_MEDIAPLAYBACK_1_7", 21, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -17685,10 +16367,82 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + } + break; + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -17720,7 +16474,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand true, chip::NullOptional); } case 2: { - LogStep(2, "Read the optional global attribute: FeatureMap"); + LogStep(2, "Read the global attribute: FeatureMap"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); @@ -17772,12 +16526,60 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Read the global attribute: GeneratedCommandList"); + LogStep(11, "Read the optional command(StartOver) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, - MediaPlayback::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, + LogStep(12, "Read the optional command(Previous) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, "Read the optional command(Next) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, "Read the optional command(Rewind) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "Read the optional command(FastForward) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "Read the optional command(SkipForward) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 17: { + LogStep(17, "Read the optional command(SkipBackward) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 18: { + LogStep(18, "Read the optional command(Seek) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 19: { + LogStep(19, "Read the global attribute: GeneratedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, + MediaPlayback::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + } + case 20: { + LogStep(20, "Read EventList attribute from the DUT and Verify that the DUT response provides a list of supported events."); VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -18474,15 +17276,13 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand ContentLauncher::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { - LogStep(2, "Read the optional global attribute: FeatureMap"); + LogStep(2, "Read the global attribute: FeatureMap"); VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0000 && CONTENTLAUNCHER.S.A0001"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } @@ -20222,7 +19022,7 @@ class Test_TC_CHANNEL_5_2Suite : public TestCommand } case 2: { LogStep(2, "TH sends a ChangeChannelByNumber command"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.C0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CHANNEL.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::Type value; value.majorNumber = mMajornumber.HasValue() ? mMajornumber.Value() : 9U; @@ -20382,7 +19182,7 @@ class Test_TC_CHANNEL_5_3Suite : public TestCommand } case 4: { LogStep(4, "Sends a SkipChannel command to the DUT"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.C0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CHANNEL.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::Channel::Commands::SkipChannel::Type value; value.count = 1U; @@ -20590,7 +19390,7 @@ class Test_TC_MEDIAPLAYBACK_6_1Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 5: { - LogStep(5, "Reads the playback state attribute"); + LogStep(5, "Reads the CurrentState attribute"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, true, chip::NullOptional); @@ -20617,7 +19417,7 @@ class Test_TC_MEDIAPLAYBACK_6_1Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 8: { - LogStep(8, "Reads the playback state attribute"); + LogStep(8, "Reads the CurrentState attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, true, chip::NullOptional); } @@ -20643,7 +19443,7 @@ class Test_TC_MEDIAPLAYBACK_6_1Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 11: { - LogStep(11, "Reads the playback state attribute"); + LogStep(11, "Reads the CurrentState attribute"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, true, chip::NullOptional); @@ -20873,7 +19673,7 @@ class Test_TC_MEDIAPLAYBACK_6_2Suite : public TestCommand } case 6: { LogStep(6, "Sends a StartOver command to the DUT"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::StartOver::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::StartOver::Id, value, @@ -20894,7 +19694,7 @@ class Test_TC_MEDIAPLAYBACK_6_2Suite : public TestCommand } case 8: { LogStep(8, "Sends a Next command to the DUT"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Next::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Next::Id, value, @@ -20915,7 +19715,7 @@ class Test_TC_MEDIAPLAYBACK_6_2Suite : public TestCommand } case 10: { LogStep(10, "Sends a Previous command to the DUT"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Previous::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Previous::Id, value, @@ -20936,7 +19736,7 @@ class Test_TC_MEDIAPLAYBACK_6_2Suite : public TestCommand } case 12: { LogStep(12, "Sends a SkipForward command to the DUT "); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type value; value.deltaPositionMilliseconds = 10000ULL; @@ -20964,7 +19764,7 @@ class Test_TC_MEDIAPLAYBACK_6_2Suite : public TestCommand } case 15: { LogStep(15, "Sends a SkipBackward command to the DUT "); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type value; value.deltaPositionMilliseconds = 10000ULL; @@ -21124,7 +19924,7 @@ class Test_TC_MEDIAPLAYBACK_6_3Suite : public TestCommand } case 2: { LogStep(2, "Sends a Seek command"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C000B"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; value.position = 10000ULL; @@ -21192,7 +19992,7 @@ class Test_TC_MEDIAPLAYBACK_6_3Suite : public TestCommand } case 9: { LogStep(9, "Sends a Seek command Position value beyond the furthest valid position"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C000B"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; value.position = mSeekPosition.HasValue() ? mSeekPosition.Value() : 100000000ULL; @@ -21413,7 +20213,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 4: { LogStep(4, "Sends a FastForward command"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::FastForward::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value, @@ -21435,7 +20235,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 7: { LogStep(7, "Sends a FastForward command"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::FastForward::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value, @@ -21451,7 +20251,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 9: { LogStep(9, "Sends a Rewind command to the DUT"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Rewind::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value, @@ -21467,7 +20267,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 11: { LogStep(11, "Reads the PlaybackSpeed attribute from the DUT"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = @@ -21478,7 +20278,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 12: { LogStep(12, "Sends a Rewind command to the DUT"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Rewind::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value, @@ -21515,7 +20315,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 16: { LogStep(16, "Sends consecutive FastForward commands"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -21525,7 +20325,7 @@ class Test_TC_MEDIAPLAYBACK_6_4Suite : public TestCommand } case 17: { LogStep(17, "Sends consecutive Rewind commands"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -24322,13 +23122,7 @@ class Test_TC_PS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; case 5: @@ -24337,14 +23131,9 @@ class Test_TC_PS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; case 6: @@ -24354,10 +23143,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 27UL)); VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 29UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 30UL)); } break; case 7: @@ -24367,11 +23153,6 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 24UL)); VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; @@ -28631,12 +27412,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 24UL)); } break; case 5: @@ -28654,12 +27430,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; case 7: @@ -28687,7 +27458,6 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 30UL)); } break; case 10: @@ -28815,7 +27585,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand } case 7: { LogStep(7, "Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } @@ -34249,7 +33019,9 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("beaconLostCount", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); } break; case 3: @@ -34257,7 +33029,9 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("beaconRxCount", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); } break; case 4: @@ -34265,7 +33039,9 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("packetMulticastRxCount", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); } break; case 5: @@ -34273,7 +33049,9 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("packetMulticastTxCount", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); } break; case 6: @@ -34281,7 +33059,9 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("packetUnicastRxCount", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); } break; case 7: @@ -34289,7 +33069,9 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("packetUnicastTxCount", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); } break; default: @@ -67742,6 +66524,62 @@ class Test_TC_DD_3_20Suite : public TestCommand } }; +class Test_TC_DD_3_21Suite : public TestCommand +{ +public: + Test_TC_DD_3_21Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DD_3_21", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DD_3_21Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + } + return CHIP_NO_ERROR; + } +}; + class TestGroupDemoCommandSuite : public TestCommand { public: @@ -76014,6 +74852,7 @@ class Test_TC_CADMIN_1_3Suite : public TestCommand { case 0: { LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; @@ -76021,7 +74860,7 @@ class Test_TC_CADMIN_1_3Suite : public TestCommand } case 1: { LogStep(1, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76065,6 +74904,7 @@ class Test_TC_CADMIN_1_3Suite : public TestCommand } case 5: { LogStep(5, "TH_CR2 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76114,7 +74954,7 @@ class Test_TC_CADMIN_1_3Suite : public TestCommand } case 12: { LogStep(12, "TH_CR2 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76148,7 +74988,7 @@ class Test_TC_CADMIN_1_3Suite : public TestCommand } case 15: { LogStep(15, "TH_CR2 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76169,6 +75009,7 @@ class Test_TC_CADMIN_1_3Suite : public TestCommand } case 16: { LogStep(16, "TH_CR1 starts a commissioning process with DUT_CE before the timeout from step 12"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76339,6 +75180,7 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand { case 0: { LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; @@ -76346,7 +75188,7 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand } case 1: { LogStep(1, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76381,6 +75223,7 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand } case 5: { LogStep(5, "TH_CR2 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76430,7 +75273,7 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand } case 12: { LogStep(12, "TH_CR2 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76455,7 +75298,7 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand } case 15: { LogStep(15, "TH_CR2 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76467,6 +75310,7 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand } case 16: { LogStep(16, "TH_CR1 starts a commissioning process with DUT_CE before the timeout from step 12"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76565,7 +75409,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 1)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -76595,6 +75439,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand { case 0: { LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; @@ -76602,7 +75447,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 1: { LogStep(1, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76630,7 +75475,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 3: { LogStep(3, "TH_CR2 starts a commissioning process with DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76639,7 +75484,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 4: { LogStep(4, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76660,7 +75505,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 5: { LogStep(5, "TH_CR1 revokes the commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, @@ -76671,6 +75516,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 6: { LogStep(6, "TH_CR2 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76679,7 +75525,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 7: { LogStep(7, "TH_CR1 revokes the commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, @@ -76704,8 +75550,8 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand chip::NullOptional); } case 10: { - LogStep(10, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "TH_CR1 opens a new commissioning window on DUT_CE using wrong PakeVerifier value"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76726,7 +75572,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 11: { LogStep(11, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76747,7 +75593,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 12: { LogStep(12, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76768,7 +75614,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 13: { LogStep(13, "TH_CR2 starts a commissioning process with DUT_CE"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76777,7 +75623,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 14: { LogStep(14, "TH_CR1 tries to revoke the commissioning window on DUT_CE using RevokeCommissioning command"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0002 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C02.Rsp && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, @@ -76788,6 +75634,7 @@ class Test_TC_CADMIN_1_5Suite : public TestCommand } case 15: { LogStep(15, "TH_CR3 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId3.HasValue() ? mNodeId3.Value() : 12586990ULL; @@ -76883,7 +75730,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 1)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -76917,6 +75764,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand { case 0: { LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; @@ -76924,7 +75772,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 1: { LogStep(1, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76935,7 +75783,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 2: { - LogStep(2, "Wait for PIXIT_COMM_WIN(180) + 10"); + LogStep(2, "Wait for PIXIT.CADMIN.CwDuration + 10"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 190000UL; @@ -76943,7 +75791,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 3: { LogStep(3, "Commission from beta"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76952,7 +75800,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 4: { LogStep(4, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -76964,7 +75812,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 5: { LogStep(5, "TH_CR1 revokes the commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, @@ -76974,7 +75822,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 6: { - LogStep(6, "Commission from beta"); + LogStep(6, "TH_CR2 starts a commissioning process with DUT_CE"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -76983,7 +75831,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 7: { LogStep(7, "TH_CR1 revokes the commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, @@ -77009,7 +75857,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 10: { LogStep(10, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -77020,8 +75868,8 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 11: { - LogStep(11, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "TH_CR1 opens another commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -77041,6 +75889,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 13: { LogStep(13, "TH_CR2 starts a commissioning process on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77048,7 +75897,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 14: { LogStep(14, "TH_CR1 tries to revoke the commissioning window on DUT_CE using RevokeCommissioning command"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, @@ -77059,6 +75908,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 15: { LogStep(15, "TH_CR3 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId3.HasValue() ? mNodeId3.Value() : 12586990ULL; @@ -77225,6 +76075,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand { case 0: { LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; @@ -77232,7 +76083,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 1: { LogStep(1, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 900U; @@ -77253,6 +76104,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 2: { LogStep(2, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77261,6 +76113,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 3: { LogStep(3, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77269,6 +76122,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 4: { LogStep(4, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77277,6 +76131,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 5: { LogStep(5, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77285,6 +76140,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 6: { LogStep(6, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77293,6 +76149,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 7: { LogStep(7, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77301,6 +76158,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 8: { LogStep(8, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77309,6 +76167,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 9: { LogStep(9, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77317,6 +76176,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 10: { LogStep(10, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77325,6 +76185,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 11: { LogStep(11, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77333,6 +76194,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 12: { LogStep(12, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77341,6 +76203,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 13: { LogStep(13, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77349,6 +76212,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 14: { LogStep(14, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77357,6 +76221,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 15: { LogStep(15, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77365,6 +76230,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 16: { LogStep(16, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77373,6 +76239,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 17: { LogStep(17, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77381,6 +76248,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 18: { LogStep(18, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77389,6 +76257,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 19: { LogStep(19, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77397,6 +76266,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 20: { LogStep(20, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77405,6 +76275,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 21: { LogStep(21, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77413,6 +76284,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 22: { LogStep(22, "TH_CR2 starts a commissioning process with DUT_CE using valid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -77421,6 +76293,7 @@ class Test_TC_CADMIN_1_9Suite : public TestCommand } case 23: { LogStep(23, "TH_CR3 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId3.HasValue() ? mNodeId3.Value() : 12586990ULL; @@ -77436,7 +76309,7 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand { public: Test_TC_CADMIN_1_10Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_10", 24, credsIssuerConfig) + TestCommand("Test_TC_CADMIN_1_10", 23, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); @@ -77567,10 +76440,368 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); shouldContinue = true; break; - case 23: + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 900U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 2: { + LogStep(2, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 3: { + LogStep(3, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 4: { + LogStep(4, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 5: { + LogStep(5, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 6: { + LogStep(6, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 7: { + LogStep(7, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 8: { + LogStep(8, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 9: { + LogStep(9, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 10: { + LogStep(10, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 11: { + LogStep(11, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 12: { + LogStep(12, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 13: { + LogStep(13, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 14: { + LogStep(14, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 15: { + LogStep(15, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 16: { + LogStep(16, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 17: { + LogStep(17, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 18: { + LogStep(18, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 19: { + LogStep(19, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 20: { + LogStep(20, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 21: { + LogStep(21, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); + return PairWithCode(kIdentityBeta, value); + } + case 22: { + LogStep(22, "TH_CR2 attempts to do PASE to DUT_CE using the correct onboarding payload"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; + value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; + value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:0000000000I31506010", 22); + return PairWithCode(kIdentityBeta, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_13Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_13Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_13", 17, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("nodeIdForDuplicateCommissioning", 0, UINT64_MAX, &mNodeIdForDuplicateCommissioning); + AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); + AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); + AddArgument("payload", &mPayload); + } + + ~Test_TC_CADMIN_1_13Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(500)); } + +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mNodeIdForDuplicateCommissioning; + chip::Optional mNodeId2; + chip::Optional mNodeId3; + chip::Optional mEndpoint; + chip::Optional mDiscriminator; + chip::Optional mPayload; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList< + chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> + value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 0)); + VerifyOrReturn(CheckValueAsString("fabrics[0].label", iter_0.GetValue().label, chip::CharSpan("", 0))); + VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 1)); + VerifyOrReturn(CheckValueAsString("fabrics[1].label", iter_0.GetValue().label, chip::CharSpan("", 0))); + VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 2)); + VerifyOrReturn(CheckValueAsString("fabrics[2].label", iter_0.GetValue().label, chip::CharSpan("", 0))); + VerifyOrReturn(CheckNoMoreListItems("fabrics", iter_0, 3)); + } + VerifyOrReturn(CheckConstraintType("value", "", "list")); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList< + chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> + value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 0)); + VerifyOrReturn(CheckValueAsString("fabrics[0].label", iter_0.GetValue().label, chip::CharSpan("", 0))); + VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 1)); + VerifyOrReturn(CheckValueAsString("fabrics[1].label", iter_0.GetValue().label, chip::CharSpan("", 0))); + VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 2)); + VerifyOrReturn(CheckValueAsString("fabrics[2].label", iter_0.GetValue().label, chip::CharSpan("", 0))); + VerifyOrReturn(CheckNoMoreListItems("fabrics", iter_0, 3)); + } + VerifyOrReturn(CheckConstraintType("value", "", "list")); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -77588,6 +76819,7 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand { case 0: { LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; @@ -77595,356 +76827,7 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand } case 1: { LogStep(1, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 900U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 2: { - LogStep(2, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 3: { - LogStep(3, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 4: { - LogStep(4, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 5: { - LogStep(5, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 6: { - LogStep(6, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 7: { - LogStep(7, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 8: { - LogStep(8, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 9: { - LogStep(9, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 10: { - LogStep(10, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 11: { - LogStep(11, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 12: { - LogStep(12, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 13: { - LogStep(13, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 14: { - LogStep(14, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 15: { - LogStep(15, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 16: { - LogStep(16, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 17: { - LogStep(17, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 18: { - LogStep(18, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 19: { - LogStep(19, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 20: { - LogStep(20, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 21: { - LogStep(21, "TH_CR2 starts a commissioning process with DUT_CE using Invalid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload2.HasValue() ? mPayload2.Value() : chip::Span("MT:0000000000I.0648G00", 22); - return PairWithCode(kIdentityBeta, value); - } - case 22: { - LogStep(22, "TH_CR2 starts a commissioning process with DUT_CE using valid setup code"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; - value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:0000000000I31506010", 22); - return PairWithCode(kIdentityBeta, value); - } - case 23: { - LogStep(23, "TH_CR3 starts a commissioning process with DUT_CE"); - ListFreer listFreer; - chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; - value.nodeId = mNodeId3.HasValue() ? mNodeId3.Value() : 12586990ULL; - value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:0000000000I31506010", 22); - return PairWithCode(kIdentityGamma, value); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CADMIN_1_13Suite : public TestCommand -{ -public: - Test_TC_CADMIN_1_13Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_13", 17, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - AddArgument("nodeIdForDuplicateCommissioning", 0, UINT64_MAX, &mNodeIdForDuplicateCommissioning); - AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); - AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); - AddArgument("payload", &mPayload); - } - - ~Test_TC_CADMIN_1_13Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(500)); } - -private: - chip::Optional mNodeId; - chip::Optional mTimeout; - chip::Optional mNodeIdForDuplicateCommissioning; - chip::Optional mNodeId2; - chip::Optional mNodeId3; - chip::Optional mEndpoint; - chip::Optional mDiscriminator; - chip::Optional mPayload; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList< - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> - value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - { - auto iter_0 = value.begin(); - VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 0)); - VerifyOrReturn(CheckValueAsString("fabrics[0].label", iter_0.GetValue().label, chip::CharSpan("", 0))); - VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 1)); - VerifyOrReturn(CheckValueAsString("fabrics[1].label", iter_0.GetValue().label, chip::CharSpan("", 0))); - VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 2)); - VerifyOrReturn(CheckValueAsString("fabrics[2].label", iter_0.GetValue().label, chip::CharSpan("", 0))); - VerifyOrReturn(CheckNoMoreListItems("fabrics", iter_0, 3)); - } - VerifyOrReturn(CheckConstraintType("value", "", "list")); - } - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList< - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> - value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - { - auto iter_0 = value.begin(); - VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 0)); - VerifyOrReturn(CheckValueAsString("fabrics[0].label", iter_0.GetValue().label, chip::CharSpan("", 0))); - VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 1)); - VerifyOrReturn(CheckValueAsString("fabrics[1].label", iter_0.GetValue().label, chip::CharSpan("", 0))); - VerifyOrReturn(CheckNextListItemDecodes("fabrics", iter_0, 2)); - VerifyOrReturn(CheckValueAsString("fabrics[2].label", iter_0.GetValue().label, chip::CharSpan("", 0))); - VerifyOrReturn(CheckNoMoreListItems("fabrics", iter_0, 3)); - } - VerifyOrReturn(CheckConstraintType("value", "", "list")); - } - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "TH_CR1 starts a commissioning process with DUT_CE"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -77964,6 +76847,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 3: { LogStep(3, "TH_CR3 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId3.HasValue() ? mNodeId3.Value() : 12586990ULL; @@ -77971,7 +76855,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 4: { LogStep(4, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -77998,7 +76882,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 7: { LogStep(7, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -78010,7 +76894,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 8: { LogStep(8, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -78044,7 +76928,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 11: { LogStep(11, "TH_CR1 re-opens new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -78065,7 +76949,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 12: { LogStep(12, "TH_CR3 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -78099,7 +76983,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 15: { LogStep(15, "TH_CR1 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -78120,7 +77004,7 @@ class Test_TC_CADMIN_1_13Suite : public TestCommand } case 16: { LogStep(16, "TH_CR2 opens a new commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -82842,6 +81726,1064 @@ class Test_TC_CC_9_4Suite : public TestCommand } }; +class Test_TC_CC_3_1Suite : public TestCommand +{ +public: + Test_TC_CC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_1", 34, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CC_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(150)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("onOff", value, 1)); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentHue", value, 150U)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentHue", value, 200U)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentHue", value, 250U)); + } + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U)); + } + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("currentHue", value, 200U)); + } + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("onOff", value, 0)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Turn on light for color control tests"); + ListFreer listFreer; + chip::app::Clusters::OnOff::Commands::On::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); + } + case 2: { + LogStep(2, "Check on/off attribute value is true after on command"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); + } + case 3: { + LogStep(3, "Reads CurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 4: { + LogStep(4, "Move to hue shortest distance command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; + value.hue = 150U; + value.direction = static_cast(0); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); + } + case 5: { + LogStep(5, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 11: { + LogStep(11, "Move to hue longest distance command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; + value.hue = 200U; + value.direction = static_cast(1); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); + } + case 12: { + LogStep(12, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 13: { + LogStep(13, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 14: { + LogStep(14, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 16: { + LogStep(16, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 18: { + LogStep(18, "Move to hue up command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; + value.hue = 250U; + value.direction = static_cast(2); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); + } + case 19: { + LogStep(19, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 20: { + LogStep(20, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 21: { + LogStep(21, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 23: { + LogStep(23, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 24: { + LogStep(24, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 25: { + LogStep(25, "Move to hue down command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::MoveToHue::Type value; + value.hue = 200U; + value.direction = static_cast(3); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); + } + case 26: { + LogStep(26, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 27: { + LogStep(27, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 28: { + LogStep(28, "Wait 5000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 29: { + LogStep(29, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 30: { + LogStep(30, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 31: { + LogStep(31, "Check current hue attribute value matched the value sent by the last command"); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); + } + case 32: { + LogStep(32, "Turn off light that we turned on"); + ListFreer listFreer; + chip::app::Clusters::OnOff::Commands::Off::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); + } + case 33: { + LogStep(33, "Check on/off attribute value is false after off command"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_7_1Suite : public TestCommand +{ +public: + Test_TC_CC_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_1", 35, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CC_7_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(150)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("onOff", value, 1)); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 1100U)); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 1150U)); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 1200U)); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 1300U)); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("onOff", value, 0)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Turn on light for color control tests"); + ListFreer listFreer; + chip::app::Clusters::OnOff::Commands::On::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); + } + case 2: { + LogStep(2, "Check on/off attribute value is true after on command"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH sends EnhancedMoveToHue command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; + value.enhancedHue = 1025U; + value.direction = static_cast(0); + value.transitionTime = 0U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, + value, chip::NullOptional + + ); + } + case 4: { + LogStep(4, "TH reads EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH sends EnhancedMoveToHue command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; + value.enhancedHue = 1100U; + value.direction = static_cast(0); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, + value, chip::NullOptional + + ); + } + case 6: { + LogStep(6, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 10: { + LogStep(10, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 12: { + LogStep(12, "TH sends EnhancedMoveToHue command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; + value.enhancedHue = 1150U; + value.direction = static_cast(1); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, + value, chip::NullOptional + + ); + } + case 13: { + LogStep(13, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 15: { + LogStep(15, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 16: { + LogStep(16, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 17: { + LogStep(17, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 18: { + LogStep(18, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 19: { + LogStep(19, "TH sends EnhancedMoveToHue command to DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; + value.enhancedHue = 1200U; + value.direction = static_cast(2); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, + value, chip::NullOptional + + ); + } + case 20: { + LogStep(20, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 22: { + LogStep(22, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 23: { + LogStep(23, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 24: { + LogStep(24, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 25: { + LogStep(25, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 26: { + LogStep(26, "TH sends EnhancedMoveToHue command to DUT "); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; + value.enhancedHue = 1300U; + value.direction = static_cast(3); + value.transitionTime = 300U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, + value, chip::NullOptional + + ); + } + case 27: { + LogStep(27, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 28: { + LogStep(28, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 29: { + LogStep(29, "Wait 5500ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5500UL; + return WaitForMs(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 31: { + LogStep(31, "Wait 20s"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 20000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 32: { + LogStep(32, "TH reads EnhancedCurrentHue attribute from DUT periodically"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 33: { + LogStep(33, "Turn off light that we turned on"); + ListFreer listFreer; + chip::app::Clusters::OnOff::Commands::Off::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); + } + case 34: { + LogStep(34, "Check on/off attribute value is false after off command"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_CC_9_1Suite : public TestCommand { public: @@ -82863,14 +82805,14 @@ class Test_TC_CC_9_1Suite : public TestCommand chip::Optional mCluster; chip::Optional mEndpoint; - uint16_t ColorLoopStartEnhancedHue; - uint16_t ColorLoopStoredEnhancedHueValue1; - uint16_t ColorLoopStartEnhancedHue2; - uint16_t ColorLoopStoredEnhancedHueValue2; - uint16_t ColorLoopStartEnhancedHue3; - uint16_t ColorLoopStoredEnhancedHueValue3; - uint16_t ColorLoopStartEnhancedHue4; - uint16_t ColorLoopStoredEnhancedHue4; + uint16_t ColorLoopStartEnhancedHueStep5d; + uint16_t ColorLoopStoredEnhancedHueStep6c; + uint16_t ColorLoopStartEnhancedHueStep8d; + uint16_t ColorLoopStoredEnhancedHueStep9c; + uint16_t ColorLoopStartEnhancedHueStep12d; + uint16_t ColorLoopStoredEnhancedHueStep13c; + uint16_t ColorLoopStartEnhancedHueStep15d; + uint16_t ColorLoopStoredEnhancedHueStep16b; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -82978,7 +82920,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStartEnhancedHue = value; + ColorLoopStartEnhancedHueStep5d = value; } break; case 18: @@ -82987,7 +82929,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep5d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83001,7 +82943,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep5d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83021,7 +82963,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStoredEnhancedHueValue1 = value; + ColorLoopStoredEnhancedHueStep6c = value; } break; case 24: @@ -83029,7 +82971,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueValue1)); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueStep6c)); } break; case 25: @@ -83071,7 +83013,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStartEnhancedHue2 = value; + ColorLoopStartEnhancedHueStep8d = value; } break; case 32: @@ -83080,7 +83022,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue2)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep8d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83094,7 +83036,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue2)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep8d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83114,7 +83056,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStoredEnhancedHueValue2 = value; + ColorLoopStoredEnhancedHueStep9c = value; } break; case 38: @@ -83122,7 +83064,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueValue2)); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueStep9c)); } break; case 39: @@ -83179,7 +83121,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStartEnhancedHue3 = value; + ColorLoopStartEnhancedHueStep12d = value; } break; case 49: @@ -83188,7 +83130,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue3)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep12d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83202,7 +83144,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue3)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep12d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83222,7 +83164,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStoredEnhancedHueValue3 = value; + ColorLoopStoredEnhancedHueStep13c = value; } break; case 55: @@ -83230,7 +83172,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueValue3)); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueStep13c)); } break; case 56: @@ -83272,7 +83214,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStartEnhancedHue4 = value; + ColorLoopStartEnhancedHueStep15d = value; } break; case 63: @@ -83281,7 +83223,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue3)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep15d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83295,7 +83237,7 @@ class Test_TC_CC_9_1Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue4)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueStep15d)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -83315,7 +83257,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStoredEnhancedHue4 = value; + ColorLoopStoredEnhancedHueStep16b = value; } break; case 69: @@ -83323,7 +83265,7 @@ class Test_TC_CC_9_1Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHue4)); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueStep16b)); } break; case 70: @@ -84005,7 +83947,7 @@ class Test_TC_CC_9_2Suite : public TestCommand chip::Optional mTimeout; uint16_t ColorLoopStartEnhancedHueValue; - uint16_t ColorLoopStartEnhancedHue1; + uint16_t ColorLoopStartEnhancedHue; uint16_t ColorLoopStoredEnhancedHueValue; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -84152,7 +84094,7 @@ class Test_TC_CC_9_2Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStartEnhancedHue1 = value; + ColorLoopStartEnhancedHue = value; } break; case 22: @@ -84161,7 +84103,7 @@ class Test_TC_CC_9_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue1)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -84175,7 +84117,7 @@ class Test_TC_CC_9_2Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue1)); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHue)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; @@ -84253,497 +84195,7 @@ class Test_TC_CC_9_2Suite : public TestCommand } case 3: { LogStep(3, "Precondition : Set DUT EnhancedCurrentHue to 0x4000 using EnhancedMoveToHue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; - value.enhancedHue = 16384U; - value.direction = static_cast(0); - value.transitionTime = 0U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value, chip::NullOptional - - ); - } - case 4: { - LogStep(4, "Wait for 1000ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 1000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 5: { - LogStep(5, "Sends ColorLoopSet Command - Set all Attributes"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; - value.updateFlags = static_cast>(15U); - value.action = static_cast(0); - value.direction = static_cast(0); - value.time = 30U; - value.startHue = 160U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, - chip::NullOptional - - ); - } - case 6: { - LogStep(6, "Read ColorLoopActive attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, - true, chip::NullOptional); - } - case 7: { - LogStep(7, "Read ColorLoopDirection attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, - true, chip::NullOptional); - } - case 8: { - LogStep(8, "Read ColorLoopTime attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, - true, chip::NullOptional); - } - case 9: { - LogStep(9, "Read ColorLoopStartEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); - } - case 10: { - LogStep(10, "Color Loop Set Command - Set all Attributes"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; - value.updateFlags = static_cast>(1U); - value.action = static_cast(1); - value.direction = static_cast(0); - value.time = 0U; - value.startHue = 0U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, - chip::NullOptional - - ); - } - case 11: { - LogStep(11, "Read ColorLoopActive attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, - true, chip::NullOptional); - } - case 12: { - LogStep(12, "Read ColorLoopStoredEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); - } - case 13: { - LogStep(13, "Wait for 30S"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 30000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 14: { - LogStep(14, "Read ColorLoopStartEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); - } - case 15: { - LogStep(15, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 16: { - LogStep(16, "Wait for 30S"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 30000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 17: { - LogStep(17, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 18: { - LogStep(18, "Color Loop Set Command - Start Color Loop"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; - value.updateFlags = static_cast>(2U); - value.action = static_cast(0); - value.direction = static_cast(1); - value.time = 0U; - value.startHue = 0U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, - chip::NullOptional - - ); - } - case 19: { - LogStep(19, "Read ColorLoopDirection attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, - true, chip::NullOptional); - } - case 20: { - LogStep(20, "Wait for 30S"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 30000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 21: { - LogStep(21, "Read ColorLoopStartEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); - } - case 22: { - LogStep(22, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 23: { - LogStep(23, "Wait for 30S"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 30000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 24: { - LogStep(24, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 25: { - LogStep(25, "Color Loop Set Command - Start Color Loop"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; - value.updateFlags = static_cast>(1U); - value.action = static_cast(0); - value.direction = static_cast(0); - value.time = 0U; - value.startHue = 0U; - value.optionsMask = 0U; - value.optionsOverride = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, - chip::NullOptional - - ); - } - case 26: { - LogStep(26, "Read ColorLoopActive attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, - true, chip::NullOptional); - } - case 27: { - LogStep(27, "Read ColorLoopStoredEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); - } - case 28: { - LogStep(28, "Read EnhancedCurrentHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, - true, chip::NullOptional); - } - case 29: { - LogStep(29, "Turn off light for color control tests"); - ListFreer listFreer; - chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional - - ); - } - case 30: { - LogStep(30, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CC_9_3Suite : public TestCommand -{ -public: - Test_TC_CC_9_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_9_3", 30, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_CC_9_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(400)); } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - uint16_t ColorLoopStartEnhancedHueValue; - uint16_t ColorLoopStoredEnhancedHueValue; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - bool value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onOff", value, 1)); - } - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopActive", value, 0U)); - } - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopDirection", value, 0U)); - } - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopTime", value, 30U)); - } - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopStartEnhancedHue", value, 160U)); - } - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopActive", value, 1U)); - } - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopStoredEnhancedHue", value, 16384U)); - } - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStartEnhancedHueValue = value; - } - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueValue)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueValue)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopTime", value, 60U)); - } - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - } - break; - case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("colorLoopActive", value, 0U)); - } - break; - case 26: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - ColorLoopStoredEnhancedHueValue = value; - } - break; - case 27: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueValue)); - } - break; - case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 29: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - bool value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onOff", value, 0)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Precondition: Turn on light for color control tests"); - ListFreer listFreer; - chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional - - ); - } - case 2: { - LogStep(2, "Precondition: Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); - } - case 3: { - LogStep(3, "Precondition : Set DUT EnhancedCurrentHue to 0x4000 using EnhancedMoveToHue command"); - VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; value.enhancedHue = 16384U; @@ -84765,7 +84217,7 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 5: { LogStep(5, "Sends ColorLoopSet Command - Set all Attributes"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; value.updateFlags = static_cast>(15U); @@ -84782,31 +84234,31 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 6: { LogStep(6, "Read ColorLoopActive attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Read ColorLoopDirection attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read ColorLoopTime attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Read ColorLoopStartEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 10: { LogStep(10, "Color Loop Set Command - Set all Attributes"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; value.updateFlags = static_cast>(1U); @@ -84823,13 +84275,13 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 11: { LogStep(11, "Read ColorLoopActive attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, true, chip::NullOptional); } case 12: { LogStep(12, "Read ColorLoopStoredEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } @@ -84842,13 +84294,13 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 14: { LogStep(14, "Read ColorLoopStartEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 15: { LogStep(15, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } @@ -84861,13 +84313,503 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 17: { LogStep(17, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 18: { LogStep(18, "Color Loop Set Command - Start Color Loop"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; + value.updateFlags = static_cast>(2U); + value.action = static_cast(0); + value.direction = static_cast(1); + value.time = 0U; + value.startHue = 0U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); + } + case 19: { + LogStep(19, "Read ColorLoopDirection attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); + } + case 20: { + LogStep(20, "Wait for 30S"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 30000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "Read ColorLoopStartEnhancedHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); + } + case 22: { + LogStep(22, "Read EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 23: { + LogStep(23, "Wait for 30S"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 30000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 24: { + LogStep(24, "Read EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 25: { + LogStep(25, "Color Loop Set Command - Start Color Loop"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; + value.updateFlags = static_cast>(1U); + value.action = static_cast(0); + value.direction = static_cast(0); + value.time = 0U; + value.startHue = 0U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); + } + case 26: { + LogStep(26, "Read ColorLoopActive attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); + } + case 27: { + LogStep(27, "Read ColorLoopStoredEnhancedHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); + } + case 28: { + LogStep(28, "Read EnhancedCurrentHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 29: { + LogStep(29, "Turn off light for color control tests"); + ListFreer listFreer; + chip::app::Clusters::OnOff::Commands::Off::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); + } + case 30: { + LogStep(30, "Check on/off attribute value is false after off command"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_9_3Suite : public TestCommand +{ +public: + Test_TC_CC_9_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_9_3", 30, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CC_9_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(400)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + uint16_t ColorLoopStartEnhancedHueValue; + uint16_t ColorLoopStoredEnhancedHueValue; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("onOff", value, 1)); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopActive", value, 0U)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopDirection", value, 0U)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopTime", value, 30U)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopStartEnhancedHue", value, 160U)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopActive", value, 1U)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopStoredEnhancedHue", value, 16384U)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + ColorLoopStartEnhancedHueValue = value; + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, ColorLoopStartEnhancedHueValue)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopTime", value, 60U)); + } + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorLoopActive", value, 0U)); + } + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + ColorLoopStoredEnhancedHueValue = value; + } + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedCurrentHue", value, ColorLoopStoredEnhancedHueValue)); + } + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("onOff", value, 0)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Precondition: Turn on light for color control tests"); + ListFreer listFreer; + chip::app::Clusters::OnOff::Commands::On::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); + } + case 2: { + LogStep(2, "Precondition: Check on/off attribute value is true after on command"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); + } + case 3: { + LogStep(3, "Precondition : Set DUT EnhancedCurrentHue to 0x4000 using EnhancedMoveToHue command"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type value; + value.enhancedHue = 16384U; + value.direction = static_cast(0); + value.transitionTime = 0U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, + value, chip::NullOptional + + ); + } + case 4: { + LogStep(4, "Wait for 1000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "Sends ColorLoopSet Command - Set all Attributes"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; + value.updateFlags = static_cast>(15U); + value.action = static_cast(0); + value.direction = static_cast(0); + value.time = 30U; + value.startHue = 160U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); + } + case 6: { + LogStep(6, "Read ColorLoopActive attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "Read ColorLoopDirection attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "Read ColorLoopTime attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, + true, chip::NullOptional); + } + case 9: { + LogStep(9, "Read ColorLoopStartEnhancedHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); + } + case 10: { + LogStep(10, "Color Loop Set Command - Set all Attributes"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; + value.updateFlags = static_cast>(1U); + value.action = static_cast(1); + value.direction = static_cast(0); + value.time = 0U; + value.startHue = 0U; + value.optionsMask = 0U; + value.optionsOverride = 0U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); + } + case 11: { + LogStep(11, "Read ColorLoopActive attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); + } + case 12: { + LogStep(12, "Read ColorLoopStoredEnhancedHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, "Wait for 30S"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 30000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Read ColorLoopStartEnhancedHue attribute from DUT."); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "Read EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 16: { + LogStep(16, "Wait for 30S"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 30000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Read EnhancedCurrentHue attribute from DUT"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); + } + case 18: { + LogStep(18, "Color Loop Set Command - Start Color Loop"); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; value.updateFlags = static_cast>(4U); @@ -84884,7 +84826,7 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 19: { LogStep(19, "Read ColorLoopTime attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, true, chip::NullOptional); } @@ -84897,7 +84839,7 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 21: { LogStep(21, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } @@ -84910,13 +84852,13 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 23: { LogStep(23, "Read EnhancedCurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } case 24: { LogStep(24, "Color Loop Set Command - Start Color Loop"); - VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type value; value.updateFlags = static_cast>(1U); @@ -84933,19 +84875,19 @@ class Test_TC_CC_9_3Suite : public TestCommand } case 25: { LogStep(25, "Read ColorLoopActive attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, true, chip::NullOptional); } case 26: { LogStep(26, "Read ColorLoopStoredEnhancedHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 27: { LogStep(27, "Read EnhancedCurrentHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.F02 && CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, true, chip::NullOptional); } @@ -86003,8 +85945,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 38: @@ -86052,8 +85994,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 325U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 48: @@ -86092,8 +86034,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 54: @@ -86124,8 +86066,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 180U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 220U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 170U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U)); } break; case 59: @@ -86193,8 +86135,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 71: @@ -86281,7 +86223,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("onTime", value, 300U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 85: @@ -86341,8 +86284,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 94: @@ -86380,8 +86323,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 180U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 220U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 170U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U)); } break; case 101: @@ -86416,8 +86359,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 106: @@ -86444,8 +86387,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 180U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 220U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 170U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U)); } break; case 110: @@ -86506,8 +86449,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 120: @@ -86536,7 +86479,7 @@ class Test_TC_OO_2_3Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 10U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 15U)); } break; case 124: @@ -86555,8 +86498,8 @@ class Test_TC_OO_2_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 270U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 320U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 255U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 345U)); } break; case 127: @@ -86593,7 +86536,7 @@ class Test_TC_OO_2_3Suite : public TestCommand uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 10U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 15U)); } break; case 132: @@ -87292,18 +87235,18 @@ class Test_TC_OO_2_3Suite : public TestCommand } case 92: { LogStep(92, "18b:Reads OnOff attribute from DUT"); - VerifyOrDo(!ShouldSkip("OO.S.A0000 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("OO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 93: { LogStep(93, "18b:Reads OnTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("OO.S.A4001 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("OO.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, chip::NullOptional); } case 94: { LogStep(94, "18b:Reads OffWaitTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("OO.S.A4002 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("OO.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, chip::NullOptional); } @@ -90983,7 +90926,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -90996,7 +90938,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -91203,6 +91144,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -91426,6 +91368,8 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index 03f270678c92eb..6bc5360c4ffbc4 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -39,7 +39,6 @@ class TestList : public Command { printf("Test_TC_ACT_1_1\n"); printf("Test_TC_CC_1_1\n"); printf("Test_TC_CC_2_1\n"); - printf("Test_TC_CC_3_1\n"); printf("Test_TC_CC_3_2\n"); printf("Test_TC_CC_3_3\n"); printf("Test_TC_CC_4_1\n"); @@ -52,7 +51,6 @@ class TestList : public Command { printf("Test_TC_CC_6_1\n"); printf("Test_TC_CC_6_2\n"); printf("Test_TC_CC_6_3\n"); - printf("Test_TC_CC_7_1\n"); printf("Test_TC_CC_7_2\n"); printf("Test_TC_CC_7_3\n"); printf("Test_TC_CC_7_4\n"); @@ -2832,87 +2830,22 @@ class Test_TC_CC_1_1 : public TestCommandBridge { err = TestReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the feature dependent attribute(CC.S.F00) in AttributeList\n"); - if (ShouldSkip("CC.S.F00")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF00InAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the feature dependent attribute(CC.S.F03) in AttributeList\n"); - if (ShouldSkip("CC.S.F03")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF03InAttributeList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the feature dependent attribute(CC.S.F04) in AttributeList\n"); - if (ShouldSkip("CC.S.F04")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF04InAttributeList_6(); - break; - case 7: - ChipLogProgress(chipTool, - " ***** Test Step 7 : Read the feature dependent attribute(CC.S.F04) or ColorTemperatureMireds in AttributeList\n"); - if (ShouldSkip("CC.S.F04 && CC.S.A4010")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF04OrColorTemperatureMiredsInAttributeList_7(); - break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the feature dependent attribute(CC.S.F01) in AttributeList\n"); - if (ShouldSkip("CC.S.F01")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF01InAttributeList_8(); - break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the feature dependent attribute(CC.S.F02) in AttributeList\n"); - if (ShouldSkip("CC.S.F02")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF02InAttributeList_9(); - break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Read the feature dependent attribute(CC.S.F00) in AttributeList\n"); - if (ShouldSkip("CC.S.F00")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF00InAttributeList_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Read the feature dependent attribute(CC.S.F00) in AttributeList\n"); - if (ShouldSkip("CC.S.F00")) { - NextTest(); - return; - } - err = TestReadTheFeatureDependentAttributeCCSF00InAttributeList_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_12(); - break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_13(); - break; - case 14: ChipLogProgress(chipTool, - " ***** Test Step 14 : Read EventList attribute from the DUT and Verify that the DUT response provides a list of " + " ***** Test Step 6 : Read EventList attribute from the DUT and Verify that the DUT response provides a list of " "supported events.\n"); if (ShouldSkip("PICS_USER_PROMPT")) { NextTest(); return; } - err = TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_14(); + err = TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_6(); break; } @@ -2946,30 +2879,6 @@ class Test_TC_CC_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -2983,7 +2892,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 15; + const uint16_t mTestCount = 7; chip::Optional mNodeId; chip::Optional mCluster; @@ -3075,188 +2984,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF00InAttributeList_4() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F00) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF03InAttributeList_5() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F03) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF04InAttributeList_6() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F04) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16395UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16396UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF04OrColorTemperatureMiredsInAttributeList_7() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F04) or ColorTemperatureMireds in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16397UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16400UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF01InAttributeList_8() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F01) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16384UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF02InAttributeList_9() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F02) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16386UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16387UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16388UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16389UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 16390UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF00InAttributeList_10() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F00) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheFeatureDependentAttributeCCSF00InAttributeList_11() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the feature dependent attribute(CC.S.F00) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_12() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -3276,7 +3004,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_13() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -3301,7 +3029,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_14() + CHIP_ERROR TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -3355,7 +3083,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads CurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A0000 && CC.S.F00")) { + if (ShouldSkip("CC.S.A0000")) { NextTest(); return; } @@ -3363,7 +3091,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.A0001 && CC.S.F00")) { + if (ShouldSkip("CC.S.A0001")) { NextTest(); return; } @@ -3379,7 +3107,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads CurrentX attribute from DUT\n"); - if (ShouldSkip("CC.S.A0003 && CC.S.F03")) { + if (ShouldSkip("CC.S.A0003")) { NextTest(); return; } @@ -3387,7 +3115,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads CurrentY attribute from DUT\n"); - if (ShouldSkip("CC.S.A0004 && CC.S.F04")) { + if (ShouldSkip("CC.S.A0004")) { NextTest(); return; } @@ -3411,7 +3139,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads ColorTemperatureMireds attribute from DUT\n"); - if (ShouldSkip("CC.S.A0007 && CC.S.F04")) { + if (ShouldSkip("CC.S.A0007")) { NextTest(); return; } @@ -3435,7 +3163,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 11: ChipLogProgress(chipTool, " ***** Test Step 11 : TH reads EnhancedCurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4000 && CC.S.F01")) { + if (ShouldSkip("CC.S.A4000")) { NextTest(); return; } @@ -3443,7 +3171,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads EnhancedColorMode attribute from DUT\n"); - if (ShouldSkip("CC.S.F02 && CC.S.A4001")) { + if (ShouldSkip("CC.S.F02")) { NextTest(); return; } @@ -3451,7 +3179,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 13: ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads ColorLoopActive attribute from DUT\n"); - if (ShouldSkip("CC.S.A4002 && CC.S.F02")) { + if (ShouldSkip("CC.S.A4002")) { NextTest(); return; } @@ -3459,7 +3187,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads ColorLoopDirection attribute from DUT\n"); - if (ShouldSkip("CC.S.A4003 && CC.S.F02")) { + if (ShouldSkip("CC.S.A4003")) { NextTest(); return; } @@ -3467,7 +3195,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads ColorLoopTime attribute from DUT\n"); - if (ShouldSkip("CC.S.A4004 && CC.S.F02")) { + if (ShouldSkip("CC.S.A4004")) { NextTest(); return; } @@ -3475,7 +3203,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 16: ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads ColorLoopStartEnhancedHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4005 && CC.S.F02")) { + if (ShouldSkip("CC.S.A4005")) { NextTest(); return; } @@ -3483,7 +3211,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 17: ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads ColorLoopStoredEnhancedHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4006 && CC.S.F02")) { + if (ShouldSkip("CC.S.A4006")) { NextTest(); return; } @@ -3503,7 +3231,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 20: ChipLogProgress(chipTool, " ***** Test Step 20 : TH reads ColorTempPhysicalMinMireds attribute from DUT\n"); - if (ShouldSkip("CC.S.A400b && CC.S.F04")) { + if (ShouldSkip("CC.S.A400b")) { NextTest(); return; } @@ -3511,7 +3239,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 21: ChipLogProgress(chipTool, " ***** Test Step 21 : TH reads ColorTempPhysicalMaxMireds attribute from DUT\n"); - if (ShouldSkip("CC.S.A400c && CC.S.F04")) { + if (ShouldSkip("CC.S.A400c")) { NextTest(); return; } @@ -3519,7 +3247,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 22: ChipLogProgress(chipTool, " ***** Test Step 22 : TH reads CoupleColorTempToLevelMinMireds attribute from DUT\n"); - if (ShouldSkip("CC.S.A400d && CC.S.F04")) { + if (ShouldSkip("CC.S.A400d")) { NextTest(); return; } @@ -3527,7 +3255,7 @@ class Test_TC_CC_2_1 : public TestCommandBridge { break; case 23: ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads StartUpColorTemperatureMireds attribute from DUT\n"); - if (ShouldSkip("CC.S.A4010 && CC.S.F04")) { + if (ShouldSkip("CC.S.A4010")) { NextTest(); return; } @@ -3542,148 +3270,184 @@ class Test_TC_CC_2_1 : public TestCommandBridge { err = TestThReadsNumberOfPrimariesAttributeFromDut_24(); break; case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : TH reads Primary1X attribute from DUT\n"); - if (ShouldSkip("CC.S.A0011")) { + ChipLogProgress(chipTool, + " ***** Test Step 25 : TH reads Primary1X attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 1 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0011")) { NextTest(); return; } - err = TestThReadsPrimary1XAttributeFromDut_25(); + err = TestThReadsPrimary1XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs1OrMore_25(); break; case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : TH reads Primary1Y attribute from DUT\n"); - if (ShouldSkip("CC.S.A0012")) { + ChipLogProgress(chipTool, + " ***** Test Step 26 : TH reads Primary1Y attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 1 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0012")) { NextTest(); return; } - err = TestThReadsPrimary1YAttributeFromDut_26(); + err = TestThReadsPrimary1YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs1OrMore_26(); break; case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : TH reads Primary1Intensity attribute from DUT\n"); - if (ShouldSkip("CC.S.A0013")) { + ChipLogProgress(chipTool, + " ***** Test Step 27 : TH reads Primary1Intensity attribute from DUT and Verify that the DUT response contains an " + "uint8 if NumberOfPrimaries is 1 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0013")) { NextTest(); return; } - err = TestThReadsPrimary1IntensityAttributeFromDut_27(); + err = TestThReadsPrimary1IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs1OrMore_27(); break; case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : TH reads Primary2X attribute from DUT\n"); - if (ShouldSkip("CC.S.A0015")) { + ChipLogProgress(chipTool, + " ***** Test Step 28 : TH reads Primary2X attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 2 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0015")) { NextTest(); return; } - err = TestThReadsPrimary2XAttributeFromDut_28(); + err = TestThReadsPrimary2XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs2OrMore_28(); break; case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : TH reads Primary2Y attribute from DUT\n"); - if (ShouldSkip("CC.S.A0016")) { + ChipLogProgress(chipTool, + " ***** Test Step 29 : TH reads Primary2Y attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 2 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0016")) { NextTest(); return; } - err = TestThReadsPrimary2YAttributeFromDut_29(); + err = TestThReadsPrimary2YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs2OrMore_29(); break; case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : TH reads Primary2Intensity attribute from DUT\n"); - if (ShouldSkip("CC.S.A0017")) { + ChipLogProgress(chipTool, + " ***** Test Step 30 : TH reads Primary2Intensity attribute from DUT and Verify that the DUT response contains an " + "uint8 if NumberOfPrimaries is 2 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0017")) { NextTest(); return; } - err = TestThReadsPrimary2IntensityAttributeFromDut_30(); + err = TestThReadsPrimary2IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs2OrMore_30(); break; case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : TH reads Primary3X attribute from DUT\n"); - if (ShouldSkip("CC.S.A0019")) { + ChipLogProgress(chipTool, + " ***** Test Step 31 : TH reads Primary3X attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 3 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0019")) { NextTest(); return; } - err = TestThReadsPrimary3XAttributeFromDut_31(); + err = TestThReadsPrimary3XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs3OrMore_31(); break; case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads Primary3Y attribute from DUT\n"); - if (ShouldSkip("CC.S.A001a")) { + ChipLogProgress(chipTool, + " ***** Test Step 32 : TH reads Primary3Y attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 3 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A001a")) { NextTest(); return; } - err = TestThReadsPrimary3YAttributeFromDut_32(); + err = TestThReadsPrimary3YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs3OrMore_32(); break; case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : TH reads Primary3Intensity attribute from DUT\n"); - if (ShouldSkip("CC.S.A001b")) { + ChipLogProgress(chipTool, + " ***** Test Step 33 : TH reads Primary3Intensity attribute from DUT and Verify that the DUT response contains an " + "uint8 if NumberOfPrimaries is 3 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A001b")) { NextTest(); return; } - err = TestThReadsPrimary3IntensityAttributeFromDut_33(); + err = TestThReadsPrimary3IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs3OrMore_33(); break; case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : TH reads Primary4X attribute from DUT\n"); - if (ShouldSkip("CC.S.A0020")) { + ChipLogProgress(chipTool, + " ***** Test Step 34 : TH reads Primary4X attribute from DUT Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 4 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0020")) { NextTest(); return; } - err = TestThReadsPrimary4XAttributeFromDut_34(); + err = TestThReadsPrimary4XAttributeFromDutVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs4OrMore_34(); break; case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : TH reads Primary4Y attribute from DUT\n"); - if (ShouldSkip("CC.S.A0021")) { + ChipLogProgress(chipTool, + " ***** Test Step 35 : TH reads Primary4Y attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 4 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0021")) { NextTest(); return; } - err = TestThReadsPrimary4YAttributeFromDut_35(); + err = TestThReadsPrimary4YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs4OrMore_35(); break; case 36: - ChipLogProgress(chipTool, " ***** Test Step 36 : TH reads Primary4Intensity attribute from DUT\n"); - if (ShouldSkip("CC.S.A0022")) { + ChipLogProgress(chipTool, + " ***** Test Step 36 : TH reads Primary4Intensity attribute from DUT and Verify that the DUT response contains an " + "uint8 if NumberOfPrimaries is 4 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0022")) { NextTest(); return; } - err = TestThReadsPrimary4IntensityAttributeFromDut_36(); + err = TestThReadsPrimary4IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs4OrMore_36(); break; case 37: - ChipLogProgress(chipTool, " ***** Test Step 37 : TH reads Primary5X attribute from DUT\n"); - if (ShouldSkip("CC.S.A0024")) { + ChipLogProgress(chipTool, + " ***** Test Step 37 : TH reads Primary5X attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 5 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0024")) { NextTest(); return; } - err = TestThReadsPrimary5XAttributeFromDut_37(); + err = TestThReadsPrimary5XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs5OrMore_37(); break; case 38: - ChipLogProgress(chipTool, " ***** Test Step 38 : TH reads Primary5Y attribute from DUT\n"); - if (ShouldSkip("CC.S.A0025")) { + ChipLogProgress(chipTool, + " ***** Test Step 38 : TH reads Primary5Y attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 5 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0025")) { NextTest(); return; } - err = TestThReadsPrimary5YAttributeFromDut_38(); + err = TestThReadsPrimary5YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs5OrMore_38(); break; case 39: - ChipLogProgress(chipTool, " ***** Test Step 39 : TH reads Primary5Intensity attribute from DUT\n"); - if (ShouldSkip("CC.S.A0026")) { + ChipLogProgress(chipTool, + " ***** Test Step 39 : TH reads Primary5Intensity attribute from DUT and Verify that the DUT response contains an " + "uint8 if NumberOfPrimaries is 5 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0026")) { NextTest(); return; } - err = TestThReadsPrimary5IntensityAttributeFromDut_39(); + err = TestThReadsPrimary5IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs5OrMore_39(); break; case 40: - ChipLogProgress(chipTool, " ***** Test Step 40 : TH reads Primary6X attribute from DUT\n"); - if (ShouldSkip("CC.S.A0028")) { + ChipLogProgress(chipTool, + " ***** Test Step 40 : TH reads Primary6X attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 6 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0028")) { NextTest(); return; } - err = TestThReadsPrimary6XAttributeFromDut_40(); + err = TestThReadsPrimary6XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs6OrMore_40(); break; case 41: - ChipLogProgress(chipTool, " ***** Test Step 41 : TH reads Primary6Y attribute from DUT\n"); - if (ShouldSkip("CC.S.A0029")) { + ChipLogProgress(chipTool, + " ***** Test Step 41 : TH reads Primary6Y attribute from DUT and Verify that the DUT response contains an uint16 " + "[Min:0 Max:0xfeff] if NumberOfPrimaries is 6 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A0029")) { NextTest(); return; } - err = TestThReadsPrimary6YAttributeFromDut_41(); + err = TestThReadsPrimary6YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs6OrMore_41(); break; case 42: - ChipLogProgress(chipTool, " ***** Test Step 42 : TH reads Primary6Intensity attribute from DUT\n"); - if (ShouldSkip("CC.S.A002a")) { + ChipLogProgress(chipTool, + " ***** Test Step 42 : TH reads Primary6Intensity attribute from DUT and Verify that the DUT response contains an " + "uint8 if NumberOfPrimaries is 6 or more\n"); + if (ShouldSkip("PICS_USER_PROMPT && CC.S.A002a")) { NextTest(); return; } - err = TestThReadsPrimary6IntensityAttributeFromDut_42(); + err = TestThReadsPrimary6IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs6OrMore_42(); break; case 43: ChipLogProgress(chipTool, " ***** Test Step 43 : TH reads WhitePointX attribute from DUT\n"); @@ -4539,436 +4303,184 @@ class Test_TC_CC_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsPrimary1XAttributeFromDut_25() + CHIP_ERROR + TestThReadsPrimary1XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs1OrMore_25() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary1XWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary1X attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary1X", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary1X", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary1X", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary1YAttributeFromDut_26() + CHIP_ERROR + TestThReadsPrimary1YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs1OrMore_26() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary1YWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary1Y attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary1Y", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary1Y", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary1Y", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary1IntensityAttributeFromDut_27() + CHIP_ERROR + TestThReadsPrimary1IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs1OrMore_27() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary1IntensityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary1Intensity attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - if (value != nil) { - - VerifyOrReturn(CheckConstraintType("primary1Intensity", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("primary1Intensity", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary1Intensity", [value unsignedCharValue], 255U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary2XAttributeFromDut_28() + CHIP_ERROR + TestThReadsPrimary2XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs2OrMore_28() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary2XWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary2X attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary2X", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary2X", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary2X", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary2YAttributeFromDut_29() + CHIP_ERROR + TestThReadsPrimary2YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs2OrMore_29() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary2YWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary2Y attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary2Y", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary2Y", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary2Y", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary2IntensityAttributeFromDut_30() + CHIP_ERROR + TestThReadsPrimary2IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs2OrMore_30() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary2IntensityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary2Intensity attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - if (value != nil) { - - VerifyOrReturn(CheckConstraintType("primary2Intensity", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("primary2Intensity", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary2Intensity", [value unsignedCharValue], 255U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary3XAttributeFromDut_31() + CHIP_ERROR + TestThReadsPrimary3XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs3OrMore_31() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary3XWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary3X attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary3X", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary3X", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary3X", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary3YAttributeFromDut_32() + CHIP_ERROR + TestThReadsPrimary3YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs3OrMore_32() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary3YWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary3Y attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary3Y", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary3Y", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary3Y", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary3IntensityAttributeFromDut_33() + CHIP_ERROR + TestThReadsPrimary3IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs3OrMore_33() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary3IntensityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary3Intensity attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - if (value != nil) { - - VerifyOrReturn(CheckConstraintType("primary3Intensity", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("primary3Intensity", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary3Intensity", [value unsignedCharValue], 255U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary4XAttributeFromDut_34() + CHIP_ERROR + TestThReadsPrimary4XAttributeFromDutVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs4OrMore_34() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary4XWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary4X attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary4X", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary4X", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary4X", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary4YAttributeFromDut_35() + CHIP_ERROR + TestThReadsPrimary4YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs4OrMore_35() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary4YWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary4Y attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary4Y", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary4Y", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary4Y", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary4IntensityAttributeFromDut_36() + CHIP_ERROR + TestThReadsPrimary4IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs4OrMore_36() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary4IntensityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary4Intensity attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - if (value != nil) { - - VerifyOrReturn(CheckConstraintType("primary4Intensity", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("primary4Intensity", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary4Intensity", [value unsignedCharValue], 255U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary5XAttributeFromDut_37() + CHIP_ERROR + TestThReadsPrimary5XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs5OrMore_37() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary5XWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary5X attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary5X", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary5X", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary5X", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary5YAttributeFromDut_38() + CHIP_ERROR + TestThReadsPrimary5YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs5OrMore_38() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary5YWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary5Y attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary5Y", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary5Y", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary5Y", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary5IntensityAttributeFromDut_39() + CHIP_ERROR + TestThReadsPrimary5IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs5OrMore_39() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary5IntensityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary5Intensity attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - if (value != nil) { - - VerifyOrReturn(CheckConstraintType("primary5Intensity", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("primary5Intensity", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary5Intensity", [value unsignedCharValue], 255U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary6XAttributeFromDut_40() + CHIP_ERROR + TestThReadsPrimary6XAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs6OrMore_40() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary6XWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary6X attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary6X", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary6X", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary6X", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary6YAttributeFromDut_41() + CHIP_ERROR + TestThReadsPrimary6YAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint16Min0Max0xfeffIfNumberOfPrimariesIs6OrMore_41() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary6YWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary6Y attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("primary6Y", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("primary6Y", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary6Y", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsPrimary6IntensityAttributeFromDut_42() + CHIP_ERROR + TestThReadsPrimary6IntensityAttributeFromDutAndVerifyThatTheDutResponseContainsAnUint8IfNumberOfPrimariesIs6OrMore_42() { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributePrimary6IntensityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Primary6Intensity attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - if (value != nil) { - - VerifyOrReturn(CheckConstraintType("primary6Intensity", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("primary6Intensity", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("primary6Intensity", [value unsignedCharValue], 255U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } CHIP_ERROR TestThReadsWhitePointXAttributeFromDut_43() @@ -5234,11 +4746,11 @@ class Test_TC_CC_2_1 : public TestCommandBridge { } }; -class Test_TC_CC_3_1 : public TestCommandBridge { +class Test_TC_CC_3_2 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_3_1() - : TestCommandBridge("Test_TC_CC_3_1") + Test_TC_CC_3_2() + : TestCommandBridge("Test_TC_CC_3_2") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); @@ -5248,7 +4760,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_CC_3_1() {} + ~Test_TC_CC_3_2() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -5256,11 +4768,11 @@ class Test_TC_CC_3_1 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_3_1\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_3_2\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_3_1\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_3_2\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -5286,207 +4798,181 @@ class Test_TC_CC_3_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Reads CurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestReadsCurrentHueAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Move to hue shortest distance command\n"); - if (ShouldSkip("CC.S.C00.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Move hue up command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C01.Rsp")) { NextTest(); return; } - err = TestMoveToHueShortestDistanceCommand_4(); + err = TestMoveHueUpCommand_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 290ms\n"); - err = TestWait290ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 3000ms\n"); + err = TestWait3000ms_5(); break; case 6: ChipLogProgress( chipTool, " ***** Test Step 6 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 295ms\n"); - err = TestWait295ms_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 2000\n"); + err = TestWait2000_7(); break; case 8: ChipLogProgress( chipTool, " ***** Test Step 8 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 300ms\n"); - err = TestWait300ms_9(); + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 3000\n"); + err = TestWait3000_9(); break; case 10: ChipLogProgress( chipTool, " ***** Test Step 10 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Move to hue longest distance command\n"); - if (ShouldSkip("CC.S.C00.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 11 : Move hue stop command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C01.Rsp")) { NextTest(); return; } - err = TestMoveToHueLongestDistanceCommand_11(); + err = TestMoveHueStopCommand_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 290ms\n"); - err = TestWait290ms_12(); + ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 1000ms\n"); + err = TestWait1000ms_12(); break; case 13: ChipLogProgress( chipTool, " ***** Test Step 13 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 295ms\n"); - err = TestWait295ms_14(); + ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 1000ms\n"); + err = TestWait1000ms_14(); break; case 15: ChipLogProgress( chipTool, " ***** Test Step 15 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 300ms\n"); - err = TestWait300ms_16(); - break; - case 17: - ChipLogProgress( - chipTool, " ***** Test Step 17 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Move hue down command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C01.Rsp")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_17(); + err = TestMoveHueDownCommand_16(); + break; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Wait 1000ms\n"); + err = TestWait1000ms_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Move to hue up command\n"); - if (ShouldSkip("CC.S.C00.Rsp")) { + ChipLogProgress( + chipTool, " ***** Test Step 18 : Check current hue attribute value matched the value sent by the last command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } - err = TestMoveToHueUpCommand_18(); + err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 290ms\n"); - err = TestWait290ms_19(); + ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 1000ms\n"); + err = TestWait1000ms_19(); break; case 20: ChipLogProgress( chipTool, " ***** Test Step 20 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_20(); break; case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Wait 295ms\n"); - err = TestWait295ms_21(); + ChipLogProgress(chipTool, " ***** Test Step 21 : Wait 1000ms\n"); + err = TestWait1000ms_21(); break; case 22: ChipLogProgress( chipTool, " ***** Test Step 22 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_22(); break; case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Wait 300ms\n"); - err = TestWait300ms_23(); - break; - case 24: - ChipLogProgress( - chipTool, " ***** Test Step 24 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 23 : Move hue stop command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C01.Rsp")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_24(); + err = TestMoveHueStopCommand_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : Wait 1000ms\n"); + err = TestWait1000ms_24(); break; case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Move to hue down command\n"); - if (ShouldSkip("CC.S.C00.Rsp")) { + ChipLogProgress( + chipTool, " ***** Test Step 25 : Check current hue attribute value matched the value sent by the last command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } - err = TestMoveToHueDownCommand_25(); + err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_25(); break; case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Wait 290ms\n"); - err = TestWait290ms_26(); + ChipLogProgress(chipTool, " ***** Test Step 26 : Wait 1000ms\n"); + err = TestWait1000ms_26(); break; case 27: ChipLogProgress( chipTool, " ***** Test Step 27 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_27(); break; case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Wait 295ms\n"); - err = TestWait295ms_28(); + ChipLogProgress(chipTool, " ***** Test Step 28 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_28(); break; case 29: - ChipLogProgress( - chipTool, " ***** Test Step 29 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_29(); - break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Wait 300ms\n"); - err = TestWait300ms_30(); - break; - case 31: - ChipLogProgress( - chipTool, " ***** Test Step 31 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_31(); - break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_32(); - break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_33(); + ChipLogProgress(chipTool, " ***** Test Step 29 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_29(); break; } @@ -5589,18 +5075,6 @@ class Test_TC_CC_3_1 : public TestCommandBridge { case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 31: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 32: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 33: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -5614,7 +5088,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 34; + const uint16_t mTestCount = 30; chip::Optional mNodeId; chip::Optional mCluster; @@ -5690,7 +5164,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveToHueShortestDistanceCommand_4() + CHIP_ERROR TestMoveHueUpCommand_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -5698,28 +5172,27 @@ class Test_TC_CC_3_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterMoveToHueParams alloc] init]; - params.hue = [NSNumber numberWithUnsignedChar:150U]; - params.direction = [NSNumber numberWithUnsignedChar:0U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; + __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:1U]; + params.rate = [NSNumber numberWithUnsignedChar:50U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move to hue shortest distance command Error: %@", err); + [cluster moveHueWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Move hue up command Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait290ms_5() + CHIP_ERROR TestWait3000ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 3000UL; return WaitForMs("alpha", value); } @@ -5746,10 +5219,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_7() + CHIP_ERROR TestWait2000_7() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 2000UL; return WaitForMs("alpha", value); } @@ -5776,10 +5249,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_9() + CHIP_ERROR TestWait3000_9() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 3000UL; return WaitForMs("alpha", value); } @@ -5806,7 +5279,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveToHueLongestDistanceCommand_11() + CHIP_ERROR TestMoveHueStopCommand_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -5814,30 +5287,30 @@ class Test_TC_CC_3_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterMoveToHueParams alloc] init]; - params.hue = [NSNumber numberWithUnsignedChar:200U]; - params.direction = [NSNumber numberWithUnsignedChar:1U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; + __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:0U]; + params.rate = [NSNumber numberWithUnsignedChar:50U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move to hue longest distance command Error: %@", err); + [cluster moveHueWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Move hue stop command Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait290ms_12() + CHIP_ERROR TestWait1000ms_12() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull CurrentHueValue; CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_13() { @@ -5855,6 +5328,9 @@ class Test_TC_CC_3_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + { + CurrentHueValue = value; + } NextTest(); }]; @@ -5862,10 +5338,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_14() + CHIP_ERROR TestWait1000ms_14() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } @@ -5882,9 +5358,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentHue", actualValue, CurrentHueValue)); + } NextTest(); }]; @@ -5892,14 +5369,39 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_16() + CHIP_ERROR TestMoveHueDownCommand_16() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:3U]; + params.rate = [NSNumber numberWithUnsignedChar:50U]; + params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; + params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; + [cluster moveHueWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Move hue down command Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestWait1000ms_17() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_17() + CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -5922,36 +5424,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveToHueUpCommand_18() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveToHueParams alloc] init]; - params.hue = [NSNumber numberWithUnsignedChar:250U]; - params.direction = [NSNumber numberWithUnsignedChar:2U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move to hue up command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait290ms_19() + CHIP_ERROR TestWait1000ms_19() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } @@ -5978,10 +5454,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_21() + CHIP_ERROR TestWait1000ms_21() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } @@ -6008,37 +5484,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_23() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_24() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestMoveToHueDownCommand_25() + CHIP_ERROR TestMoveHueStopCommand_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6046,62 +5492,32 @@ class Test_TC_CC_3_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterMoveToHueParams alloc] init]; - params.hue = [NSNumber numberWithUnsignedChar:225U]; - params.direction = [NSNumber numberWithUnsignedChar:3U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; + __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:0U]; + params.rate = [NSNumber numberWithUnsignedChar:50U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move to hue down command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait290ms_26() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_27() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + [cluster moveHueWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Move hue stop command Error: %@", err); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_28() + CHIP_ERROR TestWait1000ms_24() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull CurrentHueValueAfterStopmode; - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_29() + CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6117,6 +5533,9 @@ class Test_TC_CC_3_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + { + CurrentHueValueAfterStopmode = value; + } NextTest(); }]; @@ -6124,14 +5543,14 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_30() + CHIP_ERROR TestWait1000ms_26() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_31() + CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6144,9 +5563,10 @@ class Test_TC_CC_3_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentHue", actualValue, CurrentHueValueAfterStopmode)); + } NextTest(); }]; @@ -6154,7 +5574,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_32() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -6171,7 +5591,7 @@ class Test_TC_CC_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_33() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_29() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -6194,11 +5614,11 @@ class Test_TC_CC_3_1 : public TestCommandBridge { } }; -class Test_TC_CC_3_2 : public TestCommandBridge { +class Test_TC_CC_3_3 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_3_2() - : TestCommandBridge("Test_TC_CC_3_2") + Test_TC_CC_3_3() + : TestCommandBridge("Test_TC_CC_3_3") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); @@ -6208,7 +5628,7 @@ class Test_TC_CC_3_2 : public TestCommandBridge { } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_CC_3_2() {} + ~Test_TC_CC_3_3() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -6216,11 +5636,11 @@ class Test_TC_CC_3_2 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_3_2\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_3_3\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_3_2\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_3_3\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -6246,207 +5666,59 @@ class Test_TC_CC_3_2 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Reads CurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A0000")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } err = TestReadsCurrentHueAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Move hue up command\n"); - if (ShouldSkip("CC.S.C01.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step hue up command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C02.Rsp")) { NextTest(); return; } - err = TestMoveHueUpCommand_4(); + err = TestStepHueUpCommand_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 140ms\n"); - err = TestWait140ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1000ms\n"); + err = TestWait1000ms_5(); break; case 6: - ChipLogProgress( - chipTool, " ***** Test Step 6 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Over TransitionTime,Read CurrentHue attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_6(); + err = TestOverTransitionTimeReadCurrentHueAttributeFromDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 145ms\n"); - err = TestWait145ms_7(); - break; - case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_8(); - break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 150ms\n"); - err = TestWait150ms_9(); - break; - case 10: - ChipLogProgress( - chipTool, " ***** Test Step 10 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Move hue stop command\n"); - if (ShouldSkip("CC.S.C01.Rsp")) { - NextTest(); - return; - } - err = TestMoveHueStopCommand_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 140ms\n"); - err = TestWait140ms_12(); - break; - case 13: - ChipLogProgress( - chipTool, " ***** Test Step 13 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_13(); - break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 145ms\n"); - err = TestWait145ms_14(); - break; - case 15: - ChipLogProgress( - chipTool, " ***** Test Step 15 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_15(); - break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 150ms\n"); - err = TestWait150ms_16(); - break; - case 17: - ChipLogProgress( - chipTool, " ***** Test Step 17 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_17(); - break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Move hue down command\n"); - if (ShouldSkip("CC.S.C01.Rsp")) { - NextTest(); - return; - } - err = TestMoveHueDownCommand_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 140ms\n"); - err = TestWait140ms_19(); - break; - case 20: - ChipLogProgress( - chipTool, " ***** Test Step 20 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_20(); - break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Wait 145ms\n"); - err = TestWait145ms_21(); - break; - case 22: - ChipLogProgress( - chipTool, " ***** Test Step 22 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_22(); - break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Wait 150ms\n"); - err = TestWait150ms_23(); - break; - case 24: - ChipLogProgress( - chipTool, " ***** Test Step 24 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_24(); - break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Move hue stop command\n"); - if (ShouldSkip("CC.S.C01.Rsp")) { - NextTest(); - return; - } - err = TestMoveHueStopCommand_25(); - break; - case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Wait 140ms\n"); - err = TestWait140ms_26(); - break; - case 27: - ChipLogProgress( - chipTool, " ***** Test Step 27 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { - NextTest(); - return; - } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_27(); - break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Wait 145ms\n"); - err = TestWait145ms_28(); - break; - case 29: - ChipLogProgress( - chipTool, " ***** Test Step 29 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Step hue down command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C02.Rsp")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_29(); + err = TestStepHueDownCommand_7(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Wait 150ms\n"); - err = TestWait150ms_30(); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 1000ms\n"); + err = TestWait1000ms_8(); break; - case 31: - ChipLogProgress( - chipTool, " ***** Test Step 31 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Over TransitionTime,Read CurrentHue attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0000")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_31(); + err = TestOverTransitionTimeReadCurrentHueAttributeFromDut_9(); break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_32(); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_10(); break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_33(); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_11(); break; } @@ -6495,72 +5767,6 @@ class Test_TC_CC_3_2 : public TestCommandBridge { case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 26: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 27: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 29: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 31: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 32: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 33: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -6574,7 +5780,7 @@ class Test_TC_CC_3_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 34; + const uint16_t mTestCount = 12; chip::Optional mNodeId; chip::Optional mCluster; @@ -6650,7 +5856,7 @@ class Test_TC_CC_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveHueUpCommand_4() + CHIP_ERROR TestStepHueUpCommand_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6658,14 +5864,15 @@ class Test_TC_CC_3_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:1U]; - params.rate = [NSNumber numberWithUnsignedChar:50U]; + __auto_type * params = [[MTRColorControlClusterStepHueParams alloc] init]; + params.stepMode = [NSNumber numberWithUnsignedChar:1U]; + params.stepSize = [NSNumber numberWithUnsignedChar:5U]; + params.transitionTime = [NSNumber numberWithUnsignedChar:5U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveHueWithParams:params + [cluster stepHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move hue up command Error: %@", err); + NSLog(@"Step hue up command Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -6675,74 +5882,14 @@ class Test_TC_CC_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait140ms_5() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_6() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait145ms_7() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_8() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait150ms_9() + CHIP_ERROR TestWait1000ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_10() + CHIP_ERROR TestOverTransitionTimeReadCurrentHueAttributeFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6751,12 +5898,12 @@ class Test_TC_CC_3_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime,Read CurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 5U)); VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); NextTest(); @@ -6765,7 +5912,7 @@ class Test_TC_CC_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveHueStopCommand_11() + CHIP_ERROR TestStepHueDownCommand_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6773,14 +5920,15 @@ class Test_TC_CC_3_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:0U]; - params.rate = [NSNumber numberWithUnsignedChar:50U]; + __auto_type * params = [[MTRColorControlClusterStepHueParams alloc] init]; + params.stepMode = [NSNumber numberWithUnsignedChar:3U]; + params.stepSize = [NSNumber numberWithUnsignedChar:5U]; + params.transitionTime = [NSNumber numberWithUnsignedChar:5U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveHueWithParams:params + [cluster stepHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move hue stop command Error: %@", err); + NSLog(@"Step hue down command Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -6790,14 +5938,14 @@ class Test_TC_CC_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait140ms_12() + CHIP_ERROR TestWait1000ms_8() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_13() + CHIP_ERROR TestOverTransitionTimeReadCurrentHueAttributeFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -6806,13 +5954,13 @@ class Test_TC_CC_3_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime,Read CurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 249U)); NextTest(); }]; @@ -6820,363 +5968,73 @@ class Test_TC_CC_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait145ms_14() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_15() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_10() { MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; + MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); + [cluster offWithCompletionHandler:^(NSError * _Nullable err) { + NSLog(@"Turn off light that we turned on Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait150ms_16() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_17() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_11() { MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; + MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeOnOffWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Check on/off attribute value is false after off command Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("OnOff", actualValue, 0)); + } NextTest(); }]; return CHIP_NO_ERROR; } +}; - CHIP_ERROR TestMoveHueDownCommand_18() +class Test_TC_CC_4_1 : public TestCommandBridge { +public: + // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced + Test_TC_CC_4_1() + : TestCommandBridge("Test_TC_CC_4_1") + , mTestIndex(0) { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:3U]; - params.rate = [NSNumber numberWithUnsignedChar:50U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move hue down command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } + // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - CHIP_ERROR TestWait140ms_19() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs("alpha", value); - } + ~Test_TC_CC_4_1() {} - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_20() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait145ms_21() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_22() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait150ms_23() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_24() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestMoveHueStopCommand_25() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveHueParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:0U]; - params.rate = [NSNumber numberWithUnsignedChar:50U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move hue stop command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait140ms_26() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_27() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait145ms_28() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_29() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait150ms_30() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_31() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_32() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster offWithCompletionHandler:^(NSError * _Nullable err) { - NSLog(@"Turn off light that we turned on Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_33() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeOnOffWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check on/off attribute value is false after off command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("OnOff", actualValue, 0)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CC_3_3 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_3_3() - : TestCommandBridge("Test_TC_CC_3_3") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_CC_3_3() {} - - /////////// TestCommand Interface ///////// - void NextTest() override + /////////// TestCommand Interface ///////// + void NextTest() override { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_3_3\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_4_1\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_3_3\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_4_1\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -7201,60 +6059,67 @@ class Test_TC_CC_3_3 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Reads CurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Check Saturation attribute value matched before any change\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestReadsCurrentHueAttributeFromDut_3(); + err = TestCheckSaturationAttributeValueMatchedBeforeAnyChange_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step hue up command\n"); - if (ShouldSkip("CC.S.C02.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Move to saturation command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C03.Rsp")) { NextTest(); return; } - err = TestStepHueUpCommand_4(); + err = TestMoveToSaturationCommand_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1000ms\n"); - err = TestWait1000ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 500ms\n"); + err = TestWait500ms_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Over TransitionTime,Read CurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, + " ***** Test Step 6 : Check current saturation attribute value matched the value sent by the last command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestOverTransitionTimeReadCurrentHueAttributeFromDut_6(); + err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step hue down command\n"); - if (ShouldSkip("CC.S.C02.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 500ms\n"); + err = TestWait500ms_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Check current saturation attribute value matched the value sent by the last command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestStepHueDownCommand_7(); - break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 1000ms\n"); - err = TestWait1000ms_8(); + err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Over TransitionTime,Read CurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 1000ms\n"); + err = TestWait1000ms_9(); + break; + case 10: + ChipLogProgress(chipTool, + " ***** Test Step 10 : Check current saturation attribute value matched the value sent by the last command\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestOverTransitionTimeReadCurrentHueAttributeFromDut_9(); - break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_10(); + err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_12(); break; } @@ -7303,6 +6168,9 @@ class Test_TC_CC_3_3 : public TestCommandBridge { case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -7316,7 +6184,7 @@ class Test_TC_CC_3_3 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 12; + const uint16_t mTestCount = 13; chip::Optional mNodeId; chip::Optional mCluster; @@ -7369,7 +6237,7 @@ class Test_TC_CC_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsCurrentHueAttributeFromDut_3() + CHIP_ERROR TestCheckSaturationAttributeValueMatchedBeforeAnyChange_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -7377,14 +6245,14 @@ class Test_TC_CC_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentHue attribute from DUT Error: %@", err); + [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Check Saturation attribute value matched before any change Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); NextTest(); }]; @@ -7392,7 +6260,7 @@ class Test_TC_CC_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepHueUpCommand_4() + CHIP_ERROR TestMoveToSaturationCommand_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -7400,32 +6268,31 @@ class Test_TC_CC_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterStepHueParams alloc] init]; - params.stepMode = [NSNumber numberWithUnsignedChar:1U]; - params.stepSize = [NSNumber numberWithUnsignedChar:5U]; - params.transitionTime = [NSNumber numberWithUnsignedChar:5U]; + __auto_type * params = [[MTRColorControlClusterMoveToSaturationParams alloc] init]; + params.saturation = [NSNumber numberWithUnsignedChar:90U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:15U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster stepHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step hue up command Error: %@", err); + [cluster moveToSaturationWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Move to saturation command Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait1000ms_5() + CHIP_ERROR TestWait500ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 1000UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestOverTransitionTimeReadCurrentHueAttributeFromDut_6() + CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -7433,14 +6300,14 @@ class Test_TC_CC_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Over TransitionTime,Read CurrentHue attribute from DUT Error: %@", err); + [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 5U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); NextTest(); }]; @@ -7448,7 +6315,14 @@ class Test_TC_CC_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepHueDownCommand_7() + CHIP_ERROR TestWait500ms_7() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 500UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -7456,32 +6330,29 @@ class Test_TC_CC_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterStepHueParams alloc] init]; - params.stepMode = [NSNumber numberWithUnsignedChar:3U]; - params.stepSize = [NSNumber numberWithUnsignedChar:5U]; - params.transitionTime = [NSNumber numberWithUnsignedChar:5U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster stepHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step hue down command Error: %@", err); + [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait1000ms_8() + CHIP_ERROR TestWait1000ms_9() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestOverTransitionTimeReadCurrentHueAttributeFromDut_9() + CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -7489,14 +6360,15 @@ class Test_TC_CC_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Over TransitionTime,Read CurrentHue attribute from DUT Error: %@", err); + [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 249U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 90U)); + } NextTest(); }]; @@ -7504,7 +6376,7 @@ class Test_TC_CC_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_10() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -7521,7 +6393,7 @@ class Test_TC_CC_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_11() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -7544,11 +6416,11 @@ class Test_TC_CC_3_3 : public TestCommandBridge { } }; -class Test_TC_CC_4_1 : public TestCommandBridge { +class Test_TC_CC_4_2 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_4_1() - : TestCommandBridge("Test_TC_CC_4_1") + Test_TC_CC_4_2() + : TestCommandBridge("Test_TC_CC_4_2") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); @@ -7558,7 +6430,7 @@ class Test_TC_CC_4_1 : public TestCommandBridge { } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_CC_4_1() {} + ~Test_TC_CC_4_2() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -7566,11 +6438,11 @@ class Test_TC_CC_4_1 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_4_1\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_4_2\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_4_1\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_4_2\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -7595,710 +6467,232 @@ class Test_TC_CC_4_1 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Check Saturation attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckSaturationAttributeValueMatchedBeforeAnyChange_3(); + err = TestThReadsCurrentSaturationAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Move to saturation command\n"); - if (ShouldSkip("CC.S.C03.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends MoveSaturation command to DUT with MoveMode Up\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C04.Rsp")) { NextTest(); return; } - err = TestMoveToSaturationCommand_4(); + err = TestThSendsMoveSaturationCommandToDutWithMoveModeUp_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 6ms\n"); - err = TestWait6ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1000ms\n"); + err = TestWait1000ms_5(); break; case 6: - ChipLogProgress(chipTool, - " ***** Test Step 6 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads CurrentSaturation attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_6(); + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 8ms\n"); - err = TestWait8ms_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 1000ms\n"); + err = TestWait1000ms_7(); break; case 8: - ChipLogProgress(chipTool, - " ***** Test Step 8 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads CurrentSaturation attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8(); + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 10ms\n"); - err = TestWait10ms_9(); + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 1000ms\n"); + err = TestWait1000ms_9(); break; case 10: - ChipLogProgress(chipTool, - " ***** Test Step 10 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads CurrentSaturation attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10(); + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends MoveSaturation command to DUT with MoveMode Down\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C04.Rsp")) { + NextTest(); + return; + } + err = TestThSendsMoveSaturationCommandToDutWithMoveModeDown_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_12(); + ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 1000ms\n"); + err = TestWait1000ms_12(); break; - } - - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } - } - - void OnStatusUpdate(const chip::app::StatusIB & status) override - { - switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads CurrentSaturation attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { + NextTest(); + return; + } + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_13(); break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 1000ms\n"); + err = TestWait1000ms_14(); break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads CurrentSaturation attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { + NextTest(); + return; + } + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_15(); break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 1000ms\n"); + err = TestWait1000ms_16(); break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads CurrentSaturation attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { + NextTest(); + return; + } + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_17(); break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 18: + ChipLogProgress(chipTool, + " ***** Test Step 18 : TH sends MoveSaturation command to DUT with MoveMode Up to the Maximum allowed " + "Saturation\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C04.Rsp")) { + NextTest(); + return; + } + err = TestThSendsMoveSaturationCommandToDutWithMoveModeUpToTheMaximumAllowedSaturation_18(); break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 1000ms\n"); + err = TestWait1000ms_19(); break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { + NextTest(); + return; + } + err = TestThReadsCurrentSaturationAttributeFromDut_20(); break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 21: + ChipLogProgress(chipTool, + " ***** Test Step 21 : TH sends MoveSaturation command to DUT with MoveMode Stop before Saturation reaches the " + "Maximum allowed.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C04.Rsp")) { + NextTest(); + return; + } + err = TestThSendsMoveSaturationCommandToDutWithMoveModeStopBeforeSaturationReachesTheMaximumAllowed_21(); break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Wait 1000ms\n"); + err = TestWait1000ms_22(); break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads CurrentSaturation attribute from DUT.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { + NextTest(); + return; + } + err = TestThReadsCurrentSaturationAttributeFromDut_23(); break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : Wait 1000ms\n"); + err = TestWait1000ms_24(); break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : CurrentSaturation value Stops incrementing\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { + NextTest(); + return; + } + err = TestCurrentSaturationValueStopsIncrementing_25(); break; - } - - // Go on to the next test. - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 13; - - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() - { - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee("alpha", value); - } - - CHIP_ERROR TestTurnOnLightForColorControlTests_1() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster onWithCompletionHandler:^(NSError * _Nullable err) { - NSLog(@"Turn on light for color control tests Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeOnOffWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check on/off attribute value is true after on command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("OnOff", actualValue, 1)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestCheckSaturationAttributeValueMatchedBeforeAnyChange_3() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check Saturation attribute value matched before any change Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestMoveToSaturationCommand_4() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveToSaturationParams alloc] init]; - params.saturation = [NSNumber numberWithUnsignedChar:90U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:10U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveToSaturationWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move to saturation command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait6ms_5() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 6UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_6() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait8ms_7() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 8UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait10ms_9() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_11() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster offWithCompletionHandler:^(NSError * _Nullable err) { - NSLog(@"Turn off light that we turned on Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_12() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeOnOffWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check on/off attribute value is false after off command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("OnOff", actualValue, 0)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CC_4_2 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_4_2() - : TestCommandBridge("Test_TC_CC_4_2") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_CC_4_2() {} - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_4_2\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_4_2\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // but before our function call returns, we won't end up with an - // incorrect mTestIndex value observed when we get the response. - switch (mTestIndex++) { - case 0: - ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n"); - err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); - break; - case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Turn on light for color control tests\n"); - err = TestTurnOnLightForColorControlTests_1(); - break; - case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Check on/off attribute value is true after on command\n"); - err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); - break; - case 3: - ChipLogProgress( - chipTool, " ***** Test Step 3 : Check Saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckSaturationAttributeValueMatchedTheValueSentByTheLastCommand_3(); - break; - case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Move saturation up command\n"); - if (ShouldSkip("CC.S.C04.Rsp")) { - NextTest(); - return; - } - err = TestMoveSaturationUpCommand_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 40ms\n"); - err = TestWait40ms_5(); - break; - case 6: - ChipLogProgress(chipTool, - " ***** Test Step 6 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_6(); - break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 45ms\n"); - err = TestWait45ms_7(); - break; - case 8: - ChipLogProgress(chipTool, - " ***** Test Step 8 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8(); - break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 50ms\n"); - err = TestWait50ms_9(); - break; - case 10: - ChipLogProgress(chipTool, - " ***** Test Step 10 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Move saturation down command\n"); - if (ShouldSkip("CC.S.C04.Rsp")) { - NextTest(); - return; - } - err = TestMoveSaturationDownCommand_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 40ms\n"); - err = TestWait40ms_12(); - break; - case 13: - ChipLogProgress(chipTool, - " ***** Test Step 13 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_13(); - break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 45ms\n"); - err = TestWait45ms_14(); - break; - case 15: - ChipLogProgress(chipTool, - " ***** Test Step 15 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_15(); - break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 50ms\n"); - err = TestWait50ms_16(); - break; - case 17: - ChipLogProgress(chipTool, - " ***** Test Step 17 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_17(); - break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Move saturation up command\n"); - if (ShouldSkip("CC.S.C04.Rsp")) { - NextTest(); - return; - } - err = TestMoveSaturationUpCommand_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 40ms\n"); - err = TestWait40ms_19(); - break; - case 20: - ChipLogProgress(chipTool, - " ***** Test Step 20 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_20(); - break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Wait 45ms\n"); - err = TestWait45ms_21(); - break; - case 22: - ChipLogProgress(chipTool, - " ***** Test Step 22 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_22(); - break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Wait 50ms\n"); - err = TestWait50ms_23(); - break; - case 24: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 24 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_24(); - break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Move saturation stop command\n"); - if (ShouldSkip("CC.S.C04.Rsp")) { + " ***** Test Step 26 : TH sends MoveSaturation command to DUT with MoveMode Down to the Minimum allowed " + "Saturation\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C04.Rsp")) { NextTest(); return; } - err = TestMoveSaturationStopCommand_25(); - break; - case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Wait 40ms\n"); - err = TestWait40ms_26(); + err = TestThSendsMoveSaturationCommandToDutWithMoveModeDownToTheMinimumAllowedSaturation_26(); break; case 27: - ChipLogProgress(chipTool, - " ***** Test Step 27 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 27 : Wait 1000ms\n"); + err = TestWait1000ms_27(); + break; + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : TH reads CurrentSaturation attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_27(); - break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Wait 45ms\n"); - err = TestWait45ms_28(); + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_28(); break; case 29: - ChipLogProgress(chipTool, - " ***** Test Step 29 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 29 : Wait 1000ms\n"); + err = TestWait1000ms_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : TH reads CurrentSaturation attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_29(); - break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Wait 50ms\n"); - err = TestWait50ms_30(); + err = TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_30(); break; case 31: ChipLogProgress(chipTool, - " ***** Test Step 31 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + " ***** Test Step 31 : TH sends MoveSaturation command to DUT with MoveMode Stop before Saturation reaches the " + "Minimum allowed\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C04.Rsp")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_31(); + err = TestThSendsMoveSaturationCommandToDutWithMoveModeStopBeforeSaturationReachesTheMinimumAllowed_31(); break; case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Move saturation down command\n"); - if (ShouldSkip("CC.S.C04.Rsp")) { - NextTest(); - return; - } - err = TestMoveSaturationDownCommand_32(); + ChipLogProgress(chipTool, " ***** Test Step 32 : Wait 1000ms\n"); + err = TestWait1000ms_32(); break; case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Wait 40ms\n"); - err = TestWait40ms_33(); - break; - case 34: - ChipLogProgress(chipTool, - " ***** Test Step 34 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_34(); - break; - case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Wait 45ms\n"); - err = TestWait45ms_35(); - break; - case 36: - ChipLogProgress(chipTool, - " ***** Test Step 36 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_36(); - break; - case 37: - ChipLogProgress(chipTool, " ***** Test Step 37 : Wait 50ms\n"); - err = TestWait50ms_37(); - break; - case 38: - ChipLogProgress(chipTool, - " ***** Test Step 38 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_38(); - break; - case 39: - ChipLogProgress(chipTool, " ***** Test Step 39 : Move saturation stop command\n"); - if (ShouldSkip("CC.S.C04.Rsp")) { - NextTest(); - return; - } - err = TestMoveSaturationStopCommand_39(); - break; - case 40: - ChipLogProgress(chipTool, " ***** Test Step 40 : Wait 40ms\n"); - err = TestWait40ms_40(); - break; - case 41: - ChipLogProgress(chipTool, - " ***** Test Step 41 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { - NextTest(); - return; - } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_41(); - break; - case 42: - ChipLogProgress(chipTool, " ***** Test Step 42 : Wait 45ms\n"); - err = TestWait45ms_42(); - break; - case 43: - ChipLogProgress(chipTool, - " ***** Test Step 43 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 33 : TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_43(); + err = TestThReadsCurrentSaturationAttributeFromDut_33(); break; - case 44: - ChipLogProgress(chipTool, " ***** Test Step 44 : Wait 50ms\n"); - err = TestWait50ms_44(); + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Wait 1000ms\n"); + err = TestWait1000ms_34(); break; - case 45: - ChipLogProgress(chipTool, - " ***** Test Step 45 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : CurrentSaturation value Stops decrementing\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_45(); + err = TestCurrentSaturationValueStopsDecrementing_35(); break; - case 46: - ChipLogProgress(chipTool, " ***** Test Step 46 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_46(); + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_36(); break; - case 47: - ChipLogProgress(chipTool, " ***** Test Step 47 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_47(); + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_37(); break; } @@ -8425,36 +6819,6 @@ class Test_TC_CC_4_2 : public TestCommandBridge { case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 38: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 39: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 40: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 41: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 42: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 43: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 44: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 45: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 46: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 47: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -8468,7 +6832,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 48; + const uint16_t mTestCount = 38; chip::Optional mNodeId; chip::Optional mCluster; @@ -8521,7 +6885,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckSaturationAttributeValueMatchedTheValueSentByTheLastCommand_3() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8530,7 +6894,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check Saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8544,7 +6908,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationUpCommand_4() + CHIP_ERROR TestThSendsMoveSaturationCommandToDutWithMoveModeUp_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8554,12 +6918,12 @@ class Test_TC_CC_4_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveSaturationParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:1U]; - params.rate = [NSNumber numberWithUnsignedChar:5U]; + params.rate = [NSNumber numberWithUnsignedChar:15U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation up command Error: %@", err); + NSLog(@"TH sends MoveSaturation command to DUT with MoveMode Up Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8569,14 +6933,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_5() + CHIP_ERROR TestWait1000ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_6() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8585,7 +6949,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8599,14 +6963,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait45ms_7() + CHIP_ERROR TestWait1000ms_7() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8615,7 +6979,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8629,14 +6993,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_9() + CHIP_ERROR TestWait1000ms_9() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8645,7 +7009,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8659,7 +7023,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationDownCommand_11() + CHIP_ERROR TestThSendsMoveSaturationCommandToDutWithMoveModeDown_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8669,12 +7033,12 @@ class Test_TC_CC_4_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveSaturationParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:3U]; - params.rate = [NSNumber numberWithUnsignedChar:5U]; + params.rate = [NSNumber numberWithUnsignedChar:10U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation down command Error: %@", err); + NSLog(@"TH sends MoveSaturation command to DUT with MoveMode Down Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8684,14 +7048,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_12() + CHIP_ERROR TestWait1000ms_12() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_13() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8700,7 +7064,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8714,14 +7078,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait45ms_14() + CHIP_ERROR TestWait1000ms_14() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_15() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8730,7 +7094,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8744,14 +7108,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_16() + CHIP_ERROR TestWait1000ms_16() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_17() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8760,7 +7124,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8774,7 +7138,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationUpCommand_18() + CHIP_ERROR TestThSendsMoveSaturationCommandToDutWithMoveModeUpToTheMaximumAllowedSaturation_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8784,89 +7148,31 @@ class Test_TC_CC_4_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveSaturationParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:1U]; - params.rate = [NSNumber numberWithUnsignedChar:5U]; + params.rate = [NSNumber numberWithUnsignedChar:100U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveSaturationWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation up command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait40ms_19() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_20() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait45ms_21() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_22() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + [cluster + moveSaturationWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends MoveSaturation command to DUT with MoveMode Up to the Maximum allowed Saturation Error: %@", + err); - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_23() + CHIP_ERROR TestWait1000ms_19() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_24() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8875,7 +7181,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8889,7 +7195,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationStopCommand_25() + CHIP_ERROR TestThSendsMoveSaturationCommandToDutWithMoveModeStopBeforeSaturationReachesTheMaximumAllowed_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8899,12 +7205,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveSaturationParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:0U]; - params.rate = [NSNumber numberWithUnsignedChar:5U]; + params.rate = [NSNumber numberWithUnsignedChar:50U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation stop command Error: %@", err); + NSLog(@"TH sends MoveSaturation command to DUT with MoveMode Stop before Saturation reaches the " + @"Maximum allowed. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -8914,44 +7222,15 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_26() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_27() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait45ms_28() + CHIP_ERROR TestWait1000ms_22() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull CurrentSaturationStep4d; - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_29() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8960,13 +7239,16 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + { + CurrentSaturationStep4d = value; + } NextTest(); }]; @@ -8974,14 +7256,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_30() + CHIP_ERROR TestWait1000ms_24() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_31() + CHIP_ERROR TestCurrentSaturationValueStopsIncrementing_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -8990,13 +7272,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"CurrentSaturation value Stops incrementing Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, CurrentSaturationStep4d)); + } NextTest(); }]; @@ -9004,7 +7287,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationDownCommand_32() + CHIP_ERROR TestThSendsMoveSaturationCommandToDutWithMoveModeDownToTheMinimumAllowedSaturation_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9014,59 +7297,33 @@ class Test_TC_CC_4_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveSaturationParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:3U]; - params.rate = [NSNumber numberWithUnsignedChar:5U]; + params.rate = [NSNumber numberWithUnsignedChar:10U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveSaturationWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation down command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait40ms_33() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_34() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + [cluster + moveSaturationWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog( + @"TH sends MoveSaturation command to DUT with MoveMode Down to the Minimum allowed Saturation Error: %@", + err); - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait45ms_35() + CHIP_ERROR TestWait1000ms_27() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull CurrentSaturationStep5b; - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_36() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9075,13 +7332,16 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + { + CurrentSaturationStep5b = value; + } NextTest(); }]; @@ -9089,14 +7349,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_37() + CHIP_ERROR TestWait1000ms_29() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_38() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDutSeveralTimes_30() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9105,13 +7365,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + VerifyOrReturn( + CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], CurrentSaturationStep5b)); NextTest(); }]; @@ -9119,7 +7380,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationStopCommand_39() + CHIP_ERROR TestThSendsMoveSaturationCommandToDutWithMoveModeStopBeforeSaturationReachesTheMinimumAllowed_31() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9129,12 +7390,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveSaturationParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:0U]; - params.rate = [NSNumber numberWithUnsignedChar:5U]; + params.rate = [NSNumber numberWithUnsignedChar:10U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation stop command Error: %@", err); + NSLog(@"TH sends MoveSaturation command to DUT with MoveMode Stop before Saturation reaches the " + @"Minimum allowed Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9144,44 +7407,15 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_40() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_41() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait45ms_42() + CHIP_ERROR TestWait1000ms_32() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull CurrentSaturationStep5d; - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_43() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_33() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9190,13 +7424,16 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + { + CurrentSaturationStep5d = value; + } NextTest(); }]; @@ -9204,14 +7441,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_44() + CHIP_ERROR TestWait1000ms_34() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_45() + CHIP_ERROR TestCurrentSaturationValueStopsDecrementing_35() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9220,13 +7457,14 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"CurrentSaturation value Stops decrementing Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, CurrentSaturationStep5d)); + } NextTest(); }]; @@ -9234,7 +7472,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_46() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_36() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -9251,7 +7489,7 @@ class Test_TC_CC_4_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_47() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_37() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -9325,52 +7563,52 @@ class Test_TC_CC_4_3 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestReadsCurrentSaturationAttributeFromDut_3(); + err = TestThReadsCurrentSaturationAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step saturation up command\n"); - if (ShouldSkip("CC.S.C05.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends StepSaturation command to DUT with StepMode Up\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C05.Rsp")) { NextTest(); return; } - err = TestStepSaturationUpCommand_4(); + err = TestThSendsStepSaturationCommandToDutWithStepModeUp_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 10ms\n"); - err = TestWait10ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1000ms\n"); + err = TestWait1000ms_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Over TransitionTime,Read CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Over TransitionTime,TH read CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestOverTransitionTimeReadCurrentSaturationAttributeFromDut_6(); + err = TestOverTransitionTimeTHReadCurrentSaturationAttributeFromDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step saturation down command\n"); - if (ShouldSkip("CC.S.C05.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : TH sends StepSaturation command to DUT with StepMode Down\n"); + if (ShouldSkip("CC.S.F00 && CC.S.C05.Rsp")) { NextTest(); return; } - err = TestStepSaturationDownCommand_7(); + err = TestThSendsStepSaturationCommandToDutWithStepModeDown_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 10ms\n"); - err = TestWait10ms_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 1000ms\n"); + err = TestWait1000ms_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Over TransitionTime,Reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : Over TransitionTime,TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } - err = TestOverTransitionTimeReadsCurrentSaturationAttributeFromDut_9(); + err = TestOverTransitionTimeTHReadsCurrentSaturationAttributeFromDut_9(); break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : Turn off light that we turned on\n"); @@ -9493,7 +7731,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsCurrentSaturationAttributeFromDut_3() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9502,7 +7740,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentSaturation attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9516,7 +7754,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepSaturationUpCommand_4() + CHIP_ERROR TestThSendsStepSaturationCommandToDutWithStepModeUp_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9532,7 +7770,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stepSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step saturation up command Error: %@", err); + NSLog(@"TH sends StepSaturation command to DUT with StepMode Up Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9542,14 +7780,14 @@ class Test_TC_CC_4_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10ms_5() + CHIP_ERROR TestWait1000ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestOverTransitionTimeReadCurrentSaturationAttributeFromDut_6() + CHIP_ERROR TestOverTransitionTimeTHReadCurrentSaturationAttributeFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9558,7 +7796,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Over TransitionTime,Read CurrentSaturation attribute from DUT Error: %@", err); + NSLog(@"Over TransitionTime,TH read CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9572,7 +7810,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepSaturationDownCommand_7() + CHIP_ERROR TestThSendsStepSaturationCommandToDutWithStepModeDown_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9588,7 +7826,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stepSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step saturation down command Error: %@", err); + NSLog(@"TH sends StepSaturation command to DUT with StepMode Down Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9598,14 +7836,14 @@ class Test_TC_CC_4_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10ms_8() + CHIP_ERROR TestWait1000ms_8() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestOverTransitionTimeReadsCurrentSaturationAttributeFromDut_9() + CHIP_ERROR TestOverTransitionTimeTHReadsCurrentSaturationAttributeFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9614,7 +7852,7 @@ class Test_TC_CC_4_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Over TransitionTime,Reads CurrentSaturation attribute from DUT Error: %@", err); + NSLog(@"Over TransitionTime,TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9719,50 +7957,48 @@ class Test_TC_CC_4_4 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Check current hue attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads CurrentHue attribute from DUT.\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A0000")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedBeforeAnyChange_3(); + err = TestThReadsCurrentHueAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Check Saturation attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckSaturationAttributeValueMatchedBeforeAnyChange_4(); + err = TestThReadsCurrentSaturationAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Move To current hue and saturation command\n"); - if (ShouldSkip("CC.S.C06.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends MoveToHueAndSaturation command to DUT.\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C06.Rsp")) { NextTest(); return; } - err = TestMoveToCurrentHueAndSaturationCommand_5(); + err = TestThSendsMoveToHueAndSaturationCommandToDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 10ms\n"); - err = TestWait10ms_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 1000ms\n"); + err = TestWait1000ms_6(); break; case 7: - ChipLogProgress( - chipTool, " ***** Test Step 7 : Check current hue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Over TransitionTime, TH reads CurrentHue attribute from DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A0000")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_7(); + err = TestOverTransitionTimeThReadsCurrentHueAttributeFromDut_7(); break; case 8: - ChipLogProgress(chipTool, - " ***** Test Step 8 : Check current saturation attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Over TransitionTime, TH reads CurrentSaturation attribute from DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A0001")) { NextTest(); return; } - err = TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8(); + err = TestOverTransitionTimeThReadsCurrentSaturationAttributeFromDut_8(); break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Turn off light that we turned on\n"); @@ -9882,7 +8118,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedBeforeAnyChange_3() + CHIP_ERROR TestThReadsCurrentHueAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9891,7 +8127,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentHue attribute from DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9905,7 +8141,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckSaturationAttributeValueMatchedBeforeAnyChange_4() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9914,7 +8150,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check Saturation attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9928,7 +8164,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveToCurrentHueAndSaturationCommand_5() + CHIP_ERROR TestThSendsMoveToHueAndSaturationCommandToDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9944,7 +8180,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveToHueAndSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move To current hue and saturation command Error: %@", err); + NSLog(@"TH sends MoveToHueAndSaturation command to DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9954,14 +8190,14 @@ class Test_TC_CC_4_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10ms_6() + CHIP_ERROR TestWait1000ms_6() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_7() + CHIP_ERROR TestOverTransitionTimeThReadsCurrentHueAttributeFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9970,7 +8206,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime, TH reads CurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -9984,7 +8220,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentSaturationAttributeValueMatchedTheValueSentByTheLastCommand_8() + CHIP_ERROR TestOverTransitionTimeThReadsCurrentSaturationAttributeFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -9993,7 +8229,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime, TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10098,50 +8334,48 @@ class Test_TC_CC_5_1 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Check current x attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedBeforeAnyChange_3(); + err = TestThReadsCurrentXAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Check current y attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedBeforeAnyChange_4(); + err = TestThReadsCurrentYAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Move to Color command\n"); - if (ShouldSkip("CC.S.C07.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends MoveToColor command to DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.C07.Rsp")) { NextTest(); return; } - err = TestMoveToColorCommand_5(); + err = TestThSendsMoveToColorCommandToDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 20ms\n"); - err = TestWait20ms_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 1500ms\n"); + err = TestWait1500ms_6(); break; case 7: - ChipLogProgress( - chipTool, " ***** Test Step 7 : Check current x attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Over TransitionTime, TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_7(); + err = TestOverTransitionTimeThReadsCurrentXAttributeFromDut_7(); break; case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Check current y attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Over TransitionTime, TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_8(); + err = TestOverTransitionTimeThReadsCurrentYAttributeFromDut_8(); break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Turn off light that we turned on\n"); @@ -10261,7 +8495,7 @@ class Test_TC_CC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedBeforeAnyChange_3() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10270,7 +8504,7 @@ class Test_TC_CC_5_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10284,7 +8518,7 @@ class Test_TC_CC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedBeforeAnyChange_4() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10293,7 +8527,7 @@ class Test_TC_CC_5_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10307,7 +8541,7 @@ class Test_TC_CC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveToColorCommand_5() + CHIP_ERROR TestThSendsMoveToColorCommandToDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10318,12 +8552,12 @@ class Test_TC_CC_5_1 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveToColorParams alloc] init]; params.colorX = [NSNumber numberWithUnsignedShort:200U]; params.colorY = [NSNumber numberWithUnsignedShort:300U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:20U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:10U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveToColorWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move to Color command Error: %@", err); + NSLog(@"TH sends MoveToColor command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10333,14 +8567,14 @@ class Test_TC_CC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait20ms_6() + CHIP_ERROR TestWait1500ms_6() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 20UL; + value.ms = 1500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_7() + CHIP_ERROR TestOverTransitionTimeThReadsCurrentXAttributeFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10349,10 +8583,15 @@ class Test_TC_CC_5_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime, TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentX", actualValue, 200U)); + } + VerifyOrReturn(CheckConstraintType("currentX", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 65279U)); @@ -10363,7 +8602,7 @@ class Test_TC_CC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_8() + CHIP_ERROR TestOverTransitionTimeThReadsCurrentYAttributeFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10372,10 +8611,15 @@ class Test_TC_CC_5_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime, TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentY", actualValue, 300U)); + } + VerifyOrReturn(CheckConstraintType("currentY", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 65279U)); @@ -10477,76 +8721,72 @@ class Test_TC_CC_5_2 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Check current x attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedBeforeAnyChange_3(); + err = TestThReadsCurrentXAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Check current y attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedBeforeAnyChange_4(); + err = TestThReadsCurrentYAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Move Color command\n"); - if (ShouldSkip("CC.S.C08.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends MoveColor command to DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.C08.Rsp")) { NextTest(); return; } - err = TestMoveColorCommand_5(); + err = TestThSendsMoveColorCommandToDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 150ms\n"); - err = TestWait150ms_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 1000ms\n"); + err = TestWait1000ms_6(); break; case 7: - ChipLogProgress( - chipTool, " ***** Test Step 7 : Check current x attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_7(); + err = TestThReadsCurrentXAttributeFromDut_7(); break; case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Check current y attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_8(); + err = TestThReadsCurrentYAttributeFromDut_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Stop Move Step command\n"); - if (ShouldSkip("CC.S.C47.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : TH sends StopMoveStep command to DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStopMoveStepCommand_9(); + err = TestThSendsStopMoveStepCommandToDut_9(); break; case 10: - ChipLogProgress( - chipTool, " ***** Test Step 10 : Check current x attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_10(); + err = TestThReadsCurrentXAttributeFromDut_10(); break; case 11: - ChipLogProgress( - chipTool, " ***** Test Step 11 : Check current y attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 11 : TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_11(); + err = TestThReadsCurrentYAttributeFromDut_11(); break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : Turn off light that we turned on\n"); @@ -10675,7 +8915,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedBeforeAnyChange_3() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10684,7 +8924,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10698,7 +8938,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedBeforeAnyChange_4() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10707,7 +8947,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10721,7 +8961,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveColorCommand_5() + CHIP_ERROR TestThSendsMoveColorCommandToDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10736,7 +8976,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveColorWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move Color command Error: %@", err); + NSLog(@"TH sends MoveColor command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10746,14 +8986,14 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait150ms_6() + CHIP_ERROR TestWait1000ms_6() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_7() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10762,7 +9002,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10776,7 +9016,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_8() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10785,7 +9025,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10799,7 +9039,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStopMoveStepCommand_9() + CHIP_ERROR TestThSendsStopMoveStepCommandToDut_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10812,7 +9052,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stopMoveStepWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Move Step command Error: %@", err); + NSLog(@"TH sends StopMoveStep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10822,7 +9062,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_10() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10831,7 +9071,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10845,7 +9085,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_11() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -10854,7 +9094,7 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -10959,50 +9199,48 @@ class Test_TC_CC_5_3 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Check current x attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedBeforeAnyChange_3(); + err = TestThReadsCurrentXAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Check current y attribute value matched before any change\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedBeforeAnyChange_4(); + err = TestThReadsCurrentYAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step Color command\n"); - if (ShouldSkip("CC.S.C09.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends StepColor command to DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.C09.Rsp")) { NextTest(); return; } - err = TestStepColorCommand_5(); + err = TestThSendsStepColorCommandToDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 50ms\n"); - err = TestWait50ms_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 1000ms\n"); + err = TestWait1000ms_6(); break; case 7: - ChipLogProgress( - chipTool, " ***** Test Step 7 : Check current x attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Over TransitionTime, TH reads CurrentX attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_7(); + err = TestOverTransitionTimeThReadsCurrentXAttributeFromDut_7(); break; case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Check current y attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Over TransitionTime, TH reads CurrentY attribute from DUT\n"); + if (ShouldSkip("CC.S.F03 && CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_8(); + err = TestOverTransitionTimeThReadsCurrentYAttributeFromDut_8(); break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Turn off light that we turned on\n"); @@ -11122,7 +9360,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedBeforeAnyChange_3() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11131,7 +9369,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -11145,7 +9383,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedBeforeAnyChange_4() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11154,7 +9392,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched before any change Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -11168,7 +9406,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepColorCommand_5() + CHIP_ERROR TestThSendsStepColorCommandToDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11179,12 +9417,12 @@ class Test_TC_CC_5_3 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterStepColorParams alloc] init]; params.stepX = [NSNumber numberWithShort:15]; params.stepY = [NSNumber numberWithShort:20]; - params.transitionTime = [NSNumber numberWithUnsignedShort:50U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:10U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stepColorWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step Color command Error: %@", err); + NSLog(@"TH sends StepColor command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -11194,14 +9432,14 @@ class Test_TC_CC_5_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_6() + CHIP_ERROR TestWait1000ms_6() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastCommand_7() + CHIP_ERROR TestOverTransitionTimeThReadsCurrentXAttributeFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11210,7 +9448,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime, TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -11224,7 +9462,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastCommand_8() + CHIP_ERROR TestOverTransitionTimeThReadsCurrentYAttributeFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11233,7 +9471,7 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"Over TransitionTime, TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -11338,40 +9576,56 @@ class Test_TC_CC_6_1 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads ColorTempPhysicalMinMireds attribute from DUT\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A400b")) { NextTest(); return; } - err = TestReadCurrentColorTemprature_3(); + err = TestThReadsColorTempPhysicalMinMiredsAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Move To Color Temperature command\n"); - if (ShouldSkip("CC.S.C0A.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads ColorTempPhysicalMaxMireds attribute from DUT.\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A400c")) { NextTest(); return; } - err = TestMoveToColorTemperatureCommand_4(); + err = TestThReadsColorTempPhysicalMaxMiredsAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 700ms\n"); - err = TestWait700ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads ColorTemperatureMireds attribute from DUT.\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { + NextTest(); + return; + } + err = TestThReadsColorTemperatureMiredsAttributeFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Move To Color Temperature command\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C0A.Rsp")) { NextTest(); return; } - err = TestReadCurrentColorTemprature_6(); + err = TestMoveToColorTemperatureCommand_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 1500ms\n"); + err = TestWait1500ms_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Read current color temprature\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { + NextTest(); + return; + } + err = TestReadCurrentColorTemprature_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_10(); break; } @@ -11411,6 +9665,12 @@ class Test_TC_CC_6_1 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -11424,7 +9684,7 @@ class Test_TC_CC_6_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -11476,8 +9736,64 @@ class Test_TC_CC_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull ColorTempPhysicalMinMiredsValue; + + CHIP_ERROR TestThReadsColorTempPhysicalMinMiredsAttributeFromDut_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster + readAttributeColorTempPhysicalMinMiredsWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTempPhysicalMinMireds attribute from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("colorTempPhysicalMinMireds", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTempPhysicalMinMireds", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTempPhysicalMinMireds", [value unsignedShortValue], 65279U)); + { + ColorTempPhysicalMinMiredsValue = value; + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + NSNumber * _Nonnull ColorTempPhysicalMaxMiredsValue; - CHIP_ERROR TestReadCurrentColorTemprature_3() + CHIP_ERROR TestThReadsColorTempPhysicalMaxMiredsAttributeFromDut_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster + readAttributeColorTempPhysicalMaxMiredsWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTempPhysicalMaxMireds attribute from DUT. Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("colorTempPhysicalMaxMireds", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTempPhysicalMaxMireds", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTempPhysicalMaxMireds", [value unsignedShortValue], 65279U)); + { + ColorTempPhysicalMaxMiredsValue = value; + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11486,13 +9802,15 @@ class Test_TC_CC_6_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -11500,7 +9818,7 @@ class Test_TC_CC_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveToColorTemperatureCommand_4() + CHIP_ERROR TestMoveToColorTemperatureCommand_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11510,7 +9828,7 @@ class Test_TC_CC_6_1 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveToColorTemperatureParams alloc] init]; params.colorTemperature = [NSNumber numberWithUnsignedShort:100U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:5U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:10U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveToColorTemperatureWithParams:params @@ -11525,14 +9843,14 @@ class Test_TC_CC_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait700ms_5() + CHIP_ERROR TestWait1500ms_7() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 700UL; + value.ms = 1500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadCurrentColorTemprature_6() + CHIP_ERROR TestReadCurrentColorTemprature_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -11551,8 +9869,10 @@ class Test_TC_CC_6_1 : public TestCommandBridge { } VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -11560,7 +9880,7 @@ class Test_TC_CC_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_7() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -11577,7 +9897,7 @@ class Test_TC_CC_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_8() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -11651,212 +9971,228 @@ class Test_TC_CC_6_2 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads ColorTempPhysicalMinMireds attribute from DUT\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A400b")) { NextTest(); return; } - err = TestReadCurrentColorTemprature_3(); + err = TestThReadsColorTempPhysicalMinMiredsAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Move up color temperature command\n"); - if (ShouldSkip("CC.S.C4B.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads ColorTempPhysicalMaxMireds attribute from DUT.\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A400c")) { NextTest(); return; } - err = TestMoveUpColorTemperatureCommand_4(); + err = TestThReadsColorTempPhysicalMaxMiredsAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 90ms\n"); - err = TestWait90ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads ColorTemperatureMireds attribute from DUT.\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { + NextTest(); + return; + } + err = TestThReadsColorTemperatureMiredsAttributeFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : TH sends MoveColorTemperature command to DUT with MoveMode = Up\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp")) { NextTest(); return; } - err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_6(); + err = TestThSendsMoveColorTemperatureCommandToDutWithMoveModeUp_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 95ms\n"); - err = TestWait95ms_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 1000ms\n"); + err = TestWait1000ms_7(); break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 100ms\n"); - err = TestWait100ms_9(); + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 1000ms\n"); + err = TestWait1000ms_9(); break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Move down color temperature command\n"); - if (ShouldSkip("CC.S.C4B.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 11 : Wait 1000ms\n"); + err = TestWait1000ms_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Read current color temprature attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestMoveDownColorTemperatureCommand_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 190ms\n"); - err = TestWait190ms_12(); + err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 13 : TH sends MoveColorTemperature command to DUT with MoveMode = Down\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp")) { NextTest(); return; } - err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_13(); + err = TestThSendsMoveColorTemperatureCommandToDutWithMoveModeDown_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 195ms\n"); - err = TestWait195ms_14(); + ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 1000ms\n"); + err = TestWait1000ms_14(); break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 200ms\n"); - err = TestWait200ms_16(); + ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 1000ms\n"); + err = TestWait1000ms_16(); break; case 17: ChipLogProgress(chipTool, " ***** Test Step 17 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Move up color temperature command\n"); - if (ShouldSkip("CC.S.C4B.Rsp")) { - NextTest(); - return; - } - err = TestMoveUpColorTemperatureCommand_18(); + ChipLogProgress(chipTool, " ***** Test Step 18 : Wait 1000ms\n"); + err = TestWait1000ms_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Stop Color Temperature command\n"); - if (ShouldSkip("CC.S.C4B.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 19 : Read current color temprature attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestStopColorTemperatureCommand_19(); + err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Wait 90ms\n"); - err = TestWait90ms_20(); + ChipLogProgress(chipTool, " ***** Test Step 20 : TH sends MoveColorTemperature command to DUT with MoveMode = Up\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp")) { + NextTest(); + return; + } + err = TestThSendsMoveColorTemperatureCommandToDutWithMoveModeUp_20(); break; case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 21 : TH sends MoveColorTemperature command to DUT with MoveMode = Stop\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp")) { NextTest(); return; } - err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_21(); + err = TestThSendsMoveColorTemperatureCommandToDutWithMoveModeStop_21(); break; case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : Wait 95ms\n"); - err = TestWait95ms_22(); + ChipLogProgress(chipTool, " ***** Test Step 22 : Wait 1000ms\n"); + err = TestWait1000ms_22(); break; case 23: ChipLogProgress(chipTool, " ***** Test Step 23 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_23(); break; case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Wait 100ms\n"); - err = TestWait100ms_24(); + ChipLogProgress(chipTool, " ***** Test Step 24 : Wait 1000ms\n"); + err = TestWait1000ms_24(); break; case 25: ChipLogProgress(chipTool, " ***** Test Step 25 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_25(); break; case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Move down color temperature command\n"); - if (ShouldSkip("CC.S.C4B.Rsp")) { - NextTest(); - return; - } - err = TestMoveDownColorTemperatureCommand_26(); + ChipLogProgress(chipTool, " ***** Test Step 26 : Wait 1000ms\n"); + err = TestWait1000ms_26(); break; case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Stop Color Temperature command\n"); - if (ShouldSkip("CC.S.C4B.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 27 : Read current color temprature attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestStopColorTemperatureCommand_27(); + err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_27(); break; case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Wait 140ms\n"); - err = TestWait140ms_28(); + ChipLogProgress(chipTool, " ***** Test Step 28 : TH sends MoveColorTemperature command to DUT with MoveMode = Down\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp")) { + NextTest(); + return; + } + err = TestThSendsMoveColorTemperatureCommandToDutWithMoveModeDown_28(); break; case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + ChipLogProgress(chipTool, " ***** Test Step 29 : TH sends MoveColorTemperature command to DUT with MoveMode = Stop\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4B.Rsp")) { NextTest(); return; } - err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_29(); + err = TestThSendsMoveColorTemperatureCommandToDutWithMoveModeStop_29(); break; case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Wait 145ms\n"); - err = TestWait145ms_30(); + ChipLogProgress(chipTool, " ***** Test Step 30 : Wait 1000ms\n"); + err = TestWait1000ms_30(); break; case 31: ChipLogProgress(chipTool, " ***** Test Step 31 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_31(); break; case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Wait 150ms\n"); - err = TestWait150ms_32(); + ChipLogProgress(chipTool, " ***** Test Step 32 : Wait 1000ms\n"); + err = TestWait1000ms_32(); break; case 33: ChipLogProgress(chipTool, " ***** Test Step 33 : Read current color temprature attribute from DUT several times\n"); - if (ShouldSkip("CC.S.A0007")) { + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_33(); break; case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_34(); + ChipLogProgress(chipTool, " ***** Test Step 34 : Wait 1000ms\n"); + err = TestWait1000ms_34(); break; case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_35(); + ChipLogProgress(chipTool, " ***** Test Step 35 : Read current color temprature attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { + NextTest(); + return; + } + err = TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_35(); + break; + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_36(); + break; + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_37(); break; } @@ -11977,6 +10313,12 @@ class Test_TC_CC_6_2 : public TestCommandBridge { case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -11990,7 +10332,7 @@ class Test_TC_CC_6_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 36; + const uint16_t mTestCount = 38; chip::Optional mNodeId; chip::Optional mCluster; @@ -12042,8 +10384,9 @@ class Test_TC_CC_6_2 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull ColorTempPhysicalMinMiredsValue; - CHIP_ERROR TestReadCurrentColorTemprature_3() + CHIP_ERROR TestThReadsColorTempPhysicalMinMiredsAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12051,203 +10394,27 @@ class Test_TC_CC_6_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestMoveUpColorTemperatureCommand_4() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:1U]; - params.rate = [NSNumber numberWithUnsignedShort:10U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveColorTemperatureWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move up color temperature command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait90ms_5() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 90UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_6() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait95ms_7() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 95UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_8() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait100ms_9() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_10() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestMoveDownColorTemperatureCommand_11() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:3U]; - params.rate = [NSNumber numberWithUnsignedShort:20U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveColorTemperatureWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move down color temperature command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait190ms_12() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 190UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_13() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); + [cluster + readAttributeColorTempPhysicalMinMiredsWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTempPhysicalMinMireds attribute from DUT Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn(CheckConstraintType("colorTempPhysicalMinMireds", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTempPhysicalMinMireds", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTempPhysicalMinMireds", [value unsignedShortValue], 65279U)); + { + ColorTempPhysicalMinMiredsValue = value; + } - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } + NSNumber * _Nonnull ColorTempPhysicalMaxMiredsValue; - CHIP_ERROR TestWait195ms_14() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 195UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_15() + CHIP_ERROR TestThReadsColorTempPhysicalMaxMiredsAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12255,29 +10422,26 @@ class Test_TC_CC_6_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); + [cluster + readAttributeColorTempPhysicalMaxMiredsWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTempPhysicalMaxMireds attribute from DUT. Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn(CheckConstraintType("colorTempPhysicalMaxMireds", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTempPhysicalMaxMireds", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTempPhysicalMaxMireds", [value unsignedShortValue], 65279U)); + { + ColorTempPhysicalMaxMiredsValue = value; + } - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait200ms_16() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 200UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_17() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12286,13 +10450,15 @@ class Test_TC_CC_6_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -12300,7 +10466,7 @@ class Test_TC_CC_6_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveUpColorTemperatureCommand_18() + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDutWithMoveModeUp_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12310,185 +10476,14 @@ class Test_TC_CC_6_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:1U]; - params.rate = [NSNumber numberWithUnsignedShort:10U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveColorTemperatureWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move up color temperature command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStopColorTemperatureCommand_19() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:0U]; - params.rate = [NSNumber numberWithUnsignedShort:10U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveColorTemperatureWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Color Temperature command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait90ms_20() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 90UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_21() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait95ms_22() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 95UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_23() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait100ms_24() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_25() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestMoveDownColorTemperatureCommand_26() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:3U]; params.rate = [NSNumber numberWithUnsignedShort:20U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster moveColorTemperatureWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move down color temperature command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStopColorTemperatureCommand_27() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; - params.moveMode = [NSNumber numberWithUnsignedChar:0U]; - params.rate = [NSNumber numberWithUnsignedShort:10U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveColorTemperatureWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Color Temperature command Error: %@", err); + NSLog(@"TH sends MoveColorTemperature command to DUT with MoveMode = Up Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -12498,420 +10493,186 @@ class Test_TC_CC_6_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait140ms_28() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 140UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_29() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait145ms_30() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 145UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_31() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait150ms_32() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 150UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_33() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_34() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster offWithCompletionHandler:^(NSError * _Nullable err) { - NSLog(@"Turn off light that we turned on Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_35() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeOnOffWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check on/off attribute value is false after off command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("OnOff", actualValue, 0)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CC_6_3 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_6_3() - : TestCommandBridge("Test_TC_CC_6_3") - , mTestIndex(0) + CHIP_ERROR TestWait1000ms_7() { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_CC_6_3() {} - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_6_3\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_6_3\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // but before our function call returns, we won't end up with an - // incorrect mTestIndex value observed when we get the response. - switch (mTestIndex++) { - case 0: - ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n"); - err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); - break; - case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Turn on light for color control tests\n"); - err = TestTurnOnLightForColorControlTests_1(); - break; - case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Check on/off attribute value is true after on command\n"); - err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); - break; - case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_3(); - break; - case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step up color temperature command\n"); - if (ShouldSkip("CC.S.C4C.Rsp")) { - NextTest(); - return; - } - err = TestStepUpColorTemperatureCommand_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 40ms\n"); - err = TestWait40ms_5(); - break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_6(); - break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 45ms\n"); - err = TestWait45ms_7(); - break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_8(); - break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 50ms\n"); - err = TestWait50ms_9(); - break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step down color temperature command\n"); - if (ShouldSkip("CC.S.C4C.Rsp")) { - NextTest(); - return; - } - err = TestStepDownColorTemperatureCommand_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 40ms\n"); - err = TestWait40ms_12(); - break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_13(); - break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 45ms\n"); - err = TestWait45ms_14(); - break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_15(); - break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 50ms\n"); - err = TestWait50ms_16(); - break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Read current color temprature\n"); - if (ShouldSkip("CC.S.A0007")) { - NextTest(); - return; - } - err = TestReadCurrentColorTemprature_17(); - break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19(); - break; - } + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs("alpha", value); + } - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_8() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; } - void OnStatusUpdate(const chip::app::StatusIB & status) override + CHIP_ERROR TestWait1000ms_9() { - switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - } + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs("alpha", value); + } - // Go on to the next test. - ContinueOnChipMainThread(CHIP_NO_ERROR); + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_10() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; } - chip::System::Clock::Timeout GetWaitDuration() const override + CHIP_ERROR TestWait1000ms_11() { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs("alpha", value); } -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 20; + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_12() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); - CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDutWithMoveModeDown_13() { - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee("alpha", value); + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:3U]; + params.rate = [NSNumber numberWithUnsignedShort:20U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; + params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; + params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; + [cluster moveColorTemperatureWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends MoveColorTemperature command to DUT with MoveMode = Down Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOnLightForColorControlTests_1() + CHIP_ERROR TestWait1000ms_14() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_15() { MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster onWithCompletionHandler:^(NSError * _Nullable err) { - NSLog(@"Turn on light for color control tests Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); + NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2() + CHIP_ERROR TestWait1000ms_16() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_17() { MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeOnOffWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check on/off attribute value is true after on command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("OnOff", actualValue, 1)); - } + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -12919,7 +10680,14 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadCurrentColorTemprature_3() + CHIP_ERROR TestWait1000ms_18() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 1000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12928,13 +10696,15 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -12942,7 +10712,7 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepUpColorTemperatureCommand_4() + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDutWithMoveModeUp_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12950,17 +10720,43 @@ class Test_TC_CC_6_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterStepColorTemperatureParams alloc] init]; - params.stepMode = [NSNumber numberWithUnsignedChar:1U]; - params.stepSize = [NSNumber numberWithUnsignedShort:5U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:50U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:5U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:100U]; + __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:1U]; + params.rate = [NSNumber numberWithUnsignedShort:10U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster stepColorTemperatureWithParams:params + [cluster moveColorTemperatureWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends MoveColorTemperature command to DUT with MoveMode = Up Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDutWithMoveModeStop_21() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:0U]; + params.rate = [NSNumber numberWithUnsignedShort:10U]; + params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:1U]; + params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:255U]; + params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; + params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; + [cluster moveColorTemperatureWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step up color temperature command Error: %@", err); + NSLog(@"TH sends MoveColorTemperature command to DUT with MoveMode = Stop Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -12970,14 +10766,15 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_5() + CHIP_ERROR TestWait1000ms_22() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull ColorTemperatureValue; - CHIP_ERROR TestReadCurrentColorTemprature_6() + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -12986,13 +10783,18 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); + { + ColorTemperatureValue = value; + } NextTest(); }]; @@ -13000,14 +10802,14 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait45ms_7() + CHIP_ERROR TestWait1000ms_24() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadCurrentColorTemprature_8() + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13016,13 +10818,20 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorTemperature", actualValue, ColorTemperatureValue)); + } + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -13030,14 +10839,14 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_9() + CHIP_ERROR TestWait1000ms_26() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadCurrentColorTemprature_10() + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13046,13 +10855,20 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorTemperature", actualValue, ColorTemperatureValue)); + } + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -13060,7 +10876,7 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStepDownColorTemperatureCommand_11() + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDutWithMoveModeDown_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13068,17 +10884,43 @@ class Test_TC_CC_6_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterStepColorTemperatureParams alloc] init]; - params.stepMode = [NSNumber numberWithUnsignedChar:3U]; - params.stepSize = [NSNumber numberWithUnsignedShort:5U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:50U]; - params.colorTemperatureMinimumMireds = [NSNumber numberWithUnsignedShort:5U]; - params.colorTemperatureMaximumMireds = [NSNumber numberWithUnsignedShort:100U]; + __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:3U]; + params.rate = [NSNumber numberWithUnsignedShort:20U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster stepColorTemperatureWithParams:params + [cluster moveColorTemperatureWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends MoveColorTemperature command to DUT with MoveMode = Down Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDutWithMoveModeStop_29() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRColorControlClusterMoveColorTemperatureParams alloc] init]; + params.moveMode = [NSNumber numberWithUnsignedChar:0U]; + params.rate = [NSNumber numberWithUnsignedShort:10U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; + params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; + params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; + [cluster moveColorTemperatureWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Step down color temperature command Error: %@", err); + NSLog(@"TH sends MoveColorTemperature command to DUT with MoveMode = Stop Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -13088,14 +10930,15 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_12() + CHIP_ERROR TestWait1000ms_30() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } + NSNumber * _Nonnull ColorTemperatureMoveModeStop; - CHIP_ERROR TestReadCurrentColorTemprature_13() + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_31() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13104,13 +10947,18 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); + { + ColorTemperatureMoveModeStop = value; + } NextTest(); }]; @@ -13118,14 +10966,14 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait45ms_14() + CHIP_ERROR TestWait1000ms_32() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadCurrentColorTemprature_15() + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_33() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13134,13 +10982,20 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorTemperature", actualValue, ColorTemperatureMoveModeStop)); + } + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -13148,14 +11003,14 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_16() + CHIP_ERROR TestWait1000ms_34() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadCurrentColorTemprature_17() + CHIP_ERROR TestReadCurrentColorTempratureAttributeFromDutSeveralTimes_35() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13164,13 +11019,20 @@ class Test_TC_CC_6_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read current color temprature Error: %@", err); + NSLog(@"Read current color temprature attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorTemperature", actualValue, ColorTemperatureValue)); + } + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -13178,7 +11040,7 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_18() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_36() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -13195,7 +11057,7 @@ class Test_TC_CC_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_37() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -13218,11 +11080,11 @@ class Test_TC_CC_6_3 : public TestCommandBridge { } }; -class Test_TC_CC_7_1 : public TestCommandBridge { +class Test_TC_CC_6_3 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CC_7_1() - : TestCommandBridge("Test_TC_CC_7_1") + Test_TC_CC_6_3() + : TestCommandBridge("Test_TC_CC_6_3") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); @@ -13232,7 +11094,7 @@ class Test_TC_CC_7_1 : public TestCommandBridge { } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_CC_7_1() {} + ~Test_TC_CC_6_3() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -13240,11 +11102,11 @@ class Test_TC_CC_7_1 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_7_1\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_CC_6_3\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_7_1\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CC_6_3\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -13269,217 +11131,124 @@ class Test_TC_CC_7_1 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Enhanced Move To Hue command\n"); - if (ShouldSkip("CC.S.C40.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads ColorTempPhysicalMinMireds attribute from DUT\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A400b")) { NextTest(); return; } - err = TestEnhancedMoveToHueCommand_3(); + err = TestThReadsColorTempPhysicalMinMiredsAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, - " ***** Test Step 4 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads ColorTempPhysicalMaxMireds attribute from DUT.\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A400c")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_4(); + err = TestThReadsColorTempPhysicalMaxMiredsAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Enhanced Move To Hue command\n"); - if (ShouldSkip("CC.S.C40.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads ColorTemperatureMireds attribute from DUT.\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestEnhancedMoveToHueCommand_5(); + err = TestThReadsColorTemperatureMiredsAttributeFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 290ms\n"); - err = TestWait290ms_6(); - break; - case 7: - ChipLogProgress(chipTool, - " ***** Test Step 7 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : TH sends StepColorTemperature command to DUT with MoveMode = Up\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4C.Rsp")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_7(); + err = TestThSendsStepColorTemperatureCommandToDutWithMoveModeUp_6(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 295ms\n"); - err = TestWait295ms_8(); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 500ms\n"); + err = TestWait500ms_7(); break; - case 9: - ChipLogProgress(chipTool, - " ***** Test Step 9 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads ColorTemperatureMireds attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_9(); + err = TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_8(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Wait 300ms\n"); - err = TestWait300ms_10(); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 500ms\n"); + err = TestWait500ms_9(); break; - case 11: - ChipLogProgress(chipTool, - " ***** Test Step 11 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads ColorTemperatureMireds attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_11(); + err = TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_10(); + break; + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Wait 500ms\n"); + err = TestWait500ms_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Enhanced Move To Hue command\n"); - if (ShouldSkip("CC.S.C40.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads ColorTemperatureMireds attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestEnhancedMoveToHueCommand_12(); + err = TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Wait 290ms\n"); - err = TestWait290ms_13(); - break; - case 14: - ChipLogProgress(chipTool, - " ***** Test Step 14 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 13 : TH sends StepColorTemperature command to DUT with MoveMode = Down\n"); + if (ShouldSkip("CC.S.F04 && CC.S.C4C.Rsp")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_14(); + err = TestThSendsStepColorTemperatureCommandToDutWithMoveModeDown_13(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Wait 295ms\n"); - err = TestWait295ms_15(); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 500ms\n"); + err = TestWait500ms_14(); break; - case 16: - ChipLogProgress(chipTool, - " ***** Test Step 16 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads ColorTemperatureMireds attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_16(); + err = TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_15(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Wait 300ms\n"); - err = TestWait300ms_17(); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 500ms\n"); + err = TestWait500ms_16(); break; - case 18: - ChipLogProgress(chipTool, - " ***** Test Step 18 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads ColorTemperatureMireds attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_18(); + err = TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_17(); + break; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Wait 500ms\n"); + err = TestWait500ms_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Enhanced Move To Hue command\n"); - if (ShouldSkip("CC.S.C40.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads ColorTemperatureMireds attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F04 && CC.S.A0007")) { NextTest(); return; } - err = TestEnhancedMoveToHueCommand_19(); + err = TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Wait 290ms\n"); - err = TestWait290ms_20(); + ChipLogProgress(chipTool, " ***** Test Step 20 : Turn off light that we turned on\n"); + err = TestTurnOffLightThatWeTurnedOn_20(); break; case 21: - ChipLogProgress(chipTool, - " ***** Test Step 21 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { - NextTest(); - return; - } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_21(); - break; - case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : Wait 295ms\n"); - err = TestWait295ms_22(); - break; - case 23: - ChipLogProgress(chipTool, - " ***** Test Step 23 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { - NextTest(); - return; - } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_23(); - break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Wait 300ms\n"); - err = TestWait300ms_24(); - break; - case 25: - ChipLogProgress(chipTool, - " ***** Test Step 25 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { - NextTest(); - return; - } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_25(); - break; - case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Enhanced Move To Hue command\n"); - if (ShouldSkip("CC.S.C40.Rsp")) { - NextTest(); - return; - } - err = TestEnhancedMoveToHueCommand_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Wait 290ms\n"); - err = TestWait290ms_27(); - break; - case 28: - ChipLogProgress(chipTool, - " ***** Test Step 28 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { - NextTest(); - return; - } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_28(); - break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Wait 295ms\n"); - err = TestWait295ms_29(); - break; - case 30: - ChipLogProgress(chipTool, - " ***** Test Step 30 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { - NextTest(); - return; - } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_30(); - break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Wait 300ms\n"); - err = TestWait300ms_31(); - break; - case 32: - ChipLogProgress(chipTool, - " ***** Test Step 32 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { - NextTest(); - return; - } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_32(); - break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Turn off light that we turned on\n"); - err = TestTurnOffLightThatWeTurnedOn_33(); - break; - case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : Check on/off attribute value is false after off command\n"); - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_34(); + ChipLogProgress(chipTool, " ***** Test Step 21 : Check on/off attribute value is false after off command\n"); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_21(); break; } @@ -13558,45 +11327,6 @@ class Test_TC_CC_7_1 : public TestCommandBridge { case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 26: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 27: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 29: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 31: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 32: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 33: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 34: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -13610,7 +11340,7 @@ class Test_TC_CC_7_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 35; + const uint16_t mTestCount = 22; chip::Optional mNodeId; chip::Optional mCluster; @@ -13662,8 +11392,9 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull ColorTempPhysicalMinMiredsValue; - CHIP_ERROR TestEnhancedMoveToHueCommand_3() + CHIP_ERROR TestThReadsColorTempPhysicalMinMiredsAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13671,227 +11402,27 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterEnhancedMoveToHueParams alloc] init]; - params.enhancedHue = [NSNumber numberWithUnsignedShort:1025U]; - params.direction = [NSNumber numberWithUnsignedChar:0U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:1U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster enhancedMoveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move To Hue command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_4() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestEnhancedMoveToHueCommand_5() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterEnhancedMoveToHueParams alloc] init]; - params.enhancedHue = [NSNumber numberWithUnsignedShort:1100U]; - params.direction = [NSNumber numberWithUnsignedChar:0U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster enhancedMoveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move To Hue command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait290ms_6() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_7() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait295ms_8() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_9() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait300ms_10() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_11() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestEnhancedMoveToHueCommand_12() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRColorControlClusterEnhancedMoveToHueParams alloc] init]; - params.enhancedHue = [NSNumber numberWithUnsignedShort:1150U]; - params.direction = [NSNumber numberWithUnsignedChar:1U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; - params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster enhancedMoveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move To Hue command Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait290ms_13() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_14() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster + readAttributeColorTempPhysicalMinMiredsWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTempPhysicalMinMireds attribute from DUT Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTempPhysicalMinMireds", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTempPhysicalMinMireds", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTempPhysicalMinMireds", [value unsignedShortValue], 65279U)); + { + ColorTempPhysicalMinMiredsValue = value; + } - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } + NSNumber * _Nonnull ColorTempPhysicalMaxMiredsValue; - CHIP_ERROR TestWait295ms_15() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_16() + CHIP_ERROR TestThReadsColorTempPhysicalMaxMiredsAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13899,29 +11430,26 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster + readAttributeColorTempPhysicalMaxMiredsWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTempPhysicalMaxMireds attribute from DUT. Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTempPhysicalMaxMireds", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTempPhysicalMaxMireds", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTempPhysicalMaxMireds", [value unsignedShortValue], 65279U)); + { + ColorTempPhysicalMaxMiredsValue = value; + } - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_17() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_18() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13929,14 +11457,16 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn( + CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMinMiredsValue)); + VerifyOrReturn( + CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], ColorTempPhysicalMaxMiredsValue)); NextTest(); }]; @@ -13944,7 +11474,7 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveToHueCommand_19() + CHIP_ERROR TestThSendsStepColorTemperatureCommandToDutWithMoveModeUp_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13952,32 +11482,34 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterEnhancedMoveToHueParams alloc] init]; - params.enhancedHue = [NSNumber numberWithUnsignedShort:1200U]; - params.direction = [NSNumber numberWithUnsignedChar:2U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; + __auto_type * params = [[MTRColorControlClusterStepColorTemperatureParams alloc] init]; + params.stepMode = [NSNumber numberWithUnsignedChar:1U]; + params.stepSize = [NSNumber numberWithUnsignedShort:100U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:15U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster enhancedMoveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move To Hue command Error: %@", err); + [cluster stepColorTemperatureWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends StepColorTemperature command to DUT with MoveMode = Up Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait290ms_20() + CHIP_ERROR TestWait500ms_7() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_21() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -13985,14 +11517,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); NextTest(); }]; @@ -14000,14 +11532,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_22() + CHIP_ERROR TestWait500ms_9() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_23() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14015,14 +11547,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); NextTest(); }]; @@ -14030,14 +11562,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_24() + CHIP_ERROR TestWait500ms_11() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_25() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14045,14 +11577,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); NextTest(); }]; @@ -14060,7 +11592,7 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveToHueCommand_26() + CHIP_ERROR TestThSendsStepColorTemperatureCommandToDutWithMoveModeDown_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14068,32 +11600,34 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRColorControlClusterEnhancedMoveToHueParams alloc] init]; - params.enhancedHue = [NSNumber numberWithUnsignedShort:1300U]; - params.direction = [NSNumber numberWithUnsignedChar:3U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:300U]; + __auto_type * params = [[MTRColorControlClusterStepColorTemperatureParams alloc] init]; + params.stepMode = [NSNumber numberWithUnsignedChar:3U]; + params.stepSize = [NSNumber numberWithUnsignedShort:5U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:50U]; + params.colorTemperatureMinimumMireds = [ColorTempPhysicalMinMiredsValue copy]; + params.colorTemperatureMaximumMireds = [ColorTempPhysicalMaxMiredsValue copy]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; - [cluster enhancedMoveToHueWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move To Hue command Error: %@", err); + [cluster stepColorTemperatureWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends StepColorTemperature command to DUT with MoveMode = Down Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait290ms_27() + CHIP_ERROR TestWait500ms_14() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_28() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14101,14 +11635,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); NextTest(); }]; @@ -14116,14 +11650,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_29() + CHIP_ERROR TestWait500ms_16() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_30() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14131,14 +11665,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); NextTest(); }]; @@ -14146,14 +11680,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_31() + CHIP_ERROR TestWait500ms_18() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_32() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDutSeveralTimes_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14161,14 +11695,14 @@ class Test_TC_CC_7_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); - VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); NextTest(); }]; @@ -14176,7 +11710,7 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTurnOffLightThatWeTurnedOn_33() + CHIP_ERROR TestTurnOffLightThatWeTurnedOn_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -14193,7 +11727,7 @@ class Test_TC_CC_7_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_34() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -14267,140 +11801,132 @@ class Test_TC_CC_7_2 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Check EnhancedCurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads EnhancedCurrentHue attribute from DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeFromDut_3(); + err = TestThReadsEnhancedCurrentHueAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Enhanced Move Hue Up command\n"); - if (ShouldSkip("CC.S.C41.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends EnhancedMoveHue command to DUT with MoveMode Up\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C41.Rsp")) { NextTest(); return; } - err = TestEnhancedMoveHueUpCommand_4(); + err = TestThSendsEnhancedMoveHueCommandToDutWithMoveModeUp_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 290ms\n"); - err = TestWait290ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1000ms\n"); + err = TestWait1000ms_5(); break; case 6: - ChipLogProgress(chipTool, - " ***** Test Step 6 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads EnhancedCurrentHue attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_6(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 295ms\n"); - err = TestWait295ms_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 1000ms\n"); + err = TestWait1000ms_7(); break; case 8: - ChipLogProgress(chipTool, - " ***** Test Step 8 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads EnhancedCurrentHue attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_8(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 300ms\n"); - err = TestWait300ms_9(); + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 1000ms\n"); + err = TestWait1000ms_9(); break; case 10: - ChipLogProgress(chipTool, - " ***** Test Step 10 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads EnhancedCurrentHue attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_10(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Enhanced Move Hue Stop command\n"); - if (ShouldSkip("CC.S.C41.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends EnhancedMoveHue command to DUT with MoveMode Stop\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C41.Rsp")) { NextTest(); return; } - err = TestEnhancedMoveHueStopCommand_11(); + err = TestThSendsEnhancedMoveHueCommandToDutWithMoveModeStop_11(); break; case 12: - ChipLogProgress(chipTool, - " ***** Test Step 12 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads EnhancedCurrentHue attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_12(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Enhanced Move Hue Down command\n"); - if (ShouldSkip("CC.S.C41.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 13 : TH sends EnhancedMoveHue command to DUT with MoveMode Down\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C41.Rsp")) { NextTest(); return; } - err = TestEnhancedMoveHueDownCommand_13(); + err = TestThSendsEnhancedMoveHueCommandToDutWithMoveModeDown_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 40ms\n"); - err = TestWait40ms_14(); + ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 500ms\n"); + err = TestWait500ms_14(); break; case 15: - ChipLogProgress(chipTool, - " ***** Test Step 15 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads EnhancedCurrentHue attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_15(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 45ms\n"); - err = TestWait45ms_16(); + ChipLogProgress(chipTool, " ***** Test Step 16 : Wait 500ms\n"); + err = TestWait500ms_16(); break; case 17: - ChipLogProgress(chipTool, - " ***** Test Step 17 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads EnhancedCurrentHue attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_17(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Wait 50ms\n"); - err = TestWait50ms_18(); + ChipLogProgress(chipTool, " ***** Test Step 18 : Wait 500ms\n"); + err = TestWait500ms_18(); break; case 19: - ChipLogProgress(chipTool, - " ***** Test Step 19 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads EnhancedCurrentHue attribute from DUT several times\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_19(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Enhanced Move Hue Stop command\n"); - if (ShouldSkip("CC.S.C41.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 20 : TH sends EnhancedMoveHue command to DUT with MoveMode Stop\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C41.Rsp")) { NextTest(); return; } - err = TestEnhancedMoveHueStopCommand_20(); + err = TestThSendsEnhancedMoveHueCommandToDutWithMoveModeStop_20(); break; case 21: - ChipLogProgress(chipTool, - " ***** Test Step 21 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 21 : TH reads EnhancedCurrentHue attribute from DUT several times.\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_21(); + err = TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_21(); break; case 22: ChipLogProgress(chipTool, " ***** Test Step 22 : Turn off light that we turned on\n"); @@ -14559,7 +12085,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeFromDut_3() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14568,7 +12094,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute from DUT Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14582,7 +12108,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveHueUpCommand_4() + CHIP_ERROR TestThSendsEnhancedMoveHueCommandToDutWithMoveModeUp_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14597,7 +12123,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedMoveHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move Hue Up command Error: %@", err); + NSLog(@"TH sends EnhancedMoveHue command to DUT with MoveMode Up Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14607,14 +12133,14 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait290ms_5() + CHIP_ERROR TestWait1000ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 290UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_6() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14623,7 +12149,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14637,14 +12163,14 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait295ms_7() + CHIP_ERROR TestWait1000ms_7() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 295UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_8() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14653,7 +12179,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14667,14 +12193,14 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait300ms_9() + CHIP_ERROR TestWait1000ms_9() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 300UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_10() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14683,7 +12209,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14697,7 +12223,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveHueStopCommand_11() + CHIP_ERROR TestThSendsEnhancedMoveHueCommandToDutWithMoveModeStop_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14712,7 +12238,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedMoveHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move Hue Stop command Error: %@", err); + NSLog(@"TH sends EnhancedMoveHue command to DUT with MoveMode Stop Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14722,7 +12248,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_12() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14731,7 +12257,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14745,7 +12271,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveHueDownCommand_13() + CHIP_ERROR TestThSendsEnhancedMoveHueCommandToDutWithMoveModeDown_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14755,12 +12281,12 @@ class Test_TC_CC_7_2 : public TestCommandBridge { __auto_type * params = [[MTRColorControlClusterEnhancedMoveHueParams alloc] init]; params.moveMode = [NSNumber numberWithUnsignedChar:3U]; - params.rate = [NSNumber numberWithUnsignedShort:5U]; + params.rate = [NSNumber numberWithUnsignedShort:15U]; params.optionsMask = [NSNumber numberWithUnsignedChar:0U]; params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedMoveHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move Hue Down command Error: %@", err); + NSLog(@"TH sends EnhancedMoveHue command to DUT with MoveMode Down Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14770,14 +12296,14 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait40ms_14() + CHIP_ERROR TestWait500ms_14() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 40UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_15() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14786,7 +12312,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14800,14 +12326,14 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait45ms_16() + CHIP_ERROR TestWait500ms_16() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 45UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_17() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14816,7 +12342,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14830,14 +12356,14 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait50ms_18() + CHIP_ERROR TestWait500ms_18() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 50UL; + value.ms = 500UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_19() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14846,7 +12372,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14860,7 +12386,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveHueStopCommand_20() + CHIP_ERROR TestThSendsEnhancedMoveHueCommandToDutWithMoveModeStop_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14875,7 +12401,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedMoveHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move Hue Stop command Error: %@", err); + NSLog(@"TH sends EnhancedMoveHue command to DUT with MoveMode Stop Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14885,7 +12411,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastCommand_21() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDutSeveralTimes_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -14894,7 +12420,7 @@ class Test_TC_CC_7_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT several times. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -14999,48 +12525,48 @@ class Test_TC_CC_7_3 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Reads EnhancedCurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads EnhancedCurrentHue attribute from DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestReadsEnhancedCurrentHueAttributeFromDut_3(); + err = TestThReadsEnhancedCurrentHueAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Enhanced Step Hue Up command\n"); - if (ShouldSkip("CC.S.C42.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends EnhancedStepHue command to DUT with StepMode Up\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C42.Rsp")) { NextTest(); return; } - err = TestEnhancedStepHueUpCommand_4(); + err = TestThSendsEnhancedStepHueCommandToDutWithStepModeUp_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 10ms\n"); - err = TestWait10ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1000ms\n"); + err = TestWait1000ms_5(); break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Over TransitionTime,Read EnhancedCurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4000")) { + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } err = TestOverTransitionTimeReadEnhancedCurrentHueAttributeFromDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Enhanced Step Hue Down command\n"); - if (ShouldSkip("CC.S.C42.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : TH sends EnhancedStepHue command to DUT with StepMode Down\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C42.Rsp")) { NextTest(); return; } - err = TestEnhancedStepHueDownCommand_7(); + err = TestThSendsEnhancedStepHueCommandToDutWithStepModeDown_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 10ms\n"); - err = TestWait10ms_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 1000ms\n"); + err = TestWait1000ms_8(); break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Over TransitionTime,Read EnhancedCurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4000")) { + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } @@ -15167,7 +12693,7 @@ class Test_TC_CC_7_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsEnhancedCurrentHueAttributeFromDut_3() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -15176,7 +12702,7 @@ class Test_TC_CC_7_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads EnhancedCurrentHue attribute from DUT Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -15190,7 +12716,7 @@ class Test_TC_CC_7_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedStepHueUpCommand_4() + CHIP_ERROR TestThSendsEnhancedStepHueCommandToDutWithStepModeUp_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -15206,7 +12732,7 @@ class Test_TC_CC_7_3 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedStepHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Step Hue Up command Error: %@", err); + NSLog(@"TH sends EnhancedStepHue command to DUT with StepMode Up Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -15216,10 +12742,10 @@ class Test_TC_CC_7_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10ms_5() + CHIP_ERROR TestWait1000ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } @@ -15246,7 +12772,7 @@ class Test_TC_CC_7_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedStepHueDownCommand_7() + CHIP_ERROR TestThSendsEnhancedStepHueCommandToDutWithStepModeDown_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -15262,7 +12788,7 @@ class Test_TC_CC_7_3 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedStepHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Step Hue Down command Error: %@", err); + NSLog(@"TH sends EnhancedStepHue command to DUT with StepMode Down Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -15272,10 +12798,10 @@ class Test_TC_CC_7_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10ms_8() + CHIP_ERROR TestWait1000ms_8() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1000UL; return WaitForMs("alpha", value); } @@ -15393,29 +12919,29 @@ class Test_TC_CC_7_4 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Reads EnhancedCurrentHue attribute from DUT\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads EnhancedCurrentHue attribute from DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } - err = TestReadsEnhancedCurrentHueAttributeFromDut_3(); + err = TestThReadsEnhancedCurrentHueAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Enhanced move to hue and saturation command\n"); - if (ShouldSkip("CC.S.C43.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends EnhancedMoveToHueAndSaturation command to DUT\n"); + if (ShouldSkip("CC.S.F01 && CC.S.C43.Rsp")) { NextTest(); return; } - err = TestEnhancedMoveToHueAndSaturationCommand_4(); + err = TestThSendsEnhancedMoveToHueAndSaturationCommandToDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 10ms\n"); - err = TestWait10ms_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Wait 1500ms\n"); + err = TestWait1500ms_5(); break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Check EnhancedCurrentHue attribute value matched the value sent by the last command\n"); - if (ShouldSkip("CC.S.A4000")) { + if (ShouldSkip("CC.S.F01 && CC.S.A4000")) { NextTest(); return; } @@ -15533,7 +13059,7 @@ class Test_TC_CC_7_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsEnhancedCurrentHueAttributeFromDut_3() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -15542,7 +13068,7 @@ class Test_TC_CC_7_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads EnhancedCurrentHue attribute from DUT Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -15556,7 +13082,7 @@ class Test_TC_CC_7_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveToHueAndSaturationCommand_4() + CHIP_ERROR TestThSendsEnhancedMoveToHueAndSaturationCommandToDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -15572,7 +13098,7 @@ class Test_TC_CC_7_4 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedMoveToHueAndSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced move to hue and saturation command Error: %@", err); + NSLog(@"TH sends EnhancedMoveToHueAndSaturation command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -15582,10 +13108,10 @@ class Test_TC_CC_7_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10ms_5() + CHIP_ERROR TestWait1500ms_5() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10UL; + value.ms = 1500UL; return WaitForMs("alpha", value); } @@ -15602,6 +13128,11 @@ class Test_TC_CC_7_4 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedCurrentHue", actualValue, 1200U)); + } + VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); @@ -15703,197 +13234,192 @@ class Test_TC_CC_8_1 : public TestCommandBridge { err = TestCheckOnOffAttributeValueIsTrueAfterOnCommand_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Move hue up command\n"); + ChipLogProgress(chipTool, " ***** Test Step 3 : TH sends MoveHue command to DUT\n"); if (ShouldSkip("CC.S.C01.Rsp")) { NextTest(); return; } - err = TestMoveHueUpCommand_3(); + err = TestThSendsMoveHueCommandToDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Reads CurrentHue attribute from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads CurrentHue attribute from DUT\n"); if (ShouldSkip("CC.S.A0000")) { NextTest(); return; } - err = TestReadsCurrentHueAttributeFromDut_4(); + err = TestThReadsCurrentHueAttributeFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Stop Move Step command\n"); + ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends StopMoveStep command to DUT\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStopMoveStepCommand_5(); + err = TestThSendsStopMoveStepCommandToDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Reads CurrentHue attribute from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads CurrentHue attribute from DUT\n"); if (ShouldSkip("CC.S.A0000")) { NextTest(); return; } - err = TestReadsCurrentHueAttributeFromDut_6(); + err = TestThReadsCurrentHueAttributeFromDut_6(); break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 100ms\n"); err = TestWait100ms_7(); break; case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Check current hue attribute value matched the value sent by the last attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads CurrentHue attribute from DUT\n"); if (ShouldSkip("CC.S.A0000")) { NextTest(); return; } - err = TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastAttribute_8(); + err = TestThReadsCurrentHueAttributeFromDut_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Move saturation up command\n"); + ChipLogProgress(chipTool, " ***** Test Step 9 : TH sends MoveSaturation command to DUT\n"); if (ShouldSkip("CC.S.C04.Rsp")) { NextTest(); return; } - err = TestMoveSaturationUpCommand_9(); + err = TestThSendsMoveSaturationCommandToDut_9(); break; case 10: - ChipLogProgress( - chipTool, " ***** Test Step 10 : Check Saturation attribute value matched the value sent by the last command\n"); + ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads CurrentSaturation attribute from DUT\n"); if (ShouldSkip("CC.S.A0001")) { NextTest(); return; } - err = TestCheckSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10(); + err = TestThReadsCurrentSaturationAttributeFromDut_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Stop Move Step command\n"); + ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends StopMoveStep command to DUT\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStopMoveStepCommand_11(); + err = TestThSendsStopMoveStepCommandToDut_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Reads CurrentSaturation attribute from DUT.\n"); + ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads CurrentSaturation attribute from DUT\n"); if (ShouldSkip("CC.S.A0001")) { NextTest(); return; } - err = TestReadsCurrentSaturationAttributeFromDut_12(); + err = TestThReadsCurrentSaturationAttributeFromDut_12(); break; case 13: ChipLogProgress(chipTool, " ***** Test Step 13 : Wait 100ms\n"); err = TestWait100ms_13(); break; case 14: - ChipLogProgress( - chipTool, " ***** Test Step 14 : Check Saturation attribute value matched the value sent by the last attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads CurrentSaturation attribute from DUT\n"); if (ShouldSkip("CC.S.A0001")) { NextTest(); return; } - err = TestCheckSaturationAttributeValueMatchedTheValueSentByTheLastAttribute_14(); + err = TestThReadsCurrentSaturationAttributeFromDut_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Move Color command\n"); + ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends MoveColor command to DUT\n"); if (ShouldSkip("CC.S.C08.Rsp")) { NextTest(); return; } - err = TestMoveColorCommand_15(); + err = TestThSendsMoveColorCommandToDut_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Reads CurrentX attribute from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads CurrentX attribute from DUT\n"); if (ShouldSkip("CC.S.A0003")) { NextTest(); return; } - err = TestReadsCurrentXAttributeFromDut_16(); + err = TestThReadsCurrentXAttributeFromDut_16(); break; case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Reads CurrentY attribute from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads CurrentY attribute from DUT\n"); if (ShouldSkip("CC.S.A0004")) { NextTest(); return; } - err = TestReadsCurrentYAttributeFromDut_17(); + err = TestThReadsCurrentYAttributeFromDut_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Stop Move Step command\n"); + ChipLogProgress(chipTool, " ***** Test Step 18 : TH sends StopMoveStep command to DUT\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStopMoveStepCommand_18(); + err = TestThSendsStopMoveStepCommandToDut_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Reads CurrentX attribute from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads CurrentX attribute from DUT\n"); if (ShouldSkip("CC.S.A0003")) { NextTest(); return; } - err = TestReadsCurrentXAttributeFromDut_19(); + err = TestThReadsCurrentXAttributeFromDut_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Reads CurrentY attribute from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 20 : TH reads CurrentY attribute from DUT\n"); if (ShouldSkip("CC.S.A0004")) { NextTest(); return; } - err = TestReadsCurrentYAttributeFromDut_20(); + err = TestThReadsCurrentYAttributeFromDut_20(); break; case 21: ChipLogProgress(chipTool, " ***** Test Step 21 : Wait 100ms\n"); err = TestWait100ms_21(); break; case 22: - ChipLogProgress( - chipTool, " ***** Test Step 22 : Check current x attribute value matched the value sent by the last attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 22 : TH reads CurrentY attribute from DUT\n"); if (ShouldSkip("CC.S.A0003")) { NextTest(); return; } - err = TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastAttribute_22(); + err = TestThReadsCurrentYAttributeFromDut_22(); break; case 23: - ChipLogProgress( - chipTool, " ***** Test Step 23 : Check current y attribute value matched the value sent by the last attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads CurrentY attribute from DUT\n"); if (ShouldSkip("CC.S.A0004")) { NextTest(); return; } - err = TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastAttribute_23(); + err = TestThReadsCurrentYAttributeFromDut_23(); break; case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Move up color temperature command\n"); + ChipLogProgress(chipTool, " ***** Test Step 24 : TH sends MoveColorTemperature command to DUT\n"); if (ShouldSkip("CC.S.C4B.Rsp")) { NextTest(); return; } - err = TestMoveUpColorTemperatureCommand_24(); + err = TestThSendsMoveColorTemperatureCommandToDut_24(); break; case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Reads current color temprature from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 25 : TH reads ColorTemperatureMireds attribute from DUT\n"); if (ShouldSkip("CC.S.A0007")) { NextTest(); return; } - err = TestReadsCurrentColorTempratureFromDut_25(); + err = TestThReadsColorTemperatureMiredsAttributeFromDut_25(); break; case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Stop Move Step command\n"); + ChipLogProgress(chipTool, " ***** Test Step 26 : TH sends StopMoveStep command to DUT\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStopMoveStepCommand_26(); + err = TestThSendsStopMoveStepCommandToDut_26(); break; case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Reads current color temprature from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 27 : TH reads ColorTemperatureMireds attribute from DUT\n"); if (ShouldSkip("CC.S.A0007")) { NextTest(); return; } - err = TestReadsCurrentColorTempratureFromDut_27(); + err = TestThReadsColorTemperatureMiredsAttributeFromDut_27(); break; case 28: ChipLogProgress(chipTool, " ***** Test Step 28 : Wait 100ms\n"); @@ -15909,49 +13435,48 @@ class Test_TC_CC_8_1 : public TestCommandBridge { err = TestReadsCurrentColorAttributeValueMatchedTheValueSentByTheLastAttribute_29(); break; case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Enhanced Move Hue Up command\n"); + ChipLogProgress(chipTool, " ***** Test Step 30 : TH sends EnhancedMoveHue command to DUT.\n"); if (ShouldSkip("CC.S.C41.Rsp")) { NextTest(); return; } - err = TestEnhancedMoveHueUpCommand_30(); + err = TestThSendsEnhancedMoveHueCommandToDut_30(); break; case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Reads EnhancedCurrentHue attribute value from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 31 : TH reads EnhancedCurrentHue attribute from DUT\n"); if (ShouldSkip("CC.S.A4000")) { NextTest(); return; } - err = TestReadsEnhancedCurrentHueAttributeValueFromDut_31(); + err = TestThReadsEnhancedCurrentHueAttributeFromDut_31(); break; case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Stop Move Step command\n"); + ChipLogProgress(chipTool, " ***** Test Step 32 : TH sends StopMoveStep command to DUT\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStopMoveStepCommand_32(); + err = TestThSendsStopMoveStepCommandToDut_32(); break; case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Reads EnhancedCurrentHue attribute value from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 33 : TH reads EnhancedCurrentHue attribute from DUT\n"); if (ShouldSkip("CC.S.A4000")) { NextTest(); return; } - err = TestReadsEnhancedCurrentHueAttributeValueFromDut_33(); + err = TestThReadsEnhancedCurrentHueAttributeFromDut_33(); break; case 34: ChipLogProgress(chipTool, " ***** Test Step 34 : Wait 100ms\n"); err = TestWait100ms_34(); break; case 35: - ChipLogProgress(chipTool, - " ***** Test Step 35 : Check EnhancedCurrentHue attribute value matched the value sent by the last attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 35 : TH reads EnhancedCurrentHue attribute from DUT\n"); if (ShouldSkip("CC.S.A4000")) { NextTest(); return; } - err = TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastAttribute_35(); + err = TestThReadsEnhancedCurrentHueAttributeFromDut_35(); break; case 36: ChipLogProgress(chipTool, " ***** Test Step 36 : Turn off light that we turned on\n"); @@ -16152,7 +13677,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveHueUpCommand_3() + CHIP_ERROR TestThSendsMoveHueCommandToDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16167,7 +13692,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move hue up command Error: %@", err); + NSLog(@"TH sends MoveHue command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16177,7 +13702,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsCurrentHueAttributeFromDut_4() + CHIP_ERROR TestThReadsCurrentHueAttributeFromDut_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16186,7 +13711,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentHue attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16200,7 +13725,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStopMoveStepCommand_5() + CHIP_ERROR TestThSendsStopMoveStepCommandToDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16213,7 +13738,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stopMoveStepWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Move Step command Error: %@", err); + NSLog(@"TH sends StopMoveStep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16222,8 +13747,9 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull CurrentHueValue; - CHIP_ERROR TestReadsCurrentHueAttributeFromDut_6() + CHIP_ERROR TestThReadsCurrentHueAttributeFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16232,13 +13758,16 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentHue attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); + { + CurrentHueValue = value; + } NextTest(); }]; @@ -16253,7 +13782,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentHueAttributeValueMatchedTheValueSentByTheLastAttribute_8() + CHIP_ERROR TestThReadsCurrentHueAttributeFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16262,10 +13791,15 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current hue attribute value matched the value sent by the last attribute Error: %@", err); + NSLog(@"TH reads CurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentHue", actualValue, CurrentHueValue)); + } + VerifyOrReturn(CheckConstraintType("currentHue", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 254U)); @@ -16276,7 +13810,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveSaturationUpCommand_9() + CHIP_ERROR TestThSendsMoveSaturationCommandToDut_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16291,7 +13825,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveSaturationWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move saturation up command Error: %@", err); + NSLog(@"TH sends MoveSaturation command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16301,7 +13835,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckSaturationAttributeValueMatchedTheValueSentByTheLastCommand_10() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16310,7 +13844,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check Saturation attribute value matched the value sent by the last command Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16324,7 +13858,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStopMoveStepCommand_11() + CHIP_ERROR TestThSendsStopMoveStepCommandToDut_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16337,7 +13871,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stopMoveStepWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Move Step command Error: %@", err); + NSLog(@"TH sends StopMoveStep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16346,8 +13880,9 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull CurrentSaturationValue; - CHIP_ERROR TestReadsCurrentSaturationAttributeFromDut_12() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16356,13 +13891,16 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentSaturation attribute from DUT. Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); + { + CurrentSaturationValue = value; + } NextTest(); }]; @@ -16377,7 +13915,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckSaturationAttributeValueMatchedTheValueSentByTheLastAttribute_14() + CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16386,10 +13924,15 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentSaturationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check Saturation attribute value matched the value sent by the last attribute Error: %@", err); + NSLog(@"TH reads CurrentSaturation attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, CurrentSaturationValue)); + } + VerifyOrReturn(CheckConstraintType("currentSaturation", "", "uint8")); VerifyOrReturn(CheckConstraintMinValue("currentSaturation", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentSaturation", [value unsignedCharValue], 254U)); @@ -16400,7 +13943,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveColorCommand_15() + CHIP_ERROR TestThSendsMoveColorCommandToDut_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16415,7 +13958,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveColorWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move Color command Error: %@", err); + NSLog(@"TH sends MoveColor command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16425,7 +13968,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsCurrentXAttributeFromDut_16() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16434,7 +13977,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentX attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16448,7 +13991,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsCurrentYAttributeFromDut_17() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16457,7 +14000,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentY attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16471,7 +14014,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStopMoveStepCommand_18() + CHIP_ERROR TestThSendsStopMoveStepCommandToDut_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16484,7 +14027,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stopMoveStepWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Move Step command Error: %@", err); + NSLog(@"TH sends StopMoveStep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16493,8 +14036,9 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull CurrentXValue; - CHIP_ERROR TestReadsCurrentXAttributeFromDut_19() + CHIP_ERROR TestThReadsCurrentXAttributeFromDut_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16503,21 +14047,25 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentX attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentX attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentX", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 65279U)); + { + CurrentXValue = value; + } NextTest(); }]; return CHIP_NO_ERROR; } + NSNumber * _Nonnull CurrentYValue; - CHIP_ERROR TestReadsCurrentYAttributeFromDut_20() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16526,13 +14074,16 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads CurrentY attribute from DUT Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentY", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 65279U)); + { + CurrentYValue = value; + } NextTest(); }]; @@ -16547,7 +14098,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckCurrentXAttributeValueMatchedTheValueSentByTheLastAttribute_22() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16556,10 +14107,15 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentXWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current x attribute value matched the value sent by the last attribute Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentX", actualValue, CurrentXValue)); + } + VerifyOrReturn(CheckConstraintType("currentX", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 65279U)); @@ -16570,7 +14126,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckCurrentYAttributeValueMatchedTheValueSentByTheLastAttribute_23() + CHIP_ERROR TestThReadsCurrentYAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16579,10 +14135,15 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentYWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check current y attribute value matched the value sent by the last attribute Error: %@", err); + NSLog(@"TH reads CurrentY attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("CurrentY", actualValue, CurrentYValue)); + } + VerifyOrReturn(CheckConstraintType("currentY", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 65279U)); @@ -16593,7 +14154,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestMoveUpColorTemperatureCommand_24() + CHIP_ERROR TestThSendsMoveColorTemperatureCommandToDut_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16610,7 +14171,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster moveColorTemperatureWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Move up color temperature command Error: %@", err); + NSLog(@"TH sends MoveColorTemperature command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16620,7 +14181,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsCurrentColorTempratureFromDut_25() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDut_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16629,7 +14190,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads current color temprature from DUT Error: %@", err); + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16643,7 +14204,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStopMoveStepCommand_26() + CHIP_ERROR TestThSendsStopMoveStepCommandToDut_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16656,7 +14217,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stopMoveStepWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Move Step command Error: %@", err); + NSLog(@"TH sends StopMoveStep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16665,8 +14226,9 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull ColorTemperatureMiredsValue; - CHIP_ERROR TestReadsCurrentColorTempratureFromDut_27() + CHIP_ERROR TestThReadsColorTemperatureMiredsAttributeFromDut_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16675,13 +14237,16 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeColorTemperatureWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads current color temprature from DUT Error: %@", err); + NSLog(@"TH reads ColorTemperatureMireds attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); + { + ColorTemperatureMiredsValue = value; + } NextTest(); }]; @@ -16709,6 +14274,11 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorTemperature", actualValue, ColorTemperatureMiredsValue)); + } + VerifyOrReturn(CheckConstraintType("colorTemperature", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("colorTemperature", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorTemperature", [value unsignedShortValue], 65279U)); @@ -16719,7 +14289,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestEnhancedMoveHueUpCommand_30() + CHIP_ERROR TestThSendsEnhancedMoveHueCommandToDut_30() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16734,7 +14304,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster enhancedMoveHueWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Enhanced Move Hue Up command Error: %@", err); + NSLog(@"TH sends EnhancedMoveHue command to DUT. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16744,7 +14314,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsEnhancedCurrentHueAttributeValueFromDut_31() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDut_31() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16753,7 +14323,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads EnhancedCurrentHue attribute value from DUT Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16767,7 +14337,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStopMoveStepCommand_32() + CHIP_ERROR TestThSendsStopMoveStepCommandToDut_32() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16780,7 +14350,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { params.optionsOverride = [NSNumber numberWithUnsignedChar:0U]; [cluster stopMoveStepWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"Stop Move Step command Error: %@", err); + NSLog(@"TH sends StopMoveStep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -16789,8 +14359,9 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + NSNumber * _Nonnull EnhancedCurrentHueValue; - CHIP_ERROR TestReadsEnhancedCurrentHueAttributeValueFromDut_33() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDut_33() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16799,13 +14370,16 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads EnhancedCurrentHue attribute value from DUT Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); + { + EnhancedCurrentHueValue = value; + } NextTest(); }]; @@ -16820,7 +14394,7 @@ class Test_TC_CC_8_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR TestCheckEnhancedCurrentHueAttributeValueMatchedTheValueSentByTheLastAttribute_35() + CHIP_ERROR TestThReadsEnhancedCurrentHueAttributeFromDut_35() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -16829,10 +14403,15 @@ class Test_TC_CC_8_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEnhancedCurrentHueWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Check EnhancedCurrentHue attribute value matched the value sent by the last attribute Error: %@", err); + NSLog(@"TH reads EnhancedCurrentHue attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedCurrentHue", actualValue, EnhancedCurrentHueValue)); + } + VerifyOrReturn(CheckConstraintType("enhancedCurrentHue", "", "uint16")); VerifyOrReturn(CheckConstraintMinValue("enhancedCurrentHue", [value unsignedShortValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("enhancedCurrentHue", [value unsignedShortValue], 65535U)); @@ -22043,12 +19622,12 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { err = TestReadTheOptonalAttributeMinLevelInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optonal attribute(MinLevel) in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optonal attribute(MaxLevel) in AttributeList\n"); if (ShouldSkip("LVL.S.A0003")) { NextTest(); return; } - err = TestReadTheOptonalAttributeMinLevelInAttributeList_7(); + err = TestReadTheOptonalAttributeMaxLevelInAttributeList_7(); break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optonal attribute(OnOffTransitionTime) in AttributeList\n"); @@ -22339,7 +19918,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptonalAttributeMinLevelInAttributeList_7() + CHIP_ERROR TestReadTheOptonalAttributeMaxLevelInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -22348,7 +19927,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optonal attribute(MinLevel) in AttributeList Error: %@", err); + NSLog(@"Read the optonal attribute(MaxLevel) in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -22586,188 +20165,164 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Precondition: Reset level to 254\n"); - if (ShouldSkip("PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestPreconditionResetLevelTo254_1(); - break; - case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Wait 100ms\n"); - if (ShouldSkip("PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestWait100ms_2(); - break; - case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Precondition: Reads the CurrentLevel attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 1 : Reads the CurrentLevel attribute\n"); if (ShouldSkip("LVL.S.A0000")) { NextTest(); return; } - err = TestPreconditionReadsTheCurrentLevelAttribute_3(); + err = TestReadsTheCurrentLevelAttribute_1(); break; - case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Reads the CurrentLevel attribute\n"); - if (ShouldSkip("LVL.S.A0000")) { - NextTest(); - return; - } - err = TestReadsTheCurrentLevelAttribute_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Reads the RemainingTime attribute\n"); + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : Reads the RemainingTime attribute\n"); if (ShouldSkip("LVL.S.A0001")) { NextTest(); return; } - err = TestReadsTheRemainingTimeAttribute_5(); + err = TestReadsTheRemainingTimeAttribute_2(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Reads the MinLevel attribute\n"); + case 3: + ChipLogProgress(chipTool, " ***** Test Step 3 : Reads the MinLevel attribute\n"); if (ShouldSkip("LVL.S.A0002 && LVL.S.F01")) { NextTest(); return; } - err = TestReadsTheMinLevelAttribute_6(); + err = TestReadsTheMinLevelAttribute_3(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Reads the MinLevel attribute\n"); + case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Reads the MinLevel attribute\n"); if (ShouldSkip("LVL.S.A0002 && !LVL.S.F01")) { NextTest(); return; } - err = TestReadsTheMinLevelAttribute_7(); + err = TestReadsTheMinLevelAttribute_4(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Reads the MaxLevel attribute\n"); + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Reads the MaxLevel attribute\n"); if (ShouldSkip("LVL.S.A0003 && LVL.S.F01")) { NextTest(); return; } - err = TestReadsTheMaxLevelAttribute_8(); + err = TestReadsTheMaxLevelAttribute_5(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Reads the MaxLevel attribute\n"); + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Reads the MaxLevel attribute\n"); if (ShouldSkip("LVL.S.A0003 && !LVL.S.F01")) { NextTest(); return; } - err = TestReadsTheMaxLevelAttribute_9(); + err = TestReadsTheMaxLevelAttribute_6(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4b & 4C Reads the CurrentLevel attribute\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4b & 4C Reads the CurrentLevel attribute\n"); if (ShouldSkip("LVL.S.F01 && LVL.S.A0002 && LVL.S.A0003")) { NextTest(); return; } - err = TestStep4b4cReadsTheCurrentLevelAttribute_10(); + err = TestStep4b4cReadsTheCurrentLevelAttribute_7(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4b & 4C Reads the CurrentLevel attribute\n"); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4b & 4C Reads the CurrentLevel attribute\n"); if (ShouldSkip("LVL.S.A0002 && LVL.S.A0003 && !LVL.S.F01")) { NextTest(); return; } - err = TestStep4b4cReadsTheCurrentLevelAttribute_11(); + err = TestStep4b4cReadsTheCurrentLevelAttribute_8(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Reads the CurrentFrequency attribute\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Reads the CurrentFrequency attribute\n"); if (ShouldSkip("LVL.S.A0004")) { NextTest(); return; } - err = TestReadsTheCurrentFrequencyAttribute_12(); + err = TestReadsTheCurrentFrequencyAttribute_9(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Reads the MinFrequency attribute\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Reads the MinFrequency attribute\n"); if (ShouldSkip("LVL.S.A0005")) { NextTest(); return; } - err = TestReadsTheMinFrequencyAttribute_13(); + err = TestReadsTheMinFrequencyAttribute_10(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Reads the MaxFrequency attribute\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Reads the MaxFrequency attribute\n"); if (ShouldSkip("LVL.S.A0006")) { NextTest(); return; } - err = TestReadsTheMaxFrequencyAttribute_14(); + err = TestReadsTheMaxFrequencyAttribute_11(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7b & 7C Reads the CurrentFrequency attribute\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 7b & 7C Reads the CurrentFrequency attribute\n"); if (ShouldSkip("LVL.S.A0004 && LVL.S.A0005 && LVL.S.A0006")) { NextTest(); return; } - err = TestStep7b7cReadsTheCurrentFrequencyAttribute_15(); + err = TestStep7b7cReadsTheCurrentFrequencyAttribute_12(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Reads the OnOffTransitionTime attribute\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Reads the OnOffTransitionTime attribute\n"); if (ShouldSkip("LVL.S.A0010")) { NextTest(); return; } - err = TestReadsTheOnOffTransitionTimeAttribute_16(); + err = TestReadsTheOnOffTransitionTimeAttribute_13(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Reads the OnLevel attribute \n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Reads the OnLevel attribute \n"); if (ShouldSkip("LVL.S.F01 && LVL.S.A0011")) { NextTest(); return; } - err = TestReadsTheOnLevelAttribute_17(); + err = TestReadsTheOnLevelAttribute_14(); break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Reads the OnLevel attribute \n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Reads the OnLevel attribute \n"); if (ShouldSkip("LVL.S.A0011 && !LVL.S.F01")) { NextTest(); return; } - err = TestReadsTheOnLevelAttribute_18(); + err = TestReadsTheOnLevelAttribute_15(); break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Reads the OnTransitionTime attribute \n"); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Reads the OnTransitionTime attribute \n"); if (ShouldSkip("LVL.S.A0012")) { NextTest(); return; } - err = TestReadsTheOnTransitionTimeAttribute_19(); + err = TestReadsTheOnTransitionTimeAttribute_16(); break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Reads the OffTransitionTime attribute \n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Reads the OffTransitionTime attribute \n"); if (ShouldSkip("LVL.S.A0013")) { NextTest(); return; } - err = TestReadsTheOffTransitionTimeAttribute_20(); + err = TestReadsTheOffTransitionTimeAttribute_17(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Reads the DefaultMoveRate attribute \n"); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Reads the DefaultMoveRate attribute \n"); if (ShouldSkip("LVL.S.A0014")) { NextTest(); return; } - err = TestReadsTheDefaultMoveRateAttribute_21(); + err = TestReadsTheDefaultMoveRateAttribute_18(); break; - case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : Reads the Options attribute \n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Reads the Options attribute \n"); if (ShouldSkip("LVL.S.A000f")) { NextTest(); return; } - err = TestReadsTheOptionsAttribute_22(); + err = TestReadsTheOptionsAttribute_19(); break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Reads the StartUpCurrentLevel attribute \n"); + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Reads the StartUpCurrentLevel attribute \n"); if (ShouldSkip("LVL.S.A4000")) { NextTest(); return; } - err = TestReadsTheStartUpCurrentLevelAttribute_23(); + err = TestReadsTheStartUpCurrentLevelAttribute_20(); break; } @@ -22843,15 +20398,6 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -22865,7 +20411,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 24; + const uint16_t mTestCount = 21; chip::Optional mNodeId; chip::Optional mCluster; @@ -22878,65 +20424,9 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee("alpha", value); } - - CHIP_ERROR TestPreconditionResetLevelTo254_1() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRLevelControlClusterMoveToLevelParams alloc] init]; - params.level = [NSNumber numberWithUnsignedChar:254U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; - params.optionMask = [NSNumber numberWithUnsignedChar:1U]; - params.optionOverride = [NSNumber numberWithUnsignedChar:1U]; - [cluster moveToLevelWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Precondition: Reset level to 254 Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait100ms_2() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestPreconditionReadsTheCurrentLevelAttribute_3() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Precondition: Reads the CurrentLevel attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("current level", actualValue, 254U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } NSNumber * _Nonnull CurrentLevelValue; - CHIP_ERROR TestReadsTheCurrentLevelAttribute_4() + CHIP_ERROR TestReadsTheCurrentLevelAttribute_1() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -22962,7 +20452,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheRemainingTimeAttribute_5() + CHIP_ERROR TestReadsTheRemainingTimeAttribute_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -22986,7 +20476,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { } NSNumber * _Nonnull MinLevelValue; - CHIP_ERROR TestReadsTheMinLevelAttribute_6() + CHIP_ERROR TestReadsTheMinLevelAttribute_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23014,9 +20504,9 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - NSNumber * _Nonnull MinLevelValue1; + NSNumber * _Nonnull MinLevelFeatureMapNotSupportedValue; - CHIP_ERROR TestReadsTheMinLevelAttribute_7() + CHIP_ERROR TestReadsTheMinLevelAttribute_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23033,7 +20523,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintMinValue("minLevel", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("minLevel", [value unsignedCharValue], 255U)); { - MinLevelValue1 = value; + MinLevelFeatureMapNotSupportedValue = value; } NextTest(); @@ -23043,7 +20533,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { } NSNumber * _Nonnull MaxLevelValue; - CHIP_ERROR TestReadsTheMaxLevelAttribute_8() + CHIP_ERROR TestReadsTheMaxLevelAttribute_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23072,9 +20562,9 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - NSNumber * _Nonnull MaxLevelValue1; + NSNumber * _Nonnull MaxLevelFeatureMapNotSupportedValue; - CHIP_ERROR TestReadsTheMaxLevelAttribute_9() + CHIP_ERROR TestReadsTheMaxLevelAttribute_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23088,10 +20578,11 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("maxLevel", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("maxLevel", [value unsignedCharValue], MinLevelValue1)); + VerifyOrReturn( + CheckConstraintMinValue("maxLevel", [value unsignedCharValue], MinLevelFeatureMapNotSupportedValue)); VerifyOrReturn(CheckConstraintMaxValue("maxLevel", [value unsignedCharValue], 254U)); { - MaxLevelValue1 = value; + MaxLevelFeatureMapNotSupportedValue = value; } NextTest(); @@ -23100,7 +20591,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4b4cReadsTheCurrentLevelAttribute_10() + CHIP_ERROR TestStep4b4cReadsTheCurrentLevelAttribute_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23123,7 +20614,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4b4cReadsTheCurrentLevelAttribute_11() + CHIP_ERROR TestStep4b4cReadsTheCurrentLevelAttribute_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23137,8 +20628,10 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("currentLevel", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("currentLevel", [value unsignedCharValue], MinLevelValue1)); - VerifyOrReturn(CheckConstraintMaxValue("currentLevel", [value unsignedCharValue], MaxLevelValue1)); + VerifyOrReturn( + CheckConstraintMinValue("currentLevel", [value unsignedCharValue], MinLevelFeatureMapNotSupportedValue)); + VerifyOrReturn( + CheckConstraintMaxValue("currentLevel", [value unsignedCharValue], MaxLevelFeatureMapNotSupportedValue)); NextTest(); }]; @@ -23146,7 +20639,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheCurrentFrequencyAttribute_12() + CHIP_ERROR TestReadsTheCurrentFrequencyAttribute_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23170,7 +20663,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { } NSNumber * _Nonnull MinFrequencyValue; - CHIP_ERROR TestReadsTheMinFrequencyAttribute_13() + CHIP_ERROR TestReadsTheMinFrequencyAttribute_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23197,7 +20690,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { } NSNumber * _Nonnull MaxFrequencyValue; - CHIP_ERROR TestReadsTheMaxFrequencyAttribute_14() + CHIP_ERROR TestReadsTheMaxFrequencyAttribute_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23223,7 +20716,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7b7cReadsTheCurrentFrequencyAttribute_15() + CHIP_ERROR TestStep7b7cReadsTheCurrentFrequencyAttribute_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23246,7 +20739,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheOnOffTransitionTimeAttribute_16() + CHIP_ERROR TestReadsTheOnOffTransitionTimeAttribute_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23269,7 +20762,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheOnLevelAttribute_17() + CHIP_ERROR TestReadsTheOnLevelAttribute_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23295,7 +20788,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheOnLevelAttribute_18() + CHIP_ERROR TestReadsTheOnLevelAttribute_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23311,8 +20804,10 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { if (value != nil) { VerifyOrReturn(CheckConstraintType("onLevel", "", "uint8")); - VerifyOrReturn(CheckConstraintMinValue("onLevel", [value unsignedCharValue], MinLevelValue1)); - VerifyOrReturn(CheckConstraintMaxValue("onLevel", [value unsignedCharValue], MaxLevelValue1)); + VerifyOrReturn( + CheckConstraintMinValue("onLevel", [value unsignedCharValue], MinLevelFeatureMapNotSupportedValue)); + VerifyOrReturn( + CheckConstraintMaxValue("onLevel", [value unsignedCharValue], MaxLevelFeatureMapNotSupportedValue)); } NextTest(); @@ -23321,7 +20816,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheOnTransitionTimeAttribute_19() + CHIP_ERROR TestReadsTheOnTransitionTimeAttribute_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23347,7 +20842,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheOffTransitionTimeAttribute_20() + CHIP_ERROR TestReadsTheOffTransitionTimeAttribute_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23373,7 +20868,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheDefaultMoveRateAttribute_21() + CHIP_ERROR TestReadsTheDefaultMoveRateAttribute_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23399,7 +20894,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheOptionsAttribute_22() + CHIP_ERROR TestReadsTheOptionsAttribute_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -23424,7 +20919,7 @@ class Test_TC_LVL_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheStartUpCurrentLevelAttribute_23() + CHIP_ERROR TestReadsTheStartUpCurrentLevelAttribute_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24444,32 +21939,20 @@ class Test_TC_LVL_3_1 : public TestCommandBridge { err = TestReadsCurrentLevelAttributeFromDut_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Reset level to 254\n"); - if (ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000")) { - NextTest(); - return; - } - err = TestResetLevelTo254_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 100ms\n"); - err = TestWait100ms_19(); - break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Precondition send Off Command\n"); + ChipLogProgress(chipTool, " ***** Test Step 18 : Precondition send Off Command\n"); if (ShouldSkip("OO.S.C00.Rsp")) { NextTest(); return; } - err = TestPreconditionSendOffCommand_20(); + err = TestPreconditionSendOffCommand_18(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Check on/off attribute value is false after off command\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Check on/off attribute value is false after off command\n"); if (ShouldSkip("OO.S.A0000")) { NextTest(); return; } - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_21(); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19(); break; } @@ -24542,12 +22025,6 @@ class Test_TC_LVL_3_1 : public TestCommandBridge { case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -24561,7 +22038,7 @@ class Test_TC_LVL_3_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 22; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -24905,39 +22382,7 @@ class Test_TC_LVL_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestResetLevelTo254_18() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRLevelControlClusterMoveToLevelParams alloc] init]; - params.level = [NSNumber numberWithUnsignedChar:254U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; - params.optionMask = [NSNumber numberWithUnsignedChar:1U]; - params.optionOverride = [NSNumber numberWithUnsignedChar:1U]; - [cluster moveToLevelWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Reset level to 254 Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait100ms_19() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestPreconditionSendOffCommand_20() + CHIP_ERROR TestPreconditionSendOffCommand_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -24954,7 +22399,7 @@ class Test_TC_LVL_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_21() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -25150,32 +22595,20 @@ class Test_TC_LVL_4_1 : public TestCommandBridge { err = TestPhysicallyVerifyThatTheDeviceMovesAtTheRateRecordedInStep3aAndCompletesMovingToItsMaximumLevel_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Reset level to 254\n"); - if (ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000")) { - NextTest(); - return; - } - err = TestResetLevelTo254_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Wait 100ms\n"); - err = TestWait100ms_19(); - break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Precondition send Off Command\n"); + ChipLogProgress(chipTool, " ***** Test Step 18 : Precondition send Off Command\n"); if (ShouldSkip("OO.S.C00.Rsp")) { NextTest(); return; } - err = TestPreconditionSendOffCommand_20(); + err = TestPreconditionSendOffCommand_18(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Check on/off attribute value is false after off command\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Check on/off attribute value is false after off command\n"); if (ShouldSkip("OO.S.A0000")) { NextTest(); return; } - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_21(); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19(); break; } @@ -25248,12 +22681,6 @@ class Test_TC_LVL_4_1 : public TestCommandBridge { case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -25267,7 +22694,7 @@ class Test_TC_LVL_4_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 22; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -25601,39 +23028,7 @@ class Test_TC_LVL_4_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestResetLevelTo254_18() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRLevelControlClusterMoveToLevelParams alloc] init]; - params.level = [NSNumber numberWithUnsignedChar:254U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; - params.optionMask = [NSNumber numberWithUnsignedChar:1U]; - params.optionOverride = [NSNumber numberWithUnsignedChar:1U]; - [cluster moveToLevelWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Reset level to 254 Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait100ms_19() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestPreconditionSendOffCommand_20() + CHIP_ERROR TestPreconditionSendOffCommand_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -25650,7 +23045,7 @@ class Test_TC_LVL_4_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_21() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -25741,87 +23136,99 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Sends MoveToLevelWithOnOff command to DUT\n"); - if (ShouldSkip("LVL.S.C04.Rsp")) { + if (ShouldSkip("LVL.S.C04.Rsp && LVL.S.A0002")) { NextTest(); return; } err = TestSendsMoveToLevelWithOnOffCommandToDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Reads current level attribute from DUT\n"); - if (ShouldSkip("LVL.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Sends MoveToLevelWithOnOff command to DUT\n"); + if (ShouldSkip("LVL.S.C04.Rsp && !LVL.S.A0002")) { NextTest(); return; } - err = TestReadsCurrentLevelAttributeFromDut_5(); + err = TestSendsMoveToLevelWithOnOffCommandToDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Sends step up command to DUT\n"); - if (ShouldSkip("LVL.S.C02.Rsp && LVL.S.M.VarRate")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Reads current level attribute from DUT\n"); + if (ShouldSkip("LVL.S.A0000")) { NextTest(); return; } - err = TestSendsStepUpCommandToDut_6(); + err = TestReadsCurrentLevelAttributeFromDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Wait 4000ms\n"); - err = TestWait4000ms_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Reads current level attribute from DUT\n"); + if (ShouldSkip("LVL.S.A0000 && !LVL.S.A0002")) { + NextTest(); + return; + } + err = TestReadsCurrentLevelAttributeFromDut_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Reads current level attribute from DUT\n"); - if (ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Sends step up command to DUT\n"); + if (ShouldSkip("LVL.S.C02.Rsp && LVL.S.M.VarRate")) { NextTest(); return; } - err = TestReadsCurrentLevelAttributeFromDut_8(); + err = TestSendsStepUpCommandToDut_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Sends a StepWithOnOff command\n"); - if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.M.VarRate")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : Wait 4000ms\n"); + err = TestWait4000ms_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Reads current level attribute from DUT\n"); + if (ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp")) { NextTest(); return; } - err = TestSendsAStepWithOnOffCommand_9(); - break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Wait 4000ms\n"); - err = TestWait4000ms_10(); + err = TestReadsCurrentLevelAttributeFromDut_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Reads current level attribute from DUT\n"); - if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 11 : Sends a StepWithOnOff command\n"); + if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.M.VarRate")) { NextTest(); return; } - err = TestReadsCurrentLevelAttributeFromDut_11(); + err = TestSendsAStepWithOnOffCommand_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Reset level to 254\n"); - if (ShouldSkip("LVL.S.C00.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 12 : Wait 4000ms\n"); + err = TestWait4000ms_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Reads current level attribute from DUT\n"); + if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000")) { NextTest(); return; } - err = TestResetLevelTo254_12(); - break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Wait 100ms\n"); - err = TestWait100ms_13(); + err = TestReadsCurrentLevelAttributeFromDut_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Precondition send Off Command\n"); - if (ShouldSkip("OO.S.C00.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 14 : Reads current level attribute from DUT\n"); + if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002")) { NextTest(); return; } - err = TestPreconditionSendOffCommand_14(); + err = TestReadsCurrentLevelAttributeFromDut_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Check on/off attribute value is false after off command\n"); + ChipLogProgress(chipTool, " ***** Test Step 15 : Precondition send Off Command\n"); + if (ShouldSkip("OO.S.C00.Rsp")) { + NextTest(); + return; + } + err = TestPreconditionSendOffCommand_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Check on/off attribute value is false after off command\n"); if (ShouldSkip("OO.S.A0000")) { NextTest(); return; } - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_15(); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_16(); break; } @@ -25882,6 +23289,9 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -25895,7 +23305,7 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 16; + const uint16_t mTestCount = 17; chip::Optional mNodeId; chip::Optional mCluster; @@ -25984,7 +23394,30 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); __auto_type * params = [[MTRLevelControlClusterMoveToLevelWithOnOffParams alloc] init]; - params.level = [MinlevelValue copy]; + params.level = [NSNumber numberWithUnsignedChar:[MinlevelValue unsignedCharValue] + 1U]; + params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; + [cluster moveToLevelWithOnOffWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Sends MoveToLevelWithOnOff command to DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestSendsMoveToLevelWithOnOffCommandToDut_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRLevelControlClusterMoveToLevelWithOnOffParams alloc] init]; + params.level = [NSNumber numberWithUnsignedChar:2U]; params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; [cluster moveToLevelWithOnOffWithParams:params completionHandler:^(NSError * _Nullable err) { @@ -25999,7 +23432,7 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { } NSNumber * _Nonnull CurrentlevelValue; - CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_5() + CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -26014,7 +23447,7 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { { id actualValue = value; - VerifyOrReturn(CheckValue("current level", actualValue, MinlevelValue)); + VerifyOrReturn(CheckValue("current level", actualValue, [MinlevelValue unsignedCharValue] + 1U)); } VerifyOrReturn(CheckConstraintType("currentLevel", "", "uint8")); @@ -26030,7 +23463,35 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestSendsStepUpCommandToDut_6() + CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads current level attribute from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("current level", actualValue, 2U)); + } + + VerifyOrReturn(CheckConstraintType("currentLevel", "", "uint8")); + VerifyOrReturn(CheckConstraintMinValue("currentLevel", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("currentLevel", [value unsignedCharValue], 255U)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestSendsStepUpCommandToDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -26056,14 +23517,14 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait4000ms_7() + CHIP_ERROR TestWait4000ms_9() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 4000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_8() + CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -26086,7 +23547,7 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestSendsAStepWithOnOffCommand_9() + CHIP_ERROR TestSendsAStepWithOnOffCommand_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -26110,14 +23571,14 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWait4000ms_10() + CHIP_ERROR TestWait4000ms_12() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 4000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_11() + CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -26141,7 +23602,7 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestResetLevelTo254_12() + CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -26149,31 +23610,23 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRLevelControlClusterMoveToLevelParams alloc] init]; - params.level = [NSNumber numberWithUnsignedChar:254U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; - params.optionMask = [NSNumber numberWithUnsignedChar:1U]; - params.optionOverride = [NSNumber numberWithUnsignedChar:1U]; - [cluster moveToLevelWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Reset level to 254 Error: %@", err); + [cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads current level attribute from DUT Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + { + id actualValue = value; + VerifyOrReturn(CheckValue("current level", actualValue, 2U)); + } - return CHIP_NO_ERROR; - } + NextTest(); + }]; - CHIP_ERROR TestWait100ms_13() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); + return CHIP_NO_ERROR; } - CHIP_ERROR TestPreconditionSendOffCommand_14() + CHIP_ERROR TestPreconditionSendOffCommand_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -26190,7 +23643,7 @@ class Test_TC_LVL_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_15() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -26364,32 +23817,20 @@ class Test_TC_LVL_6_1 : public TestCommandBridge { err = TestReadsCurrentLevelAttributeFromDut_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Reset level to 254\n"); - if (ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000")) { - NextTest(); - return; - } - err = TestResetLevelTo254_16(); - break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Wait 100ms\n"); - err = TestWait100ms_17(); - break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Precondition send Off Command\n"); + ChipLogProgress(chipTool, " ***** Test Step 16 : Precondition send Off Command\n"); if (ShouldSkip("OO.S.C00.Rsp")) { NextTest(); return; } - err = TestPreconditionSendOffCommand_18(); + err = TestPreconditionSendOffCommand_16(); break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Check on/off attribute value is false after off command\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Check on/off attribute value is false after off command\n"); if (ShouldSkip("OO.S.A0000")) { NextTest(); return; } - err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19(); + err = TestCheckOnOffAttributeValueIsFalseAfterOffCommand_17(); break; } @@ -26456,12 +23897,6 @@ class Test_TC_LVL_6_1 : public TestCommandBridge { case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -26475,7 +23910,7 @@ class Test_TC_LVL_6_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 20; + const uint16_t mTestCount = 18; chip::Optional mNodeId; chip::Optional mCluster; @@ -26778,39 +24213,7 @@ class Test_TC_LVL_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestResetLevelTo254_16() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device - endpoint:1 - queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRLevelControlClusterMoveToLevelParams alloc] init]; - params.level = [NSNumber numberWithUnsignedChar:254U]; - params.transitionTime = [NSNumber numberWithUnsignedShort:0U]; - params.optionMask = [NSNumber numberWithUnsignedChar:1U]; - params.optionOverride = [NSNumber numberWithUnsignedChar:1U]; - [cluster moveToLevelWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Reset level to 254 Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait100ms_17() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 100UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestPreconditionSendOffCommand_18() + CHIP_ERROR TestPreconditionSendOffCommand_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -26827,7 +24230,7 @@ class Test_TC_LVL_6_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_19() + CHIP_ERROR TestCheckOnOffAttributeValueIsFalseAfterOffCommand_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -27159,12 +24562,12 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the optional global attribute: FeatureMap\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); if (ShouldSkip("KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK")) { NextTest(); return; } - err = TestReadTheOptionalGlobalAttributeFeatureMap_2(); + err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); @@ -27272,7 +24675,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalGlobalAttributeFeatureMap_2() + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device @@ -27281,7 +24684,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional global attribute: FeatureMap Error: %@", err); + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -27422,12 +24825,12 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the optional global attribute: FeatureMap\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); if (ShouldSkip("APPLAUNCHER.S.AP")) { NextTest(); return; } - err = TestReadTheOptionalGlobalAttributeFeatureMap_2(); + err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); @@ -27572,7 +24975,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalGlobalAttributeFeatureMap_2() + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterApplicationLauncher * cluster = [[MTRBaseClusterApplicationLauncher alloc] initWithDevice:device @@ -27581,7 +24984,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional global attribute: FeatureMap Error: %@", err); + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -27795,12 +25198,12 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the optional global attribute: FeatureMap\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); if (ShouldSkip("MEDIAINPUT.S.NU")) { NextTest(); return; } - err = TestReadTheOptionalGlobalAttributeFeatureMap_2(); + err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); @@ -27934,7 +25337,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalGlobalAttributeFeatureMap_2() + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaInput * cluster = [[MTRBaseClusterMediaInput alloc] initWithDevice:device @@ -27943,7 +25346,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional global attribute: FeatureMap Error: %@", err); + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -28393,12 +25796,12 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the optional global attribute: FeatureMap\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); if (ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI")) { NextTest(); return; } - err = TestReadTheOptionalGlobalAttributeFeatureMap_2(); + err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); @@ -28433,22 +25836,47 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { err = TestReadTheOptionalAttributeCurrentChannelAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optional command(ChangeChannel) in AcceptedCommandList\n"); + if (ShouldSkip("CHANNEL.S.C00.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandChangeChannelInAcceptedCommandList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress( + chipTool, " ***** Test Step 8 : Read the optional command(ChangeChannelByNumber) in AcceptedCommandList\n"); + if (ShouldSkip("CHANNEL.S.C02.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_8(); break; case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional command(SkipChannel) in AcceptedCommandList\n"); + if (ShouldSkip("CHANNEL.S.C03.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandSkipChannelInAcceptedCommandList_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the global attribute: GeneratedCommandList\n"); + if (ShouldSkip("CHANNEL.S.C01.Tx")) { + NextTest(); + return; + } + err = TestReadTheGlobalAttributeGeneratedCommandList_10(); + break; + case 11: ChipLogProgress(chipTool, - " ***** Test Step 9 : Read EventList attribute from the DUT and Verify that the DUT response provides a list of " + " ***** Test Step 11 : Read EventList attribute from the DUT and Verify that the DUT response provides a list of " "supported events.\n"); if (ShouldSkip("PICS_USER_PROMPT")) { NextTest(); return; } - err = TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_9(); + err = TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_11(); break; } @@ -28491,6 +25919,12 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -28504,7 +25938,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 10; + const uint16_t mTestCount = 12; chip::Optional mNodeId; chip::Optional mCluster; @@ -28541,14 +25975,14 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalGlobalAttributeFeatureMap_2() + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional global attribute: FeatureMap Error: %@", err); + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -28646,20 +26080,58 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestReadTheOptionalCommandChangeChannelInAcceptedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: AcceptedCommandList Error: %@", err); + NSLog(@"Read the optional command(ChangeChannel) in AcceptedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 0UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_8() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(ChangeChannelByNumber) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 2UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandSkipChannelInAcceptedCommandList_9() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(SkipChannel) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 3UL)); NextTest(); @@ -28668,7 +26140,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -28680,13 +26152,15 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("generatedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("generatedCommandList", value, 1UL)); + NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_9() + CHIP_ERROR TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_11() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -28743,12 +26217,12 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the optional global attribute: FeatureMap\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); if (ShouldSkip("MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS")) { NextTest(); return; } - err = TestReadTheOptionalGlobalAttributeFeatureMap_2(); + err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); @@ -28807,18 +26281,82 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { err = TestReadTheGlobalAttributeAcceptedCommandList_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional command(StartOver) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandStartOverInAcceptedCommandList_11(); break; case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Read the optional command(Previous) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandPreviousInAcceptedCommandList_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Read the optional command(Next) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandNextInAcceptedCommandList_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Read the optional command(Rewind) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandRewindInAcceptedCommandList_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Read the optional command(FastForward) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandFastForwardInAcceptedCommandList_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Read the optional command(SkipForward) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandSkipForwardInAcceptedCommandList_16(); + break; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional command(SkipBackward) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandSkipBackwardInAcceptedCommandList_17(); + break; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional command(Seek) in AcceptedCommandList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp")) { + NextTest(); + return; + } + err = TestReadTheOptionalCommandSeekInAcceptedCommandList_18(); + break; + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_19(); + break; + case 20: ChipLogProgress(chipTool, - " ***** Test Step 12 : Read EventList attribute from the DUT and Verify that the DUT response provides a list of " + " ***** Test Step 20 : Read EventList attribute from the DUT and Verify that the DUT response provides a list of " "supported events.\n"); if (ShouldSkip("PICS_USER_PROMPT")) { NextTest(); return; } - err = TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_12(); + err = TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_20(); break; } @@ -28870,6 +26408,30 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -28883,7 +26445,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 13; + const uint16_t mTestCount = 21; chip::Optional mNodeId; chip::Optional mCluster; @@ -28922,7 +26484,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalGlobalAttributeFeatureMap_2() + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -28931,7 +26493,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional global attribute: FeatureMap Error: %@", err); + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -29128,7 +26690,183 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_11() + CHIP_ERROR TestReadTheOptionalCommandStartOverInAcceptedCommandList_11() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(StartOver) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 3UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandPreviousInAcceptedCommandList_12() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(Previous) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 4UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandNextInAcceptedCommandList_13() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(Next) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 5UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandRewindInAcceptedCommandList_14() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(Rewind) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 6UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandFastForwardInAcceptedCommandList_15() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(FastForward) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 7UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandSkipForwardInAcceptedCommandList_16() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(SkipForward) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 8UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandSkipBackwardInAcceptedCommandList_17() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(SkipBackward) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 9UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalCommandSeekInAcceptedCommandList_18() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional command(Seek) in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "", "list")); + VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 11UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -29150,7 +26888,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_12() + CHIP_ERROR TestReadEventListAttributeFromTheDutAndVerifyThatTheDutResponseProvidesAListOfSupportedEvents_20() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -30093,19 +27831,15 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the optional global attribute: FeatureMap\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); if (ShouldSkip("CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP")) { NextTest(); return; } - err = TestReadTheOptionalGlobalAttributeFeatureMap_2(); + err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.A0000 && CONTENTLAUNCHER.S.A0001")) { - NextTest(); - return; - } err = TestReadTheGlobalAttributeAttributeList_3(); break; case 4: @@ -30250,7 +27984,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalGlobalAttributeFeatureMap_2() + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -30259,7 +27993,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional global attribute: FeatureMap Error: %@", err); + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -32463,7 +30197,7 @@ class Test_TC_CHANNEL_5_2 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH sends a ChangeChannelByNumber command\n"); - if (ShouldSkip("CHANNEL.S.C0002")) { + if (ShouldSkip("CHANNEL.S.C02.Rsp")) { NextTest(); return; } @@ -32687,7 +30421,7 @@ class Test_TC_CHANNEL_5_3 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Sends a SkipChannel command to the DUT\n"); - if (ShouldSkip("CHANNEL.S.C0003")) { + if (ShouldSkip("CHANNEL.S.C03.Rsp")) { NextTest(); return; } @@ -32966,12 +30700,12 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { err = TestVerifyThatTheMediaStateIsPlaying_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Reads the playback state attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 5 : Reads the CurrentState attribute\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0000")) { NextTest(); return; } - err = TestReadsThePlaybackStateAttribute_5(); + err = TestReadsTheCurrentStateAttribute_5(); break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : sends a Pause command\n"); @@ -32990,8 +30724,8 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { err = TestVerifyThatTheMediaIsPaused_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Reads the playback state attribute\n"); - err = TestReadsThePlaybackStateAttribute_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Reads the CurrentState attribute\n"); + err = TestReadsTheCurrentStateAttribute_8(); break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Sends a Stop command\n"); @@ -33010,12 +30744,12 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { err = TestVerifyThatTheMediaIsStoped_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Reads the playback state attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 11 : Reads the CurrentState attribute\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0000")) { NextTest(); return; } - err = TestReadsThePlaybackStateAttribute_11(); + err = TestReadsTheCurrentStateAttribute_11(); break; } @@ -33174,7 +30908,7 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestReadsThePlaybackStateAttribute_5() + CHIP_ERROR TestReadsTheCurrentStateAttribute_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33183,7 +30917,7 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the playback state attribute Error: %@", err); + NSLog(@"Reads the CurrentState attribute Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -33232,7 +30966,7 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestReadsThePlaybackStateAttribute_8() + CHIP_ERROR TestReadsTheCurrentStateAttribute_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33241,7 +30975,7 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the playback state attribute Error: %@", err); + NSLog(@"Reads the CurrentState attribute Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -33290,7 +31024,7 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestReadsThePlaybackStateAttribute_11() + CHIP_ERROR TestReadsTheCurrentStateAttribute_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33299,7 +31033,7 @@ class Test_TC_MEDIAPLAYBACK_6_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the playback state attribute Error: %@", err); + NSLog(@"Reads the CurrentState attribute Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -33400,7 +31134,7 @@ class Test_TC_MEDIAPLAYBACK_6_2 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Sends a StartOver command to the DUT\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0003")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp")) { NextTest(); return; } @@ -33416,7 +31150,7 @@ class Test_TC_MEDIAPLAYBACK_6_2 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Sends a Next command to the DUT\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0005")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp")) { NextTest(); return; } @@ -33432,7 +31166,7 @@ class Test_TC_MEDIAPLAYBACK_6_2 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : Sends a Previous command to the DUT\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0004")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp")) { NextTest(); return; } @@ -33448,7 +31182,7 @@ class Test_TC_MEDIAPLAYBACK_6_2 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : Sends a SkipForward command to the DUT \n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0008")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp")) { NextTest(); return; } @@ -33472,7 +31206,7 @@ class Test_TC_MEDIAPLAYBACK_6_2 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Sends a SkipBackward command to the DUT \n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0009")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp")) { NextTest(); return; } @@ -33978,7 +31712,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Sends a Seek command\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C000B")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp")) { NextTest(); return; } @@ -34036,7 +31770,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { case 9: ChipLogProgress( chipTool, " ***** Test Step 9 : Sends a Seek command Position value beyond the furthest valid position\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C000B")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp")) { NextTest(); return; } @@ -34332,7 +32066,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Sends a FastForward command\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0007")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp")) { NextTest(); return; } @@ -34356,7 +32090,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Sends a FastForward command\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0007")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp")) { NextTest(); return; } @@ -34372,7 +32106,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Sends a Rewind command to the DUT\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0006")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp")) { NextTest(); return; } @@ -34388,7 +32122,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 11: ChipLogProgress(chipTool, " ***** Test Step 11 : Reads the PlaybackSpeed attribute from the DUT\n"); - if (ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0007")) { + if (ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C07.Rsp")) { NextTest(); return; } @@ -34396,7 +32130,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : Sends a Rewind command to the DUT\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.C0006")) { + if (ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp")) { NextTest(); return; } @@ -34428,7 +32162,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 16: ChipLogProgress(chipTool, " ***** Test Step 16 : Sends consecutive FastForward commands\n"); - if (ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0007")) { + if (ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C07.Rsp")) { NextTest(); return; } @@ -34436,7 +32170,7 @@ class Test_TC_MEDIAPLAYBACK_6_4 : public TestCommandBridge { break; case 17: ChipLogProgress(chipTool, " ***** Test Step 17 : Sends consecutive Rewind commands\n"); - if (ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C0006")) { + if (ShouldSkip("PICS_USER_PROMPT && MEDIAPLAYBACK.S.C06.Rsp")) { NextTest(); return; } @@ -39873,13 +37607,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 10UL)); NextTest(); }]; @@ -39901,14 +37629,9 @@ class Test_TC_PS_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 11UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 12UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 13UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 14UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 15UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 16UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL)); NextTest(); }]; @@ -39931,10 +37654,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 26UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 27UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 28UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 29UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 30UL)); NextTest(); }]; @@ -39957,11 +37677,6 @@ class Test_TC_PS_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 20UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 21UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 22UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 24UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 25UL)); NextTest(); @@ -46203,7 +43918,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { ChipLogProgress(chipTool, " ***** Test Step 7 : Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in " "AttributeList\n"); - if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.F01")) { + if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02")) { NextTest(); return; } @@ -46464,12 +44179,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 6UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 24UL)); NextTest(); }]; @@ -46513,12 +44223,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 21UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 22UL)); NextTest(); }]; @@ -46585,7 +44290,6 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 25UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 30UL)); NextTest(); }]; @@ -55290,10 +52994,9 @@ class Test_TC_DGWIFI_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("BeaconLostCount", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("beaconLostCount", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("beaconLostCount", [value unsignedIntValue], 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("beaconLostCount", [value unsignedIntValue], 4294967295UL)); NextTest(); }]; @@ -55313,10 +53016,9 @@ class Test_TC_DGWIFI_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("BeaconRxCount", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("beaconRxCount", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("beaconRxCount", [value unsignedIntValue], 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("beaconRxCount", [value unsignedIntValue], 4294967295UL)); NextTest(); }]; @@ -55336,10 +53038,9 @@ class Test_TC_DGWIFI_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("PacketMulticastRxCount", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("packetMulticastRxCount", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("packetMulticastRxCount", [value unsignedIntValue], 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("packetMulticastRxCount", [value unsignedIntValue], 4294967295UL)); NextTest(); }]; @@ -55359,10 +53060,9 @@ class Test_TC_DGWIFI_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("PacketMulticastTxCount", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("packetMulticastTxCount", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("packetMulticastTxCount", [value unsignedIntValue], 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("packetMulticastTxCount", [value unsignedIntValue], 4294967295UL)); NextTest(); }]; @@ -55382,10 +53082,9 @@ class Test_TC_DGWIFI_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("PacketUnicastRxCount", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("packetUnicastRxCount", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("packetUnicastRxCount", [value unsignedIntValue], 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("packetUnicastRxCount", [value unsignedIntValue], 4294967295UL)); NextTest(); }]; @@ -55405,10 +53104,9 @@ class Test_TC_DGWIFI_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("PacketUnicastTxCount", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("packetUnicastTxCount", "", "uint32")); + VerifyOrReturn(CheckConstraintMinValue("packetUnicastTxCount", [value unsignedIntValue], 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("packetUnicastTxCount", [value unsignedIntValue], 4294967295UL)); NextTest(); }]; @@ -113735,7 +111433,6 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), make_unique(), make_unique(), make_unique(), @@ -113748,7 +111445,6 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), make_unique(), make_unique(), make_unique(),