diff --git a/config/esp32/components/chip/component.mk b/config/esp32/components/chip/component.mk deleted file mode 100644 index 61ab9100fa78e7..00000000000000 --- a/config/esp32/components/chip/component.mk +++ /dev/null @@ -1,167 +0,0 @@ -# -# Copyright (c) 2020 Project CHIP Authors -# Copyright (c) 2018 Nest Labs, Inc. -# All rights reserved. -# -# 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. -# -# Description: -# Component makefile for building CHIP within the ESP32 ESP-IDF environment. -# - -# ================================================== -# General settings -# ================================================== - -SHELL = /bin/bash - -# CHIP source root directory -CHIP_ROOT ?= $(realpath $(COMPONENT_PATH)/../../../..) - -# Directory into which the CHIP build system will place its output. -OUTPUT_DIR := $(BUILD_DIR_BASE)/chip -REL_OUTPUT_DIR := $(shell perl -e 'use File::Spec; use Cwd; print File::Spec->abs2rel(Cwd::realpath($$ARGV[0]), Cwd::realpath($$ARGV[1])) . "\n"' $(OUTPUT_DIR) $(COMPONENT_PATH)) - -REL_CHIP_ROOT := $(shell perl -e 'use File::Spec; use Cwd; print File::Spec->abs2rel(Cwd::realpath($$ARGV[0]), Cwd::realpath($$ARGV[1])) . "\n"' $(CHIP_ROOT) $(COMPONENT_PATH)) - -COMPONENT_LIBRARIES := - - -# ================================================== -# Compilation flags specific to building CHIP -# ================================================== - -# Include directories to be searched when building CHIP. Make sure -# that anything starting with $(IDF_PATH) ends up being included with -# -isystem, not -I, so warnings in those headers don't cause the build -# to fail. -INCLUDES := $(OUTPUT_DIR)/src/include \ - $(OUTPUT_DIR)/src/include/platform/ESP32 \ - $(filter-out $(IDF_PATH)/%, $(COMPONENT_INCLUDES)) - -SYSTEM_INCLUDES := $(IDF_PATH)/components/lwip/lwip/src/include \ - $(IDF_PATH)/components/freertos/include/freertos/ \ - $(IDF_PATH)/components/mbedtls/mbedtls/include \ - $(filter $(IDF_PATH)/%, $(COMPONENT_INCLUDES)) - - -# Compiler flags for building CHIP -ALL_INCLUDES := $(addprefix -I,$(INCLUDES)) $(addprefix -isystem,$(SYSTEM_INCLUDES)) -CFLAGS += $(ALL_INCLUDES) -CPPFLAGS += $(ALL_INCLUDES) -CXXFLAGS += $(ALL_INCLUDES) - - -# ================================================== -# Configuration for the CHIP ESF-IDF Component -# ================================================== - -# Header directories to be included when building other components that use CHIP. -# Note that these must be relative to the component source directory. -# TODO Boot the CHIP_ROOT includedirs -COMPONENT_ADD_INCLUDEDIRS = project-config \ - $(REL_OUTPUT_DIR)/include \ - $(REL_CHIP_ROOT)/src/include/platform/ESP32 \ - $(REL_CHIP_ROOT)/src/include/ \ - $(REL_CHIP_ROOT)/src/lib \ - $(REL_CHIP_ROOT)/src/ \ - $(REL_CHIP_ROOT)/src/system \ - $(IDF_PATH)/components/mbedtls/mbedtls/include \ - $(REL_CHIP_ROOT)/src/app - -# Linker flags to be included when building other components that use CHIP. -COMPONENT_ADD_LDFLAGS = -L$(OUTPUT_DIR)/lib/ \ - -lCHIP - -ifdef CONFIG_ENABLE_CHIP_SHELL -COMPONENT_ADD_LDFLAGS += -lCHIPShell -endif - -ifdef CONFIG_ENABLE_PW_RPC -COMPONENT_ADD_LDFLAGS += -lPwRpc -endif - -COMPONENT_ADD_INCLUDEDIRS += $(REL_OUTPUT_DIR)/src/include \ - $(REL_CHIP_ROOT)/third_party/nlassert/repo/include \ - $(REL_OUTPUT_DIR)/gen/third_party/connectedhomeip/src/app/include \ - $(REL_OUTPUT_DIR)/gen/include \ - $(REL_CHIP_ROOT)/zzz_generated/app-common - -# Tell the ESP-IDF build system that the CHIP component defines its own build -# and clean targets. -COMPONENT_OWNBUILDTARGET := chip_build -COMPONENT_OWNCLEANTARGET := chip_clean - -is_debug ?= true - -# ================================================== -# Build Rules -# ================================================== - -$(OUTPUT_DIR) : - echo "MKDIR $@" - @mkdir -p "$@" - - -fix_cflags = $(filter-out -DHAVE_CONFIG_H,\ - $(filter-out -D,\ - $(filter-out IDF_VER%,\ - $(1) -D$(filter IDF_VER%,$(1))\ - ))) -CHIP_CFLAGS = $(call fix_cflags,$(CFLAGS) $(CPPFLAGS)) -CHIP_CXXFLAGS = $(call fix_cflags,$(CXXFLAGS) $(CPPFLAGS)) - -install-chip : $(OUTPUT_DIR) - echo "INSTALL CHIP..." - echo > $(OUTPUT_DIR)/args.gn - echo "import(\"//args.gni\")" >> $(OUTPUT_DIR)/args.gn - echo target_cflags_c = [$(foreach word,$(CHIP_CFLAGS),\"$(word)\",)] | sed -e 's/=\"/=\\"/g;s/\"\"/\\"\"/g;' >> $(OUTPUT_DIR)/args.gn - echo target_cflags_cc = [$(foreach word,$(CHIP_CXXFLAGS),\"$(word)\",)] | sed -e 's/=\"/=\\"/g;s/\"\"/\\"\"/g;' >> $(OUTPUT_DIR)/args.gn - echo esp32_ar = \"$(AR)\" >> $(OUTPUT_DIR)/args.gn - echo esp32_cc = \"$(CC)\" >> $(OUTPUT_DIR)/args.gn - echo esp32_cxx = \"$(CXX)\" >> $(OUTPUT_DIR)/args.gn - echo esp32_cpu = \"esp32\" >> $(OUTPUT_DIR)/args.gn -ifeq ($(is_debug),false) - @echo "is_debug = false" >> $(OUTPUT_DIR)/args.gn -endif - if [[ "$(CONFIG_ENABLE_PW_RPC)" = "y" ]]; then \ - echo "chip_build_pw_rpc_lib = true" >> $(OUTPUT_DIR)/args.gn ;\ - echo "chip_build_pw_trace_lib = true" >> $(OUTPUT_DIR)/args.gn ;\ - echo "remove_default_configs = [\"//third_party/connectedhomeip/third_party/pigweed/repo/pw_build:cpp17\"]" >> $(OUTPUT_DIR)/args.gn ;\ - echo "pw_log_BACKEND = \"//third_party/connectedhomeip/third_party/pigweed/repo/pw_log_basic\"" >> $(OUTPUT_DIR)/args.gn ;\ - echo "pw_assert_BACKEND = \"//third_party/connectedhomeip/third_party/pigweed/repo/pw_assert_log\"" >> $(OUTPUT_DIR)/args.gn ;\ - echo "pw_sys_io_BACKEND = \"//third_party/connectedhomeip/examples/platform/esp32/pw_sys_io:pw_sys_io_esp32\"" >> $(OUTPUT_DIR)/args.gn ;\ - echo "pw_trace_BACKEND = \"//third_party/connectedhomeip/third_party/pigweed/repo/pw_trace_tokenized\"" >> $(OUTPUT_DIR)/args.gn ;\ - echo "dir_pw_third_party_nanopb = \"//third_party/connectedhomeip/third_party/nanopb/repo\"" >>$(OUTPUT_DIR)/args.gn ;\ - fi - if [[ "$(CONFIG_ENABLE_CHIP_SHELL)" = "y" ]]; then \ - echo "chip_build_libshell = true" >> $(OUTPUT_DIR)/args.gn ;\ - fi - if [[ "$(CONFIG_USE_MINIMAL_MDNS)" = "n" ]]; then \ - echo "chip_mdns = platform" >> $(OUTPUT_DIR)/args.gn ;\ - fi - if [[ "$(CONFIG_DISABLE_IPV4)" = "y" ]]; then \ - echo "chip_inet_config_enable_ipv4 = false" >> $(OUTPUT_DIR)/args.gn ;\ - fi - echo "Written file $(OUTPUT_DIR)/args.gn" - cd $(CHIP_ROOT) && PW_ENVSETUP_QUIET=1 . scripts/activate.sh && cd $(COMPONENT_PATH) && gn gen --check --fail-on-unused-args $(OUTPUT_DIR) - cd $(COMPONENT_PATH); ninja $(subst 1,-v,$(filter 1,$(V))) -C $(OUTPUT_DIR) esp32 - - -chip_build : install-chip - echo "CHIP built and installed..." - cp -a ${OUTPUT_DIR}/lib/libCHIP.a ${OUTPUT_DIR}/libchip.a - -chip_clean: - echo "RM $(OUTPUT_DIR)" - rm -rf $(OUTPUT_DIR) diff --git a/config/esp32/components/esp32_mbedtls/component.mk b/config/esp32/components/esp32_mbedtls/component.mk deleted file mode 100644 index a6290b41f3a6c1..00000000000000 --- a/config/esp32/components/esp32_mbedtls/component.mk +++ /dev/null @@ -1 +0,0 @@ -COMPONENT_DEPENDS := chip diff --git a/docs/guides/silabs_efr32_software_update.md b/docs/guides/silabs_efr32_software_update.md index e1fbdc1ee1ca29..adc95607914000 100644 --- a/docs/guides/silabs_efr32_software_update.md +++ b/docs/guides/silabs_efr32_software_update.md @@ -14,21 +14,18 @@ all of the EFR32 example applications. - On a Linux or Darwin platform build the chip-tool and the ota-provider-app as follows: - ``` scripts/examples/gn_build_example.sh examples/chip-tool out/ scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false - ``` - Build or download the Gecko Bootloader binary. Follow the instructions in "UG266: Silicon Labs Gecko Bootloader User’s Guide". For the bootloader using the external flash select the "external SPI" bootloader type configured with a single slot of at least 1000 KB. For the bootloader using the internal flash see the Internal Storage Bootloader section below. - Pre-built binaries for some configurations should be available in + Pre-built binaries for some configurations are available at the following + location, see README.md for details - ``` third_party/silabs/matter_support/matter/efr32/bootloader_binaries - ``` - Using the commander tool upload the bootloader to the device running the application. @@ -36,47 +33,35 @@ all of the EFR32 example applications. - Create a bootable image file (using the Lighting application image as an example): - ``` commander gbl create chip-efr32-lighting-example.gbl --app chip-efr32-lighting-example.s37 - ``` - Create the Matter OTA file from the bootable image file: - ``` ./src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8005 -vn 2 -vs "2.0" -da sha256 chip-efr32-lighting-example.gbl chip-efr32-lighting-example.ota - ``` - In a terminal start the Provider app passing to it the path to the Matter OTA file created in the previous step: - ``` rm -r /tmp/chip_* ./out/debug/chip-ota-provider-app -f chip-efr32-lighting-example.ota - ``` - In a separate terminal run the chip-tool commands to provision the Provider: - ``` ./out/chip-tool pairing onnetwork 1 20202021 ./out/chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": null}]' 1 0 - ``` - If the application device had been previously commissioned hold Button 0 for six seconds to factory-reset the device. - In the chip-tool terminal enter: - ``` ./out/chip-tool pairing ble-thread 2 hex: 20202021 3840 - ``` where operationalDataset is obtained from the OpenThread Border Router. - Once the commissioning process completes enter: - ``` ./out/chip-tool otasoftwareupdaterequestor announce-ota-provider 1 0 0 0 2 0 - ``` - The application device will connect to the Provider and start the image download. Once the image is downloaded the device will reboot into the @@ -91,9 +76,7 @@ that both images are built with a reduced feature set such as disabled logging and Matter shell. The following set of compile flags leaves out all the optional features and results in the minimal image size: - ``` chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false is_debug=false show_qr_code=false chip_build_libshell=false enable_openthread_cli=false chip_openthread_ftd=true - ``` Using LZMA compression when building the .gbl file ( passing `--compress lzma` parameter to the `commander gbl create` command) further reduces the downloaded diff --git a/examples/light-switch-app/efr32/README.md b/examples/light-switch-app/efr32/README.md index b30234be2c3def..9657fbdac2711a 100644 --- a/examples/light-switch-app/efr32/README.md +++ b/examples/light-switch-app/efr32/README.md @@ -66,6 +66,9 @@ Silicon Labs platform. MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, @@ -78,8 +81,12 @@ Silicon Labs platform. MG24 boards : + - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm * Build the example application: diff --git a/examples/lighting-app/efr32/README.md b/examples/lighting-app/efr32/README.md index 7cb0ea4878f601..e378cbd8582691 100644 --- a/examples/lighting-app/efr32/README.md +++ b/examples/lighting-app/efr32/README.md @@ -63,6 +63,9 @@ Silicon Labs platform. MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, @@ -75,8 +78,12 @@ Silicon Labs platform. MG24 boards : + - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm * Build the example application: diff --git a/examples/lock-app/efr32/README.md b/examples/lock-app/efr32/README.md index 00dda0f6829c02..341b9fa49ca6df 100644 --- a/examples/lock-app/efr32/README.md +++ b/examples/lock-app/efr32/README.md @@ -61,6 +61,9 @@ Silicon Labs platform. MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, @@ -73,8 +76,13 @@ Silicon Labs platform. MG24 boards : + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm * Build the example application: diff --git a/examples/persistent-storage/efr32/README.md b/examples/persistent-storage/efr32/README.md index 841a72fe82727b..4a4651468b97bb 100644 --- a/examples/persistent-storage/efr32/README.md +++ b/examples/persistent-storage/efr32/README.md @@ -54,15 +54,29 @@ The EFR32 platform KVS is fully implemented MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm + - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, 915MHz@19dBm - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - MG21 boards: + MG21 boards: Currently not supported due to RAM limitation. - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + MG24 boards : + + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm + - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + * Build the example application: cd ~/connectedhomeip diff --git a/examples/pigweed-app/efr32/README.md b/examples/pigweed-app/efr32/README.md index 6dc285203776e7..3680f42a67b535 100644 --- a/examples/pigweed-app/efr32/README.md +++ b/examples/pigweed-app/efr32/README.md @@ -66,6 +66,7 @@ following features are available: MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - BRD4163A / SLWSTK6000B / Dual band Wireless Starter Kit / 2.4GHz@19dBm, 868MHz@19dBm - BRD4164A / SLWSTK6000B / Dual band Wireless Starter Kit / 2.4GHz@19dBm, @@ -75,10 +76,19 @@ following features are available: 915MHz@19dBm - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - MG21 boards: + MG21 boards: Currently not supported due to RAM limitation. - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + MG24 boards : + + - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + * Build the example application: cd ~/connectedhomeip/examples/pigweed-app/efr32 diff --git a/examples/thermostat/efr32/README.md b/examples/thermostat/efr32/README.md index 35cbeefad50b4a..5bc31b87d2d989 100644 --- a/examples/thermostat/efr32/README.md +++ b/examples/thermostat/efr32/README.md @@ -66,6 +66,9 @@ Silicon Labs platform. MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, @@ -78,8 +81,12 @@ Silicon Labs platform. MG24 boards : + - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm * Build the example application: diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn index a9e0c030a9c292..ed8f4b506316e1 100644 --- a/examples/window-app/efr32/BUILD.gn +++ b/examples/window-app/efr32/BUILD.gn @@ -86,6 +86,11 @@ if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || # WiFi settings if (chip_enable_wifi) { + # disabling LCD for MG24 for wifi + if (efr32_board == "BRD4186C" || efr32_board == "BRD4187C") { + show_qr_code = false + disable_lcd = true + } wifi_sdk_dir = "${chip_root}/third_party/silabs/matter_support/matter/wifi" efr32_lwip_defs = [ "LWIP_NETIF_API=1" ] efr32_lwip_defs += [ diff --git a/examples/window-app/efr32/README.md b/examples/window-app/efr32/README.md index bcc4b2fa61944d..bd89ef25057620 100644 --- a/examples/window-app/efr32/README.md +++ b/examples/window-app/efr32/README.md @@ -66,6 +66,9 @@ Silicon Labs platform. MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, @@ -78,8 +81,12 @@ Silicon Labs platform. MG24 boards : + - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm * Build the example application: diff --git a/scripts/tests/chiptest/runner.py b/scripts/tests/chiptest/runner.py index 3cea9b2c3fe9e0..71cf0c7d5e433f 100644 --- a/scripts/tests/chiptest/runner.py +++ b/scripts/tests/chiptest/runner.py @@ -18,6 +18,7 @@ import queue import re import subprocess +import sys import threading import typing @@ -130,6 +131,10 @@ def RunSubprocess(self, cmd, name, wait=True, dependencies=[], timeout_seconds: logging.INFO, capture_delegate=self.capture_delegate, name=name + ' ERR') + if sys.platform == 'darwin': + # Try harder to avoid any stdout buffering in our tests + cmd = ['stdbuf', '-o0'] + cmd + if self.capture_delegate: self.capture_delegate.Log(name, 'EXECUTING %r' % cmd) diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index c36054278ea4a6..5a6c416989f2c9 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -4165,12 +4165,12 @@ PICS: - label: "Does the DUT(server) support the 'Lock supports yearday access schedules' feature?" - id: DRLK.S.F10 + id: DRLK.S.F0a - label: "Does the DUT(server) support the 'Lock supports holiday access schedules' feature?" - id: DRLK.S.F11 + id: DRLK.S.F0b - label: "Does the DUT(server) support the 'PIN codes over the-air supported diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml index e83ad337d61a7e..95cb2e287e8fc3 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml @@ -44,7 +44,7 @@ tests: PICS: " !DRLK.S.F00 && !DRLK.S.F01 && !DRLK.S.F02 && !DRLK.S.F04 && !DRLK.S.F05 && !DRLK.S.F06 && !DRLK.S.F07 && !DRLK.S.F08 && - !DRLK.S.F10 && !DRLK.S.F11 " + !DRLK.S.F0a && !DRLK.S.F0b " command: "readAttribute" attribute: "FeatureMap" response: @@ -52,17 +52,95 @@ tests: constraints: type: bitmap32 - - label: "TH reads the FeatureMap from DUT" - PICS: - DRLK.S.F00 || DRLK.S.F01 || DRLK.S.F02 || DRLK.S.F04 || DRLK.S.F05 || - DRLK.S.F06 || DRLK.S.F07 || DRLK.S.F08 || DRLK.S.F10 || DRLK.S.F11 + - label: "Given DRLK.S.F00(PIN) ensure featuremap has the correct bit set" + PICS: DRLK.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given DRLK.S.F01(RID) ensure featuremap has the correct bit set" + PICS: DRLK.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given DRLK.S.F02(FGP) ensure featuremap has the correct bit set" + PICS: DRLK.S.F02 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x4] + + - label: "Given DRLK.S.F04(WDSCH) ensure featuremap has the correct bit set" + PICS: DRLK.S.F04 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x10] + + - label: "Given DRLK.S.F05(DPS) ensure featuremap has the correct bit set" + PICS: DRLK.S.F05 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x20] + + - label: "Given DRLK.S.F06(FACE) ensure featuremap has the correct bit set" + PICS: DRLK.S.F06 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x40] + + - label: "Given DRLK.S.F07(COTA) ensure featuremap has the correct bit set" + PICS: DRLK.S.F07 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x80] + + - label: "Given DRLK.S.F08(USR) ensure featuremap has the correct bit set" + PICS: DRLK.S.F08 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x100] + + - label: "Given DRLK.S.F0a(YDSCH) ensure featuremap has the correct bit set" + PICS: DRLK.S.F0a + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x400] + + - label: "Given DRLK.S.F0b(HDSCH) ensure featuremap has the correct bit set" + PICS: DRLK.S.F0b command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 4095 + hasMasksSet: [0x800] - label: "TH reads AttributeList from DUT" command: "readAttribute" @@ -111,8 +189,8 @@ tests: type: list contains: [20] - - label: "TH reads Feature dependent(DRLK.S.F10) attribute in AttributeList" - PICS: DRLK.S.F10 + - label: "TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList" + PICS: DRLK.S.F0a command: "readAttribute" attribute: "AttributeList" response: @@ -120,8 +198,8 @@ tests: type: list contains: [21] - - label: "TH reads Feature dependent(DRLK.S.F11) attribute in AttributeList" - PICS: DRLK.S.F11 + - label: "TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList" + PICS: DRLK.S.F0b command: "readAttribute" attribute: "AttributeList" response: @@ -269,9 +347,9 @@ tests: contains: [11, 12, 13] - label: - "TH reads Feature dependent commands(DRLK.S.F10) in + "TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList" - PICS: DRLK.S.F10 + PICS: DRLK.S.F0a command: "readAttribute" attribute: "AcceptedCommandList" response: @@ -280,9 +358,9 @@ tests: contains: [14, 15, 16] - label: - "TH reads Feature dependent commands(DRLK.S.F11) in + "TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList" - PICS: DRLK.S.F11 + PICS: DRLK.S.F0b command: "readAttribute" attribute: "AcceptedCommandList" response: @@ -322,9 +400,9 @@ tests: contains: [12] - label: - "TH reads Feature dependent command(DRLK.S.F10) in + "TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList" - PICS: DRLK.S.F10 + PICS: DRLK.S.F0a command: "readAttribute" attribute: "GeneratedCommandList" response: @@ -333,9 +411,9 @@ tests: contains: [15] - label: - "TH reads Feature dependent command(DRLK.S.F11) in + "TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList" - PICS: DRLK.S.F11 + PICS: DRLK.S.F0b command: "readAttribute" attribute: "GeneratedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml index 709969ee58a4d8..379c95d8385008 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml @@ -683,7 +683,7 @@ tests: - label: "TH reads NumberOfYearDay SchedulesSupportedPeruser attribute from DUT" - PICS: DRLK.S.F10 && DRLK.S.A0015 + PICS: DRLK.S.F0a && DRLK.S.A0015 verification: | ./chip-tool doorlock read number-of-year-day-schedules-supported-per-user 1 1 @@ -729,7 +729,7 @@ tests: disabled: true - label: "TH reads NumberOfHoliDay SchedulesSupported attribute from DUT" - PICS: DRLK.S.F11 && DRLK.S.A0016 + PICS: DRLK.S.F0b && DRLK.S.A0016 verification: | ./chip-tool doorlock read number-of-holiday-schedules-supported 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml index 30977190efa2a7..bffd1db40b6a6d 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml @@ -34,7 +34,7 @@ tests: - label: "TH reads NumberOfHoliday SchedulesSupported and saves for future use." - PICS: DRLK.S.F11 && DRLK.S.A0016 + PICS: DRLK.S.F0b && DRLK.S.A0016 verification: | ./chip-tool doorlock read number-of-holiday-schedules-supported 1 1 Verify " NumberOfHoliDay SchedulesSuppored" on the TH(Chip-tool) Log: @@ -51,7 +51,7 @@ tests: "TH sends Set Holiday Schedule Command to DUT with the following values: HolidayIndex as 1 LocalStartTime as 20 Seconds LocalEndTime as 30 Seconds OperatingMode as 0" - PICS: DRLK.S.F11 && DRLK.S.C11.Rsp + PICS: DRLK.S.F0b && DRLK.S.C11.Rsp verification: | ./chip-tool doorlock set-holiday-schedule 1 20 30 0 1 1 Verify " DUT send SUCCESS response." on the TH(Chip-tool) Log: @@ -73,7 +73,7 @@ tests: - label: "TH sends Get Holiday Schedule Command to DUT with HolidayIndex as 1" - PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx + PICS: DRLK.S.F0b && DRLK.S.C12.Rsp && DRLK.S.C12.Tx verification: | ./chip-tool doorlock get-holiday-schedule 1 1 1 Verify " DUT responds with Get Holiday Schedule Response" on the TH(Chip-tool) Log: @@ -131,7 +131,7 @@ tests: - label: "TH sends Get Holiday Schedule Command to DUT with Invalid HolidayIndex as 15." - PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx + PICS: DRLK.S.F0b && DRLK.S.C12.Rsp && DRLK.S.C12.Tx verification: | ./chip-tool doorlock get-holiday-schedule 15 1 1 Verify " DUT sends INVALID_COMMAND response" on the TH(Chip-tool) Log: @@ -153,7 +153,7 @@ tests: "TH sends Get Holiday Schedule Command to DUT with the HolidayIndex as 10 (value is in the the range of step 1 but Holiday Schedule entry not available)" - PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx + PICS: DRLK.S.F0b && DRLK.S.C12.Rsp && DRLK.S.C12.Tx verification: | ./chip-tool doorlock get-holiday-schedule 10 1 1 Verify " DUT sends a NOT_FOUND status" on the TH(Chip-tool) Log: @@ -169,7 +169,7 @@ tests: - label: "TH send Clear Holiday Schedule Command to DUT with HolidayIndex as 1" - PICS: DRLK.S.F11 && DRLK.S.C13.Rsp + PICS: DRLK.S.F0b && DRLK.S.C13.Rsp verification: | ./chip-tool doorlock clear-holiday-schedule 1 1 1 Verify " DUT sends SUCCESS response" on the TH(Chip-tool) Log: @@ -191,7 +191,7 @@ tests: - label: "TH sends Get Holiday Schedule Command to DUT with HolidayIndex as 1." - PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx + PICS: DRLK.S.F0b && DRLK.S.C12.Rsp && DRLK.S.C12.Tx verification: | ./chip-tool doorlock get-holiday-schedule 1 1 1 Verify " DUT sends a NOT_FOUND status" on the TH(Chip-tool) Log: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml index bc825c2f975293..4f962e0de17a46 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml @@ -84,7 +84,7 @@ tests: value: null - label: "TH reads NumberOfYearDay SchedulesSupportedPerUser attribute" - PICS: DRLK.S.F10 && DRLK.S.A0015 + PICS: DRLK.S.F0a && DRLK.S.A0015 command: "readAttribute" attribute: "NumberOfYearDaySchedulesSupportedPerUser" response: @@ -104,7 +104,7 @@ tests: maxValue: 65534 - label: "TH sends Set Year Day Schedule Command to DUT" - PICS: DRLK.S.F10 && DRLK.S.C0e.Rsp + PICS: DRLK.S.F0a && DRLK.S.C0e.Rsp command: "SetYearDaySchedule" arguments: values: @@ -119,7 +119,7 @@ tests: #issue #18591 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -159,7 +159,7 @@ tests: error: INVALID_COMMAND - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -203,7 +203,7 @@ tests: value: 0 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -237,7 +237,7 @@ tests: value: 1 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp + PICS: DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp command: "GetYearDaySchedule" arguments: values: @@ -275,7 +275,7 @@ tests: value: 2100 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -299,7 +299,7 @@ tests: minValue: 1081 - label: "TH sends Clear Year Day Schedule to DUT" - PICS: DRLK.S.F10 && DRLK.S.C10.Rsp + PICS: DRLK.S.F0a && DRLK.S.C10.Rsp command: "ClearYearDaySchedule" arguments: values: @@ -311,7 +311,7 @@ tests: error: INVALID_COMMAND - label: "Clear a year day schedule for the first user" - PICS: DRLK.S.F10 && DRLK.S.C10.Rsp + PICS: DRLK.S.F0a && DRLK.S.C10.Rsp command: "ClearYearDaySchedule" arguments: values: diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 5f22d02e45d4ea..f0a95190c65c76 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -1124,7 +1124,7 @@ ILL.S.A0002=1 ILL.S.A0003=1 ILL.S.A0004=1 -#Door Lock +#Door Lock #server attributes DRLK.S.DetectLockJammed=1 DRLK.S.Simulate.NotFullyLocked=1 @@ -1175,14 +1175,14 @@ DRLK.S.E04=1 #Server Features DRLK.S.F00=1 DRLK.S.F01=1 -DRLK.S.F02=1 +DRLK.S.F02=0 DRLK.S.F04=1 DRLK.S.F05=1 -DRLK.S.F06=1 +DRLK.S.F06=0 DRLK.S.F07=1 DRLK.S.F08=1 -DRLK.S.F10=1 -DRLK.S.F11=1 +DRLK.S.F0a=1 +DRLK.S.F0b=1 #Server commands DRLK.S.C00.Rsp=1 @@ -1291,7 +1291,7 @@ DRLK.C.C1c.Rsp=1 DRLK.C.C23.Rsp=1 DRLK.C.C25.Rsp=1 -#Device Management +#Device Management #Server Attributes BINFO.S.A0000=1 BINFO.S.A0001=1 @@ -1551,7 +1551,7 @@ DESC.C.A0002=1 DESC.C.A0003=1 DESC.C.A0004=1 -#Secure Channel +#Secure Channel MCORE.SC.SII_OP_DISCOVERY_KEY=1 MCORE.SC.SAI_OP_DISCOVERY_KEY=1 MCORE.SC.T_KEY=1 diff --git a/src/controller/CHIPDeviceController.cpp b/src/controller/CHIPDeviceController.cpp index 8bcba1f5c06564..88bef7820efd71 100644 --- a/src/controller/CHIPDeviceController.cpp +++ b/src/controller/CHIPDeviceController.cpp @@ -489,6 +489,17 @@ void DeviceCommissioner::Shutdown() } #endif // CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY + // If we have a commissionee device for the device being commissioned, + // release it now, before we release our whole commissionee pool. + if (mDeviceBeingCommissioned != nullptr) + { + auto * commissionee = FindCommissioneeDevice(mDeviceBeingCommissioned->GetDeviceId()); + if (commissionee) + { + ReleaseCommissioneeDevice(commissionee); + } + } + // Release everything from the commissionee device pool here. DeviceController::Shutdown releases operational. mCommissioneeDevicePool.ReleaseAll(); @@ -1561,6 +1572,15 @@ void DeviceCommissioner::CommissioningStageComplete(CHIP_ERROR err, Commissionin { // Once this stage is complete, reset mDeviceBeingCommissioned - this will be reset when the delegate calls the next step. MATTER_TRACE_EVENT_SCOPE("CommissioningStageComplete", "DeviceCommissioner"); + + if (mDeviceBeingCommissioned == nullptr) + { + // We are getting a stray callback (e.g. due to un-cancellable + // operations) when we are not in fact commissioning anything. Just + // ignore it. + return; + } + NodeId nodeId = mDeviceBeingCommissioned->GetDeviceId(); DeviceProxy * proxy = mDeviceBeingCommissioned; mDeviceBeingCommissioned = nullptr; diff --git a/src/credentials/CHIPCert.cpp b/src/credentials/CHIPCert.cpp index a246558af8bf3a..e5167d05dea768 100644 --- a/src/credentials/CHIPCert.cpp +++ b/src/credentials/CHIPCert.cpp @@ -607,7 +607,10 @@ bool ChipRDN::IsEqual(const ChipRDN & other) const return mString.data_equal(other.mString); } -ChipDN::ChipDN() {} +ChipDN::ChipDN() +{ + Clear(); +} ChipDN::~ChipDN() {} diff --git a/src/credentials/CHIPCert.h b/src/credentials/CHIPCert.h index d95671ee74c3a4..af45c71957fad8 100644 --- a/src/credentials/CHIPCert.h +++ b/src/credentials/CHIPCert.h @@ -193,7 +193,13 @@ struct ChipRDN bool IsEqual(const ChipRDN & other) const; bool IsEmpty() const { return mAttrOID == chip::ASN1::kOID_NotSpecified; } - void Clear() { mAttrOID = chip::ASN1::kOID_NotSpecified; } + void Clear() + { + mAttrOID = chip::ASN1::kOID_NotSpecified; + mAttrIsPrintableString = false; + mChipVal = 0; + mString = CharSpan{}; + } }; /** diff --git a/src/credentials/GroupDataProviderImpl.cpp b/src/credentials/GroupDataProviderImpl.cpp index 0626a8e73baa97..d286d406714ee6 100644 --- a/src/credentials/GroupDataProviderImpl.cpp +++ b/src/credentials/GroupDataProviderImpl.cpp @@ -1856,13 +1856,15 @@ CHIP_ERROR GroupDataProviderImpl::GroupKeyContext::MessageDecrypt(const ByteSpan CHIP_ERROR GroupDataProviderImpl::GroupKeyContext::PrivacyEncrypt(const ByteSpan & input, const ByteSpan & nonce, MutableByteSpan & output) const { - return CHIP_ERROR_NOT_IMPLEMENTED; + return Crypto::AES_CTR_crypt(input.data(), input.size(), mPrivacyKey, Crypto::kAES_CCM128_Key_Length, nonce.data(), + nonce.size(), output.data()); } CHIP_ERROR GroupDataProviderImpl::GroupKeyContext::PrivacyDecrypt(const ByteSpan & input, const ByteSpan & nonce, MutableByteSpan & output) const { - return CHIP_ERROR_NOT_IMPLEMENTED; + return Crypto::AES_CTR_crypt(input.data(), input.size(), mPrivacyKey, Crypto::kAES_CCM128_Key_Length, nonce.data(), + nonce.size(), output.data()); } GroupDataProviderImpl::GroupSessionIterator * GroupDataProviderImpl::IterateGroupSessions(uint16_t session_id) diff --git a/src/credentials/tests/TestChipCert.cpp b/src/credentials/tests/TestChipCert.cpp index c84b18db79024c..3725f00acd1a6b 100644 --- a/src/credentials/tests/TestChipCert.cpp +++ b/src/credentials/tests/TestChipCert.cpp @@ -220,15 +220,24 @@ static void TestChipCert_ChipDN(nlTestSuite * inSuite, void * inContext) const static CATValues noc_cats = { { 0xABCD0001, chip::kUndefinedCAT, chip::kUndefinedCAT } }; ChipDN chip_dn; + uint8_t certType = kCertType_FirmwareSigning; // Start with non-default value + + NL_TEST_ASSERT(inSuite, chip_dn.IsEmpty()); + NL_TEST_ASSERT(inSuite, chip_dn.RDNCount() == 0); + NL_TEST_ASSERT(inSuite, chip_dn.GetCertType(certType) == CHIP_NO_ERROR); + NL_TEST_ASSERT(inSuite, chip_dn.IsEmpty() == true); + NL_TEST_ASSERT(inSuite, certType == kCertType_NotSpecified); + NL_TEST_ASSERT(inSuite, chip_dn.AddAttribute_CommonName(CharSpan(noc_rdn, strlen(noc_rdn)), false) == CHIP_NO_ERROR); NL_TEST_ASSERT(inSuite, chip_dn.AddAttribute_MatterNodeId(0xAAAABBBBCCCCDDDD) == CHIP_NO_ERROR); NL_TEST_ASSERT(inSuite, chip_dn.AddAttribute_MatterFabricId(0xFAB00000FAB00001) == CHIP_NO_ERROR); NL_TEST_ASSERT(inSuite, chip_dn.AddAttribute_GivenName(CharSpan(noc_rdn2, strlen(noc_rdn2)), true) == CHIP_NO_ERROR); NL_TEST_ASSERT(inSuite, chip_dn.AddCATs(noc_cats) == CHIP_NO_ERROR); + NL_TEST_ASSERT(inSuite, chip_dn.RDNCount() == 5); NL_TEST_ASSERT(inSuite, chip_dn.AddAttribute_GivenName(CharSpan(noc_rdn2, strlen(noc_rdn2)), true) == CHIP_ERROR_NO_MEMORY); + NL_TEST_ASSERT(inSuite, chip_dn.RDNCount() == 5); - uint8_t certType; NL_TEST_ASSERT(inSuite, chip_dn.GetCertType(certType) == CHIP_NO_ERROR); NL_TEST_ASSERT(inSuite, certType == kCertType_Node); diff --git a/src/crypto/CHIPCryptoPAL.cpp b/src/crypto/CHIPCryptoPAL.cpp index 859f5809e4b742..4a878eecfc5eeb 100644 --- a/src/crypto/CHIPCryptoPAL.cpp +++ b/src/crypto/CHIPCryptoPAL.cpp @@ -706,6 +706,16 @@ CHIP_ERROR EcdsaAsn1SignatureToRaw(size_t fe_length_bytes, const ByteSpan & asn1 return CHIP_NO_ERROR; } +CHIP_ERROR AES_CTR_crypt(const uint8_t * input, size_t input_length, const uint8_t * key, size_t key_length, const uint8_t * nonce, + size_t nonce_length, uint8_t * output) +{ + // Discard tag portion of CCM to apply only CTR mode encryption/decryption. + constexpr size_t kTagLen = Crypto::kAES_CCM128_Tag_Length; + uint8_t tag[kTagLen]; + + return AES_CCM_encrypt(input, input_length, nullptr, 0, key, key_length, nonce, nonce_length, output, tag, kTagLen); +} + CHIP_ERROR GenerateCompressedFabricId(const Crypto::P256PublicKey & root_public_key, uint64_t fabric_id, MutableByteSpan & out_compressed_fabric_id) { diff --git a/src/crypto/CHIPCryptoPAL.h b/src/crypto/CHIPCryptoPAL.h index 544a554dcb31eb..9c5de092867ee3 100644 --- a/src/crypto/CHIPCryptoPAL.h +++ b/src/crypto/CHIPCryptoPAL.h @@ -78,6 +78,8 @@ constexpr size_t kP256_PublicKey_Length = CHIP_CRYPTO_PUBLIC_KEY_SIZE_BYTES; constexpr size_t kAES_CCM128_Key_Length = 128u / 8u; constexpr size_t kAES_CCM128_Block_Length = kAES_CCM128_Key_Length; +constexpr size_t kAES_CCM128_Nonce_Length = 13; +constexpr size_t kAES_CCM128_Tag_Length = 16; /* These sizes are hardcoded here to remove header dependency on underlying crypto library * in a public interface file. The validity of these sizes is verified by static_assert in @@ -614,11 +616,30 @@ CHIP_ERROR AES_CCM_encrypt(const uint8_t * plaintext, size_t plaintext_length, c * @param plaintext Buffer to write plaintext into * @return Returns a CHIP_ERROR on error, CHIP_NO_ERROR otherwise **/ - CHIP_ERROR AES_CCM_decrypt(const uint8_t * ciphertext, size_t ciphertext_length, const uint8_t * aad, size_t aad_length, const uint8_t * tag, size_t tag_length, const uint8_t * key, size_t key_length, const uint8_t * nonce, size_t nonce_length, uint8_t * plaintext); +/** + * @brief A function that implements AES-CTR encryption/decryption + * + * This implements the AES-CTR-Encrypt/Decrypt() cryptographic primitives per sections + * 3.7.1 and 3.7.2 of the specification. For an empty input, the user of the API + * can provide an empty string, or a nullptr, and provide input as 0. + * The output buffer can also be an empty string, or a nullptr for this case. + * + * @param input Input text to encrypt/decrypt + * @param input_length Length of ciphertext + * @param key Decryption key + * @param key_length Length of Decryption key (in bytes) + * @param nonce Encryption nonce + * @param nonce_length Length of encryption nonce + * @param output Buffer to write output into + * @return Returns a CHIP_ERROR on error, CHIP_NO_ERROR otherwise + **/ +CHIP_ERROR AES_CTR_crypt(const uint8_t * input, size_t input_length, const uint8_t * key, size_t key_length, const uint8_t * nonce, + size_t nonce_length, uint8_t * output); + /** * @brief Generate a PKCS#10 CSR, usable for Matter, from a P256Keypair. * diff --git a/src/crypto/tests/CHIPCryptoPALTest.cpp b/src/crypto/tests/CHIPCryptoPALTest.cpp index 485ead2cf99322..861db7f8b3bb7b 100644 --- a/src/crypto/tests/CHIPCryptoPALTest.cpp +++ b/src/crypto/tests/CHIPCryptoPALTest.cpp @@ -161,6 +161,103 @@ static int test_entropy_source(void * data, uint8_t * output, size_t len, size_t return 0; } +struct AesCtrTestEntry +{ + const uint8_t * key; ///< Key to use for AES-CTR-128 encryption/decryption -- 16 byte length + const uint8_t * nonce; ///< Nonce to use for AES-CTR-128 encryption/decryption -- 13 byte length + const uint8_t * plaintext; + size_t plaintextLen; + const uint8_t * ciphertext; + size_t ciphertextLen; +}; + +/** + * Test vectors for AES-CTR-128 encryption/decryption. + * + * Sourced from: https://www.ietf.org/rfc/rfc3686.txt (Section 6) + * Modified to use `IV = flags byte | 13 byte nonce | u16 counter` as defined in NIST SP 800-38A. + * + * All AES-CCM test vectors can be used as well, but those are already called to validate underlying AES-CCM functionality. + */ +const AesCtrTestEntry theAesCtrTestVector[] = { + { + .key = (const uint8_t *) "\xae\x68\x52\xf8\x12\x10\x67\xcc\x4b\xf7\xa5\x76\x55\x77\xf3\x9e", + .nonce = (const uint8_t *) "\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00", + .plaintext = (const uint8_t *) "\x53\x69\x6e\x67\x6c\x65\x20\x62\x6c\x6f\x63\x6b\x20\x6d\x73\x67", + .plaintextLen = 16, + .ciphertext = (const uint8_t *) "\x0d\x0a\x6b\x6d\xc1\xf6\x9b\x4d\x14\xca\x4c\x15\x42\x22\x42\xc4", + .ciphertextLen = 16, + }, + { + .key = (const uint8_t *) "\x7e\x24\x06\x78\x17\xfa\xe0\xd7\x43\xd6\xce\x1f\x32\x53\x91\x63", + .nonce = (const uint8_t *) "\x00\x6c\xb6\xdb\xc0\x54\x3b\x59\xda\x48\xd9\x0b\x00", + .plaintext = (const uint8_t *) "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", + .plaintextLen = 32, + .ciphertext = (const uint8_t *) "\x4f\x3d\xf9\x49\x15\x88\x4d\xe0\xdc\x0e\x30\x95\x0d\xe7\xa6\xe9" + "\x5a\x91\x7e\x1d\x06\x42\x22\xdb\x2f\x6e\xc7\x3d\x99\x4a\xd9\x5f", + .ciphertextLen = 32, + } +}; + +constexpr size_t kAesCtrTestVectorSize = sizeof(theAesCtrTestVector) / sizeof(theAesCtrTestVector[0]); + +constexpr size_t KEY_LENGTH = Crypto::kAES_CCM128_Key_Length; +constexpr size_t NONCE_LENGTH = Crypto::kAES_CCM128_Nonce_Length; + +static void TestAES_CTR_128_Encrypt(nlTestSuite * inSuite, const AesCtrTestEntry * vector) +{ + chip::Platform::ScopedMemoryBuffer outBuffer; + outBuffer.Alloc(vector->ciphertextLen); + NL_TEST_ASSERT(inSuite, outBuffer); + + CHIP_ERROR err = AES_CTR_crypt(vector->plaintext, vector->plaintextLen, vector->key, KEY_LENGTH, vector->nonce, NONCE_LENGTH, + outBuffer.Get()); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); + + bool outputMatches = memcmp(outBuffer.Get(), vector->ciphertext, vector->ciphertextLen) == 0; + NL_TEST_ASSERT(inSuite, outputMatches); + if (!outputMatches) + { + printf("\n Test failed due to mismatching ciphertext\n"); + } +} + +static void TestAES_CTR_128_Decrypt(nlTestSuite * inSuite, const AesCtrTestEntry * vector) +{ + chip::Platform::ScopedMemoryBuffer outBuffer; + outBuffer.Alloc(vector->plaintextLen); + NL_TEST_ASSERT(inSuite, outBuffer); + + CHIP_ERROR err = AES_CTR_crypt(vector->ciphertext, vector->ciphertextLen, vector->key, KEY_LENGTH, vector->nonce, NONCE_LENGTH, + outBuffer.Get()); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); + + bool outputMatches = memcmp(outBuffer.Get(), vector->plaintext, vector->plaintextLen) == 0; + NL_TEST_ASSERT(inSuite, outputMatches); + if (!outputMatches) + { + printf("\n Test failed due to mismatching plaintext\n"); + } +} + +static void TestAES_CTR_128CryptTestVectors(nlTestSuite * inSuite, void * inContext) +{ + HeapChecker heapChecker(inSuite); + int numOfTestsRan = 0; + for (size_t vectorIndex = 0; vectorIndex < kAesCtrTestVectorSize; vectorIndex++) + { + const AesCtrTestEntry * vector = &theAesCtrTestVector[vectorIndex]; + if (vector->plaintextLen > 0) + { + numOfTestsRan++; + TestAES_CTR_128_Encrypt(inSuite, vector); + TestAES_CTR_128_Decrypt(inSuite, vector); + } + } + NL_TEST_ASSERT(inSuite, numOfTestsRan > 0); +} + static void TestAES_CCM_128EncryptTestVectors(nlTestSuite * inSuite, void * inContext) { HeapChecker heapChecker(inSuite); @@ -2279,6 +2376,7 @@ static const nlTest sTests[] = { NL_TEST_DEF("Test decrypting AES-CCM-128 invalid key", TestAES_CCM_128DecryptInvalidKey), NL_TEST_DEF("Test decrypting AES-CCM-128 invalid nonce", TestAES_CCM_128DecryptInvalidNonceLen), NL_TEST_DEF("Test decrypting AES-CCM-128 Containers", TestAES_CCM_128Containers), + NL_TEST_DEF("Test encrypt/decrypt AES-CTR-128 test vectors", TestAES_CTR_128CryptTestVectors), NL_TEST_DEF("Test ASN.1 signature conversion routines", TestAsn1Conversions), NL_TEST_DEF("Test Integer to ASN.1 DER conversion", TestRawIntegerToDerValidCases), NL_TEST_DEF("Test Integer to ASN.1 DER conversion error cases", TestRawIntegerToDerInvalidCases), diff --git a/src/test_driver/efr32/README.md b/src/test_driver/efr32/README.md index 2901c46a58f0fa..5c9817b8da6948 100644 --- a/src/test_driver/efr32/README.md +++ b/src/test_driver/efr32/README.md @@ -42,6 +42,9 @@ test runner. MG12 boards: - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm + - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, + 868MHz@19dBm - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, @@ -54,8 +57,12 @@ test runner. MG24 boards : + - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm + - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm + - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm + - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm OR use GN/Ninja directly diff --git a/third_party/silabs/matter_support b/third_party/silabs/matter_support index 0c84c861c036fb..2425fb72cacd54 160000 --- a/third_party/silabs/matter_support +++ b/third_party/silabs/matter_support @@ -1 +1 @@ -Subproject commit 0c84c861c036fba5ba35eccca3f366925700b2b5 +Subproject commit 2425fb72cacd540df505f11e7de81e6270ed1c40 diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index bb7850cd84314e..99e0309f402aad 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -67998,7 +67998,7 @@ class DL_SchedulesSuite : public TestCommand class Test_TC_DRLK_1_1Suite : public TestCommand { public: - Test_TC_DRLK_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_1_1", 33, credsIssuerConfig) + Test_TC_DRLK_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_1_1", 42, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -68059,11 +68059,91 @@ class Test_TC_DRLK_1_1Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 4095UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 16UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 32UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 64UL)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 128UL)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 256UL)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1024UL)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2048UL)); + } + break; + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68081,7 +68161,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68092,7 +68172,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); } break; - case 6: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68103,7 +68183,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 24UL)); } break; - case 7: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68114,7 +68194,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; - case 8: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68123,7 +68203,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; - case 9: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68132,7 +68212,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; - case 10: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68141,7 +68221,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; - case 11: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68151,7 +68231,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); } break; - case 12: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68160,7 +68240,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 51UL)); } break; - case 13: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68169,7 +68249,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); } break; - case 14: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68178,7 +68258,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); } break; - case 15: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68187,7 +68267,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 35UL)); } break; - case 16: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68196,7 +68276,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); } break; - case 17: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68205,7 +68285,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 39UL)); } break; - case 18: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68214,7 +68294,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); } break; - case 19: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68223,7 +68303,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); } break; - case 20: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68232,7 +68312,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); } break; - case 21: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68241,7 +68321,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 43UL)); } break; - case 22: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68250,7 +68330,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 44UL)); } break; - case 23: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68260,7 +68340,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 24: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68271,7 +68351,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); } break; - case 25: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68282,7 +68362,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 26: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68293,7 +68373,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 27: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68307,7 +68387,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); } break; - case 28: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68316,7 +68396,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 29: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68325,7 +68405,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; - case 30: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68334,7 +68414,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); } break; - case 31: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68343,7 +68423,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; - case 32: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -68383,187 +68463,239 @@ class Test_TC_DRLK_1_1Suite : public TestCommand case 2: { LogStep(2, "TH reads the FeatureMap from DUT"); VerifyOrDo(!ShouldSkip(" !DRLK.S.F00 && !DRLK.S.F01 && !DRLK.S.F02 && !DRLK.S.F04 && !DRLK.S.F05 && !DRLK.S.F06 && " - "!DRLK.S.F07 && !DRLK.S.F08 && !DRLK.S.F10 && !DRLK.S.F11 "), + "!DRLK.S.F07 && !DRLK.S.F08 && !DRLK.S.F0a && !DRLK.S.F0b "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "TH reads the FeatureMap from DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F00 || DRLK.S.F01 || DRLK.S.F02 || DRLK.S.F04 || DRLK.S.F05 || DRLK.S.F06 || DRLK.S.F07 " - "|| DRLK.S.F08 || DRLK.S.F10 || DRLK.S.F11"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given DRLK.S.F00(PIN) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "TH reads AttributeList from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, + LogStep(4, "Given DRLK.S.F01(RID) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList"); + LogStep(5, "Given DRLK.S.F02(FGP) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Given DRLK.S.F04(WDSCH) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Given DRLK.S.F05(DPS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Given DRLK.S.F06(FACE) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F06"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, "Given DRLK.S.F07(COTA) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 10: { + LogStep(10, "Given DRLK.S.F08(USR) ensure featuremap has the correct bit set"); VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 11: { + LogStep(11, "Given DRLK.S.F0a(YDSCH) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 12: { + LogStep(12, "Given DRLK.S.F0b(HDSCH) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads AttributeList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList"); + case 14: { + LogStep(14, "TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 15: { + LogStep(15, "TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList"); + case 16: { + LogStep(16, "TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList"); + case 17: { + LogStep(17, "TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "TH reads Feature dependent(DRLK.S.F10) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 18: { + LogStep(18, "TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "TH reads Feature dependent(DRLK.S.F11) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F11"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 19: { + LogStep(19, "TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList"); + case 20: { + LogStep(20, "TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.F00 || DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList"); + case 21: { + LogStep(21, "TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 || DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "TH reads optional attribute(Language) in AttributeList"); + case 22: { + LogStep(22, "TH reads optional attribute(Language) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "TH reads optional attribute(LEDSettings) in AttributeList"); + case 23: { + LogStep(23, "TH reads optional attribute(LEDSettings) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "TH reads optional attribute(AutoRelockTime) in AttributeList"); + case 24: { + LogStep(24, "TH reads optional attribute(AutoRelockTime) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "TH reads optional attribute(SoundVolume) in AttributeList"); + case 25: { + LogStep(25, "TH reads optional attribute(SoundVolume) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "TH reads optional attribute(DefaultConfigurationRegister) in AttributeList"); + case 26: { + LogStep(26, "TH reads optional attribute(DefaultConfigurationRegister) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "TH reads optional attribute(EnableLocalProgramming) in AttributeList"); + case 27: { + LogStep(27, "TH reads optional attribute(EnableLocalProgramming) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "TH reads optional attribute(EnableOneTouchLocking) in AttributeList"); + case 28: { + LogStep(28, "TH reads optional attribute(EnableOneTouchLocking) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "TH reads optional attribute(EnableInsideStatusLED) in AttributeList"); + case 29: { + LogStep(29, "TH reads optional attribute(EnableInsideStatusLED) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "TH reads optional attribute(EnablePrivacyModeButton) in AttributeList"); + case 30: { + LogStep(30, "TH reads optional attribute(EnablePrivacyModeButton) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "TH reads optional attribute(LocalProgrammingFeatures) in AttributeList"); + case 31: { + LogStep(31, "TH reads optional attribute(LocalProgrammingFeatures) in AttributeList"); VerifyOrDo(!ShouldSkip("DRLK.S.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "TH reads AcceptedCommandList from DUT"); + case 32: { + LogStep(32, "TH reads AcceptedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList"); + case 33: { + LogStep(33, "TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "TH reads Feature dependent commands(DRLK.S.F10) in AcceptedCommandList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 34: { + LogStep(34, "TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "TH reads Feature dependent commands(DRLK.S.F11) in AcceptedCommandList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F11"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 35: { + LogStep(35, "TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 27: { - LogStep(27, "TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList"); + case 36: { + LogStep(36, "TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList"); + case 37: { + LogStep(37, "TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 29: { - LogStep(29, "TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList"); + case 38: { + LogStep(38, "TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "TH reads Feature dependent command(DRLK.S.F10) in GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 39: { + LogStep(39, "TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "TH reads Feature dependent command(DRLK.S.F11) in GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F11"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 40: { + LogStep(40, "TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList"); + case 41: { + LogStep(41, "TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); @@ -70619,7 +70751,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 3: { LogStep(3, "TH reads NumberOfYearDay SchedulesSupportedPerUser attribute"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id, true, chip::NullOptional); } @@ -70631,7 +70763,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 5: { LogStep(5, "TH sends Set Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0e.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C0e.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::Type value; value.yearDayIndex = 1U; @@ -70645,7 +70777,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 6: { LogStep(6, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70672,7 +70804,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 8: { LogStep(8, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70706,7 +70838,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 10: { LogStep(10, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70731,7 +70863,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 12: { LogStep(12, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp"), + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70758,7 +70890,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 14: { LogStep(14, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70771,7 +70903,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 15: { LogStep(15, "TH sends Clear Year Day Schedule to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 0U; @@ -70783,7 +70915,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 16: { LogStep(16, "Clear a year day schedule for the first user"); - VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 1U; 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 ded17f4866bb30..48bad5cac955e1 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -117449,260 +117449,331 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); if (ShouldSkip(" !DRLK.S.F00 && !DRLK.S.F01 && !DRLK.S.F02 && !DRLK.S.F04 && !DRLK.S.F05 && !DRLK.S.F06 && !DRLK.S.F07 " - "&& !DRLK.S.F08 && !DRLK.S.F10 && !DRLK.S.F11 ")) { + "&& !DRLK.S.F08 && !DRLK.S.F0a && !DRLK.S.F0b ")) { NextTest(); return; } err = TestThReadsTheFeatureMapFromDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads the FeatureMap from DUT\n"); - if (ShouldSkip("DRLK.S.F00 || DRLK.S.F01 || DRLK.S.F02 || DRLK.S.F04 || DRLK.S.F05 || DRLK.S.F06 || DRLK.S.F07 || " - "DRLK.S.F08 || DRLK.S.F10 || DRLK.S.F11")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given DRLK.S.F00(PIN) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F00")) { NextTest(); return; } - err = TestThReadsTheFeatureMapFromDut_3(); + err = TestGivenDrlksf00pinEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AttributeList from DUT\n"); - err = TestThReadsAttributeListFromDut_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given DRLK.S.F01(RID) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F01")) { + NextTest(); + return; + } + err = TestGivenDrlksf01ridEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList\n"); - if (ShouldSkip("DRLK.S.F08")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Given DRLK.S.F02(FGP) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F02")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_5(); + err = TestGivenDrlksf02fgpEnsureFeaturemapHasTheCorrectBitSet_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList\n"); - if (ShouldSkip("DRLK.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Given DRLK.S.F04(WDSCH) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F04")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_6(); + err = TestGivenDrlksf04wdschEnsureFeaturemapHasTheCorrectBitSet_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList\n"); - if (ShouldSkip("DRLK.S.F01")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Given DRLK.S.F05(DPS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F05")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_7(); + err = TestGivenDrlksf05dpsEnsureFeaturemapHasTheCorrectBitSet_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList\n"); - if (ShouldSkip("DRLK.S.F04")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Given DRLK.S.F06(FACE) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F06")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_8(); + err = TestGivenDrlksf06faceEnsureFeaturemapHasTheCorrectBitSet_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads Feature dependent(DRLK.S.F10) attribute in AttributeList\n"); - if (ShouldSkip("DRLK.S.F10")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : Given DRLK.S.F07(COTA) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F07")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF10AttributeInAttributeList_9(); + err = TestGivenDrlksf07cotaEnsureFeaturemapHasTheCorrectBitSet_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads Feature dependent(DRLK.S.F11) attribute in AttributeList\n"); - if (ShouldSkip("DRLK.S.F11")) { + ChipLogProgress(chipTool, " ***** Test Step 10 : Given DRLK.S.F08(USR) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F08")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF11AttributeInAttributeList_10(); + err = TestGivenDrlksf08usrEnsureFeaturemapHasTheCorrectBitSet_10(); break; case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Given DRLK.S.F0a(YDSCH) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F0a")) { + NextTest(); + return; + } + err = TestGivenDRLKSF0aYDSCHEnsureFeaturemapHasTheCorrectBitSet_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Given DRLK.S.F0b(HDSCH) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DRLK.S.F0b")) { + NextTest(); + return; + } + err = TestGivenDRLKSF0bHDSCHEnsureFeaturemapHasTheCorrectBitSet_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads AttributeList from DUT\n"); + err = TestThReadsAttributeListFromDut_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList\n"); + if (ShouldSkip("DRLK.S.F08")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList\n"); + if (ShouldSkip("DRLK.S.F00")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList\n"); + if (ShouldSkip("DRLK.S.F01")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_16(); + break; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList\n"); + if (ShouldSkip("DRLK.S.F04")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_17(); + break; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList\n"); + if (ShouldSkip("DRLK.S.F0a")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_18(); + break; + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList\n"); + if (ShouldSkip("DRLK.S.F0b")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_19(); + break; + case 20: ChipLogProgress(chipTool, - " ***** Test Step 11 : TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList\n"); + " ***** Test Step 20 : TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList\n"); if (ShouldSkip("DRLK.S.F00 || DRLK.S.F01")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_11(); + err = TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_20(); break; - case 12: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 12 : TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList\n"); + " ***** Test Step 21 : TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList\n"); if (ShouldSkip("DRLK.S.F07 || DRLK.S.F00")) { NextTest(); return; } - err = TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_12(); + err = TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_21(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads optional attribute(Language) in AttributeList\n"); + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : TH reads optional attribute(Language) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0021")) { NextTest(); return; } - err = TestThReadsOptionalAttributeLanguageInAttributeList_13(); + err = TestThReadsOptionalAttributeLanguageInAttributeList_22(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads optional attribute(LEDSettings) in AttributeList\n"); + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads optional attribute(LEDSettings) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0022")) { NextTest(); return; } - err = TestThReadsOptionalAttributeLEDSettingsInAttributeList_14(); + err = TestThReadsOptionalAttributeLEDSettingsInAttributeList_23(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads optional attribute(AutoRelockTime) in AttributeList\n"); + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : TH reads optional attribute(AutoRelockTime) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0023")) { NextTest(); return; } - err = TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_15(); + err = TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_24(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads optional attribute(SoundVolume) in AttributeList\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : TH reads optional attribute(SoundVolume) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0024")) { NextTest(); return; } - err = TestThReadsOptionalAttributeSoundVolumeInAttributeList_16(); + err = TestThReadsOptionalAttributeSoundVolumeInAttributeList_25(); break; - case 17: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 17 : TH reads optional attribute(DefaultConfigurationRegister) in AttributeList\n"); + chipTool, " ***** Test Step 26 : TH reads optional attribute(DefaultConfigurationRegister) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0027")) { NextTest(); return; } - err = TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_17(); + err = TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_26(); break; - case 18: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 18 : TH reads optional attribute(EnableLocalProgramming) in AttributeList\n"); + chipTool, " ***** Test Step 27 : TH reads optional attribute(EnableLocalProgramming) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0028")) { NextTest(); return; } - err = TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_18(); + err = TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_27(); break; - case 19: + case 28: ChipLogProgress( - chipTool, " ***** Test Step 19 : TH reads optional attribute(EnableOneTouchLocking) in AttributeList\n"); + chipTool, " ***** Test Step 28 : TH reads optional attribute(EnableOneTouchLocking) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0029")) { NextTest(); return; } - err = TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_19(); + err = TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_28(); break; - case 20: + case 29: ChipLogProgress( - chipTool, " ***** Test Step 20 : TH reads optional attribute(EnableInsideStatusLED) in AttributeList\n"); + chipTool, " ***** Test Step 29 : TH reads optional attribute(EnableInsideStatusLED) in AttributeList\n"); if (ShouldSkip("DRLK.S.A002a")) { NextTest(); return; } - err = TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_20(); + err = TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_29(); break; - case 21: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 21 : TH reads optional attribute(EnablePrivacyModeButton) in AttributeList\n"); + chipTool, " ***** Test Step 30 : TH reads optional attribute(EnablePrivacyModeButton) in AttributeList\n"); if (ShouldSkip("DRLK.S.A002b")) { NextTest(); return; } - err = TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_21(); + err = TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_30(); break; - case 22: + case 31: ChipLogProgress( - chipTool, " ***** Test Step 22 : TH reads optional attribute(LocalProgrammingFeatures) in AttributeList\n"); + chipTool, " ***** Test Step 31 : TH reads optional attribute(LocalProgrammingFeatures) in AttributeList\n"); if (ShouldSkip("DRLK.S.A002c")) { NextTest(); return; } - err = TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_22(); + err = TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_31(); break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads AcceptedCommandList from DUT\n"); - err = TestThReadsAcceptedCommandListFromDut_23(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads AcceptedCommandList from DUT\n"); + err = TestThReadsAcceptedCommandListFromDut_32(); break; - case 24: + case 33: ChipLogProgress( - chipTool, " ***** Test Step 24 : TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 33 : TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F04")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_24(); + err = TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_33(); break; - case 25: + case 34: ChipLogProgress( - chipTool, " ***** Test Step 25 : TH reads Feature dependent commands(DRLK.S.F10) in AcceptedCommandList\n"); - if (ShouldSkip("DRLK.S.F10")) { + chipTool, " ***** Test Step 34 : TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList\n"); + if (ShouldSkip("DRLK.S.F0a")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandsDRLKSF10InAcceptedCommandList_25(); + err = TestThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_34(); break; - case 26: + case 35: ChipLogProgress( - chipTool, " ***** Test Step 26 : TH reads Feature dependent commands(DRLK.S.F11) in AcceptedCommandList\n"); - if (ShouldSkip("DRLK.S.F11")) { + chipTool, " ***** Test Step 35 : TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList\n"); + if (ShouldSkip("DRLK.S.F0b")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandsDRLKSF11InAcceptedCommandList_26(); + err = TestThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_35(); break; - case 27: + case 36: ChipLogProgress( - chipTool, " ***** Test Step 27 : TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 36 : TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F08")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_27(); + err = TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_36(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList\n"); + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.C03.Rsp")) { NextTest(); return; } - err = TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_28(); + err = TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_37(); break; - case 29: + case 38: ChipLogProgress( - chipTool, " ***** Test Step 29 : TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList\n"); + chipTool, " ***** Test Step 38 : TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList\n"); if (ShouldSkip("DRLK.S.F04")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_29(); + err = TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_38(); break; - case 30: + case 39: ChipLogProgress( - chipTool, " ***** Test Step 30 : TH reads Feature dependent command(DRLK.S.F10) in GeneratedCommandList\n"); - if (ShouldSkip("DRLK.S.F10")) { + chipTool, " ***** Test Step 39 : TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList\n"); + if (ShouldSkip("DRLK.S.F0a")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandDRLKSF10InGeneratedCommandList_30(); + err = TestThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_39(); break; - case 31: + case 40: ChipLogProgress( - chipTool, " ***** Test Step 31 : TH reads Feature dependent command(DRLK.S.F11) in GeneratedCommandList\n"); - if (ShouldSkip("DRLK.S.F11")) { + chipTool, " ***** Test Step 40 : TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList\n"); + if (ShouldSkip("DRLK.S.F0b")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandDRLKSF11InGeneratedCommandList_31(); + err = TestThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_40(); break; - case 32: + case 41: ChipLogProgress( - chipTool, " ***** Test Step 32 : TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList\n"); + chipTool, " ***** Test Step 41 : TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList\n"); if (ShouldSkip("DRLK.S.F08")) { NextTest(); return; } - err = TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_32(); + err = TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_41(); break; } @@ -117814,6 +117885,33 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { 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; + 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; + 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; } // Go on to the next test. @@ -117827,7 +117925,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 33; + const uint16_t mTestCount = 42; chip::Optional mNodeId; chip::Optional mCluster; @@ -117887,28 +117985,187 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheFeatureMapFromDut_3() + CHIP_ERROR TestGivenDrlksf00pinEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads the FeatureMap from DUT Error: %@", err); + NSLog(@"Given DRLK.S.F00(PIN) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 4095UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + CHIP_ERROR TestGivenDrlksf01ridEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F01(RID) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAttributeListFromDut_4() + CHIP_ERROR TestGivenDrlksf02fgpEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F02(FGP) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDrlksf04wdschEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F04(WDSCH) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDrlksf05dpsEnsureFeaturemapHasTheCorrectBitSet_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F05(DPS) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDrlksf06faceEnsureFeaturemapHasTheCorrectBitSet_8() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F06(FACE) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDrlksf07cotaEnsureFeaturemapHasTheCorrectBitSet_9() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F07(COTA) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDrlksf08usrEnsureFeaturemapHasTheCorrectBitSet_10() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F08(USR) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDRLKSF0aYDSCHEnsureFeaturemapHasTheCorrectBitSet_11() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F0a(YDSCH) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDRLKSF0bHDSCHEnsureFeaturemapHasTheCorrectBitSet_12() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DRLK.S.F0b(HDSCH) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsAttributeListFromDut_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -117937,7 +118194,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_5() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -117959,7 +118216,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_6() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -117981,7 +118238,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_7() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118003,7 +118260,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_8() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118023,14 +118280,14 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF10AttributeInAttributeList_9() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Feature dependent(DRLK.S.F10) attribute in AttributeList Error: %@", err); + NSLog(@"TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -118043,14 +118300,14 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF11AttributeInAttributeList_10() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Feature dependent(DRLK.S.F11) attribute in AttributeList Error: %@", err); + NSLog(@"TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -118063,7 +118320,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_11() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118084,7 +118341,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_12() + CHIP_ERROR TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118104,7 +118361,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeLanguageInAttributeList_13() + CHIP_ERROR TestThReadsOptionalAttributeLanguageInAttributeList_22() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118124,7 +118381,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeLEDSettingsInAttributeList_14() + CHIP_ERROR TestThReadsOptionalAttributeLEDSettingsInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118144,7 +118401,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_15() + CHIP_ERROR TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118164,7 +118421,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeSoundVolumeInAttributeList_16() + CHIP_ERROR TestThReadsOptionalAttributeSoundVolumeInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118184,7 +118441,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_17() + CHIP_ERROR TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118204,7 +118461,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_18() + CHIP_ERROR TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118224,7 +118481,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_19() + CHIP_ERROR TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118244,7 +118501,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_20() + CHIP_ERROR TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_29() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118264,7 +118521,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_21() + CHIP_ERROR TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_30() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118284,7 +118541,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_22() + CHIP_ERROR TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_31() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118304,7 +118561,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_23() + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_32() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118325,7 +118582,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_24() + CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_33() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118347,14 +118604,14 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF10InAcceptedCommandList_25() + CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_34() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Feature dependent commands(DRLK.S.F10) in AcceptedCommandList Error: %@", err); + NSLog(@"TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -118369,14 +118626,14 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF11InAcceptedCommandList_26() + CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_35() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Feature dependent commands(DRLK.S.F11) in AcceptedCommandList Error: %@", err); + NSLog(@"TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -118391,7 +118648,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_27() + CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_36() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118416,7 +118673,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_28() + CHIP_ERROR TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_37() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118436,7 +118693,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_29() + CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_38() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -118456,14 +118713,14 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF10InGeneratedCommandList_30() + CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_39() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeGeneratedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Feature dependent command(DRLK.S.F10) in GeneratedCommandList Error: %@", err); + NSLog(@"TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -118476,14 +118733,14 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF11InGeneratedCommandList_31() + CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_40() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeGeneratedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads Feature dependent command(DRLK.S.F11) in GeneratedCommandList Error: %@", err); + NSLog(@"TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -118496,7 +118753,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_32() + CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_41() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -122308,7 +122565,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads NumberOfYearDay SchedulesSupportedPerUser attribute\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.A0015")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.A0015")) { NextTest(); return; } @@ -122324,7 +122581,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends Set Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0e.Rsp")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C0e.Rsp")) { NextTest(); return; } @@ -122332,7 +122589,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -122348,7 +122605,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -122360,7 +122617,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -122376,7 +122633,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp")) { NextTest(); return; } @@ -122392,7 +122649,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -122400,7 +122657,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends Clear Year Day Schedule to DUT\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C10.Rsp")) { NextTest(); return; } @@ -122408,7 +122665,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 16: ChipLogProgress(chipTool, " ***** Test Step 16 : Clear a year day schedule for the first user\n"); - if (ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp")) { + if (ShouldSkip("DRLK.S.F0a && DRLK.S.C10.Rsp")) { NextTest(); return; }