| # 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: 80.3.3. [TC-MOD-3.3] OTA Mode Verification (DUT as Server) |
| |
| PICS: |
| - MOD.S.A0004 |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Basic Information" |
| endpoint: 0 |
| |
| tests: |
| - label: "Note" |
| verification: | |
| 1.To run this test case build the OTA Provider app to be build in the nRF Environment setup . Follow this step to setup the nRF build environment using container. |
| https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/nrfconnect#using-docker-container-for-setup |
| |
| Once the build environmnet is ready , build teh OTA-Provider-App inside the container. Follow the below link to build the OTA-Provider app |
| https://github.com/project-chip/connectedhomeip/tree/master/examples/ota-provider-app/linux |
| |
| 2. Build all-cluster-app in docker or Flash the pre-built folder from the delivered image |
| |
| To build maually and flash follow steps explained in: |
| https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/nrfconnect#building |
| |
| west build -b nrf52840dk_nrf52840 -- -DCONF_FILE=prj_dfu.conf -DCONFIG_CHIP_LIB_SHELL=y |
| |
| |
| 3.Flash |
| west flash --erase |
| |
| 4.OTA Image needs to build on the docker environment as like in the first step inside the all-clusters-app folder. Refer the below link to build the OTA image with new version. |
| |
| https://github.com/project-chip/connectedhomeip/tree/master/examples/ota-requestor-app/linux#ota-requestor-app-linux |
| |
| To build the ota image with new version for nRF, use the following command inside the all-clusters-app folder , which will build matter.ota |
| |
| west build -b nrf52840dk_nrf52840 -d build2 -- -DCONFIG_CHIP_DEVICE_SOFTWARE_VERSION=2 -DCONF_FILE=prj_dfu.conf -DCONFIG_CHIP_LIB_SHELL=y |
| disabled: true |
| |
| - label: "Precondition" |
| verification: | |
| This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command |
| disabled: true |
| |
| - label: "TH reads the StartUpMode attribute from the DUT" |
| PICS: MOD.S.A0004 |
| verification: | |
| ./chip-tool modeselect read start-up-mode 1 1 |
| |
| on TH(chip-tool),Verify that the DUT response is the integer. Record this value for usage in step 2 and below is the sample log provided for the raspi platform: |
| |
| [1645778279.693082][4898:4903] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469722 |
| [1645778279.693151][4898:4903] CHIP:TOO: StartUpMode: 0 |
| disabled: true |
| |
| - label: "TH reads the CurrentMode attribute from the DUT" |
| PICS: MOD.S.A0003 |
| verification: | |
| ./chip-tool modeselect read current-mode 1 1 |
| |
| on TH(chip-tool),Verify that the DUT response is the integer. Record this value for usage in step 2b and 3 and below is the sample log provided for the raspi platform: |
| |
| [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 |
| [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 |
| disabled: true |
| |
| - label: |
| "If the StartUpMode and CurrentMode attributes have the same value, |
| proceed to step 2c, Otherwise proceed to step 3a." |
| PICS: MOD.S.A0003 && MOD.S.A0004 |
| verification: | |
| NOTE: |
| If the StartUpMode and CurrentMode attributes have the same value, proceed to step 2c, Otherwise proceed to step 3a. |
| disabled: true |
| |
| - label: "TH reads the SupportedModes attribute from the DUT" |
| PICS: MOD.S.A0002 |
| verification: | |
| ./chip-tool modeselect read supported-modes 1 1 |
| |
| Verify on TH(chip-tool) logs supported modes provides a list of mode, each mode should be a struct containing a label and All of these values should be no larger than 16 bits for usage in step 2d and below is the sample log provided for the raspi platform: |
| |
| [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 |
| [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries |
| [1654595268.854743][14400:14405] CHIP:TOO: [1]: { |
| [1654595268.854772][14400:14405] CHIP:TOO: Label: Black |
| [1654595268.854811][14400:14405] CHIP:TOO: Mode: 0 |
| [1654595268.854843][14400:14405] CHIP:TOO: SemanticTags: 1 entries |
| [1654595268.854891][14400:14405] CHIP:TOO: [1]: { |
| [1654595268.854918][14400:14405] CHIP:TOO: MfgCode: 0 |
| [1654595268.854945][14400:14405] CHIP:TOO: Value: 0 |
| [1654595268.854971][14400:14405] CHIP:TOO: } |
| [1654595268.855000][14400:14405] CHIP:TOO: } |
| [1654595268.855038][14400:14405] CHIP:TOO: [2]: { |
| [1654595268.855064][14400:14405] CHIP:TOO: Label: Cappuccino |
| [1654595268.855089][14400:14405] CHIP:TOO: Mode: 4 |
| [1654595268.855117][14400:14405] CHIP:TOO: SemanticTags: 1 entries |
| [1654595268.855149][14400:14405] CHIP:TOO: [1]: { |
| [1654595268.855175][14400:14405] CHIP:TOO: MfgCode: 0 |
| [1654595268.855199][14400:14405] CHIP:TOO: Value: 0 |
| [1654595268.855223][14400:14405] CHIP:TOO: } |
| [1654595268.855249][14400:14405] CHIP:TOO: } |
| [1654595268.855284][14400:14405] CHIP:TOO: [3]: { |
| [1654595268.855310][14400:14405] CHIP:TOO: Label: Espresso |
| [1654595268.855332][14400:14405] CHIP:TOO: Mode: 7 |
| [1654595268.855360][14400:14405] CHIP:TOO: SemanticTags: 1 entries |
| [1654595268.855390][14400:14405] CHIP:TOO: [1]: { |
| [1654595268.855416][14400:14405] CHIP:TOO: MfgCode: 0 |
| [1654595268.855440][14400:14405] CHIP:TOO: Value: 0 |
| [1654595268.855464][14400:14405] CHIP:TOO: } |
| [1654595268.855490][14400:14405] CHIP:TOO: } |
| [1649677252.376226][10804:10809] CHIP:TOO: SemanticTag: 0 |
| [1649677252.376252][10804:10809] CHIP:TOO: } |
| disabled: true |
| |
| - label: |
| "Select a value from the list in step 2c with a different value than |
| the StartUpMode value read in step 1. TH sends a ChangeToMode command |
| to the DUT with the selected value." |
| PICS: MOD.S.A0002 && MOD.S.C00.Rsp |
| verification: | |
| ./chip-tool modeselect change-to-mode 4 1 1 |
| |
| on TH(chip-tool),Verify that the DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: |
| |
| [1645778189.045030][4888:4893] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0050 Command=0x0000_0000 Status=0x0 |
| disabled: true |
| |
| - label: |
| "Perform an OTA update on the device that requires a reboot. Allow for |
| the DUT to update and fully reboot." |
| verification: | |
| To perform an OTA update on Thread device follow the cmmds below: |
| |
| Step-1 : Where we builded OTA provider app execute this cmmd . (In my case I ran connectedhomeip/out/debug ./chip-ota-provider-app -f ) |
| |
| ./chip-ota-provider-app -f ~/chip_repos/connectedhomeip/examples/all-clusters-app/nrfconnect/build2/zephyr/matter.ota |
| |
| Ran on chip-tool: |
| |
| Step-2: ./chip-tool pairing onnetwork 2 20202021 |
| |
| Step-3 : ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": [{"cluster": 41, "endpoint": null, "deviceType": null}]}]" 2 0 |
| |
| Step-4: ./chip-tool otasoftwareupdaterequestor write default-ota-providers "[{"fabricIndex": 1, "providerNodeID": 2, "endpoint": 0}]" 1 0 |
| |
| Step-5: ./chip-tool otasoftwareupdaterequestor announce-ota-provider 2 0 0 0 1 0 |
| disabled: true |
| |
| - label: "TH reads the CurrentMode attribute from the DUT" |
| PICS: MOD.S.A0003 |
| verification: | |
| ./chip-tool modeselect read current-mode 1 1 |
| |
| on TH(chip-tool),Verify that the DUT response is the integer recorded in step 2a or, if the mode was changed, 2d and below is the sample log provided for the raspi platform: |
| |
| [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 |
| [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 4 |
| disabled: true |