diff --git a/examples/chip-tool/commands/clusters/ClusterCommand.h b/examples/chip-tool/commands/clusters/ClusterCommand.h index f9092d141fa7ac..55b40084a349af 100644 --- a/examples/chip-tool/commands/clusters/ClusterCommand.h +++ b/examples/chip-tool/commands/clusters/ClusterCommand.h @@ -65,7 +65,7 @@ class ClusterCommand : public InteractionModelCommands, public ModelCommand, pub CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector endpointIds) override { return InteractionModelCommands::SendCommand(device, endpointIds.at(0), mClusterId, mCommandId, mPayload, - mTimedInteractionTimeoutMs, mRepeatCount, mRepeatDelayInMs, mSuppressResponse); + mTimedInteractionTimeoutMs, mSuppressResponse, mRepeatCount, mRepeatDelayInMs); } template @@ -73,7 +73,7 @@ class ClusterCommand : public InteractionModelCommands, public ModelCommand, pub chip::CommandId commandId, const T & value) { return InteractionModelCommands::SendCommand(device, endpointId, clusterId, commandId, value, mTimedInteractionTimeoutMs, - mRepeatCount, mRepeatDelayInMs, mSuppressResponse); + mSuppressResponse, mRepeatCount, mRepeatDelayInMs); } CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override diff --git a/examples/chip-tool/commands/clusters/ReportCommand.h b/examples/chip-tool/commands/clusters/ReportCommand.h index 922aa7fd9363d8..22dd26f594c3ed 100644 --- a/examples/chip-tool/commands/clusters/ReportCommand.h +++ b/examples/chip-tool/commands/clusters/ReportCommand.h @@ -122,8 +122,8 @@ class ReadAttribute : public ReportCommand { AddArgument("cluster-id", 0, UINT32_MAX, &mClusterIds); AddArgument("attribute-id", 0, UINT32_MAX, &mAttributeIds); - AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); ReportCommand::AddArguments(); } @@ -131,8 +131,8 @@ class ReadAttribute : public ReportCommand ReportCommand("read-by-id", credsIssuerConfig), mClusterIds(1, clusterId) { AddArgument("attribute-id", 0, UINT32_MAX, &mAttributeIds); - AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); ReportCommand::AddArguments(); } @@ -142,8 +142,8 @@ class ReadAttribute : public ReportCommand mClusterIds(1, clusterId), mAttributeIds(1, attributeId) { AddArgument("attr-name", attributeName); - AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); ReportCommand::AddArguments(); } @@ -170,8 +170,8 @@ class SubscribeAttribute : public ReportCommand AddArgument("attribute-id", 0, UINT32_MAX, &mAttributeIds); AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); ReportCommand::AddArguments(); } @@ -182,8 +182,8 @@ class SubscribeAttribute : public ReportCommand AddArgument("attribute-id", 0, UINT32_MAX, &mAttributeIds); AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); ReportCommand::AddArguments(); } @@ -196,8 +196,8 @@ class SubscribeAttribute : public ReportCommand AddArgument("attr-name", attributeName); AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); ReportCommand::AddArguments(); } @@ -245,6 +245,7 @@ class ReadEvent : public ReportCommand { AddArgument("cluster-id", 0, UINT32_MAX, &mClusterIds); AddArgument("event-id", 0, UINT32_MAX, &mEventIds); + AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); ReportCommand::AddArguments(); } @@ -253,6 +254,7 @@ class ReadEvent : public ReportCommand ReportCommand("read-event-by-id", credsIssuerConfig), mClusterIds(1, clusterId) { AddArgument("event-id", 0, UINT32_MAX, &mEventIds); + AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); ReportCommand::AddArguments(); } @@ -263,6 +265,7 @@ class ReadEvent : public ReportCommand mClusterIds(1, clusterId), mEventIds(1, eventId) { AddArgument("event-name", eventName); + AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); ReportCommand::AddArguments(); } @@ -271,12 +274,13 @@ class ReadEvent : public ReportCommand CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector endpointIds) override { - return ReportCommand::ReadEvent(device, endpointIds, mClusterIds, mEventIds, mEventNumber); + return ReportCommand::ReadEvent(device, endpointIds, mClusterIds, mEventIds, mFabricFiltered, mEventNumber); } private: std::vector mClusterIds; std::vector mEventIds; + chip::Optional mFabricFiltered; chip::Optional mEventNumber; }; @@ -289,8 +293,9 @@ class SubscribeEvent : public ReportCommand AddArgument("event-id", 0, UINT32_MAX, &mEventIds); AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); + AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); + AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); ReportCommand::AddArguments(); } @@ -300,8 +305,9 @@ class SubscribeEvent : public ReportCommand AddArgument("event-id", 0, UINT32_MAX, &mEventIds); AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); + AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); + AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); ReportCommand::AddArguments(); } @@ -315,9 +321,10 @@ class SubscribeEvent : public ReportCommand "The requested minimum interval between reports. Sets MinIntervalFloor in the Subscribe Request."); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval, "The requested maximum interval between reports. Sets MaxIntervalCeiling in the Subscribe Request."); + AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); + AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions, "false - Terminate existing subscriptions from initiator.\n true - Leave existing subscriptions in place."); - AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); ReportCommand::AddArguments(); } @@ -325,8 +332,8 @@ class SubscribeEvent : public ReportCommand CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector endpointIds) override { - return ReportCommand::SubscribeEvent(device, endpointIds, mClusterIds, mEventIds, mMinInterval, mMaxInterval, mEventNumber, - mKeepSubscriptions); + return ReportCommand::SubscribeEvent(device, endpointIds, mClusterIds, mEventIds, mMinInterval, mMaxInterval, + mFabricFiltered, mEventNumber, mKeepSubscriptions); } void OnSubscription() override @@ -352,6 +359,7 @@ class SubscribeEvent : public ReportCommand uint16_t mMinInterval; uint16_t mMaxInterval; - chip::Optional mKeepSubscriptions; + chip::Optional mFabricFiltered; chip::Optional mEventNumber; + chip::Optional mKeepSubscriptions; }; diff --git a/examples/chip-tool/templates/tests/partials/test_step.zapt b/examples/chip-tool/templates/tests/partials/test_step.zapt index 00ba070d86276b..2035ae5453f1a5 100644 --- a/examples/chip-tool/templates/tests/partials/test_step.zapt +++ b/examples/chip-tool/templates/tests/partials/test_step.zapt @@ -25,14 +25,30 @@ {{/inline~}} {{~#*inline "maybeFabricFiltered"}} -{{#unless isWait}} -{{#unless fabricFiltered}} +{{#if fabricFiltered}} + , true +{{else}} , false -{{/unless}} -{{/unless}} +{{/if}} {{/inline~}} -{{~#*inline "maybeTimedInteractionTimeout"}} +{{~#*inline "maybeSuppressResponse"}} +{{#if suppressResponse}} + , chip::Optional({{suppressResponse}}) +{{else}} + , chip::NullOptional +{{/if}} +{{/inline~}} + +{{~#*inline "maybeDataVersion"}} +{{#if dataVersion}} + , chip::Optional({{dataVersion}}) +{{else}} + , chip::NullOptional +{{/if}} +{{/inline~}} + +{{~#*inline "maybeTimedInteractionTimeoutMs"}} {{#if timedInteractionTimeoutMs}} , chip::Optional({{timedInteractionTimeoutMs}}) {{else if commandObject.mustUseTimedInvoke}} @@ -42,6 +58,22 @@ {{/if}} {{/inline~}} +{{~#*inline "maybeEventNumber"}} +{{#if eventNumber}} + , chip::Optional({{eventNumber}}) +{{else}} + , chip::NullOptional +{{/if}} +{{/inline~}} + +{{~#*inline "maybeKeepSubscriptions"}} +{{#if keepSubscriptions}} + , chip::Optional({{keepSubscriptions}}) +{{else}} + , chip::NullOptional +{{/if}} +{{/inline~}} + {{~#*inline "kIdentity"}}kIdentity{{asUpperCamelCase identity}}{{/inline~}} {{~#*inline "groupId"}}{{groupId}}{{/inline~}} {{~#*inline "endpointId"}}GetEndpoint({{endpoint}}){{/inline~}} @@ -73,14 +105,14 @@ {{~#*inline "arguments"}} {{#if (isTestOnlyCluster cluster)}}{{>testOnlyClusterArguments}}, value {{else if isWait}} {{>waitArguments}} -{{else if isReadAttribute}} {{>attributeArguments}}{{>maybeFabricFiltered~}} -{{else if isSubscribeAttribute}} {{>attributeArguments}}, {{minInterval}}, {{maxInterval}}{{>maybeFabricFiltered~}} -{{else if isWriteGroupAttribute}} {{>groupAttributeArguments}}, value{{>maybeTimedInteractionTimeout~}} -{{else if isWriteAttribute}} {{>attributeArguments}}, value{{>maybeTimedInteractionTimeout~}} -{{else if isReadEvent}} {{>eventArguments~}} -{{else if isSubscribeEvent}} {{>eventArguments}}, {{minInterval}}, {{maxInterval~}} -{{else if isGroupCommand}} {{>groupCommandArguments}}, value{{>maybeTimedInteractionTimeout~}} -{{else if isCommand}} {{>commandArguments}}, value{{>maybeTimedInteractionTimeout~}} +{{else if isReadAttribute}} {{>attributeArguments}}{{>maybeFabricFiltered}}{{>maybeDataVersion~}} +{{else if isSubscribeAttribute}} {{>attributeArguments}}, {{minInterval}}, {{maxInterval}}{{>maybeFabricFiltered}}{{>maybeDataVersion}}{{>maybeKeepSubscriptions~}} +{{else if isWriteGroupAttribute}} {{>groupAttributeArguments}}, value{{>maybeDataVersion~}} +{{else if isWriteAttribute}} {{>attributeArguments}}, value{{>maybeTimedInteractionTimeoutMs}}{{>maybeSuppressResponse}}{{>maybeDataVersion~}} +{{else if isReadEvent}} {{>eventArguments}}{{>maybeFabricFiltered}}{{>maybeEventNumber~}} +{{else if isSubscribeEvent}} {{>eventArguments}}, {{minInterval}}, {{maxInterval}}{{>maybeFabricFiltered}}{{>maybeEventNumber}}{{>maybeKeepSubscriptions~}} +{{else if isGroupCommand}} {{>groupCommandArguments}}, value +{{else if isCommand}} {{>commandArguments}}, value{{>maybeTimedInteractionTimeoutMs}}{{>maybeSuppressResponse}} {{/if}} {{/inline~}} diff --git a/src/app/tests/suites/TestEvents.yaml b/src/app/tests/suites/TestEvents.yaml index cc0b6be7d6594e..5b40c8bf9a888c 100644 --- a/src/app/tests/suites/TestEvents.yaml +++ b/src/app/tests/suites/TestEvents.yaml @@ -31,15 +31,11 @@ tests: - label: "Check there is no event on the target endpoint" command: "readEvent" event: "TestEvent" - response: - value: {} - label: "Check reading events from an invalid endpoint" command: "readEvent" event: "TestEvent" endpoint: 0 - response: - value: {} - label: "Generate an event on the accessory" command: "TestEmitTestEventRequest" @@ -62,6 +58,18 @@ tests: response: value: { arg1: 1, arg2: 2, arg3: true } + - label: "Read the event with eventNumber set to the event value" + command: "readEvent" + event: "TestEvent" + eventNumber: eventNumber + response: + value: { arg1: 1, arg2: 2, arg3: true } + + - label: "Read the event with eventNumber set to the event value + 1" + command: "readEvent" + event: "TestEvent" + eventNumber: eventNumber + 1 + - label: "Generate a second event on the accessory" command: "TestEmitTestEventRequest" arguments: diff --git a/src/app/tests/suites/commands/interaction_model/InteractionModel.cpp b/src/app/tests/suites/commands/interaction_model/InteractionModel.cpp index 47d8197956b9b4..48f675096663ee 100644 --- a/src/app/tests/suites/commands/interaction_model/InteractionModel.cpp +++ b/src/app/tests/suites/commands/interaction_model/InteractionModel.cpp @@ -22,7 +22,7 @@ using namespace chip; using namespace chip::app; CHIP_ERROR InteractionModel::ReadAttribute(const char * identity, EndpointId endpointId, ClusterId clusterId, - AttributeId attributeId, bool fabricFiltered) + AttributeId attributeId, bool fabricFiltered, const Optional & dataVersion) { DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); @@ -30,11 +30,19 @@ CHIP_ERROR InteractionModel::ReadAttribute(const char * identity, EndpointId end std::vector endpointIds = { endpointId }; std::vector clusterIds = { clusterId }; std::vector attributeIds = { attributeId }; - return InteractionModelReports::ReadAttribute(device, endpointIds, clusterIds, attributeIds, Optional(fabricFiltered)); + + Optional> dataVersions = Optional>(); + if (dataVersion.HasValue()) + { + dataVersions.Value().push_back(dataVersion.Value()); + } + + return InteractionModelReports::ReadAttribute(device, endpointIds, clusterIds, attributeIds, Optional(fabricFiltered), + dataVersions); } CHIP_ERROR InteractionModel::ReadEvent(const char * identity, EndpointId endpointId, ClusterId clusterId, EventId eventId, - const Optional & eventNumber) + bool fabricFiltered, const Optional & eventNumber) { DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); @@ -42,12 +50,14 @@ CHIP_ERROR InteractionModel::ReadEvent(const char * identity, EndpointId endpoin std::vector endpointIds = { endpointId }; std::vector clusterIds = { clusterId }; std::vector eventIds = { eventId }; - return InteractionModelReports::ReadEvent(device, endpointIds, clusterIds, eventIds, eventNumber); + return InteractionModelReports::ReadEvent(device, endpointIds, clusterIds, eventIds, Optional(fabricFiltered), + eventNumber); } CHIP_ERROR InteractionModel::SubscribeAttribute(const char * identity, EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint16_t minInterval, uint16_t maxInterval, - bool fabricFiltered) + bool fabricFiltered, const Optional & dataVersion, + const Optional & keepSubscriptions) { DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); @@ -55,12 +65,20 @@ CHIP_ERROR InteractionModel::SubscribeAttribute(const char * identity, EndpointI std::vector endpointIds = { endpointId }; std::vector clusterIds = { clusterId }; std::vector attributeIds = { attributeId }; + + Optional> dataVersions = Optional>(); + if (dataVersion.HasValue()) + { + dataVersions.Value().push_back(dataVersion.Value()); + } + return InteractionModelReports::SubscribeAttribute(device, endpointIds, clusterIds, attributeIds, minInterval, maxInterval, - Optional(fabricFiltered)); + Optional(fabricFiltered), dataVersions, keepSubscriptions); } CHIP_ERROR InteractionModel::SubscribeEvent(const char * identity, EndpointId endpointId, ClusterId clusterId, EventId eventId, - uint16_t minInterval, uint16_t maxInterval, const Optional & eventNumber) + uint16_t minInterval, uint16_t maxInterval, bool fabricFiltered, + const Optional & eventNumber, const Optional & keepSubscriptions) { DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); @@ -69,7 +87,7 @@ CHIP_ERROR InteractionModel::SubscribeEvent(const char * identity, EndpointId en std::vector clusterIds = { clusterId }; std::vector eventIds = { eventId }; return InteractionModelReports::SubscribeEvent(device, endpointIds, clusterIds, eventIds, minInterval, maxInterval, - eventNumber); + Optional(fabricFiltered), eventNumber, keepSubscriptions); } void InteractionModel::Shutdown() @@ -154,13 +172,12 @@ void InteractionModel::OnDone(CommandSender * client) } } -CHIP_ERROR InteractionModelReports::ReportAttribute(chip::DeviceProxy * device, std::vector endpointIds, - std::vector clusterIds, - std::vector attributeIds, - chip::app::ReadClient::InteractionType interactionType, uint16_t minInterval, - uint16_t maxInterval, const chip::Optional & fabricFiltered, - const chip::Optional> & dataVersions, - const chip::Optional & keepSubscriptions) +CHIP_ERROR InteractionModelReports::ReportAttribute(DeviceProxy * device, std::vector endpointIds, + std::vector clusterIds, std::vector attributeIds, + ReadClient::InteractionType interactionType, uint16_t minInterval, + uint16_t maxInterval, const Optional & fabricFiltered, + const Optional> & dataVersions, + const Optional & keepSubscriptions) { const size_t clusterCount = clusterIds.size(); const size_t attributeCount = attributeIds.size(); @@ -210,22 +227,22 @@ CHIP_ERROR InteractionModelReports::ReportAttribute(chip::DeviceProxy * device, "example 1 cluster id, 1 attribute id, 2 endpoint ids)\n\t * Or the same " "number of ids (for examples 2 cluster ids, 2 attribute ids and 2 endpoint ids).\n The current command has %u " "cluster ids, %u attribute ids, %u endpoint ids.", - interactionType == chip::app::ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read", + interactionType == ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read", static_cast(clusterCount), static_cast(attributeCount), static_cast(endpointCount)); return CHIP_ERROR_INVALID_ARGUMENT; } - ChipLogProgress(chipTool, "Sending %sAttribute to:", - interactionType == chip::app::ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read"); + ChipLogProgress(chipTool, + "Sending %sAttribute to:", interactionType == ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read"); - chip::app::AttributePathParams attributePathParams[kMaxAllowedPaths]; - chip::app::DataVersionFilter dataVersionFilter[kMaxAllowedPaths]; + AttributePathParams attributePathParams[kMaxAllowedPaths]; + DataVersionFilter dataVersionFilter[kMaxAllowedPaths]; for (size_t i = 0; i < pathsCount; i++) { - chip::ClusterId clusterId = clusterIds.at((hasSameIdsCount || multipleClusters) ? i : 0); - chip::AttributeId attributeId = attributeIds.at((hasSameIdsCount || multipleAttributes) ? i : 0); - chip::EndpointId endpointId = endpointIds.at((hasSameIdsCount || multipleEndpoints) ? i : 0); + ClusterId clusterId = clusterIds.at((hasSameIdsCount || multipleClusters) ? i : 0); + AttributeId attributeId = attributeIds.at((hasSameIdsCount || multipleAttributes) ? i : 0); + EndpointId endpointId = endpointIds.at((hasSameIdsCount || multipleEndpoints) ? i : 0); ChipLogProgress(chipTool, "\tcluster " ChipLogFormatMEI ", attribute: " ChipLogFormatMEI ", endpoint %u", ChipLogValueMEI(clusterId), ChipLogValueMEI(attributeId), endpointId); @@ -247,14 +264,14 @@ CHIP_ERROR InteractionModelReports::ReportAttribute(chip::DeviceProxy * device, if (dataVersions.HasValue()) { - chip::DataVersion dataVersion = dataVersions.Value().at((hasSameIdsCount || multipleDataVersions) ? i : 0); + DataVersion dataVersion = dataVersions.Value().at((hasSameIdsCount || multipleDataVersions) ? i : 0); dataVersionFilter[i].mEndpointId = endpointId; dataVersionFilter[i].mClusterId = clusterId; dataVersionFilter[i].mDataVersion.SetValue(dataVersion); } } - chip::app::ReadPrepareParams params(device->GetSecureSession().Value()); + ReadPrepareParams params(device->GetSecureSession().Value()); params.mpEventPathParamsList = nullptr; params.mEventPathParamsListSize = 0; params.mpAttributePathParamsList = attributePathParams; @@ -271,7 +288,7 @@ CHIP_ERROR InteractionModelReports::ReportAttribute(chip::DeviceProxy * device, params.mDataVersionFilterListSize = pathsCount; } - if (interactionType == chip::app::ReadClient::InteractionType::Subscribe) + if (interactionType == ReadClient::InteractionType::Subscribe) { params.mMinIntervalFloorSeconds = minInterval; params.mMaxIntervalCeilingSeconds = maxInterval; @@ -281,17 +298,17 @@ CHIP_ERROR InteractionModelReports::ReportAttribute(chip::DeviceProxy * device, } } - auto & client = interactionType == chip::app::ReadClient::InteractionType::Subscribe ? mSubscribeClient : mReadClient; - client = std::make_unique(chip::app::InteractionModelEngine::GetInstance(), device->GetExchangeManager(), - mBufferedReadAdapter, interactionType); + auto & client = interactionType == ReadClient::InteractionType::Subscribe ? mSubscribeClient : mReadClient; + client = std::make_unique(InteractionModelEngine::GetInstance(), device->GetExchangeManager(), mBufferedReadAdapter, + interactionType); return client->SendRequest(params); } -CHIP_ERROR InteractionModelReports::ReportEvent(chip::DeviceProxy * device, std::vector endpointIds, - std::vector clusterIds, std::vector eventIds, - chip::app::ReadClient::InteractionType interactionType, uint16_t minInterval, - uint16_t maxInterval, const chip::Optional & eventNumber, - const chip::Optional & keepSubscriptions) +CHIP_ERROR InteractionModelReports::ReportEvent(DeviceProxy * device, std::vector endpointIds, + std::vector clusterIds, std::vector eventIds, + ReadClient::InteractionType interactionType, uint16_t minInterval, + uint16_t maxInterval, const Optional & fabricFiltered, + const Optional & eventNumber, const Optional & keepSubscriptions) { const size_t clusterCount = clusterIds.size(); const size_t eventCount = eventIds.size(); @@ -330,48 +347,53 @@ CHIP_ERROR InteractionModelReports::ReportEvent(chip::DeviceProxy * device, std: "example 1 cluster id, 1 event id, 2 endpoint ids)\n\t * Or the same " "number of ids (for examples 2 cluster ids, 2 event ids and 2 endpoint ids).\n The current command has %u " "cluster ids, %u event ids, %u endpoint ids.", - interactionType == chip::app::ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read", + interactionType == ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read", static_cast(clusterCount), static_cast(eventCount), static_cast(endpointCount)); return CHIP_ERROR_INVALID_ARGUMENT; } - chip::app::EventPathParams eventPathParams[kMaxAllowedPaths]; + EventPathParams eventPathParams[kMaxAllowedPaths]; - ChipLogProgress(chipTool, "Sending %sEvent to:", - interactionType == chip::app::ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read"); + ChipLogProgress(chipTool, + "Sending %sEvent to:", interactionType == ReadClient::InteractionType::Subscribe ? "Subscribe" : "Read"); for (size_t i = 0; i < pathsCount; i++) { - chip::ClusterId clusterId = clusterIds.at((hasSameIdsCount || multipleClusters) ? i : 0); - chip::EventId eventId = eventIds.at((hasSameIdsCount || multipleEvents) ? i : 0); - chip::EndpointId endpointId = endpointIds.at((hasSameIdsCount || multipleEndpoints) ? i : 0); + ClusterId clusterId = clusterIds.at((hasSameIdsCount || multipleClusters) ? i : 0); + EventId eventId = eventIds.at((hasSameIdsCount || multipleEvents) ? i : 0); + EndpointId endpointId = endpointIds.at((hasSameIdsCount || multipleEndpoints) ? i : 0); ChipLogProgress(chipTool, "\tcluster " ChipLogFormatMEI ", event: " ChipLogFormatMEI ", endpoint %u", ChipLogValueMEI(clusterId), ChipLogValueMEI(eventId), endpointId); - if (clusterId != chip::kInvalidClusterId) + if (clusterId != kInvalidClusterId) { eventPathParams[i].mClusterId = clusterId; } - if (eventId != chip::kInvalidEventId) + if (eventId != kInvalidEventId) { eventPathParams[i].mEventId = eventId; } - if (endpointId != chip::kInvalidEndpointId) + if (endpointId != kInvalidEndpointId) { eventPathParams[i].mEndpointId = endpointId; } } - chip::app::ReadPrepareParams params(device->GetSecureSession().Value()); + ReadPrepareParams params(device->GetSecureSession().Value()); params.mpEventPathParamsList = eventPathParams; params.mEventPathParamsListSize = pathsCount; params.mEventNumber = eventNumber; params.mpAttributePathParamsList = nullptr; params.mAttributePathParamsListSize = 0; - if (interactionType == chip::app::ReadClient::InteractionType::Subscribe) + if (fabricFiltered.HasValue()) + { + params.mIsFabricFiltered = fabricFiltered.Value(); + } + + if (interactionType == ReadClient::InteractionType::Subscribe) { params.mMinIntervalFloorSeconds = minInterval; params.mMaxIntervalCeilingSeconds = maxInterval; @@ -381,8 +403,8 @@ CHIP_ERROR InteractionModelReports::ReportEvent(chip::DeviceProxy * device, std: } } - auto & client = interactionType == chip::app::ReadClient::InteractionType::Subscribe ? mSubscribeClient : mReadClient; - client = std::make_unique(chip::app::InteractionModelEngine::GetInstance(), device->GetExchangeManager(), - mBufferedReadAdapter, interactionType); + auto & client = interactionType == ReadClient::InteractionType::Subscribe ? mSubscribeClient : mReadClient; + client = std::make_unique(InteractionModelEngine::GetInstance(), device->GetExchangeManager(), mBufferedReadAdapter, + interactionType); return client->SendRequest(params); } diff --git a/src/app/tests/suites/commands/interaction_model/InteractionModel.h b/src/app/tests/suites/commands/interaction_model/InteractionModel.h index f97f57f2286b81..d1b7cd7bfddd6f 100644 --- a/src/app/tests/suites/commands/interaction_model/InteractionModel.h +++ b/src/app/tests/suites/commands/interaction_model/InteractionModel.h @@ -64,27 +64,30 @@ class InteractionModelReports CHIP_ERROR ReadEvent(chip::DeviceProxy * device, std::vector endpointIds, std::vector clusterIds, std::vector eventIds, + const chip::Optional & fabricFiltered = chip::Optional(true), const chip::Optional & eventNumber = chip::NullOptional) { return ReportEvent(device, endpointIds, clusterIds, eventIds, chip::app::ReadClient::InteractionType::Read, 0, 0, - eventNumber); + fabricFiltered, eventNumber); } CHIP_ERROR SubscribeEvent(chip::DeviceProxy * device, std::vector endpointIds, std::vector clusterIds, std::vector eventIds, uint16_t minInterval = 0, uint16_t maxInterval = 0, + const chip::Optional & fabricFiltered = chip::Optional(true), const chip::Optional & eventNumber = chip::NullOptional, const chip::Optional & keepSubscriptions = chip::NullOptional) { return ReportEvent(device, endpointIds, clusterIds, eventIds, chip::app::ReadClient::InteractionType::Subscribe, - minInterval, maxInterval, eventNumber, keepSubscriptions); + minInterval, maxInterval, fabricFiltered, eventNumber, keepSubscriptions); } CHIP_ERROR ReportEvent(chip::DeviceProxy * device, std::vector endpointIds, std::vector clusterIds, std::vector eventIds, chip::app::ReadClient::InteractionType interactionType, uint16_t minInterval = 0, - uint16_t maxInterval = 0, const chip::Optional & eventNumber = chip::NullOptional, - const chip::Optional & keepSubscriptions = chip::NullOptional); + uint16_t maxInterval = 0, const chip::Optional & fabricFiltered = chip::Optional(true), + const chip::Optional & eventNumber = chip::NullOptional, + const chip::Optional & keepSubscriptions = chip::NullOptional); void Shutdown() { @@ -106,10 +109,10 @@ class InteractionModelCommands template CHIP_ERROR SendCommand(chip::DeviceProxy * device, chip::EndpointId endpointId, chip::ClusterId clusterId, chip::CommandId commandId, const T & value, - chip::Optional timedInteractionTimeoutMs = chip::NullOptional, - chip::Optional repeatCount = chip::NullOptional, - chip::Optional repeatDelayInMs = chip::NullOptional, - chip::Optional suppressResponse = chip::NullOptional) + const chip::Optional & timedInteractionTimeoutMs = chip::NullOptional, + const chip::Optional & suppressResponse = chip::NullOptional, + const chip::Optional & repeatCount = chip::NullOptional, + const chip::Optional & repeatDelayInMs = chip::NullOptional) { uint16_t repeat = repeatCount.ValueOr(1); while (repeat--) @@ -249,25 +252,31 @@ class InteractionModel : public InteractionModelReports, virtual chip::DeviceProxy * GetDevice(const char * identity) = 0; CHIP_ERROR ReadAttribute(const char * identity, chip::EndpointId endpointId, chip::ClusterId clusterId, - chip::AttributeId attributeId, bool fabricFiltered = true); + chip::AttributeId attributeId, bool fabricFiltered = true, + const chip::Optional & dataVersion = chip::NullOptional); CHIP_ERROR SubscribeAttribute(const char * identity, chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, uint16_t minInterval, uint16_t maxInterval, - bool fabricFiltered = true); + bool fabricFiltered = true, + const chip::Optional & dataVersion = chip::NullOptional, + const chip::Optional & keepSubscriptions = chip::NullOptional); CHIP_ERROR ReadEvent(const char * identity, chip::EndpointId endpointId, chip::ClusterId clusterId, chip::EventId eventId, - const chip::Optional & eventNumber = chip::NullOptional); + bool fabricFiltered = true, const chip::Optional & eventNumber = chip::NullOptional); CHIP_ERROR SubscribeEvent(const char * identity, chip::EndpointId endpointId, chip::ClusterId clusterId, chip::EventId eventId, - uint16_t minInterval, uint16_t maxInterval, - const chip::Optional & eventNumber = chip::NullOptional); + uint16_t minInterval, uint16_t maxInterval, bool fabricFiltered = true, + const chip::Optional & eventNumber = chip::NullOptional, + const chip::Optional & keepSubscriptions = chip::NullOptional); CHIP_ERROR WaitForReport() { return CHIP_NO_ERROR; } template CHIP_ERROR WriteAttribute(const char * identity, chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, const T & value, - chip::Optional timedInteractionTimeoutMs = chip::NullOptional) + const chip::Optional & timedInteractionTimeoutMs = chip::NullOptional, + const chip::Optional & suppressResponse = chip::NullOptional, + const chip::Optional & dataVersion = chip::NullOptional) { chip::DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); @@ -277,23 +286,26 @@ class InteractionModel : public InteractionModelReports, template CHIP_ERROR WriteGroupAttribute(const char * identity, chip::GroupId groupId, chip::ClusterId clusterId, - chip::AttributeId attributeId, const T & value) + chip::AttributeId attributeId, const T & value, + const chip::Optional & dataVersion = chip::NullOptional) { chip::DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); chip::FabricIndex fabricIndex = device->GetSecureSession().Value()->GetFabricIndex(); - return InteractionModelWriter::WriteGroupAttribute(groupId, fabricIndex, clusterId, attributeId, value); + return InteractionModelWriter::WriteGroupAttribute(groupId, fabricIndex, clusterId, attributeId, value, dataVersion); } template CHIP_ERROR SendCommand(const char * identity, chip::EndpointId endpointId, chip::ClusterId clusterId, chip::CommandId commandId, - const T & value, chip::Optional timedInteractionTimeoutMs = chip::NullOptional) + const T & value, chip::Optional timedInteractionTimeoutMs = chip::NullOptional, + const chip::Optional & suppressResponse = chip::NullOptional) { chip::DeviceProxy * device = GetDevice(identity); VerifyOrReturnError(device != nullptr, CHIP_ERROR_INCORRECT_STATE); - return InteractionModelCommands::SendCommand(device, endpointId, clusterId, commandId, value, timedInteractionTimeoutMs); + return InteractionModelCommands::SendCommand(device, endpointId, clusterId, commandId, value, timedInteractionTimeoutMs, + suppressResponse); } template diff --git a/src/app/tests/suites/include/TestRunner.h b/src/app/tests/suites/include/TestRunner.h index 1c76839a8aaf72..3bdea10f29d7ab 100644 --- a/src/app/tests/suites/include/TestRunner.h +++ b/src/app/tests/suites/include/TestRunner.h @@ -53,6 +53,7 @@ class TestRunner if (mTestSubStepIndex != mTestSubStepCount) { Exit(mTestName, CHIP_ERROR_INVALID_ARGUMENT); + return; } mTestSubStepIndex = 0; mTestSubStepCount = 0; diff --git a/src/app/zap-templates/common/ClusterTestGeneration.js b/src/app/zap-templates/common/ClusterTestGeneration.js index 071eed18bfaafa..7c1107559d8815 100644 --- a/src/app/zap-templates/common/ClusterTestGeneration.js +++ b/src/app/zap-templates/common/ClusterTestGeneration.js @@ -257,7 +257,9 @@ function setDefaultResponse(test, useSynthesizeWaitForReport) return; } - const defaultResponse = {}; + test.expectMultipleResponses = test.isEvent; + + const defaultResponse = test.expectMultipleResponses ? [] : {}; setDefault(test, kResponseName, defaultResponse); // There is different syntax for expressing the expected response, but in the @@ -364,8 +366,6 @@ function setDefaultResponse(test, useSynthesizeWaitForReport) setDefault(expectedValue, 'name', defaultName); }); - test.expectMultipleResponses = test[kResponseName].length > 1; - setDefault(response, kCommandName, test.command); setDefault(response, responseType, test[responseType]); setDefault(response, kClusterName, test.cluster); diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 0f80ee4e856b71..f5a21166086d58 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -1180,11 +1180,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 3); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Write entries empty lists"); @@ -1215,11 +1217,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Write entry invalid privilege"); @@ -1245,11 +1249,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Write entry invalid auth mode"); @@ -1275,11 +1281,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 8: { LogStep(8, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Write entry invalid subject"); @@ -1312,11 +1320,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 10: { LogStep(10, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Write entry invalid target"); @@ -1355,11 +1365,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 12: { LogStep(12, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 13: { LogStep(13, "Write entry too many subjects"); @@ -1411,11 +1423,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 14: { LogStep(14, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Write entry too many targets"); @@ -1550,11 +1564,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Write too many entries"); @@ -1722,11 +1738,13 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 4); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 18: { LogStep(18, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Restore ACL"); @@ -1746,26 +1764,28 @@ class TestAccessControlClusterSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 1); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 20: { LogStep(20, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Validate resource minima (SubjectsPerAccessControlEntry)"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, - AccessControl::Attributes::SubjectsPerAccessControlEntry::Id); + AccessControl::Attributes::SubjectsPerAccessControlEntry::Id, true, chip::NullOptional); } case 22: { LogStep(22, "Validate resource minima (TargetsPerAccessControlEntry)"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, - AccessControl::Attributes::TargetsPerAccessControlEntry::Id); + AccessControl::Attributes::TargetsPerAccessControlEntry::Id, true, chip::NullOptional); } case 23: { LogStep(23, "Validate resource minima (AccessControlEntriesPerFabric)"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, - AccessControl::Attributes::AccessControlEntriesPerFabric::Id); + AccessControl::Attributes::AccessControlEntriesPerFabric::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -1885,7 +1905,7 @@ class Test_TC_BI_1_1Suite : public TestCommand case 1: { LogStep(1, "Read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::ClusterRevision::Id); + BinaryInputBasic::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute : FeatureMap"); @@ -1899,7 +1919,7 @@ class Test_TC_BI_1_1Suite : public TestCommand case 3: { LogStep(3, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::AttributeList::Id); + BinaryInputBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Read the global attribute: EventList"); @@ -1913,12 +1933,12 @@ class Test_TC_BI_1_1Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::AcceptedCommandList::Id); + BinaryInputBasic::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::GeneratedCommandList::Id); + BinaryInputBasic::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -2064,63 +2084,63 @@ class Test_TC_BI_2_1Suite : public TestCommand case 1: { LogStep(1, "Read mandatory non-global attribute: OutOfService"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::OutOfService::Id); + BinaryInputBasic::Attributes::OutOfService::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read mandatory non-global attribute constraints: OutOfService"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::OutOfService::Id); + BinaryInputBasic::Attributes::OutOfService::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Write the default values to mandatory non-global attribute: OutOfService"); bool value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::OutOfService::Id, value); + BinaryInputBasic::Attributes::OutOfService::Id, value, chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Reads back the mandatory non-global attribute: OutOfService"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::OutOfService::Id); + BinaryInputBasic::Attributes::OutOfService::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read mandatory non-global attribute constraints: PresentValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::PresentValue::Id); + BinaryInputBasic::Attributes::PresentValue::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Write the default values to mandatory non-global attribute: PresentValue"); bool value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::PresentValue::Id, value); + BinaryInputBasic::Attributes::PresentValue::Id, value, chip::NullOptional, chip::NullOptional); } case 7: { LogStep(7, "Reads back the mandatory non-global attribute: PresentValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::PresentValue::Id); + BinaryInputBasic::Attributes::PresentValue::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read mandatory non-global attribute: StatusFlags"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Read mandatory non-global attribute constraints: StatusFlags"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } case 10: { LogStep(10, "Write the default values to mandatory non-global attribute: StatusFlags"); uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id, value); + BinaryInputBasic::Attributes::StatusFlags::Id, value, chip::NullOptional, chip::NullOptional); } case 11: { LogStep(11, "Reads back the mandatory non-global attribute: StatusFlags"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -2256,49 +2276,49 @@ class Test_TC_BI_2_2Suite : public TestCommand LogStep(1, "Reads PresentValue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_PRESENTVALUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::PresentValue::Id); + BinaryInputBasic::Attributes::PresentValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Reads OutOfService attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OUTOFSERVICE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::OutOfService::Id); + BinaryInputBasic::Attributes::OutOfService::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads StatusFlags attribute from DUT"); VerifyOrdo(!ShouldSkip("A_STATUSFLAGS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads PresentValue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_PRESENTVALUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::PresentValue::Id); + BinaryInputBasic::Attributes::PresentValue::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Reads OutOfService attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OUTOFSERVICE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::OutOfService::Id); + BinaryInputBasic::Attributes::OutOfService::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Reads StatusFlags attribute from DUT"); VerifyOrdo(!ShouldSkip("A_STATUSFLAGS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Reads StatusFlags attribute from DUT"); VerifyOrdo(!ShouldSkip("A_STATUSFLAGS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Reads StatusFlags attribute from DUT"); VerifyOrdo(!ShouldSkip("A_STATUSFLAGS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BinaryInputBasic::Id, - BinaryInputBasic::Attributes::StatusFlags::Id); + BinaryInputBasic::Attributes::StatusFlags::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -2438,15 +2458,18 @@ class Test_TC_BOOL_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints : ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 4: { LogStep(4, @@ -2461,12 +2484,12 @@ class Test_TC_BOOL_1_1Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, - BooleanState::Attributes::AcceptedCommandList::Id); + BooleanState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, - BooleanState::Attributes::GeneratedCommandList::Id); + BooleanState::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 7: { LogStep(7, @@ -2563,11 +2586,13 @@ class Test_TC_BOOL_2_1Suite : public TestCommand } case 1: { LogStep(1, "Read mandatory non-global attribute: StateValue"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::StateValue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::StateValue::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read mandatory non-global attribute constraints: StateValue"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::StateValue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::StateValue::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -2683,11 +2708,12 @@ class Test_TC_BRAC_1_1Suite : public TestCommand case 1: { LogStep(1, "Read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BridgedActions::Id, - BridgedActions::Attributes::ClusterRevision::Id); + BridgedActions::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BridgedActions::Id, BridgedActions::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BridgedActions::Id, BridgedActions::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 3: { LogStep(3, @@ -2702,12 +2728,12 @@ class Test_TC_BRAC_1_1Suite : public TestCommand case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BridgedActions::Id, - BridgedActions::Attributes::AcceptedCommandList::Id); + BridgedActions::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BridgedActions::Id, - BridgedActions::Attributes::GeneratedCommandList::Id); + BridgedActions::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -2836,26 +2862,30 @@ class Test_TC_CC_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints : ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "write the default values to mandatory global attribute: ClusterRevision"); uint16_t value; value = 5U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "reads back global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, @@ -2870,12 +2900,12 @@ class Test_TC_CC_1_1Suite : public TestCommand case 7: { LogStep(7, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::AcceptedCommandList::Id); + ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::GeneratedCommandList::Id); + ColorControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 9: { LogStep(9, @@ -3566,256 +3596,301 @@ class Test_TC_CC_2_1Suite : public TestCommand } case 1: { LogStep(1, "Validate constraints of attribute: CurrentHue"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Validate constraints of attribute: CurrentSaturation"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentX attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Validate constraints of attribute: CurrentX"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Reads CurrentY attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Validate constraints of attribute: CurrentY"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Reads ColorTemperatureMireds attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Validate constraints of attribute: ColorTemperatureMireds"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Reads ColorMode attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Validate constraints of attribute: ColorMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Validate constraints of attribute: Options"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorControlOptions::Id); + ColorControl::Attributes::ColorControlOptions::Id, true, chip::NullOptional); } case 12: { LogStep(12, "Validate constraints of attribute: EnhancedCurrentHue"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 13: { LogStep(13, "Validate constraints of attribute: EnhancedColorMode"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Validate constraints of attribute: ColorLoopActive"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Validate constraints of attribute: ColorLoopDirection"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Validate constraints of attribute: ColorLoopTime"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "Validate constraints of attribute: ColorLoopStartEnhancedHue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 18: { LogStep(18, "Validate constraints of attribute: ColorLoopStoredEnhancedHue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 19: { LogStep(19, "Reads ColorCapabilities attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorCapabilities::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorCapabilities::Id, + true, chip::NullOptional); } case 20: { LogStep(20, "Validate constraints of attribute: ColorCapabilities"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorCapabilities::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorCapabilities::Id, + true, chip::NullOptional); } case 21: { LogStep(21, "Reads ColorTempPhysicalMinMireds attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorTempPhysicalMin::Id); + ColorControl::Attributes::ColorTempPhysicalMin::Id, true, chip::NullOptional); } case 22: { LogStep(22, "Validate constraints of attribute: ColorTempPhysicalMinMireds"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorTempPhysicalMin::Id); + ColorControl::Attributes::ColorTempPhysicalMin::Id, true, chip::NullOptional); } case 23: { LogStep(23, "Read ColorTempPhysicalMaxMireds attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorTempPhysicalMax::Id); + ColorControl::Attributes::ColorTempPhysicalMax::Id, true, chip::NullOptional); } case 24: { LogStep(24, "Validate constraints of attribute: ColorTempPhysicalMaxMireds"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorTempPhysicalMax::Id); + ColorControl::Attributes::ColorTempPhysicalMax::Id, true, chip::NullOptional); } case 25: { LogStep(25, "Read the optional attribute: CoupleColorTempToLevelMinMireds"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id); + ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id, true, chip::NullOptional); } case 26: { LogStep(26, "Read the optional attribute: StartUpColorTemperatureMireds"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::StartUpColorTemperatureMireds::Id); + ColorControl::Attributes::StartUpColorTemperatureMireds::Id, true, chip::NullOptional); } case 27: { LogStep(27, "Validate constraints of attribute: RemainingTime"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::RemainingTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::RemainingTime::Id, + true, chip::NullOptional); } case 28: { LogStep(28, "Read the optional attribute: DriftCompensation"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::DriftCompensation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::DriftCompensation::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Read the optional attribute: CompensationText"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CompensationText::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CompensationText::Id, + true, chip::NullOptional); } case 30: { LogStep(30, "Read the mandatory attribute: NumberOfPrimaries"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::NumberOfPrimaries::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::NumberOfPrimaries::Id, + true, chip::NullOptional); } case 31: { LogStep(31, "Read the mandatory attribute: Primary1X"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1X::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1X::Id, true, + chip::NullOptional); } case 32: { LogStep(32, "Read the mandatory attribute: Primary1Y"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1Y::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1Y::Id, true, + chip::NullOptional); } case 33: { LogStep(33, "Read the mandatory attribute: Primary1Intensity"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1Intensity::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary1Intensity::Id, + true, chip::NullOptional); } case 34: { LogStep(34, "Read the mandatory attribute: Primary2X"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2X::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2X::Id, true, + chip::NullOptional); } case 35: { LogStep(35, "Read the mandatory attribute: Primary2Y"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2Y::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2Y::Id, true, + chip::NullOptional); } case 36: { LogStep(36, "Validate constraints of attribute: Primary2Intensity"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2Intensity::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary2Intensity::Id, + true, chip::NullOptional); } case 37: { LogStep(37, "Read the mandatory attribute: Primary3X"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3X::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3X::Id, true, + chip::NullOptional); } case 38: { LogStep(38, "Read the mandatory attribute: Primary3Y"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3Y::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3Y::Id, true, + chip::NullOptional); } case 39: { LogStep(39, "Read the mandatory attribute: Primary3Intensity"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3Intensity::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary3Intensity::Id, + true, chip::NullOptional); } case 40: { LogStep(40, "Read the mandatory attribute: Primary4X"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4X::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4X::Id, true, + chip::NullOptional); } case 41: { LogStep(41, "Read the mandatory attribute: Primary4Y"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4Y::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4Y::Id, true, + chip::NullOptional); } case 42: { LogStep(42, "Read the mandatory attribute: Primary4Intensity"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4Intensity::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary4Intensity::Id, + true, chip::NullOptional); } case 43: { LogStep(43, "Read the mandatory attribute: Primary5X"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5X::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5X::Id, true, + chip::NullOptional); } case 44: { LogStep(44, "Read the mandatory attribute: Primary5Y"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5Y::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5Y::Id, true, + chip::NullOptional); } case 45: { LogStep(45, "Read the mandatory attribute: Primary5Intensity"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5Intensity::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary5Intensity::Id, + true, chip::NullOptional); } case 46: { LogStep(46, "Read the mandatory attribute: Primary6X"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6X::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6X::Id, true, + chip::NullOptional); } case 47: { LogStep(47, "Read the mandatory attribute: Primary6Y"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6Y::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6Y::Id, true, + chip::NullOptional); } case 48: { LogStep(48, "Read the mandatory attribute: Primary6Intensity"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6Intensity::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::Primary6Intensity::Id, + true, chip::NullOptional); } case 49: { LogStep(49, "Read the optional attribute: WhitePointX"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::WhitePointX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::WhitePointX::Id, true, + chip::NullOptional); } case 50: { LogStep(50, "Read the optional attribute: WhitePointY"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::WhitePointY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::WhitePointY::Id, true, + chip::NullOptional); } case 51: { LogStep(51, "Read the optional attribute: ColorPointRX"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointRX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointRX::Id, true, + chip::NullOptional); } case 52: { LogStep(52, "Read the optional attribute: ColorPointRY"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointRY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointRY::Id, true, + chip::NullOptional); } case 53: { LogStep(53, "Read the optional attribute: ColorPointRIntensity"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorPointRIntensity::Id); + ColorControl::Attributes::ColorPointRIntensity::Id, true, chip::NullOptional); } case 54: { LogStep(54, "Read the optional attribute: ColorPointGX"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointGX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointGX::Id, true, + chip::NullOptional); } case 55: { LogStep(55, "Read the optional attribute: ColorPointGY"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointGY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointGY::Id, true, + chip::NullOptional); } case 56: { LogStep(56, "Read the optional attribute: ColorPointGIntensity"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorPointGIntensity::Id); + ColorControl::Attributes::ColorPointGIntensity::Id, true, chip::NullOptional); } case 57: { LogStep(57, "Read the optional attribute: ColorPointBX"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointBX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointBX::Id, true, + chip::NullOptional); } case 58: { LogStep(58, "Read the optional attribute: ColorPointBY"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointBY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorPointBY::Id, true, + chip::NullOptional); } case 59: { LogStep(59, "Read the optional attribute: ColorPointBIntensity"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorPointBIntensity::Id); + ColorControl::Attributes::ColorPointBIntensity::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -4098,15 +4173,18 @@ class Test_TC_CC_3_1Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Move to hue shortest distance command"); @@ -4116,7 +4194,10 @@ class Test_TC_CC_3_1Suite : public TestCommand value.transitionTime = 300U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 290ms"); @@ -4126,7 +4207,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 6: { LogStep(6, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Wait 295ms"); @@ -4136,7 +4218,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 8: { LogStep(8, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Wait 300ms"); @@ -4146,7 +4229,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 10: { LogStep(10, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Move to hue longest distance command"); @@ -4156,7 +4240,10 @@ class Test_TC_CC_3_1Suite : public TestCommand value.transitionTime = 300U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 290ms"); @@ -4166,7 +4253,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 13: { LogStep(13, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Wait 295ms"); @@ -4176,7 +4264,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 15: { LogStep(15, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Wait 300ms"); @@ -4186,7 +4275,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 17: { LogStep(17, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "Move to hue up command"); @@ -4196,7 +4286,10 @@ class Test_TC_CC_3_1Suite : public TestCommand value.transitionTime = 300U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); } case 19: { LogStep(19, "Wait 290ms"); @@ -4206,7 +4299,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 20: { LogStep(20, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Wait 295ms"); @@ -4216,7 +4310,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 22: { LogStep(22, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 23: { LogStep(23, "Wait 300ms"); @@ -4226,7 +4321,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 24: { LogStep(24, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 25: { LogStep(25, "Move to hue down command"); @@ -4236,7 +4332,10 @@ class Test_TC_CC_3_1Suite : public TestCommand value.transitionTime = 300U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id, value, + chip::NullOptional + + ); } case 26: { LogStep(26, "Wait 290ms"); @@ -4246,7 +4345,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 27: { LogStep(27, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 28: { LogStep(28, "Wait 295ms"); @@ -4256,7 +4356,8 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 29: { LogStep(29, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 30: { LogStep(30, "Wait 300ms"); @@ -4266,16 +4367,19 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 31: { LogStep(31, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 32: { LogStep(32, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 33: { LogStep(33, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -4558,15 +4662,18 @@ class Test_TC_CC_3_2Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Move hue up command"); @@ -4575,7 +4682,10 @@ class Test_TC_CC_3_2Suite : public TestCommand value.rate = 50; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 140ms"); @@ -4585,7 +4695,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 6: { LogStep(6, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Wait 145ms"); @@ -4595,7 +4706,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 8: { LogStep(8, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Wait 150ms"); @@ -4605,7 +4717,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 10: { LogStep(10, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Move hue stop command"); @@ -4614,7 +4727,10 @@ class Test_TC_CC_3_2Suite : public TestCommand value.rate = 50; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 140ms"); @@ -4624,7 +4740,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 13: { LogStep(13, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Wait 145ms"); @@ -4634,7 +4751,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 15: { LogStep(15, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Wait 150ms"); @@ -4644,7 +4762,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 17: { LogStep(17, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "Move hue down command"); @@ -4653,7 +4772,10 @@ class Test_TC_CC_3_2Suite : public TestCommand value.rate = 50; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, + chip::NullOptional + + ); } case 19: { LogStep(19, "Wait 140ms"); @@ -4663,7 +4785,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 20: { LogStep(20, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Wait 145ms"); @@ -4673,7 +4796,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 22: { LogStep(22, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 23: { LogStep(23, "Wait 150ms"); @@ -4683,7 +4807,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 24: { LogStep(24, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 25: { LogStep(25, "Move hue stop command"); @@ -4692,7 +4817,10 @@ class Test_TC_CC_3_2Suite : public TestCommand value.rate = 50; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, + chip::NullOptional + + ); } case 26: { LogStep(26, "Wait 140ms"); @@ -4702,7 +4830,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 27: { LogStep(27, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 28: { LogStep(28, "Wait 145ms"); @@ -4712,7 +4841,8 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 29: { LogStep(29, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 30: { LogStep(30, "Wait 150ms"); @@ -4722,16 +4852,19 @@ class Test_TC_CC_3_2Suite : public TestCommand } case 31: { LogStep(31, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 32: { LogStep(32, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 33: { LogStep(33, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -4868,15 +5001,18 @@ class Test_TC_CC_3_3Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Step hue up command"); @@ -4886,7 +5022,10 @@ class Test_TC_CC_3_3Suite : public TestCommand value.transitionTime = 25; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 25ms"); @@ -4896,7 +5035,8 @@ class Test_TC_CC_3_3Suite : public TestCommand } case 6: { LogStep(6, "Over TransitionTime,Read CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Step hue down command"); @@ -4906,7 +5046,10 @@ class Test_TC_CC_3_3Suite : public TestCommand value.transitionTime = 25; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Wait 25ms"); @@ -4916,16 +5059,19 @@ class Test_TC_CC_3_3Suite : public TestCommand } case 9: { LogStep(9, "Over TransitionTime,Read CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 11: { LogStep(11, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -5073,15 +5219,18 @@ class Test_TC_CC_4_1Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check Saturation attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Move to saturation command"); @@ -5091,7 +5240,9 @@ class Test_TC_CC_4_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToSaturation::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 6ms"); @@ -5101,7 +5252,8 @@ class Test_TC_CC_4_1Suite : public TestCommand } case 6: { LogStep(6, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Wait 8ms"); @@ -5111,7 +5263,8 @@ class Test_TC_CC_4_1Suite : public TestCommand } case 8: { LogStep(8, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Wait 10ms"); @@ -5121,16 +5274,19 @@ class Test_TC_CC_4_1Suite : public TestCommand } case 10: { LogStep(10, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 12: { LogStep(12, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -5503,15 +5659,18 @@ class Test_TC_CC_4_2Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check Saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Move saturation up command"); @@ -5520,7 +5679,10 @@ class Test_TC_CC_4_2Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 40ms"); @@ -5530,7 +5692,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 6: { LogStep(6, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Wait 45ms"); @@ -5540,7 +5703,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 8: { LogStep(8, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Wait 50ms"); @@ -5550,7 +5714,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 10: { LogStep(10, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Move saturation down command"); @@ -5559,7 +5724,10 @@ class Test_TC_CC_4_2Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 40ms"); @@ -5569,7 +5737,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 13: { LogStep(13, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Wait 45ms"); @@ -5579,7 +5748,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 15: { LogStep(15, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Wait 50ms"); @@ -5589,7 +5759,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 17: { LogStep(17, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Move saturation up command"); @@ -5598,7 +5769,10 @@ class Test_TC_CC_4_2Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 19: { LogStep(19, "Wait 40ms"); @@ -5608,7 +5782,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 20: { LogStep(20, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 21: { LogStep(21, "Wait 45ms"); @@ -5618,7 +5793,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 22: { LogStep(22, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 23: { LogStep(23, "Wait 50ms"); @@ -5628,7 +5804,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 24: { LogStep(24, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 25: { LogStep(25, "Move saturation stop command"); @@ -5637,7 +5814,10 @@ class Test_TC_CC_4_2Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 26: { LogStep(26, "Wait 40ms"); @@ -5647,7 +5827,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 27: { LogStep(27, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 28: { LogStep(28, "Wait 45ms"); @@ -5657,7 +5838,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 29: { LogStep(29, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 30: { LogStep(30, "Wait 50ms"); @@ -5667,7 +5849,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 31: { LogStep(31, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 32: { LogStep(32, "Move saturation down command"); @@ -5676,7 +5859,10 @@ class Test_TC_CC_4_2Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 33: { LogStep(33, "Wait 40ms"); @@ -5686,7 +5872,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 34: { LogStep(34, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 35: { LogStep(35, "Wait 45ms"); @@ -5696,7 +5883,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 36: { LogStep(36, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 37: { LogStep(37, "Wait 50ms"); @@ -5706,7 +5894,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 38: { LogStep(38, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 39: { LogStep(39, "Move saturation stop command"); @@ -5715,7 +5904,10 @@ class Test_TC_CC_4_2Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 40: { LogStep(40, "Wait 40ms"); @@ -5725,7 +5917,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 41: { LogStep(41, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 42: { LogStep(42, "Wait 45ms"); @@ -5735,7 +5928,8 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 43: { LogStep(43, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 44: { LogStep(44, "Wait 50ms"); @@ -5745,16 +5939,19 @@ class Test_TC_CC_4_2Suite : public TestCommand } case 45: { LogStep(45, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 46: { LogStep(46, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 47: { LogStep(47, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -5891,15 +6088,18 @@ class Test_TC_CC_4_3Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentSaturation attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Step saturation up command"); @@ -5909,7 +6109,10 @@ class Test_TC_CC_4_3Suite : public TestCommand value.transitionTime = 10; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 10ms"); @@ -5919,7 +6122,8 @@ class Test_TC_CC_4_3Suite : public TestCommand } case 6: { LogStep(6, "Over TransitionTime,Read CurrentSaturation attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Step saturation down command"); @@ -5929,7 +6133,10 @@ class Test_TC_CC_4_3Suite : public TestCommand value.transitionTime = 10; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Wait 10ms"); @@ -5939,16 +6146,19 @@ class Test_TC_CC_4_3Suite : public TestCommand } case 9: { LogStep(9, "Over TransitionTime,Reads CurrentSaturation attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 11: { LogStep(11, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -6088,19 +6298,23 @@ class Test_TC_CC_4_4Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check current hue attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Check Saturation attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Move To current hue and saturation command"); @@ -6111,7 +6325,9 @@ class Test_TC_CC_4_4Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHueAndSaturation::Id, - value); + value, chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 10ms"); @@ -6121,20 +6337,24 @@ class Test_TC_CC_4_4Suite : public TestCommand } case 7: { LogStep(7, "Check current hue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Check current saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 10: { LogStep(10, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -6274,19 +6494,23 @@ class Test_TC_CC_5_1Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check current x attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Check current y attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Move to Color command"); @@ -6296,7 +6520,10 @@ class Test_TC_CC_5_1Suite : public TestCommand value.transitionTime = 20U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 20ms"); @@ -6306,20 +6533,24 @@ class Test_TC_CC_5_1Suite : public TestCommand } case 7: { LogStep(7, "Check current x attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Check current y attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 10: { LogStep(10, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -6482,19 +6713,23 @@ class Test_TC_CC_5_2Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check current x attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Check current y attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Move Color command"); @@ -6503,7 +6738,10 @@ class Test_TC_CC_5_2Suite : public TestCommand value.rateY = 20; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 150ms"); @@ -6513,35 +6751,44 @@ class Test_TC_CC_5_2Suite : public TestCommand } case 7: { LogStep(7, "Check current x attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Check current y attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Stop Move Step command"); chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Check current x attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Check current y attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 13: { LogStep(13, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -6681,19 +6928,23 @@ class Test_TC_CC_5_3Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check current x attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Check current y attribute value matched before any change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Step Color command"); @@ -6703,7 +6954,10 @@ class Test_TC_CC_5_3Suite : public TestCommand value.transitionTime = 50U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 50ms"); @@ -6713,20 +6967,24 @@ class Test_TC_CC_5_3Suite : public TestCommand } case 7: { LogStep(7, "Check current x attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Check current y attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 10: { LogStep(10, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -6846,15 +7104,18 @@ class Test_TC_CC_6_1Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Move To Color Temperature command"); @@ -6864,7 +7125,9 @@ class Test_TC_CC_6_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 10ms"); @@ -6874,16 +7137,19 @@ class Test_TC_CC_6_1Suite : public TestCommand } case 6: { LogStep(6, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 8: { LogStep(8, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -7172,15 +7438,18 @@ class Test_TC_CC_6_2Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Move up color temperature command"); @@ -7192,7 +7461,9 @@ class Test_TC_CC_6_2Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 90ms"); @@ -7202,7 +7473,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 6: { LogStep(6, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Wait 95ms"); @@ -7212,7 +7484,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 8: { LogStep(8, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Wait 100ms"); @@ -7222,7 +7495,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 10: { LogStep(10, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Move down color temperature command"); @@ -7234,7 +7508,9 @@ class Test_TC_CC_6_2Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 190ms"); @@ -7244,7 +7520,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 13: { LogStep(13, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Wait 195ms"); @@ -7254,7 +7531,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 15: { LogStep(15, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Wait 200ms"); @@ -7264,7 +7542,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 17: { LogStep(17, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Move up color temperature command"); @@ -7276,7 +7555,9 @@ class Test_TC_CC_6_2Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 19: { LogStep(19, "Stop Color Temperature command"); @@ -7288,7 +7569,9 @@ class Test_TC_CC_6_2Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 20: { LogStep(20, "Wait 90ms"); @@ -7298,7 +7581,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 21: { LogStep(21, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 22: { LogStep(22, "Wait 95ms"); @@ -7308,7 +7592,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 23: { LogStep(23, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 24: { LogStep(24, "Wait 100ms"); @@ -7318,7 +7603,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 25: { LogStep(25, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 26: { LogStep(26, "Move down color temperature command"); @@ -7330,7 +7616,9 @@ class Test_TC_CC_6_2Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 27: { LogStep(27, "Stop Color Temperature command"); @@ -7342,7 +7630,9 @@ class Test_TC_CC_6_2Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 28: { LogStep(28, "Wait 140ms"); @@ -7352,7 +7642,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 29: { LogStep(29, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 30: { LogStep(30, "Wait 145ms"); @@ -7362,7 +7653,8 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 31: { LogStep(31, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 32: { LogStep(32, "Wait 150ms"); @@ -7372,16 +7664,19 @@ class Test_TC_CC_6_2Suite : public TestCommand } case 33: { LogStep(33, "Read current color temprature attribute from DUT several times"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 34: { LogStep(34, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 35: { LogStep(35, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -7574,15 +7869,18 @@ class Test_TC_CC_6_3Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Step up color temperature command"); @@ -7595,7 +7893,9 @@ class Test_TC_CC_6_3Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 40ms"); @@ -7605,7 +7905,8 @@ class Test_TC_CC_6_3Suite : public TestCommand } case 6: { LogStep(6, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Wait 45ms"); @@ -7615,7 +7916,8 @@ class Test_TC_CC_6_3Suite : public TestCommand } case 8: { LogStep(8, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Wait 50ms"); @@ -7625,7 +7927,8 @@ class Test_TC_CC_6_3Suite : public TestCommand } case 10: { LogStep(10, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Step down color temperature command"); @@ -7638,7 +7941,9 @@ class Test_TC_CC_6_3Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 40ms"); @@ -7648,7 +7953,8 @@ class Test_TC_CC_6_3Suite : public TestCommand } case 13: { LogStep(13, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Wait 45ms"); @@ -7658,7 +7964,8 @@ class Test_TC_CC_6_3Suite : public TestCommand } case 15: { LogStep(15, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Wait 50ms"); @@ -7668,16 +7975,19 @@ class Test_TC_CC_6_3Suite : public TestCommand } case 17: { LogStep(17, "Read current color temprature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 19: { LogStep(19, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -7963,11 +8273,13 @@ class Test_TC_CC_7_1Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Enhanced Move To Hue command"); @@ -7978,12 +8290,14 @@ class Test_TC_CC_7_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value); + value, chip::NullOptional + + ); } case 4: { LogStep(4, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Enhanced Move To Hue command"); @@ -7994,7 +8308,9 @@ class Test_TC_CC_7_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value); + value, chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 290ms"); @@ -8004,8 +8320,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 7: { LogStep(7, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Wait 295ms"); @@ -8015,8 +8331,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 9: { LogStep(9, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "Wait 300ms"); @@ -8026,8 +8342,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 11: { LogStep(11, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "Enhanced Move To Hue command"); @@ -8038,7 +8354,9 @@ class Test_TC_CC_7_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value); + value, chip::NullOptional + + ); } case 13: { LogStep(13, "Wait 290ms"); @@ -8048,8 +8366,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 14: { LogStep(14, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Wait 295ms"); @@ -8059,8 +8377,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 16: { LogStep(16, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "Wait 300ms"); @@ -8070,8 +8388,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 18: { LogStep(18, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 19: { LogStep(19, "Enhanced Move To Hue command"); @@ -8082,7 +8400,9 @@ class Test_TC_CC_7_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value); + value, chip::NullOptional + + ); } case 20: { LogStep(20, "Wait 290ms"); @@ -8092,8 +8412,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 21: { LogStep(21, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 22: { LogStep(22, "Wait 295ms"); @@ -8103,8 +8423,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 23: { LogStep(23, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 24: { LogStep(24, "Wait 300ms"); @@ -8114,8 +8434,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 25: { LogStep(25, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 26: { LogStep(26, "Enhanced Move To Hue command"); @@ -8126,7 +8446,9 @@ class Test_TC_CC_7_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value); + value, chip::NullOptional + + ); } case 27: { LogStep(27, "Wait 290ms"); @@ -8136,8 +8458,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 28: { LogStep(28, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Wait 295ms"); @@ -8147,8 +8469,8 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 30: { LogStep(30, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 31: { LogStep(31, "Wait 300ms"); @@ -8158,17 +8480,19 @@ class Test_TC_CC_7_1Suite : public TestCommand } case 32: { LogStep(32, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 33: { LogStep(33, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 34: { LogStep(34, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -8387,16 +8711,18 @@ class Test_TC_CC_7_2Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Check EnhancedCurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Enhanced Move Hue Up command"); @@ -8405,8 +8731,10 @@ class Test_TC_CC_7_2Suite : public TestCommand value.rate = 50U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 290ms"); @@ -8416,8 +8744,8 @@ class Test_TC_CC_7_2Suite : public TestCommand } case 6: { LogStep(6, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Wait 295ms"); @@ -8427,8 +8755,8 @@ class Test_TC_CC_7_2Suite : public TestCommand } case 8: { LogStep(8, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Wait 300ms"); @@ -8438,8 +8766,8 @@ class Test_TC_CC_7_2Suite : public TestCommand } case 10: { LogStep(10, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Enhanced Move Hue Stop command"); @@ -8448,13 +8776,15 @@ class Test_TC_CC_7_2Suite : public TestCommand value.rate = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 13: { LogStep(13, "Enhanced Move Hue Down command "); @@ -8463,8 +8793,10 @@ class Test_TC_CC_7_2Suite : public TestCommand value.rate = 5U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Wait 40ms"); @@ -8474,8 +8806,8 @@ class Test_TC_CC_7_2Suite : public TestCommand } case 15: { LogStep(15, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Wait 45ms"); @@ -8485,8 +8817,8 @@ class Test_TC_CC_7_2Suite : public TestCommand } case 17: { LogStep(17, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Wait 50ms"); @@ -8496,8 +8828,8 @@ class Test_TC_CC_7_2Suite : public TestCommand } case 19: { LogStep(19, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 20: { LogStep(20, "Enhanced Move Hue Stop command"); @@ -8506,22 +8838,26 @@ class Test_TC_CC_7_2Suite : public TestCommand value.rate = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional + + ); } case 21: { LogStep(21, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 22: { LogStep(22, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 23: { LogStep(23, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -8658,16 +8994,18 @@ class Test_TC_CC_7_3Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads EnhancedCurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Enhanced Step Hue Up command"); @@ -8677,8 +9015,10 @@ class Test_TC_CC_7_3Suite : public TestCommand value.transitionTime = 1U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 10ms"); @@ -8688,8 +9028,8 @@ class Test_TC_CC_7_3Suite : public TestCommand } case 6: { LogStep(6, "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Enhanced Step Hue Down command"); @@ -8699,8 +9039,10 @@ class Test_TC_CC_7_3Suite : public TestCommand value.transitionTime = 1U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Wait 10ms"); @@ -8710,17 +9052,19 @@ class Test_TC_CC_7_3Suite : public TestCommand } case 9: { LogStep(9, "Over TransitionTime,Read EnhancedCurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 11: { LogStep(11, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -8840,16 +9184,18 @@ class Test_TC_CC_7_4Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads EnhancedCurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Enhanced move to hue and saturation command"); @@ -8860,7 +9206,9 @@ class Test_TC_CC_7_4Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id, value); + ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id, value, chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 10ms"); @@ -8870,17 +9218,19 @@ class Test_TC_CC_7_4Suite : public TestCommand } case 6: { LogStep(6, "Check EnhancedCurrentHue attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 8: { LogStep(8, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -9203,11 +9553,13 @@ class Test_TC_CC_8_1Suite : public TestCommand case 1: { LogStep(1, "Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Move hue up command"); @@ -9216,22 +9568,30 @@ class Test_TC_CC_8_1Suite : public TestCommand value.rate = 50; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Reads CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Stop Move Step command"); chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Reads CurrentHue attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Wait 100ms"); @@ -9241,7 +9601,8 @@ class Test_TC_CC_8_1Suite : public TestCommand } case 8: { LogStep(8, "Check current hue attribute value matched the value sent by the last attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Move saturation up command"); @@ -9250,22 +9611,30 @@ class Test_TC_CC_8_1Suite : public TestCommand value.rate = 5; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Check Saturation attribute value matched the value sent by the last command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Stop Move Step command"); chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Reads CurrentSaturation attribute from DUT."); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 13: { LogStep(13, "Wait 100ms"); @@ -9275,7 +9644,8 @@ class Test_TC_CC_8_1Suite : public TestCommand } case 14: { LogStep(14, "Check Saturation attribute value matched the value sent by the last attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Move Color command"); @@ -9284,30 +9654,40 @@ class Test_TC_CC_8_1Suite : public TestCommand value.rateY = 20; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "Reads CurrentX attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Reads CurrentY attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "Stop Move Step command"); chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value, + chip::NullOptional + + ); } case 19: { LogStep(19, "Reads CurrentX attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 20: { LogStep(20, "Reads CurrentY attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Wait 100ms"); @@ -9317,11 +9697,13 @@ class Test_TC_CC_8_1Suite : public TestCommand } case 22: { LogStep(22, "Check current x attribute value matched the value sent by the last attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id, true, + chip::NullOptional); } case 23: { LogStep(23, "Check current y attribute value matched the value sent by the last attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id, true, + chip::NullOptional); } case 24: { LogStep(24, "Move up color temperature command"); @@ -9333,22 +9715,29 @@ class Test_TC_CC_8_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id, - value); + value, chip::NullOptional + + ); } case 25: { LogStep(25, "Reads current color temprature from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 26: { LogStep(26, "Stop Move Step command"); chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value, + chip::NullOptional + + ); } case 27: { LogStep(27, "Reads current color temprature from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 28: { LogStep(28, "Wait 100ms"); @@ -9358,7 +9747,8 @@ class Test_TC_CC_8_1Suite : public TestCommand } case 29: { LogStep(29, "Reads current color attribute value matched the value sent by the last attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperature::Id, + true, chip::NullOptional); } case 30: { LogStep(30, "Enhanced Move Hue Up command"); @@ -9367,25 +9757,30 @@ class Test_TC_CC_8_1Suite : public TestCommand value.rate = 50U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id, value, + chip::NullOptional + + ); } case 31: { LogStep(31, "Reads EnhancedCurrentHue attribute value from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 32: { LogStep(32, "Stop Move Step command"); chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type value; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id, value, + chip::NullOptional + + ); } case 33: { LogStep(33, "Reads EnhancedCurrentHue attribute value from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 34: { LogStep(34, "Wait 100ms"); @@ -9395,17 +9790,19 @@ class Test_TC_CC_8_1Suite : public TestCommand } case 35: { LogStep(35, "Check EnhancedCurrentHue attribute value matched the value sent by the last attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 36: { LogStep(36, "Turn off light that we turned on"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 37: { LogStep(37, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -9823,11 +10220,13 @@ class Test_TC_CC_9_1Suite : public TestCommand case 1: { LogStep(1, "Precondition : Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9840,12 +10239,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9858,13 +10261,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Read ColorLoopDirection attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9877,12 +10283,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Read ColorLoopTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9895,13 +10305,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 160U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Read ColorLoopStartEnhancedHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTARTENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 11: { LogStep(11, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9914,24 +10327,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 13: { LogStep(13, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 15: { LogStep(15, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9944,24 +10361,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 18: { LogStep(18, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 19: { LogStep(19, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9974,13 +10395,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 20: { LogStep(20, "Read ColorLoopDirection attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 21: { LogStep(21, "Sends ColorLoopSet Command - Set all Attributes"); @@ -9993,24 +10417,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 22: { LogStep(22, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 23: { LogStep(23, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 24: { LogStep(24, "Read ColorLoopStoredEnhancedHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 25: { LogStep(25, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10023,24 +10451,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 26: { LogStep(26, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 27: { LogStep(27, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 28: { LogStep(28, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Enhanced Move To Hue command"); @@ -10052,7 +10484,9 @@ class Test_TC_CC_9_1Suite : public TestCommand value.optionsMask = 0; value.optionsOverride = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id, - value); + value, chip::NullOptional + + ); } case 30: { LogStep(30, "Wait 2000ms"); @@ -10063,8 +10497,8 @@ class Test_TC_CC_9_1Suite : public TestCommand case 31: { LogStep(31, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 32: { LogStep(32, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10077,13 +10511,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 33: { LogStep(33, "Read ColorLoopDirection attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 34: { LogStep(34, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10096,24 +10533,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 35: { LogStep(35, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 36: { LogStep(36, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 37: { LogStep(37, "Read ColorLoopStoredEnhancedHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 38: { LogStep(38, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10126,24 +10567,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 39: { LogStep(39, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 40: { LogStep(40, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 41: { LogStep(41, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 42: { LogStep(42, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10156,13 +10601,16 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 43: { LogStep(43, "Read ColorLoopDirection attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 44: { LogStep(44, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10175,24 +10623,28 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 45: { LogStep(45, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 46: { LogStep(46, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 47: { LogStep(47, "Read ColorLoopStoredEnhancedHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 48: { LogStep(48, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10205,33 +10657,39 @@ class Test_TC_CC_9_1Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 49: { LogStep(49, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 50: { LogStep(50, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 51: { LogStep(51, "Read EnhancedCurrentHue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 52: { LogStep(52, "Turn Off light for color control tests"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 53: { LogStep(53, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -10429,11 +10887,13 @@ class Test_TC_CC_9_2Suite : public TestCommand case 1: { LogStep(1, "Precondition: Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Precondition: Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10446,35 +10906,40 @@ class Test_TC_CC_9_2Suite : public TestCommand value.startHue = 160U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Read ColorLoopDirection attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read ColorLoopTime attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Read ColorLoopStartEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTARTENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read EnhancedCurrentHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Color Loop Set Command - Set all Attributes"); @@ -10487,18 +10952,22 @@ class Test_TC_CC_9_2Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Read ColorLoopActive attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 12: { LogStep(12, "Color Loop Set Command - Start Color Loop"); @@ -10511,13 +10980,16 @@ class Test_TC_CC_9_2Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Read ColorLoopDirection attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Color Loop Set Command - Start Color Loop"); @@ -10530,33 +11002,39 @@ class Test_TC_CC_9_2Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 17: { LogStep(17, "Read EnhancedCurrentHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Turn off light for color control tests"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 19: { LogStep(19, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -10754,11 +11232,13 @@ class Test_TC_CC_9_3Suite : public TestCommand case 1: { LogStep(1, "Precondition: Turn on light for color control tests"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Precondition: Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Sends ColorLoopSet Command - Set all Attributes"); @@ -10771,29 +11251,34 @@ class Test_TC_CC_9_3Suite : public TestCommand value.startHue = 160U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Read ColorLoopDirection attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPDIRECTION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopDirection::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read ColorLoopTime attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Read ColorLoopStartEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTARTENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStartEnhancedHue::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Color Loop Set Command - Set all Attributes"); @@ -10806,24 +11291,28 @@ class Test_TC_CC_9_3Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Read ColorLoopActive attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "Read EnhancedCurrentHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 12: { LogStep(12, "Color Loop Set Command - Start Color Loop"); @@ -10836,12 +11325,16 @@ class Test_TC_CC_9_3Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Read ColorLoopTime attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Color Loop Set Command - Start Color Loop"); @@ -10854,33 +11347,39 @@ class Test_TC_CC_9_3Suite : public TestCommand value.startHue = 0U; value.optionsMask = 0; value.optionsOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "Read ColorLoopActive attribute from DUT"); VerifyOrdo(!ShouldSkip("A_COLORLOOPACTIVE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Read ColorLoopStoredEnhancedHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_COLORLOOPSTOREDENHANCEDHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id); + ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id, true, chip::NullOptional); } case 17: { LogStep(17, "Read EnhancedCurrentHue attribute from DUT."); VerifyOrdo(!ShouldSkip("A_ENHANCEDCURRENTHUE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, - ColorControl::Attributes::EnhancedCurrentHue::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Turn off light for color control tests"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 19: { LogStep(19, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -11153,81 +11652,100 @@ class Test_TC_DM_1_1Suite : public TestCommand } case 1: { LogStep(1, "Query Data Model Revision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::DataModelRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::DataModelRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Query Vendor Name"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::VendorName::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::VendorName::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Query VendorID"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::VendorID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::VendorID::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Query Product Name"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductName::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductName::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Query ProductID"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductID::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Query Node Label"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Query User Location"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Query HardwareVersion"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::HardwareVersion::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::HardwareVersion::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Query HardwareVersionString"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::HardwareVersionString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::HardwareVersionString::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Query SoftwareVersion"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::SoftwareVersion::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::SoftwareVersion::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Query SoftwareVersionString"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::SoftwareVersionString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::SoftwareVersionString::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Query ManufacturingDate"); VerifyOrdo(!ShouldSkip("MANF_DATE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ManufacturingDate::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ManufacturingDate::Id, true, + chip::NullOptional); } case 13: { LogStep(13, "Query PartNumber"); VerifyOrdo(!ShouldSkip("PART_NUM"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::PartNumber::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::PartNumber::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Query ProductURL"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductURL::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductURL::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Query ProductLabel"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::ProductLabel::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Query SerialNumber"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::SerialNumber::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::SerialNumber::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Query LocalConfigDisabled"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "Query Reachable"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Reachable::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Reachable::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Query UniqueID"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::UniqueID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::UniqueID::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -11323,12 +11841,12 @@ class Test_TC_DM_3_1Suite : public TestCommand case 1: { LogStep(1, "Query MaxNetworks"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, - NetworkCommissioning::Attributes::MaxNetworks::Id); + NetworkCommissioning::Attributes::MaxNetworks::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Query Networks"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, - NetworkCommissioning::Attributes::Networks::Id); + NetworkCommissioning::Attributes::Networks::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -11441,22 +11959,22 @@ class Test_TC_DM_2_2Suite : public TestCommand case 1: { LogStep(1, "Query fabrics list"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Query Supported Fabrics"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::SupportedFabrics::Id); + OperationalCredentials::Attributes::SupportedFabrics::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Query Commissioned Fabrics"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::CommissionedFabrics::Id); + OperationalCredentials::Attributes::CommissionedFabrics::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Query User Trusted Root Certificates"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::TrustedRootCertificates::Id); + OperationalCredentials::Attributes::TrustedRootCertificates::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -11562,29 +12080,30 @@ class Test_TC_EMR_1_1Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ElectricalMeasurement::Id, - ElectricalMeasurement::Attributes::ClusterRevision::Id); + ElectricalMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ElectricalMeasurement::Id, - ElectricalMeasurement::Attributes::ClusterRevision::Id); + ElectricalMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "write the default values to mandatory global attribute: ClusterRevision"); uint16_t value; value = 1U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ElectricalMeasurement::Id, - ElectricalMeasurement::Attributes::ClusterRevision::Id, value); + ElectricalMeasurement::Attributes::ClusterRevision::Id, value, chip::NullOptional, + chip::NullOptional); } case 4: { LogStep(4, "reads back global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ElectricalMeasurement::Id, - ElectricalMeasurement::Attributes::ClusterRevision::Id); + ElectricalMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ElectricalMeasurement::Id, - ElectricalMeasurement::Attributes::AttributeList::Id); + ElectricalMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -11730,47 +12249,47 @@ class Test_TC_ETHDIAG_1_1Suite : public TestCommand case 1: { LogStep(1, "Read PHYRate attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::PHYRate::Id); + EthernetNetworkDiagnostics::Attributes::PHYRate::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read FullDuplex attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::FullDuplex::Id); + EthernetNetworkDiagnostics::Attributes::FullDuplex::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read PacketRxCount attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id); + EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Read PacketTxCount attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id); + EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read TxErrCount attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::TxErrCount::Id); + EthernetNetworkDiagnostics::Attributes::TxErrCount::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read CollisionCount attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::CollisionCount::Id); + EthernetNetworkDiagnostics::Attributes::CollisionCount::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Read OverrunCount attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::OverrunCount::Id); + EthernetNetworkDiagnostics::Attributes::OverrunCount::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read CarrierDetect attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::CarrierDetect::Id); + EthernetNetworkDiagnostics::Attributes::CarrierDetect::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Read TimeSinceReset attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::TimeSinceReset::Id); + EthernetNetworkDiagnostics::Attributes::TimeSinceReset::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -11887,37 +12406,39 @@ class Test_TC_ETHDIAG_2_1Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::EthernetNetworkDiagnostics::Commands::ResetCounts::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Commands::ResetCounts::Id, value); + EthernetNetworkDiagnostics::Commands::ResetCounts::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Read the PacketRxCount attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id); + EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the PacketTxCount attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id); + EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Read the TxErrCount attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::TxErrCount::Id); + EthernetNetworkDiagnostics::Attributes::TxErrCount::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the CollisionCount attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::CollisionCount::Id); + EthernetNetworkDiagnostics::Attributes::CollisionCount::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the OverrunCount attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::OverrunCount::Id); + EthernetNetworkDiagnostics::Attributes::OverrunCount::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -12037,12 +12558,12 @@ class Test_TC_FLW_1_1Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::ClusterRevision::Id); + FlowMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::AttributeList::Id); + FlowMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 3: { LogStep(3, @@ -12057,12 +12578,12 @@ class Test_TC_FLW_1_1Suite : public TestCommand case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::AcceptedCommandList::Id); + FlowMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::GeneratedCommandList::Id); + FlowMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, @@ -12242,17 +12763,17 @@ class Test_TC_FLW_2_1Suite : public TestCommand case 1: { LogStep(1, "read the mandatory attribute: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id); + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read the mandatory attribute: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MinMeasuredValue::Id); + FlowMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "read the mandatory attribute: MaxMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MaxMeasuredValue::Id); + FlowMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 4: { LogStep(4, "write the default value to optional attribute: MeasuredValue"); @@ -12260,7 +12781,7 @@ class Test_TC_FLW_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, value); + FlowMeasurement::Attributes::MeasuredValue::Id, value, chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "write the default value to optional attribute: MinMeasuredValue"); @@ -12268,7 +12789,7 @@ class Test_TC_FLW_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MinMeasuredValue::Id, value); + FlowMeasurement::Attributes::MinMeasuredValue::Id, value, chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "write the default value to optional attribute: MaxMeasuredValue"); @@ -12276,41 +12797,44 @@ class Test_TC_FLW_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MaxMeasuredValue::Id, value); + FlowMeasurement::Attributes::MaxMeasuredValue::Id, value, chip::NullOptional, chip::NullOptional); } case 7: { LogStep(7, "read the mandatory attribute: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id); + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 8: { LogStep(8, "read the mandatory attribute: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MinMeasuredValue::Id); + FlowMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 9: { LogStep(9, "read the mandatory attribute: MaxMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MaxMeasuredValue::Id); + FlowMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 10: { LogStep(10, "read the optional attribute: Tolerance"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "read the optional attribute: Tolerance"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "write the default value to optional attribute: Tolerance"); uint16_t value; value = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "read the optional attribute: Tolerance"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -12397,12 +12921,12 @@ class Test_TC_FLW_2_2Suite : public TestCommand case 1: { LogStep(1, "read the mandatory attribute: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id); + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read the mandatory attribute: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id); + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -12556,7 +13080,7 @@ class Test_TC_GC_1_1Suite : public TestCommand case 1: { LogStep(1, "Read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::ClusterRevision::Id); + GeneralCommissioning::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); @@ -12571,7 +13095,7 @@ class Test_TC_GC_1_1Suite : public TestCommand LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::AttributeList::Id); + GeneralCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -12587,13 +13111,13 @@ class Test_TC_GC_1_1Suite : public TestCommand LogStep(5, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::AcceptedCommandList::Id); + GeneralCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::GeneratedCommandList::Id); + GeneralCommissioning::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -12710,35 +13234,35 @@ class Test_TC_GC_2_1Suite : public TestCommand case 1: { LogStep(1, "TH1 reads the BreadCrumb Attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH1 writes the BreadCrumb attribute as 1 to the DUT"); uint64_t value; value = 1ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id, value); + GeneralCommissioning::Attributes::Breadcrumb::Id, value, chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "TH1 reads the BreadCrumb attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH1 reads the RegulatoryConfig attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::RegulatoryConfig::Id); + GeneralCommissioning::Attributes::RegulatoryConfig::Id, true, chip::NullOptional); } case 5: { LogStep(5, "TH1 reads the LocationCapability attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::LocationCapability::Id); + GeneralCommissioning::Attributes::LocationCapability::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH1 reads BasicCommissioningInfo attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::BasicCommissioningInfo::Id); + GeneralCommissioning::Attributes::BasicCommissioningInfo::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -12888,23 +13412,28 @@ class Test_TC_I_1_1Suite : public TestCommand } case 1: { LogStep(1, "TH reads the ClusterRevision attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints : ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::GeneratedCommandList::Id, true, + chip::NullOptional); } case 6: { LogStep(6, @@ -13013,11 +13542,13 @@ class Test_TC_I_2_1Suite : public TestCommand } case 1: { LogStep(1, "TH reads the IdentifyTime attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "TH reads the IdentifyType attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -13162,7 +13693,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(0); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Manually check DUT executes a blink effect"); @@ -13177,7 +13711,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(1); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "check DUT executes a breathe effect"); @@ -13192,7 +13729,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(2); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "check DUT executes an okay effect"); @@ -13207,7 +13747,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(11); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "check DUT executes a channel change effect"); @@ -13222,7 +13765,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(1); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "check DUT executes a breathe effect"); @@ -13237,7 +13783,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(254); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Manually check DUT stops the breathe effect after the current effect sequence"); @@ -13253,7 +13802,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(1); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Manually check DUT executes a breathe effect"); @@ -13268,7 +13820,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(255); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "Check DUT stops the breathe effect as soon as possible."); @@ -13284,7 +13839,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(0); value.effectVariant = static_cast(66); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 18: { LogStep(18, "Check DUT executes a blink effect."); @@ -13299,7 +13857,10 @@ class Test_TC_I_2_3Suite : public TestCommand chip::app::Clusters::Identify::Commands::TriggerEffect::Type value; value.effectIdentifier = static_cast(255); value.effectVariant = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Commands::TriggerEffect::Id, value, + chip::NullOptional + + ); } case 20: { LogStep(20, "Check DUT stops any effect that may be still running as soon as possible"); @@ -13455,17 +14016,17 @@ class Test_TC_ILL_1_1Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::ClusterRevision::Id); + IlluminanceMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints : ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::ClusterRevision::Id); + IlluminanceMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::AttributeList::Id); + IlluminanceMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -13480,12 +14041,12 @@ class Test_TC_ILL_1_1Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::AcceptedCommandList::Id); + IlluminanceMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::GeneratedCommandList::Id); + IlluminanceMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 7: { LogStep(7, @@ -13605,22 +14166,22 @@ class Test_TC_ILL_2_1Suite : public TestCommand case 1: { LogStep(1, "TH reads MinMeasuredValue attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::MinMeasuredValue::Id); + IlluminanceMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads MaxMeasuredValue attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id); + IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "TH reads Tolerance attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::Tolerance::Id); + IlluminanceMeasurement::Attributes::Tolerance::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH reads LightSensorType attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::LightSensorType::Id); + IlluminanceMeasurement::Attributes::LightSensorType::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -13786,16 +14347,19 @@ class Test_TC_LVL_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints : ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 4: { LogStep(4, @@ -13810,11 +14374,12 @@ class Test_TC_LVL_1_1Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::AcceptedCommandList::Id); + LevelControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "read the optional global attribute: FeatureMap"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::FeatureMap::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -14016,7 +14581,10 @@ class Test_TC_LVL_2_1Suite : public TestCommand value.transitionTime = 0U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Wait 100ms"); @@ -14026,61 +14594,73 @@ class Test_TC_LVL_2_1Suite : public TestCommand } case 3: { LogStep(3, "Reads the CurrentLevel attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Reads the RemainingTime attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Reads the MinLevel attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Reads the MaxLevel attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Reads the CurrentFrequency attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Reads the MinFrequency attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Reads the MaxFrequency attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Reads the OnOffTransitionTime attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::OnOffTransitionTime::Id); + LevelControl::Attributes::OnOffTransitionTime::Id, true, chip::NullOptional); } case 11: { LogStep(11, "Reads the OnLevel attribute "); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Reads the OnTransitionTime attribute "); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id, + true, chip::NullOptional); } case 13: { LogStep(13, "Reads the OffTransitionTime attribute "); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Reads the DefaultMoveRate attribute "); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Reads the Options attribute "); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Reads the StartUpCurrentLevel attribute "); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::StartUpCurrentLevel::Id); + LevelControl::Attributes::StartUpCurrentLevel::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -14282,45 +14862,49 @@ class Test_TC_LVL_2_2Suite : public TestCommand case 1: { LogStep(1, "Reads the OnOffTransitionTime attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::OnOffTransitionTime::Id); + LevelControl::Attributes::OnOffTransitionTime::Id, true, chip::NullOptional); } case 2: { LogStep(2, "writes the OnOffTransitionTime attribute on the DUT"); uint16_t value; value = 10U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::OnOffTransitionTime::Id, value); + LevelControl::Attributes::OnOffTransitionTime::Id, value, chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "Reads the OnOffTransitionTime attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::OnOffTransitionTime::Id); + LevelControl::Attributes::OnOffTransitionTime::Id, true, chip::NullOptional); } case 4: { LogStep(4, "writes default value of OnOffTransitionTime attribute"); uint16_t value; value = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::OnOffTransitionTime::Id, value); + LevelControl::Attributes::OnOffTransitionTime::Id, value, chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "Reads the OnLevel attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "writes the OnLevel attribute on the DUT"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 254; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, value, + chip::NullOptional, chip::NullOptional); } case 7: { LogStep(7, "Reads the OnLevel attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Reads the OnTransitionTime attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Writes the OnTransitionTime attribute on the DUT"); @@ -14328,15 +14912,17 @@ class Test_TC_LVL_2_2Suite : public TestCommand value.SetNonNull(); value.Value() = 100U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 10: { LogStep(10, "Reads the OnTransitionTime attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Reads the OffTransitionTime attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "Writes the OffTransitionTime attribute on the DUT"); @@ -14344,15 +14930,17 @@ class Test_TC_LVL_2_2Suite : public TestCommand value.SetNonNull(); value.Value() = 100U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "Reads the OffTransitionTime attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Reads the DefaultMoveRate attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Writes the DefaultMoveRate attribute on the DUT"); @@ -14360,16 +14948,17 @@ class Test_TC_LVL_2_2Suite : public TestCommand value.SetNonNull(); value.Value() = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Reads the DefaultMoveRate attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "Reads the StartUpCurrentLevel attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::StartUpCurrentLevel::Id); + LevelControl::Attributes::StartUpCurrentLevel::Id, true, chip::NullOptional); } case 18: { LogStep(18, "writes the StartUpCurrentLevel attribute on the DUT"); @@ -14377,12 +14966,12 @@ class Test_TC_LVL_2_2Suite : public TestCommand value.SetNonNull(); value.Value() = 254; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::StartUpCurrentLevel::Id, value); + LevelControl::Attributes::StartUpCurrentLevel::Id, value, chip::NullOptional, chip::NullOptional); } case 19: { LogStep(19, "reads the StartUpCurrentLevel attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::StartUpCurrentLevel::Id); + LevelControl::Attributes::StartUpCurrentLevel::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -14536,15 +15125,18 @@ class Test_TC_LVL_3_1Suite : public TestCommand } case 1: { LogStep(1, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Reads the MinLevel attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Reads the MaxLevel attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "sends a Move to level command"); @@ -14553,7 +15145,10 @@ class Test_TC_LVL_3_1Suite : public TestCommand value.transitionTime = 65535U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Wait 100ms"); @@ -14563,7 +15158,8 @@ class Test_TC_LVL_3_1Suite : public TestCommand } case 6: { LogStep(6, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "sends a Move to level command"); @@ -14572,7 +15168,10 @@ class Test_TC_LVL_3_1Suite : public TestCommand value.transitionTime = 100U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Wait 11000 second"); @@ -14582,12 +15181,13 @@ class Test_TC_LVL_3_1Suite : public TestCommand } case 9: { LogStep(9, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "reads On Off Transition Time attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, - LevelControl::Attributes::OnOffTransitionTime::Id); + LevelControl::Attributes::OnOffTransitionTime::Id, true, chip::NullOptional); } case 11: { LogStep(11, "sends a Move to level command"); @@ -14596,7 +15196,10 @@ class Test_TC_LVL_3_1Suite : public TestCommand value.transitionTime = 65535U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 1000ms"); @@ -14606,7 +15209,8 @@ class Test_TC_LVL_3_1Suite : public TestCommand } case 13: { LogStep(13, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Reset level to 254"); @@ -14615,7 +15219,10 @@ class Test_TC_LVL_3_1Suite : public TestCommand value.transitionTime = 0U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "Wait 100ms"); @@ -14788,7 +15395,8 @@ class Test_TC_LVL_4_1Suite : public TestCommand } case 1: { LogStep(1, "reads max level attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "sends a Move up command"); @@ -14797,7 +15405,10 @@ class Test_TC_LVL_4_1Suite : public TestCommand value.rate = 32; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "user prompt message"); @@ -14816,11 +15427,13 @@ class Test_TC_LVL_4_1Suite : public TestCommand } case 5: { LogStep(5, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "reads min level attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "sends a Move down command"); @@ -14829,7 +15442,10 @@ class Test_TC_LVL_4_1Suite : public TestCommand value.rate = 64; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "user prompt message"); @@ -14848,11 +15464,13 @@ class Test_TC_LVL_4_1Suite : public TestCommand } case 10: { LogStep(10, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "reads default move rate attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "sends a Move up command at default move rate"); @@ -14861,7 +15479,10 @@ class Test_TC_LVL_4_1Suite : public TestCommand value.rate = 255; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Wait 100ms"); @@ -14871,7 +15492,8 @@ class Test_TC_LVL_4_1Suite : public TestCommand } case 14: { LogStep(14, "reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "user prompt message"); @@ -14888,7 +15510,10 @@ class Test_TC_LVL_4_1Suite : public TestCommand value.transitionTime = 0U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 17: { LogStep(17, "Wait 100ms"); @@ -15026,7 +15651,9 @@ class Test_TC_LVL_5_1Suite : public TestCommand case 1: { LogStep(1, "Sending on command"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Precondition: DUT level is set to its lowest point"); @@ -15036,7 +15663,10 @@ class Test_TC_LVL_5_1Suite : public TestCommand value.transitionTime = 20U; value.optionMask = 0; value.optionOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Wait 3000ms"); @@ -15046,7 +15676,8 @@ class Test_TC_LVL_5_1Suite : public TestCommand } case 4: { LogStep(4, "Reads current level attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Sends step up command to DUT"); @@ -15056,7 +15687,10 @@ class Test_TC_LVL_5_1Suite : public TestCommand value.transitionTime = 2U; value.optionMask = 0; value.optionOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 5000ms"); @@ -15066,7 +15700,8 @@ class Test_TC_LVL_5_1Suite : public TestCommand } case 7: { LogStep(7, "Reads current level attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Sends a Step down command"); @@ -15076,7 +15711,10 @@ class Test_TC_LVL_5_1Suite : public TestCommand value.transitionTime = 2U; value.optionMask = 0; value.optionOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Wait 4000ms"); @@ -15086,7 +15724,8 @@ class Test_TC_LVL_5_1Suite : public TestCommand } case 10: { LogStep(10, "Reads current level attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Reset level to 254"); @@ -15095,7 +15734,10 @@ class Test_TC_LVL_5_1Suite : public TestCommand value.transitionTime = 0U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 100ms"); @@ -15106,7 +15748,9 @@ class Test_TC_LVL_5_1Suite : public TestCommand case 13: { LogStep(13, "Sending off command"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -15227,7 +15871,9 @@ class Test_TC_LVL_6_1Suite : public TestCommand case 1: { LogStep(1, "Sending on command"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Precondition: set DUT to lowest point"); @@ -15236,7 +15882,10 @@ class Test_TC_LVL_6_1Suite : public TestCommand value.transitionTime = 0U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Wait 100ms"); @@ -15246,7 +15895,8 @@ class Test_TC_LVL_6_1Suite : public TestCommand } case 4: { LogStep(4, "Reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Sends a move up command to DUT"); @@ -15255,7 +15905,10 @@ class Test_TC_LVL_6_1Suite : public TestCommand value.rate = 1; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 2000ms"); @@ -15268,11 +15921,15 @@ class Test_TC_LVL_6_1Suite : public TestCommand chip::app::Clusters::LevelControl::Commands::Stop::Type value; value.optionMask = 0; value.optionOverride = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Stop::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Stop::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Reads CurrentLevel attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Reset level to 254"); @@ -15281,7 +15938,10 @@ class Test_TC_LVL_6_1Suite : public TestCommand value.transitionTime = 0U; value.optionMask = 1; value.optionOverride = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Wait 100ms"); @@ -15292,7 +15952,9 @@ class Test_TC_LVL_6_1Suite : public TestCommand case 11: { LogStep(11, "Sending off command"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -15425,11 +16087,13 @@ class Test_TC_MC_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 3: { LogStep(3, @@ -15443,11 +16107,13 @@ class Test_TC_MC_1_1Suite : public TestCommand } case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::GeneratedCommandList::Id, true, + chip::NullOptional); } case 6: { LogStep(6, @@ -15602,16 +16268,19 @@ class Test_TC_MC_1_2Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -15625,13 +16294,14 @@ class Test_TC_MC_1_2Suite : public TestCommand } case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, - KeypadInput::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Read FeatureMap attribute from the DUT and Verify that the DUT response"); @@ -15793,18 +16463,18 @@ class Test_TC_MC_1_3Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::ClusterRevision::Id); + ApplicationLauncher::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::ClusterRevision::Id); + ApplicationLauncher::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::AttributeList::Id); + ApplicationLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -15820,13 +16490,13 @@ class Test_TC_MC_1_3Suite : public TestCommand LogStep(5, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::AcceptedCommandList::Id); + ApplicationLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::GeneratedCommandList::Id); + ApplicationLauncher::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 7: { LogStep(7, @@ -15989,16 +16659,19 @@ class Test_TC_MC_1_4Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -16012,11 +16685,13 @@ class Test_TC_MC_1_4Suite : public TestCommand } case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } case 7: { LogStep(7, @@ -16169,16 +16844,19 @@ class Test_TC_MC_1_5Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -16192,11 +16870,13 @@ class Test_TC_MC_1_5Suite : public TestCommand } case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Read FeatureMap attribute from the DUT and Verify that the DUT response"); @@ -16343,16 +17023,19 @@ class Test_TC_MC_1_6Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -16367,12 +17050,14 @@ class Test_TC_MC_1_6Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, + chip::NullOptional); } case 7: { LogStep(7, @@ -16558,28 +17243,31 @@ class Test_TC_MC_1_7Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, - MediaPlayback::Attributes::AcceptedCommandList::Id); + MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, - MediaPlayback::Attributes::GeneratedCommandList::Id); + MediaPlayback::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, @@ -16739,16 +17427,19 @@ class Test_TC_MC_1_8Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -16763,13 +17454,14 @@ class Test_TC_MC_1_8Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, - AudioOutput::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } case 7: { LogStep(7, @@ -16927,18 +17619,18 @@ class Test_TC_MC_1_9Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::ClusterRevision::Id); + TargetNavigator::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::ClusterRevision::Id); + TargetNavigator::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::AttributeList::Id); + TargetNavigator::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -16953,13 +17645,13 @@ class Test_TC_MC_1_9Suite : public TestCommand case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::AcceptedCommandList::Id); + TargetNavigator::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::GeneratedCommandList::Id); + TargetNavigator::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 7: { LogStep(7, @@ -17131,18 +17823,18 @@ class Test_TC_MC_1_10Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::ClusterRevision::Id); + ApplicationBasic::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::ClusterRevision::Id); + ApplicationBasic::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::AttributeList::Id); + ApplicationBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -17158,13 +17850,13 @@ class Test_TC_MC_1_10Suite : public TestCommand LogStep(5, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::AcceptedCommandList::Id); + ApplicationBasic::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::GeneratedCommandList::Id); + ApplicationBasic::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 7: { LogStep(7, @@ -17322,18 +18014,18 @@ class Test_TC_MC_1_11Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::ClusterRevision::Id); + ContentLauncher::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::ClusterRevision::Id); + ContentLauncher::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::AttributeList::Id); + ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -17349,13 +18041,13 @@ class Test_TC_MC_1_11Suite : public TestCommand LogStep(5, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::AcceptedCommandList::Id); + ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::GeneratedCommandList::Id); + ContentLauncher::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 7: { LogStep(7, @@ -17506,11 +18198,13 @@ class Test_TC_MC_1_12Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AccountLogin::Id, AccountLogin::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AccountLogin::Id, AccountLogin::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AccountLogin::Id, AccountLogin::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AccountLogin::Id, AccountLogin::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 3: { LogStep(3, @@ -17526,13 +18220,13 @@ class Test_TC_MC_1_12Suite : public TestCommand LogStep(4, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AccountLogin::Id, - AccountLogin::Attributes::AcceptedCommandList::Id); + AccountLogin::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AccountLogin::Id, - AccountLogin::Attributes::GeneratedCommandList::Id); + AccountLogin::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read FeatureMap attribute from the DUT and Verify that the DUT response"); @@ -17615,7 +18309,10 @@ class Test_TC_MC_2_1Suite : public TestCommand case 1: { LogStep(1, "Put the device into low power mode"); chip::app::Clusters::LowPower::Commands::Sleep::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Commands::Sleep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Commands::Sleep::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -17789,105 +18486,150 @@ class Test_TC_MC_3_1Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send Up"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Send Down"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(2); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Send Left"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(3); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Send Right"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(4); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Send RightUp"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(5); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "Send RightDown"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Send LeftUp"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(7); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Send LeftDown"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 11: { LogStep(11, "Send SetupMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(10); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Send ContentsMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(11); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Send FavoriteMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(12); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Send Exit"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(13); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "Send Invalid"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(255); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -17974,14 +18716,20 @@ class Test_TC_MC_3_2Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send SetupMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(10); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -18117,63 +18865,90 @@ class Test_TC_MC_3_3Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(33); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send Numbers2"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(34); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Send Numbers3"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(35); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Send Numbers4"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(36); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Send Numbers5"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(37); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Send Numbers6"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(38); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "Send Numbers7"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(39); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Send Numbers8"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(40); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Send Numbers9"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(41); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -18316,70 +19091,100 @@ class Test_TC_MC_3_4Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Send RootMenu"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -18458,7 +19263,7 @@ class Test_TC_MC_3_5Suite : public TestCommand case 1: { LogStep(1, "Read CatalogList attribute."); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::CatalogList::Id); + ApplicationLauncher::Attributes::CatalogList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -18540,7 +19345,7 @@ class Test_TC_MC_3_6Suite : public TestCommand LogStep(1, "Read Current App ID attribute."); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::CurrentApp::Id); + ApplicationLauncher::Attributes::CurrentApp::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -18652,7 +19457,9 @@ class Test_TC_MC_3_7Suite : public TestCommand value.data.Emplace(); value.data.Value() = chip::ByteSpan(chip::Uint8::from_const_char("Hello Worldgarbage: not in length on purpose"), 11); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Commands::LaunchApp::Id, value); + ApplicationLauncher::Commands::LaunchApp::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "TH sends a LaunchApp command to DUT to launch an app which is not available"); @@ -18665,7 +19472,9 @@ class Test_TC_MC_3_7Suite : public TestCommand value.data.Emplace(); value.data.Value() = chip::ByteSpan(chip::Uint8::from_const_char("Hello Worldgarbage: not in length on purpose"), 11); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Commands::LaunchApp::Id, value); + ApplicationLauncher::Commands::LaunchApp::Id, value, chip::NullOptional + + ); } case 3: { LogStep(3, "Launch an app with the provided a application ID"); @@ -18678,7 +19487,9 @@ class Test_TC_MC_3_7Suite : public TestCommand value.data.Emplace(); value.data.Value() = chip::ByteSpan(chip::Uint8::from_const_char("Hello Worldgarbage: not in length on purpose"), 11); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Commands::LaunchApp::Id, value); + ApplicationLauncher::Commands::LaunchApp::Id, value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -18774,12 +19585,15 @@ class Test_TC_MC_3_8Suite : public TestCommand value.application.applicationId = chip::Span("HelloWorldAppgarbage: not in length on purpose", 13); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Commands::StopApp::Id, - value); + value, chip::NullOptional + + ); } case 2: { LogStep(2, "Reads the Status attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -18871,12 +19685,15 @@ class Test_TC_MC_3_9Suite : public TestCommand value.application.applicationId = chip::Span("HelloWorldAppgarbage: not in length on purpose", 13); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Commands::HideApp::Id, - value); + value, chip::NullOptional + + ); } case 2: { LogStep(2, "Reads the Status attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -18954,7 +19771,8 @@ class Test_TC_MC_3_10Suite : public TestCommand } case 1: { LogStep(1, "Read attribute media input list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19043,19 +19861,24 @@ class Test_TC_MC_3_11Suite : public TestCommand } case 1: { LogStep(1, "Read attribute media input list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Select Input Command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaInput::Commands::SelectInput::Type value; value.index = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::SelectInput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::SelectInput::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Read current input list"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::CurrentInput::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::CurrentInput::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19133,13 +19956,19 @@ class Test_TC_MC_3_12Suite : public TestCommand LogStep(1, "Hide Input Status Command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaInput::Commands::HideInputStatus::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::HideInputStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::HideInputStatus::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Show Input Status Command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaInput::Commands::ShowInputStatus::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::ShowInputStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::ShowInputStatus::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -19231,7 +20060,8 @@ class Test_TC_MC_3_13Suite : public TestCommand } case 1: { LogStep(1, "Read attribute media input list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Rename Input Command"); @@ -19239,7 +20069,10 @@ class Test_TC_MC_3_13Suite : public TestCommand chip::app::Clusters::MediaInput::Commands::RenameInput::Type value; value.index = 1; value.name = chip::Span("A1garbage: not in length on purpose", 2); - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::RenameInput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::RenameInput::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Rename Input Command"); @@ -19247,11 +20080,15 @@ class Test_TC_MC_3_13Suite : public TestCommand chip::app::Clusters::MediaInput::Commands::RenameInput::Type value; value.index = 1; value.name = chip::Span("A2garbage: not in length on purpose", 2); - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::RenameInput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::RenameInput::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Read attribute media input list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19329,7 +20166,8 @@ class Test_TC_MC_5_1Suite : public TestCommand } case 1: { LogStep(1, "Reads the ChannelList attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19426,7 +20264,8 @@ class Test_TC_MC_5_2Suite : public TestCommand } case 1: { LogStep(1, "Reads the ChannelList attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "TH sends a ChangeChannelByNumber command"); @@ -19434,7 +20273,10 @@ class Test_TC_MC_5_2Suite : public TestCommand chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::Type value; value.majorNumber = mMajornumber.HasValue() ? mMajornumber.Value() : 1U; value.minorNumber = mMinornumber.HasValue() ? mMinornumber.Value() : 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::ChangeChannelByNumber::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::ChangeChannelByNumber::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "log a command"); @@ -19446,7 +20288,8 @@ class Test_TC_MC_5_2Suite : public TestCommand case 4: { LogStep(4, "Reads the CurrentChannel attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19555,19 +20398,24 @@ class Test_TC_MC_5_3Suite : public TestCommand } case 1: { LogStep(1, "Reads the ChannelList attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Reads the CurrentChannel attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Sends a SkipChannel command to the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::Channel::Commands::SkipChannel::Type value; value.count = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::SkipChannel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::SkipChannel::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "log a command"); @@ -19579,7 +20427,8 @@ class Test_TC_MC_5_3Suite : public TestCommand case 5: { LogStep(5, "Reads the CurrentChannel attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19668,19 +20517,24 @@ class Test_TC_MC_7_1Suite : public TestCommand } case 1: { LogStep(1, "Reads the OutputList attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Sends a SelectAudioOutput command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::AudioOutput::Commands::SelectOutput::Type value; value.index = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Commands::SelectOutput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Commands::SelectOutput::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Reads the CurrentOutput attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::CurrentOutput::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::CurrentOutput::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -19768,7 +20622,8 @@ class Test_TC_MC_7_2Suite : public TestCommand } case 1: { LogStep(1, "Reads the OutputList attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Sends a RenameOutput command"); @@ -19776,7 +20631,10 @@ class Test_TC_MC_7_2Suite : public TestCommand chip::app::Clusters::AudioOutput::Commands::RenameOutput::Type value; value.index = 1; value.name = chip::Span("CertTestgarbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Commands::RenameOutput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Commands::RenameOutput::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, @@ -19874,11 +20732,12 @@ class Test_TC_MC_8_1Suite : public TestCommand case 1: { LogStep(1, "Reads the CurrentTarget attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::CurrentTarget::Id); + TargetNavigator::Attributes::CurrentTarget::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Reads the TargetList attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::TargetList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::TargetList::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -20027,41 +20886,44 @@ class Test_TC_MC_9_1Suite : public TestCommand } case 2: { LogStep(2, "Reads the VendorName attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::VendorName::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorName::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Reads the VendorID attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorID::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Reads the ApplicationName attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::ApplicationName::Id); + ApplicationBasic::Attributes::ApplicationName::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Reads the ProductID attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::ProductID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::ProductID::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Reads the Application attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::Application::Id); + ApplicationBasic::Attributes::Application::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Reads the Status attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Reads the ApplicationVersion attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::ApplicationVersion::Id); + ApplicationBasic::Attributes::ApplicationVersion::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Reads the AllowedVendorList attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationBasic::Id, - ApplicationBasic::Attributes::AllowedVendorList::Id); + ApplicationBasic::Attributes::AllowedVendorList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -20147,13 +21009,13 @@ class Test_TC_MC_10_1Suite : public TestCommand } case 1: { LogStep(1, "TH reads the AcceptHeader attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::AcceptHeader::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptHeader::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "TH reads the SupportedStreamingProtocols attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::SupportedStreamingProtocols::Id); + ContentLauncher::Attributes::SupportedStreamingProtocols::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -20291,16 +21153,19 @@ class Test_TC_MOD_1_1Suite : public TestCommand } case 1: { LogStep(1, "TH reads the ClusterRevision attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "TH reads the FeatureMap attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::FeatureMap::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::FeatureMap::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "TH reads the AttributeList attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -20314,11 +21179,13 @@ class Test_TC_MOD_1_1Suite : public TestCommand } case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -20509,17 +21376,21 @@ class Test_TC_MF_1_3Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 4: { LogStep(4, "TH_CR1 writes the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptestgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "TH_CR1 reads the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Commission from beta"); @@ -20537,32 +21408,36 @@ class Test_TC_MF_1_3Suite : public TestCommand case 8: { LogStep(8, "Query fabrics list"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Query fabrics list"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id, false); + OperationalCredentials::Attributes::Fabrics::Id, false, chip::NullOptional); } case 10: { LogStep(10, "TH_CR1 writes the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptest1garbage: not in length on purpose", 9); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 11: { LogStep(11, "TH_CR1 reads the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "TH_CR2 writes the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptest2garbage: not in length on purpose", 9); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "TH_CR2 reads the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); - return ReadAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -20739,17 +21614,21 @@ class Test_TC_MF_1_4Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 4: { LogStep(4, "TH_CR1 writes the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptestgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "TH_CR1 reads the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Commission from beta"); @@ -20767,32 +21646,36 @@ class Test_TC_MF_1_4Suite : public TestCommand case 8: { LogStep(8, "Query fabrics list"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Query fabrics list"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } case 10: { LogStep(10, "TH_CR1 writes the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptestgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 11: { LogStep(11, "TH_CR1 reads the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "TH_CR1 writes the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptestgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "TH_CR1 reads the Basic Information Clusters NodeLabel mandatory attribute of DUT_CE"); - return ReadAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -20947,7 +21830,9 @@ class Test_TC_MF_1_5Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "Wait for PIXIT_COMM_WIN(180) + 10 seconds"); @@ -20995,14 +21880,18 @@ class Test_TC_MF_1_5Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 9: { LogStep(9, "TH_CR1 revokes the commissioning window on DUT_CE"); chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::RevokeCommissioning::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 10: { LogStep(10, "TH_CR2 starts a commissioning process with DUT_CE"); @@ -21016,17 +21905,21 @@ class Test_TC_MF_1_5Suite : public TestCommand chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::RevokeCommissioning::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 12: { LogStep(12, "TH_CR1 writes the mandatory attribute NodeLabel of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptestgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "TH_CR1 read the mandatory attribute NodeLabel of DUT_CE"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "TH_CR1 opens a new commissioning window on DUT_CE"); @@ -21043,7 +21936,9 @@ class Test_TC_MF_1_5Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 15: { LogStep(15, "TH_CR2 starts a commissioning process with DUT_CE"); @@ -21219,7 +22114,9 @@ class Test_TC_MF_1_6Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 4: { LogStep(4, "Wait for PIXIT_COMM_WIN(180) + 10"); @@ -21258,14 +22155,18 @@ class Test_TC_MF_1_6Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 10: { LogStep(10, "TH_CR1 revokes the commissioning window on DUT_CE"); chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::RevokeCommissioning::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 11: { LogStep(11, "Commission from beta"); @@ -21279,17 +22180,21 @@ class Test_TC_MF_1_6Suite : public TestCommand chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::RevokeCommissioning::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 13: { LogStep(13, "TH_CR1 writes the mandatory attribute NodeLabel of DUT_CE"); chip::CharSpan value; value = chip::Span("chiptestgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 14: { LogStep(14, "TH_CR1 read the mandatory attribute NodeLabel of DUT_CE"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "TH_CR1 opens a commissioning window on DUT_CE"); @@ -21297,7 +22202,9 @@ class Test_TC_MF_1_6Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 16: { LogStep(16, "Commission from beta"); @@ -21517,7 +22424,9 @@ class Test_TC_MF_1_15Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "Commission from gamma"); @@ -21538,7 +22447,9 @@ class Test_TC_MF_1_15Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 6: { LogStep(6, "Commission from beta"); @@ -21559,7 +22470,9 @@ class Test_TC_MF_1_15Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 9: { LogStep(9, "TH_CR1 opens a new commissioning window on DUT_CE"); @@ -21576,12 +22489,14 @@ class Test_TC_MF_1_15Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 10: { LogStep(10, "TH_CR1 reads the list of Fabrics on DUT_CE"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id, false); + OperationalCredentials::Attributes::Fabrics::Id, false, chip::NullOptional); } case 11: { LogStep(11, "Wait for the expiration of PIXIT_COMM_WIN seconds"); @@ -21622,7 +22537,9 @@ class Test_TC_MF_1_15Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 16: { LogStep(16, "TH_CR3 opens a new commissioning window on DUT_CE"); @@ -21639,12 +22556,14 @@ class Test_TC_MF_1_15Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityGamma, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 17: { LogStep(17, "TH_CR1 reads the list of Fabrics on DUT_CE"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id, false); + OperationalCredentials::Attributes::Fabrics::Id, false, chip::NullOptional); } case 18: { LogStep(18, "Wait for the expiration of PIXIT_COMM_WIN seconds"); @@ -21685,7 +22604,9 @@ class Test_TC_MF_1_15Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 23: { LogStep(23, "TH_CR2 opens a new commissioning window on DUT_CE"); @@ -21702,7 +22623,9 @@ class Test_TC_MF_1_15Suite : public TestCommand value.salt = chip::ByteSpan(chip::Uint8::from_const_char("SPAKE2P Key Saltgarbage: not in length on purpose"), 16); return SendCommand(kIdentityBeta, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -21906,7 +22829,8 @@ class OTA_SuccessfulTransferSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "Stop the requestor"); @@ -21935,7 +22859,9 @@ class OTA_SuccessfulTransferSuite : public TestCommand value.announcementReason = static_cast(0); value.endpoint = mEndpoint.HasValue() ? mEndpoint.Value() : 0U; return SendCommand(kIdentityAlpha, GetEndpoint(0), OtaSoftwareUpdateRequestor::Id, - OtaSoftwareUpdateRequestor::Commands::AnnounceOtaProvider::Id, value); + OtaSoftwareUpdateRequestor::Commands::AnnounceOtaProvider::Id, value, chip::NullOptional + + ); } case 9: { LogStep(9, "Wait for transfer complete message"); @@ -22081,29 +23007,29 @@ class Test_TC_OCC_1_1Suite : public TestCommand case 1: { LogStep(1, "read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::ClusterRevision::Id); + OccupancySensing::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::ClusterRevision::Id); + OccupancySensing::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "write the default values to mandatory global attribute: ClusterRevision"); uint16_t value; value = 3U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::ClusterRevision::Id, value); + OccupancySensing::Attributes::ClusterRevision::Id, value, chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "reads back global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::ClusterRevision::Id); + OccupancySensing::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::AttributeList::Id); + OccupancySensing::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { LogStep(6, @@ -22118,12 +23044,12 @@ class Test_TC_OCC_1_1Suite : public TestCommand case 7: { LogStep(7, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::AcceptedCommandList::Id); + OccupancySensing::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::GeneratedCommandList::Id); + OccupancySensing::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Read FeatureMap attribute from the DUT and Verify that the DUT response"); @@ -22265,52 +23191,56 @@ class Test_TC_OCC_2_1Suite : public TestCommand } case 1: { LogStep(1, "Reads mandatory attribute constrains: Occupancy"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Writes the respective default value to mandatory attribute: Occupancy"); uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "Reads back mandatory attribute: Occupancy"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Reads mandatory attribute constrains: OccupancySensorType"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorType::Id); + OccupancySensing::Attributes::OccupancySensorType::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Writes the respective default value to mandatory attribute: OccupancySensorType"); uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorType::Id, value); + OccupancySensing::Attributes::OccupancySensorType::Id, value, chip::NullOptional, + chip::NullOptional); } case 6: { LogStep(6, "Reads back mandatory attribute: OccupancySensorType"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorType::Id); + OccupancySensing::Attributes::OccupancySensorType::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Reads mandatory attribute constrains: OccupancySensorTypeBitmap"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id); + OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Writes the respective default value to mandatory attribute: OccupancySensorTypeBitmap"); uint8_t value; value = 1; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id, value); + OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id, value, chip::NullOptional, + chip::NullOptional); } case 9: { LogStep(9, "Reads back mandatory attribute: OccupancySensorTypeBitmap"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id); + OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -22460,12 +23390,14 @@ class Test_TC_OO_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 3: { LogStep(3, @@ -22480,16 +23412,19 @@ class Test_TC_OO_1_1Suite : public TestCommand case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); VerifyOrdo(!ShouldSkip("OO_LT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GeneratedCommandList::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "read the optional global attribute: FeatureMap"); VerifyOrdo(!ShouldSkip("OO_LT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::FeatureMap::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::FeatureMap::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -22615,23 +23550,27 @@ class Test_TC_OO_2_1Suite : public TestCommand } case 1: { LogStep(1, "read the mandatory attribute: OnOff"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read LT attribute: GlobalSceneControl"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "read LT attribute: OnTime"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "read LT attribute: OffWaitTime"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "read LT attribute: StartUpOnOff"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -22822,52 +23761,64 @@ class Test_TC_OO_2_2Suite : public TestCommand case 1: { LogStep(1, "Send Off Command"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Send On Command"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Send On Command"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 6: { LogStep(6, "Check on/off attribute value is true after on command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Send Off Command"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 8: { LogStep(8, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Send Off Command"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 10: { LogStep(10, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 11: { LogStep(11, "Send Toggle Command"); chip::app::Clusters::OnOff::Commands::Toggle::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id, value, chip::NullOptional + + ); } case 12: { LogStep(12, "Wait 1000ms"); @@ -22877,12 +23828,14 @@ class Test_TC_OO_2_2Suite : public TestCommand } case 13: { LogStep(13, "Check on/off attribute value is true after toggle command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 14: { LogStep(14, "Send Toggle Command"); chip::app::Clusters::OnOff::Commands::Toggle::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id, value, chip::NullOptional + + ); } case 15: { LogStep(15, "Wait 1000ms"); @@ -22892,7 +23845,7 @@ class Test_TC_OO_2_2Suite : public TestCommand } case 16: { LogStep(16, "Check on/off attribute value is false after toggle command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 17: { LogStep(17, "User prompt Set OnOff attribute manually to on"); @@ -22904,7 +23857,7 @@ class Test_TC_OO_2_2Suite : public TestCommand case 18: { LogStep(18, "Check on/off attribute value is true after on command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 19: { LogStep(19, "User prompt Set OnOff attribute manually to off"); @@ -22916,16 +23869,18 @@ class Test_TC_OO_2_2Suite : public TestCommand case 20: { LogStep(20, "Check on/off attribute value is false after off command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 21: { LogStep(21, "Reset Off Command"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 22: { LogStep(22, "Check on/off attribute value is false after off command"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -23303,7 +24258,9 @@ class Test_TC_OO_2_3Suite : public TestCommand LogStep(1, "Send On Command"); VerifyOrdo(!ShouldSkip("CR_ON"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Wait 1000ms"); @@ -23314,18 +24271,21 @@ class Test_TC_OO_2_3Suite : public TestCommand case 3: { LogStep(3, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads GlobalSceneControl attribute from DUT"); VerifyOrdo(!ShouldSkip("A_GLOBALSCENECONTROL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Send On Command"); VerifyOrdo(!ShouldSkip("CR_ON"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 6: { LogStep(6, "Wait 1000ms"); @@ -23336,18 +24296,21 @@ class Test_TC_OO_2_3Suite : public TestCommand case 7: { LogStep(7, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Reads GlobalSceneControl attribute from DUT"); VerifyOrdo(!ShouldSkip("A_GLOBALSCENECONTROL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Send On Command"); VerifyOrdo(!ShouldSkip("CR_ON"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 10: { LogStep(10, "Wait 1000ms"); @@ -23358,189 +24321,222 @@ class Test_TC_OO_2_3Suite : public TestCommand case 11: { LogStep(11, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 12: { LogStep(12, "Reads GlobalSceneControl attribute from DUT"); VerifyOrdo(!ShouldSkip("A_GLOBALSCENECONTROL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id, true, + chip::NullOptional); } case 13: { LogStep(13, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Send On Command"); VerifyOrdo(!ShouldSkip("CR_ON"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 16: { LogStep(16, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 17: { LogStep(17, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Send Off Command"); VerifyOrdo(!ShouldSkip("CR_OFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 20: { LogStep(20, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 21: { LogStep(21, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 22: { LogStep(22, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 23: { LogStep(23, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 24: { LogStep(24, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 25: { LogStep(25, "Send On Command"); VerifyOrdo(!ShouldSkip("CR_ON"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 26: { LogStep(26, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 27: { LogStep(27, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 28: { LogStep(28, "Send Off Command"); VerifyOrdo(!ShouldSkip("CR_OFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 29: { LogStep(29, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 30: { LogStep(30, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 31: { LogStep(31, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 32: { LogStep(32, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 33: { LogStep(33, "Send On Command"); VerifyOrdo(!ShouldSkip("CR_ON"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 34: { LogStep(34, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 35: { LogStep(35, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 36: { LogStep(36, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 37: { LogStep(37, "Send Off Command"); VerifyOrdo(!ShouldSkip("CR_OFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 38: { LogStep(38, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 39: { LogStep(39, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 40: { LogStep(40, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 41: { LogStep(41, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 42: { LogStep(42, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 43: { LogStep(43, "Reads OnOff attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONOFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 44: { LogStep(44, "Reads OnTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ONTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id, true, + chip::NullOptional); } case 45: { LogStep(45, "Reads OffWaitTime attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OFFWAITTIME"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id, true, + chip::NullOptional); } case 46: { LogStep(46, "Send Off Command"); VerifyOrdo(!ShouldSkip("CR_OFF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -23734,18 +24730,22 @@ class Test_TC_OO_2_4Suite : public TestCommand case 1: { LogStep(1, "TH sends On command to DUT"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "TH writes a value of 0 to StartUpOnOff attribute of DUT"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = static_cast(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value, + chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "TH reads the StartUpOnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Power off DUT"); @@ -23760,14 +24760,15 @@ class Test_TC_OO_2_4Suite : public TestCommand } case 6: { LogStep(6, "TH reads the OnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 7: { LogStep(7, "TH writes a value of 1 to StartUpOnOff attribute of DUT"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = static_cast(1); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value, + chip::NullOptional, chip::NullOptional); } case 8: { LogStep(8, "Power off DUT"); @@ -23782,14 +24783,15 @@ class Test_TC_OO_2_4Suite : public TestCommand } case 10: { LogStep(10, "TH reads the OnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 11: { LogStep(11, "TH writes a value of 2 to StartUpOnOff attribute of DUT"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = static_cast(2); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value, + chip::NullOptional, chip::NullOptional); } case 12: { LogStep(12, "Power off DUT"); @@ -23804,7 +24806,7 @@ class Test_TC_OO_2_4Suite : public TestCommand } case 14: { LogStep(14, "TH reads the OnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 15: { LogStep(15, "Power off DUT"); @@ -23819,13 +24821,14 @@ class Test_TC_OO_2_4Suite : public TestCommand } case 17: { LogStep(17, "TH reads the OnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 18: { LogStep(18, "TH writes NULL to StartUpOnOff attribute of DUT"); chip::app::DataModel::Nullable value; value.SetNull(); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value, + chip::NullOptional, chip::NullOptional); } case 19: { LogStep(19, "Power off DUT"); @@ -23840,12 +24843,14 @@ class Test_TC_OO_2_4Suite : public TestCommand } case 21: { LogStep(21, "TH reads the OnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 22: { LogStep(22, "TH sends Off command to DUT"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 23: { LogStep(23, "Power off DUT"); @@ -23860,7 +24865,7 @@ class Test_TC_OO_2_4Suite : public TestCommand } case 25: { LogStep(25, "TH reads the OnOff attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -24016,16 +25021,19 @@ class Test_TC_PS_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::ClusterRevision::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, @@ -24039,16 +25047,18 @@ class Test_TC_PS_1_1Suite : public TestCommand } case 5: { LogStep(5, "Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, - PowerSource::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "read the optional global attribute: FeatureMap"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -24154,19 +25164,23 @@ class Test_TC_PS_2_1Suite : public TestCommand } case 1: { LogStep(1, "Test Harness Client reads Status attribute from Server DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::Status::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::Status::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Test Harness Client reads Order attribute from Server DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::Order::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::Order::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Test Harness Client reads Description attribute from Server DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::Description::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::Description::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Test Harness Client reads BatChargeLevel from Server DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryChargeLevel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryChargeLevel::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -24288,29 +25302,30 @@ class Test_TC_PRS_1_1Suite : public TestCommand case 1: { LogStep(1, "Read the global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::ClusterRevision::Id); + PressureMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute constraints: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::ClusterRevision::Id); + PressureMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Write the default values to mandatory global attribute: ClusterRevision"); uint16_t value; value = 3U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::ClusterRevision::Id, value); + PressureMeasurement::Attributes::ClusterRevision::Id, value, chip::NullOptional, + chip::NullOptional); } case 4: { LogStep(4, "Reads back global attribute: ClusterRevision"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::ClusterRevision::Id); + PressureMeasurement::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global mandatory attribute constraints: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::AttributeList::Id); + PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { LogStep(6, @@ -24532,47 +25547,47 @@ class Test_TC_PRS_2_1Suite : public TestCommand case 1: { LogStep(1, "Read the mandatory attribute constraints: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::MeasuredValue::Id); + PressureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the mandatory attribute constraints: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::MinMeasuredValue::Id); + PressureMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the mandatory attribute constraints: MaxMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::MaxMeasuredValue::Id); + PressureMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Read the optional attribute: Tolerance"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::Tolerance::Id); + PressureMeasurement::Attributes::Tolerance::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the optional attribute: ScaledValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::ScaledValue::Id); + PressureMeasurement::Attributes::ScaledValue::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the optional attribute: MinScaledValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::MinScaledValue::Id); + PressureMeasurement::Attributes::MinScaledValue::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Read the optional attribute: MaxScaledValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::MaxScaledValue::Id); + PressureMeasurement::Attributes::MaxScaledValue::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read the optional attribute: ScaledTolerance"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::ScaledTolerance::Id); + PressureMeasurement::Attributes::ScaledTolerance::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Read the optional attribute: Scale"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, - PressureMeasurement::Attributes::Scale::Id); + PressureMeasurement::Attributes::Scale::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -24727,18 +25742,18 @@ class Test_TC_PCC_1_1Suite : public TestCommand case 1: { LogStep(1, "TH reads the ClusterRevision attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ClusterRevision::Id); + PumpConfigurationAndControl::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads the FeatureMap attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::FeatureMap::Id); + PumpConfigurationAndControl::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { LogStep(3, "TH reads the AttributeList attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::AttributeList::Id); + PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH reads the EventList attribute from the DUT"); @@ -24752,12 +25767,12 @@ class Test_TC_PCC_1_1Suite : public TestCommand case 5: { LogStep(5, "TH reads the AcceptedCommandList attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::AcceptedCommandList::Id); + PumpConfigurationAndControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH reads the GeneratedCommandList attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::GeneratedCommandList::Id); + PumpConfigurationAndControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -25369,152 +26384,152 @@ class Test_TC_PCC_2_1Suite : public TestCommand case 1: { LogStep(1, "read the mandatory attribute: MaxPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxPressure::Id); + PumpConfigurationAndControl::Attributes::MaxPressure::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read the mandatory attribute: MaxSpeed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxSpeed::Id); + PumpConfigurationAndControl::Attributes::MaxSpeed::Id, true, chip::NullOptional); } case 3: { LogStep(3, "read the mandatory attribute: MaxFlow"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxFlow::Id); + PumpConfigurationAndControl::Attributes::MaxFlow::Id, true, chip::NullOptional); } case 4: { LogStep(4, "read the mandatory attribute: EffectiveOperationMode"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } case 5: { LogStep(5, "read the mandatory attribute: EffectiveControlMode"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 6: { LogStep(6, "read the mandatory attribute: Capacity"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::Capacity::Id); + PumpConfigurationAndControl::Attributes::Capacity::Id, true, chip::NullOptional); } case 7: { LogStep(7, "read the mandatory attribute: MaxPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxPressure::Id); + PumpConfigurationAndControl::Attributes::MaxPressure::Id, true, chip::NullOptional); } case 8: { LogStep(8, "read the mandatory attribute: MaxSpeed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxSpeed::Id); + PumpConfigurationAndControl::Attributes::MaxSpeed::Id, true, chip::NullOptional); } case 9: { LogStep(9, "read the mandatory attribute: MaxFlow"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxFlow::Id); + PumpConfigurationAndControl::Attributes::MaxFlow::Id, true, chip::NullOptional); } case 10: { LogStep(10, "read the mandatory attribute: EffectiveOperationMode"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } case 11: { LogStep(11, "read the mandatory attribute: EffectiveControlMode"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 12: { LogStep(12, "read the mandatory attribute: Capacity"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::Capacity::Id); + PumpConfigurationAndControl::Attributes::Capacity::Id, true, chip::NullOptional); } case 13: { LogStep(13, "read the optional attribute: MinConstPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstPressure::Id); + PumpConfigurationAndControl::Attributes::MinConstPressure::Id, true, chip::NullOptional); } case 14: { LogStep(14, "read the optional attribute: MaxConstPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstPressure::Id); + PumpConfigurationAndControl::Attributes::MaxConstPressure::Id, true, chip::NullOptional); } case 15: { LogStep(15, "read the optional attribute: MinCompPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinCompPressure::Id); + PumpConfigurationAndControl::Attributes::MinCompPressure::Id, true, chip::NullOptional); } case 16: { LogStep(16, "read the optional attribute: MaxCompPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxCompPressure::Id); + PumpConfigurationAndControl::Attributes::MaxCompPressure::Id, true, chip::NullOptional); } case 17: { LogStep(17, "read the optional attribute: MinConstSpeed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstSpeed::Id); + PumpConfigurationAndControl::Attributes::MinConstSpeed::Id, true, chip::NullOptional); } case 18: { LogStep(18, "read the optional attribute: MaxConstSpeed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id); + PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id, true, chip::NullOptional); } case 19: { LogStep(19, "read the optional attribute: MinConstFlow"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstFlow::Id); + PumpConfigurationAndControl::Attributes::MinConstFlow::Id, true, chip::NullOptional); } case 20: { LogStep(20, "read the optional attribute: MaxConstFlow"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstFlow::Id); + PumpConfigurationAndControl::Attributes::MaxConstFlow::Id, true, chip::NullOptional); } case 21: { LogStep(21, "read the optional attribute: MinConstTemp"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstTemp::Id); + PumpConfigurationAndControl::Attributes::MinConstTemp::Id, true, chip::NullOptional); } case 22: { LogStep(22, "read the optional attribute: MaxConstTemp"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstTemp::Id); + PumpConfigurationAndControl::Attributes::MaxConstTemp::Id, true, chip::NullOptional); } case 23: { LogStep(23, "read the optional attribute: PumpStatus"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::PumpStatus::Id); + PumpConfigurationAndControl::Attributes::PumpStatus::Id, true, chip::NullOptional); } case 24: { LogStep(24, "read the optional attribute: PumpStatus"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::PumpStatus::Id); + PumpConfigurationAndControl::Attributes::PumpStatus::Id, true, chip::NullOptional); } case 25: { LogStep(25, "read the optional attribute: Speed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::Speed::Id); + PumpConfigurationAndControl::Attributes::Speed::Id, true, chip::NullOptional); } case 26: { LogStep(26, "read the optional attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 27: { LogStep(27, "read the optional attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 28: { LogStep(28, "read the optional attribute: Power"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::Power::Id); + PumpConfigurationAndControl::Attributes::Power::Id, true, chip::NullOptional); } case 29: { LogStep(29, "read the optional attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } case 30: { LogStep(30, "read the optional attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } case 31: { LogStep(31, "write to the optional attribute: LifetimeEnergyConsumed"); @@ -25522,97 +26537,98 @@ class Test_TC_PCC_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 0UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value, chip::NullOptional, + chip::NullOptional); } case 32: { LogStep(32, "read the optional attribute: MinConstPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstPressure::Id); + PumpConfigurationAndControl::Attributes::MinConstPressure::Id, true, chip::NullOptional); } case 33: { LogStep(33, "read the optional attribute: MaxConstPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstPressure::Id); + PumpConfigurationAndControl::Attributes::MaxConstPressure::Id, true, chip::NullOptional); } case 34: { LogStep(34, "read the optional attribute: MinCompPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinCompPressure::Id); + PumpConfigurationAndControl::Attributes::MinCompPressure::Id, true, chip::NullOptional); } case 35: { LogStep(35, "read the optional attribute: MaxCompPressure"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxCompPressure::Id); + PumpConfigurationAndControl::Attributes::MaxCompPressure::Id, true, chip::NullOptional); } case 36: { LogStep(36, "read the optional attribute: MinConstSpeed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstSpeed::Id); + PumpConfigurationAndControl::Attributes::MinConstSpeed::Id, true, chip::NullOptional); } case 37: { LogStep(37, "read the optional attribute: MaxConstSpeed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id); + PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id, true, chip::NullOptional); } case 38: { LogStep(38, "read the optional attribute: MinConstFlow"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstFlow::Id); + PumpConfigurationAndControl::Attributes::MinConstFlow::Id, true, chip::NullOptional); } case 39: { LogStep(39, "read the optional attribute: MaxConstFlow"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstFlow::Id); + PumpConfigurationAndControl::Attributes::MaxConstFlow::Id, true, chip::NullOptional); } case 40: { LogStep(40, "read the optional attribute: MinConstTemp"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MinConstTemp::Id); + PumpConfigurationAndControl::Attributes::MinConstTemp::Id, true, chip::NullOptional); } case 41: { LogStep(41, "read the optional attribute: MaxConstTemp"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::MaxConstTemp::Id); + PumpConfigurationAndControl::Attributes::MaxConstTemp::Id, true, chip::NullOptional); } case 42: { LogStep(42, "read the optional attribute: PumpStatus"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::PumpStatus::Id); + PumpConfigurationAndControl::Attributes::PumpStatus::Id, true, chip::NullOptional); } case 43: { LogStep(43, "read the optional attribute: PumpStatus"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::PumpStatus::Id); + PumpConfigurationAndControl::Attributes::PumpStatus::Id, true, chip::NullOptional); } case 44: { LogStep(44, "read the optional attribute: Speed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::Speed::Id); + PumpConfigurationAndControl::Attributes::Speed::Id, true, chip::NullOptional); } case 45: { LogStep(45, "read the optional attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 46: { LogStep(46, "read the optional attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 47: { LogStep(47, "read the optional attribute: Power"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::Power::Id); + PumpConfigurationAndControl::Attributes::Power::Id, true, chip::NullOptional); } case 48: { LogStep(48, "read the optional attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } case 49: { LogStep(49, "read the optional attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -25719,13 +26735,14 @@ class Test_TC_PCC_2_2Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode value; value = static_cast(1); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::OperationMode::Id, value); + PumpConfigurationAndControl::Attributes::OperationMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 2: { LogStep(2, "Reads the attribute: EffectiveOperationMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVEOPERATIONMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Write 2 to the OperationMode attribute to DUT: OperationMode"); @@ -25733,13 +26750,14 @@ class Test_TC_PCC_2_2Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode value; value = static_cast(2); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::OperationMode::Id, value); + PumpConfigurationAndControl::Attributes::OperationMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 4: { LogStep(4, "Reads the attribute: EffectiveOperationMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVEOPERATIONMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Write 3 to the OperationMode attribute to DUT: OperationMode"); @@ -25747,13 +26765,14 @@ class Test_TC_PCC_2_2Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode value; value = static_cast(3); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::OperationMode::Id, value); + PumpConfigurationAndControl::Attributes::OperationMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 6: { LogStep(6, "Reads the attribute: EffectiveOperationMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVEOPERATIONMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -25904,13 +26923,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode value; value = static_cast(0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::OperationMode::Id, value); + PumpConfigurationAndControl::Attributes::OperationMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 2: { LogStep(2, "Reads the attribute: EffectiveOperationMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVEOPERATIONMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Write 0 to the ControlMode attribute to DUT"); @@ -25918,13 +26938,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value; value = static_cast(0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ControlMode::Id, value); + PumpConfigurationAndControl::Attributes::ControlMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 4: { LogStep(4, "Reads the attribute: EffectiveControlMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVECONTROLMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Write 1 to the ControlMode attribute to DUT"); @@ -25932,13 +26953,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value; value = static_cast(1); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ControlMode::Id, value); + PumpConfigurationAndControl::Attributes::ControlMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 6: { LogStep(6, "Reads the attribute: EffectiveControlMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVECONTROLMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Write 2 to the ControlMode attribute to DUT"); @@ -25946,13 +26968,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value; value = static_cast(2); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ControlMode::Id, value); + PumpConfigurationAndControl::Attributes::ControlMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 8: { LogStep(8, "Reads the attribute: EffectiveControlMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVECONTROLMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Write 3 to the ControlMode attribute to DUT"); @@ -25960,13 +26983,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value; value = static_cast(3); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ControlMode::Id, value); + PumpConfigurationAndControl::Attributes::ControlMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 10: { LogStep(10, "Reads the attribute: EffectiveControlMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVECONTROLMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 11: { LogStep(11, "Write 5 to the ControlMode attribute to DUT"); @@ -25974,13 +26998,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value; value = static_cast(5); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ControlMode::Id, value); + PumpConfigurationAndControl::Attributes::ControlMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 12: { LogStep(12, "Reads the attribute: EffectiveControlMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVECONTROLMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 13: { LogStep(13, "Write 7 to the ControlMode attribute to DUT"); @@ -25988,13 +27013,14 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value; value = static_cast(7); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::ControlMode::Id, value); + PumpConfigurationAndControl::Attributes::ControlMode::Id, value, chip::NullOptional, + chip::NullOptional); } case 14: { LogStep(14, "Reads the attribute: EffectiveControlMode"); VerifyOrdo(!ShouldSkip("A_EFFECTIVECONTROLMODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -26140,12 +27166,13 @@ class Test_TC_PCC_2_4Suite : public TestCommand value.SetNonNull(); value.Value() = 1UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, value, chip::NullOptional, + chip::NullOptional); } case 2: { LogStep(2, "Reads the attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Write 2 to the LifetimeRunningHours attribute to DUT"); @@ -26153,12 +27180,13 @@ class Test_TC_PCC_2_4Suite : public TestCommand value.SetNonNull(); value.Value() = 2UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, value, chip::NullOptional, + chip::NullOptional); } case 4: { LogStep(4, "Reads the attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Write 3 to the LifetimeRunningHours attribute to DUT"); @@ -26166,12 +27194,13 @@ class Test_TC_PCC_2_4Suite : public TestCommand value.SetNonNull(); value.Value() = 3UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, value, chip::NullOptional, + chip::NullOptional); } case 6: { LogStep(6, "Reads the attribute: LifetimeRunningHours"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Write 1 to the LifetimeEnergyConsumed attribute to DUT"); @@ -26179,12 +27208,13 @@ class Test_TC_PCC_2_4Suite : public TestCommand value.SetNonNull(); value.Value() = 1UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value, chip::NullOptional, + chip::NullOptional); } case 8: { LogStep(8, "Reads the attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Write 2 to the LifetimeEnergyConsumed attribute to DUT"); @@ -26192,12 +27222,13 @@ class Test_TC_PCC_2_4Suite : public TestCommand value.SetNonNull(); value.Value() = 2UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value, chip::NullOptional, + chip::NullOptional); } case 10: { LogStep(10, "Reads the attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } case 11: { LogStep(11, "Write 3 to the LifetimeEnergyConsumed attribute to DUT"); @@ -26205,12 +27236,13 @@ class Test_TC_PCC_2_4Suite : public TestCommand value.SetNonNull(); value.Value() = 3UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, value, chip::NullOptional, + chip::NullOptional); } case 12: { LogStep(12, "Reads the attribute: LifetimeEnergyConsumed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, - PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -26343,7 +27375,7 @@ class Test_TC_PSCFG_1_1Suite : public TestCommand case 1: { LogStep(1, "TH reads the ClusterRevision attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, - PowerSourceConfiguration::Attributes::ClusterRevision::Id); + PowerSourceConfiguration::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads the FeatureMap attribute from the DUT"); @@ -26358,17 +27390,17 @@ class Test_TC_PSCFG_1_1Suite : public TestCommand LogStep(3, "TH reads the AttributeList attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, - PowerSourceConfiguration::Attributes::AttributeList::Id); + PowerSourceConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH reads the AcceptedCommandList attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, - PowerSourceConfiguration::Attributes::AcceptedCommandList::Id); + PowerSourceConfiguration::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 5: { LogStep(5, "TH reads the GeneratedCommandList attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, - PowerSourceConfiguration::Attributes::GeneratedCommandList::Id); + PowerSourceConfiguration::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, @@ -26515,7 +27547,7 @@ class Test_TC_RH_1_1Suite : public TestCommand LogStep(2, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::AttributeList::Id); + RelativeHumidityMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 3: { LogStep(3, @@ -26530,12 +27562,12 @@ class Test_TC_RH_1_1Suite : public TestCommand case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::AcceptedCommandList::Id); + RelativeHumidityMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::GeneratedCommandList::Id); + RelativeHumidityMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read FeatureMap attribute from the DUT and Verify that the DUT response"); @@ -26659,23 +27691,23 @@ class Test_TC_RH_2_1Suite : public TestCommand case 1: { LogStep(1, "Reads constraints of attribute: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::MeasuredValue::Id); + RelativeHumidityMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Reads constraints of attribute: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id); + RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads constraints of attribute: MaxMeasuredValue"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::Id); + RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads constraints of attribute: Tolerance"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::Tolerance::Id); + RelativeHumidityMeasurement::Attributes::Tolerance::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -26774,19 +27806,19 @@ class Test_TC_RH_2_2Suite : public TestCommand case 1: { LogStep(1, "Reads constraints of attribute: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id); + RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Reads MeasuredValue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_RELATIVEHUMIDITY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::MeasuredValue::Id); + RelativeHumidityMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the mandatory attribute: MeasuredValue"); VerifyOrdo(!ShouldSkip("A_RELATIVEHUMIDITY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::MeasuredValue::Id); + RelativeHumidityMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -27080,7 +28112,9 @@ class Test_TC_SC_4_2Suite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 4: { LogStep(4, "Check Instance Name"); @@ -27314,27 +28348,33 @@ class Test_TC_SWTCH_2_1Suite : public TestCommand } case 1: { LogStep(1, "Read NumberOfPositions attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::NumberOfPositions::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::NumberOfPositions::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read NumberOfPositions attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::NumberOfPositions::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::NumberOfPositions::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read CurrentPosition attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read CurrentPosition attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Read MultiPressMax attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::MultiPressMax::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::MultiPressMax::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Read MultiPressMax attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::MultiPressMax::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::MultiPressMax::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -27573,7 +28613,8 @@ class Test_TC_SWTCH_2_2Suite : public TestCommand } case 3: { LogStep(3, "Read CurrentPosition attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "User interaction needed"); @@ -27596,7 +28637,8 @@ class Test_TC_SWTCH_2_2Suite : public TestCommand } case 7: { LogStep(7, "Read CurrentPosition attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::CurrentPosition::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "User interaction needed"); @@ -27906,7 +28948,7 @@ class Test_TC_TM_1_1Suite : public TestCommand LogStep(2, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::AttributeList::Id); + TemperatureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 3: { LogStep(3, @@ -28051,22 +29093,22 @@ class Test_TC_TM_2_1Suite : public TestCommand case 1: { LogStep(1, "read the mandatory attribute: MeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MeasuredValue::Id); + TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read the mandatory attribute: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MinMeasuredValue::Id); + TemperatureMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "read the mandatory attribute: MaxMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MaxMeasuredValue::Id); + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 4: { LogStep(4, "read the optional attribute: Tolerance"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::Tolerance::Id); + TemperatureMeasurement::Attributes::Tolerance::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -28173,24 +29215,24 @@ class Test_TC_TM_2_2Suite : public TestCommand case 1: { LogStep(1, "read the mandatory attribute: MinMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MinMeasuredValue::Id); + TemperatureMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read the mandatory attribute: MaxMeasuredValue"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MaxMeasuredValue::Id); + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads MeasuredValue attribute from DUT"); VerifyOrdo(!ShouldSkip("A_TEMPERATURE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MeasuredValue::Id); + TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Read the mandatory attribute: MeasuredValue"); VerifyOrdo(!ShouldSkip("A_TEMPERATURE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MeasuredValue::Id); + TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -28318,17 +29360,20 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand } case 1: { LogStep(1, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ClusterRevision::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ClusterRevision::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read the optional global attribute constraints: FeatureMap"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read the global attribute: EventList"); @@ -28625,80 +29670,88 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand } case 1: { LogStep(1, "Reads constraints of mandatory attributes from DUT: LocalTemperature"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::LocalTemperature::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::LocalTemperature::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Reads constraints of mandatory attributes from DUT: AbsMinHeatSetpointLimit"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::AbsMinHeatSetpointLimit::Id); + Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads constraints of mandatory attributes from DUT: AbsMaxHeatSetpointLimit"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id); + Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads constraints of optional attributes from DUT: AbsMinCoolSetpointLimit"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::AbsMinCoolSetpointLimit::Id); + Thermostat::Attributes::AbsMinCoolSetpointLimit::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Reads constraints of optional attributes from DUT: AbsMaxCoolSetpointLimit"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::AbsMaxCoolSetpointLimit::Id); + Thermostat::Attributes::AbsMaxCoolSetpointLimit::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Reads constraints of optional attributes from DUT: OccupiedCoolingSetpoint"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Reads constraints of mandatory attributes from DUT: OccupiedHeatingSetpoint"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Reads constraints of mandatory attributes from DUT: MinHeatSetpointLimit"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Reads constraints of mandatory attributes from DUT: MaxHeatSetpointLimit"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "Reads constraints of optional attributes from DUT: MinCoolSetpointLimit"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "Reads constraints of optional attributes from DUT: MaxCoolSetpointLimit"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "Reads constraints of mandatory attributes from DUT: ControlSequenceOfOperation"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::ControlSequenceOfOperation::Id); + Thermostat::Attributes::ControlSequenceOfOperation::Id, true, chip::NullOptional); } case 13: { LogStep(13, "Reads constraints of mandatory attributes from DUT: SystemMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SystemMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SystemMode::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Reads constraints of optional attributes from DUT: MinSetpointDeadBand"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinSetpointDeadBand::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinSetpointDeadBand::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Reads constraints of optional attributes from DUT: StartOfWeek"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::StartOfWeek::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::StartOfWeek::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Reads constraints of optional attributes from DUT: NumberOfWeeklyTransitions"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::NumberOfWeeklyTransitions::Id); + Thermostat::Attributes::NumberOfWeeklyTransitions::Id, true, chip::NullOptional); } case 17: { LogStep(17, "Reads constraints of optional attributes from DUT: NumberOfDailyTransitions"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::NumberOfDailyTransitions::Id); + Thermostat::Attributes::NumberOfDailyTransitions::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -29100,7 +30153,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand LogStep(1, "Reads OccupiedCoolingSetpoint attribute from Server DUT and verifies that the value is within range"); VerifyOrdo(!ShouldSkip("A_OCCUPIEDCOOLINGSETPOINT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Writes a value back that is different but valid for OccupiedCoolingSetpoint attribute"); @@ -29108,13 +30161,14 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 3: { LogStep(3, "Reads it back again to confirm the successful write of OccupiedCoolingSetpoint attribute"); VerifyOrdo(!ShouldSkip("A_OCCUPIEDCOOLINGSETPOINT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); @@ -29122,7 +30176,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 5: { LogStep(5, "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); @@ -29130,13 +30185,14 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 6: { LogStep(6, "Reads OccupiedHeatingSetpoint attribute from Server DUT and verifies that the value is within range"); VerifyOrdo(!ShouldSkip("A_OCCUPIEDHEATINGSETPOINT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Writes a value back that is different but valid for OccupiedHeatingSetpoint attribute"); @@ -29144,13 +30200,14 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 8: { LogStep(8, "Reads it back again to confirm the successful write of OccupiedHeatingSetpoint attribute"); VerifyOrdo(!ShouldSkip("A_OCCUPIEDHEATINGSETPOINT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); @@ -29158,7 +30215,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 10: { LogStep(10, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); @@ -29166,12 +30224,14 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 11: { LogStep(11, "Reads MinHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); VerifyOrdo(!ShouldSkip("A_MINHEATSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "Writes a value back that is different but valid for MinHeatSetpointLimit attribute"); @@ -29179,12 +30239,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "Reads it back again to confirm the successful write of MinHeatSetpointLimit attribute"); VerifyOrdo(!ShouldSkip("A_MINHEATSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit attribute"); @@ -29192,7 +30253,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 15: { LogStep(15, "Writes the limit of AbsMaxHeatSetpointLimit to MinHeatSetpointLimit attribute"); @@ -29200,12 +30261,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Reads MaxHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); VerifyOrdo(!ShouldSkip("A_MAXHEATSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "Writes a value back that is different but valid for MaxHeatSetpointLimit attribute"); @@ -29213,12 +30275,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 18: { LogStep(18, "Reads it back again to confirm the successful write of MaxHeatSetpointLimit attribute"); VerifyOrdo(!ShouldSkip("A_MAXHEATSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, + true, chip::NullOptional); } case 19: { LogStep(19, "Writes the limit of AbsMinHeatSetpointLimit to MaxHeatSetpointLimit attribute"); @@ -29226,7 +30289,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 20: { LogStep(20, "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit attribute"); @@ -29234,12 +30297,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 21: { LogStep(21, "Reads MinCoolSetpointLimit attribute from Server DUT and verifies that the value is within range"); VerifyOrdo(!ShouldSkip("A_MINCOOLSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, + true, chip::NullOptional); } case 22: { LogStep(22, "Writes a value back that is different but valid for MinCoolSetpointLimit attribute"); @@ -29247,12 +30311,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 23: { LogStep(23, "Reads it back again to confirm the successful write of MinCoolSetpointLimit attribute"); VerifyOrdo(!ShouldSkip("A_MINCOOLSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, + true, chip::NullOptional); } case 24: { LogStep(24, "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit attribute"); @@ -29260,7 +30325,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 25: { LogStep(25, "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit attribute"); @@ -29268,12 +30333,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 26: { LogStep(26, "Reads MaxCoolSetpointLimit attribute from Server DUT and verifies that the value is within range"); VerifyOrdo(!ShouldSkip("A_MAXCOOLSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, + true, chip::NullOptional); } case 27: { LogStep(27, "Writes a value back that is different but valid for MaxCoolSetpointLimit attribute"); @@ -29281,12 +30347,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 28: { LogStep(28, "Reads it back again to confirm the successful write of MaxCoolSetpointLimit attribute"); VerifyOrdo(!ShouldSkip("A_MAXCOOLSETPOINTLIMIT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Writes the limit of AbsMinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); @@ -29294,7 +30361,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 30: { LogStep(30, "Writes the limit of MaxCoolSetpointLimit to MaxCoolSetpointLimit attribute"); @@ -29302,7 +30369,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 31: { LogStep(31, "Writes (sets back) the limit of MinHeatSetpointLimit to MinHeatSetpointLimit attribute"); @@ -29310,7 +30377,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 32: { LogStep(32, "Writes (sets back) the limit of MaxHeatSetpointLimit to MinHeatSetpointLimit attribute"); @@ -29318,7 +30385,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 33: { LogStep(33, "Writes (sets back) the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit attribute"); @@ -29326,7 +30393,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 34: { LogStep(34, "Writes (sets back) the limit of MaxHeatSetpointLimit to MaxHeatSetpointLimit attribute"); @@ -29334,7 +30401,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 35: { LogStep(35, "Writes (sets back) the limit of MinCoolSetpointLimit to MinCoolSetpointLimit attribute"); @@ -29342,7 +30409,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 36: { LogStep(36, "Writes (sets back) the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit attribute"); @@ -29350,7 +30417,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 37: { LogStep(37, "Writes (sets back) the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); @@ -29358,7 +30425,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 38: { LogStep(38, "Writes (sets back) the limit of MaxCoolSetpointLimit to MaxCoolSetpointLimit attribute"); @@ -29366,13 +30433,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 39: { LogStep(39, "Reads ControlSequenceOfOperation from Server DUT and verifies that the value is valid"); VerifyOrdo(!ShouldSkip("A_CONTROLSEQUENCEOFOPERATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::ControlSequenceOfOperation::Id); + Thermostat::Attributes::ControlSequenceOfOperation::Id, true, chip::NullOptional); } case 40: { LogStep(40, "Write Attribute command for ControlSequenceOfOperation with a new valid value"); @@ -29380,13 +30447,14 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand chip::app::Clusters::Thermostat::ThermostatControlSequence value; value = static_cast(2); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::ControlSequenceOfOperation::Id, value); + Thermostat::Attributes::ControlSequenceOfOperation::Id, value, chip::NullOptional, + chip::NullOptional); } case 41: { LogStep(41, "Read it back again to confirm the successful write"); VerifyOrdo(!ShouldSkip("A_CONTROLSEQUENCEOFOPERATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::ControlSequenceOfOperation::Id); + Thermostat::Attributes::ControlSequenceOfOperation::Id, true, chip::NullOptional); } case 42: { LogStep(42, "Sets OccupiedHeatingSetpoint to default value"); @@ -29394,7 +30462,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 43: { LogStep(43, "Sets OccupiedHeatingSetpoint to default value"); @@ -29402,7 +30471,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 44: { LogStep(44, "Sets OccupiedCoolingSetpoint to default value"); @@ -29410,7 +30480,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 45: { LogStep(45, "Sets OccupiedCoolingSetpoint to default value"); @@ -29418,7 +30489,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 46: { LogStep(46, "Sets OccupiedCoolingSetpoint to default value"); @@ -29426,7 +30498,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 47: { LogStep(47, "Sets OccupiedHeatingSetpoint to default value"); @@ -29434,7 +30507,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 48: { LogStep(48, "Sets OccupiedCoolingSetpoint to default value"); @@ -29442,7 +30516,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value); + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } case 49: { LogStep(49, "Sets OccupiedHeatingSetpoint to default value"); @@ -29450,7 +30525,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand int16_t value; value = 2000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value); + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -29576,13 +30652,13 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand case 1: { LogStep(1, "TH read ClusterRevision attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::ClusterRevision::Id); + ThermostatUserInterfaceConfiguration::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read the global attribute: AttributeList"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::AttributeList::Id); + ThermostatUserInterfaceConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 3: { LogStep(3, @@ -29597,12 +30673,14 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand case 4: { LogStep(4, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::AcceptedCommandList::Id); + ThermostatUserInterfaceConfiguration::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::GeneratedCommandList::Id); + ThermostatUserInterfaceConfiguration::Attributes::GeneratedCommandList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -29727,32 +30805,36 @@ class Test_TC_TSUIC_2_1Suite : public TestCommand case 1: { LogStep(1, "read the mandatory attribute: TemperatureDisplayMode"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "read the mandatory attribute: TemperatureDisplayMode"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "read the mandatory attribute: KeypadLockout"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, true, chip::NullOptional); } case 4: { LogStep(4, "read the mandatory attribute: KeypadLockout"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, true, chip::NullOptional); } case 5: { LogStep(5, "read the optional attribute: ScheduleProgrammingVisibility"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "read the optional attribute: ScheduleProgrammingVisibility"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -29905,7 +30987,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Verify device temperature displayed in °C"); @@ -29920,7 +31003,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 1; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Verify device temperature displayed in °F"); @@ -29935,7 +31019,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 2; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "Writes a value of 0 to KeypadLockout attribute of DUT"); @@ -29943,7 +31028,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 7: { LogStep(7, "Verify all device functionality available to the user"); @@ -29958,7 +31044,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 1; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 9: { LogStep(9, "Verify device operates at Level 1 reduced functionality"); @@ -29973,7 +31060,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 2; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 11: { LogStep(11, "Verify device operates at Level 2 reduced functionality"); @@ -29988,7 +31076,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 3; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 13: { LogStep(13, "Verify device operates at Level 3 reduced functionality"); @@ -30003,7 +31092,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 4; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 15: { LogStep(15, "Verify device operates at Level 4 reduced functionality"); @@ -30018,7 +31108,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 5; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 17: { LogStep(17, "Verify device operates at least functionality level"); @@ -30033,7 +31124,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 6; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id, value, chip::NullOptional, + chip::NullOptional); } case 19: { LogStep(19, "Writes a value of 0 to ScheduleProgrammingVisibility attribute of DUT"); @@ -30041,7 +31133,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, value, + chip::NullOptional, chip::NullOptional); } case 20: { LogStep(20, "Verify local schedule programming functionality is enabled at the thermostat"); @@ -30057,7 +31150,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 1; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, value, + chip::NullOptional, chip::NullOptional); } case 22: { LogStep(22, "Verify local schedule programming functionality is disabled at the thermostat"); @@ -30073,7 +31167,8 @@ class Test_TC_TSUIC_2_2Suite : public TestCommand uint8_t value; value = 2; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, - ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, value); + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -30157,12 +31252,14 @@ class Test_TC_DIAG_TH_NW_1_1Suite : public TestCommand LogStep(1, "Sends ResetCounts command"); chip::app::Clusters::ThreadNetworkDiagnostics::Commands::ResetCounts::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Commands::ResetCounts::Id, value); + ThreadNetworkDiagnostics::Commands::ResetCounts::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Read the Overruncount attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::OverrunCount::Id); + ThreadNetworkDiagnostics::Attributes::OverrunCount::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -30721,17 +31818,17 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand case 1: { LogStep(1, "Validate constraints of attribute: Channel"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::Channel::Id); + ThreadNetworkDiagnostics::Attributes::Channel::Id, true, chip::NullOptional); } case 2: { LogStep(2, "read RoutingRole atribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RoutingRole::Id); + ThreadNetworkDiagnostics::Attributes::RoutingRole::Id, true, chip::NullOptional); } case 3: { LogStep(3, "read NetworkName attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::NetworkName::Id); + ThreadNetworkDiagnostics::Attributes::NetworkName::Id, true, chip::NullOptional); } case 4: { LogStep(4, @@ -30747,7 +31844,7 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand case 5: { LogStep(5, "read PanId attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::PanId::Id); + ThreadNetworkDiagnostics::Attributes::PanId::Id, true, chip::NullOptional); } case 6: { LogStep(6, @@ -30763,7 +31860,7 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand case 7: { LogStep(7, "Validate constraints of attribute: ExtendedPanId"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::ExtendedPanId::Id); + ThreadNetworkDiagnostics::Attributes::ExtendedPanId::Id, true, chip::NullOptional); } case 8: { LogStep(8, @@ -30790,7 +31887,7 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand case 10: { LogStep(10, "Validate constraints of attribute: OverrunCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::OverrunCount::Id); + ThreadNetworkDiagnostics::Attributes::OverrunCount::Id, true, chip::NullOptional); } case 11: { LogStep( @@ -30828,242 +31925,243 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand case 14: { LogStep(14, "Validate constraints of attribute: PartitionId"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::PartitionId::Id); + ThreadNetworkDiagnostics::Attributes::PartitionId::Id, true, chip::NullOptional); } case 15: { LogStep(15, "Validate constraints of attribute: weighting"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::Weighting::Id); + ThreadNetworkDiagnostics::Attributes::Weighting::Id, true, chip::NullOptional); } case 16: { LogStep(16, "Validate constraints of attribute: DataVersion"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::DataVersion::Id); + ThreadNetworkDiagnostics::Attributes::DataVersion::Id, true, chip::NullOptional); } case 17: { LogStep(17, "Validate constraints of attribute: StableDataVersion"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::StableDataVersion::Id); + ThreadNetworkDiagnostics::Attributes::StableDataVersion::Id, true, chip::NullOptional); } case 18: { LogStep(18, "Validate constraints of attribute: LeaderRouterId"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::LeaderRouterId::Id); + ThreadNetworkDiagnostics::Attributes::LeaderRouterId::Id, true, chip::NullOptional); } case 19: { LogStep(19, "Validate constraints of attribute: DetachedRoleCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::DetachedRoleCount::Id); + ThreadNetworkDiagnostics::Attributes::DetachedRoleCount::Id, true, chip::NullOptional); } case 20: { LogStep(20, "Validate constraints of attribute: ChildRoleCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::ChildRoleCount::Id); + ThreadNetworkDiagnostics::Attributes::ChildRoleCount::Id, true, chip::NullOptional); } case 21: { LogStep(21, "Validate constraints of attribute: RouterRoleCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RouterRoleCount::Id); + ThreadNetworkDiagnostics::Attributes::RouterRoleCount::Id, true, chip::NullOptional); } case 22: { LogStep(22, "Validate constraints of attribute: LeaderRoleCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::LeaderRoleCount::Id); + ThreadNetworkDiagnostics::Attributes::LeaderRoleCount::Id, true, chip::NullOptional); } case 23: { LogStep(23, "Validate constraints of attribute: AttachAttemptCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::AttachAttemptCount::Id); + ThreadNetworkDiagnostics::Attributes::AttachAttemptCount::Id, true, chip::NullOptional); } case 24: { LogStep(24, "Validate constraints of attribute: PartitionIdChangeCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::PartitionIdChangeCount::Id); + ThreadNetworkDiagnostics::Attributes::PartitionIdChangeCount::Id, true, chip::NullOptional); } case 25: { LogStep(25, "Validate constraints of attribute: BetterPartitionAttachAttemptCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::BetterPartitionAttachAttemptCount::Id); + ThreadNetworkDiagnostics::Attributes::BetterPartitionAttachAttemptCount::Id, true, + chip::NullOptional); } case 26: { LogStep(26, "Validate constraints of attribute: ParentChangeCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::ParentChangeCount::Id); + ThreadNetworkDiagnostics::Attributes::ParentChangeCount::Id, true, chip::NullOptional); } case 27: { LogStep(27, "Validate constraints of attribute: TxTotalCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxTotalCount::Id); + ThreadNetworkDiagnostics::Attributes::TxTotalCount::Id, true, chip::NullOptional); } case 28: { LogStep(28, "Validate constraints of attribute: TxUnicastCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id, true, chip::NullOptional); } case 29: { LogStep(29, "Validate constraints of attribute: TxBroadcastCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id); + ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id, true, chip::NullOptional); } case 30: { LogStep(30, "Validate constraints of attribute: TxNoAckRequestedCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id); + ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id, true, chip::NullOptional); } case 31: { LogStep(31, "Validate constraints of attribute: TxDataCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxDataCount::Id); + ThreadNetworkDiagnostics::Attributes::TxDataCount::Id, true, chip::NullOptional); } case 32: { LogStep(32, "Validate constraints of attribute: TxDataPollCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id); + ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id, true, chip::NullOptional); } case 33: { LogStep(33, "Validate constraints of attribute: TxBeaconCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id); + ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id, true, chip::NullOptional); } case 34: { LogStep(34, "Validate constraints of attribute: TxBeaconRequestCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id); + ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id, true, chip::NullOptional); } case 35: { LogStep(35, "Validate constraints of attribute: TxOtherCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id); + ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id, true, chip::NullOptional); } case 36: { LogStep(36, "Validate constraints of attribute: TxRetryCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id); + ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id, true, chip::NullOptional); } case 37: { LogStep(37, "Validate constraints of attribute: TxDirectMaxRetryExpiryCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id); + ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id, true, chip::NullOptional); } case 38: { LogStep(38, "Validate constraints of attribute: TxIndirectMaxRetryExpiryCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id); + ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id, true, chip::NullOptional); } case 39: { LogStep(39, "Validate constraints of attribute: TxErrCcaCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id); + ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id, true, chip::NullOptional); } case 40: { LogStep(40, "Validate constraints of attribute: TxErrAbortCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id); + ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id, true, chip::NullOptional); } case 41: { LogStep(41, "Validate constraints of attribute: TxErrBusyChannelCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id); + ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id, true, chip::NullOptional); } case 42: { LogStep(42, "Validate constraints of attribute: RxTotalCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id); + ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id, true, chip::NullOptional); } case 43: { LogStep(43, "Validate constraints of attribute: RxUnicastCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id); + ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id, true, chip::NullOptional); } case 44: { LogStep(44, "Validate constraints of attribute: RxBroadcastCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id); + ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id, true, chip::NullOptional); } case 45: { LogStep(45, "Validate constraints of attribute: RxDataCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDataCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDataCount::Id, true, chip::NullOptional); } case 46: { LogStep(46, "Validate constraints of attribute: RxDataPollCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id, true, chip::NullOptional); } case 47: { LogStep(47, "Validate constraints of attribute: RxBeaconCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id); + ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id, true, chip::NullOptional); } case 48: { LogStep(48, "Validate constraints of attribute: RxBeaconRequestCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id); + ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id, true, chip::NullOptional); } case 49: { LogStep(49, "Validate constraints of attribute: RxOtherCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id); + ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id, true, chip::NullOptional); } case 50: { LogStep(50, "Validate constraints of attribute: RxAddressFilteredCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id); + ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id, true, chip::NullOptional); } case 51: { LogStep(51, "Validate constraints of attribute: RxDestAddrFilteredCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id, true, chip::NullOptional); } case 52: { LogStep(52, "Validate constraints of attribute: RxDuplicatedCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id, true, chip::NullOptional); } case 53: { LogStep(53, "Validate constraints of attribute: RxErrNoFrameCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id, true, chip::NullOptional); } case 54: { LogStep(54, "Validate constraints of attribute: RxErrUnknownNeighborCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id, true, chip::NullOptional); } case 55: { LogStep(55, "Validate constraints of attribute: RxErrInvalidSrcAddrCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id, true, chip::NullOptional); } case 56: { LogStep(56, "Validate constraints of attribute: RxErrInvalidSrcAddrCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id, true, chip::NullOptional); } case 57: { LogStep(57, "Validate constraints of attribute: RxErrFcsCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id, true, chip::NullOptional); } case 58: { LogStep(58, "Validate constraints of attribute: RxErrOtherCount"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id, true, chip::NullOptional); } case 59: { LogStep(59, "Validate constraints of attribute: ActiveTimestamp"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::ActiveTimestamp::Id); + ThreadNetworkDiagnostics::Attributes::ActiveTimestamp::Id, true, chip::NullOptional); } case 60: { LogStep(60, "Validate constraints of attribute: PendingTimestamp"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::PendingTimestamp::Id); + ThreadNetworkDiagnostics::Attributes::PendingTimestamp::Id, true, chip::NullOptional); } case 61: { LogStep(61, "Validate constraints of attribute: delay"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::Delay::Id); + ThreadNetworkDiagnostics::Attributes::Delay::Id, true, chip::NullOptional); } case 62: { LogStep(62, "read SecurityPolicy struct attribute from DUT and Verify the each field"); @@ -31077,7 +32175,7 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand case 63: { LogStep(63, "Validate constraints of attribute: ChannelPage0Mask"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::ChannelMask::Id); + ThreadNetworkDiagnostics::Attributes::ChannelMask::Id, true, chip::NullOptional); } case 64: { LogStep(64, "read OperationalDatasetComponents struct attribute from DUT and Verify the each field"); @@ -31092,7 +32190,7 @@ class Test_TC_DIAG_TH_NW_1_2Suite : public TestCommand LogStep(65, "read ActiveNetworkFaults attribute value"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::ActiveNetworkFaultsList::Id); + ThreadNetworkDiagnostics::Attributes::ActiveNetworkFaultsList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -31300,87 +32398,87 @@ class Test_TC_DIAG_TH_NW_2_2Suite : public TestCommand case 1: { LogStep(1, "TH reads TxTotalCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxTotalCount::Id); + ThreadNetworkDiagnostics::Attributes::TxTotalCount::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads TxUnicastCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id, true, chip::NullOptional); } case 3: { LogStep(3, "TH reads TxBroadcastCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id); + ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH reads TxAckRequestedCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id); + ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id, true, chip::NullOptional); } case 5: { LogStep(5, "TH reads TxAckedCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id); + ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH reads TxNoAckRequestedCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id); + ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id, true, chip::NullOptional); } case 7: { LogStep(7, "TH reads TxDataCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxDataCount::Id); + ThreadNetworkDiagnostics::Attributes::TxDataCount::Id, true, chip::NullOptional); } case 8: { LogStep(8, "TH reads TxDataPollCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id); + ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id, true, chip::NullOptional); } case 9: { LogStep(9, "TH reads TxBeaconCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id); + ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id, true, chip::NullOptional); } case 10: { LogStep(10, "TH reads TxBeaconRequestCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id); + ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id, true, chip::NullOptional); } case 11: { LogStep(11, "TH reads TxOtherCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id); + ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id, true, chip::NullOptional); } case 12: { LogStep(12, "TH reads TxRetryCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id); + ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id, true, chip::NullOptional); } case 13: { LogStep(13, "TH reads TxDirectMaxRetryExpiryCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id); + ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id, true, chip::NullOptional); } case 14: { LogStep(14, "TH reads TxIndirectMaxRetryExpiryCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id); + ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id, true, chip::NullOptional); } case 15: { LogStep(15, "TH reads TxErrCcaCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id); + ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id, true, chip::NullOptional); } case 16: { LogStep(16, "TH reads TxErrAbortCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id); + ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id, true, chip::NullOptional); } case 17: { LogStep(17, "TH reads TxErrBusyChannelCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id); + ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -31584,67 +32682,67 @@ class Test_TC_DIAG_TH_NW_2_3Suite : public TestCommand case 1: { LogStep(1, "TH reads RxTotalCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id); + ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads RxUnicastCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id); + ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id, true, chip::NullOptional); } case 3: { LogStep(3, "TH reads RxBroadcastCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id); + ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH reads RxDataCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDataCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDataCount::Id, true, chip::NullOptional); } case 5: { LogStep(5, "TH reads RxDataPollCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH reads RxBeaconCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id); + ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id, true, chip::NullOptional); } case 7: { LogStep(7, "TH reads RxBeaconRequestCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id); + ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id, true, chip::NullOptional); } case 8: { LogStep(8, "TH reads RxOtherCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id); + ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id, true, chip::NullOptional); } case 9: { LogStep(9, "TH reads RxAddressFilteredCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id); + ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id, true, chip::NullOptional); } case 10: { LogStep(10, "TH reads RxDestAddrFilteredCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id, true, chip::NullOptional); } case 11: { LogStep(11, "TH reads RxDuplicatedCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id); + ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id, true, chip::NullOptional); } case 12: { LogStep(12, "TH reads RxErrNoFrameCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id, true, chip::NullOptional); } case 13: { LogStep(13, "TH reads RxErrUnknownNeighborCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id, true, chip::NullOptional); } case 14: { LogStep(14, "TH reads RxErrInvalidScrAddrCount attribute value from DUT and verify data type"); @@ -31658,17 +32756,17 @@ class Test_TC_DIAG_TH_NW_2_3Suite : public TestCommand case 15: { LogStep(15, "TH reads RxErrSecCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id, true, chip::NullOptional); } case 16: { LogStep(16, "TH reads RxErrFcsCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id, true, chip::NullOptional); } case 17: { LogStep(17, "TH reads RxErrOtherCount attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id); + ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -31745,7 +32843,8 @@ class Test_TC_LC_1_2Suite : public TestCommand } case 1: { LogStep(1, "TH1 reads LabelList attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), UserLabel::Id, UserLabel::Attributes::LabelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), UserLabel::Id, UserLabel::Attributes::LabelList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -31871,32 +32970,32 @@ class Test_TC_WIFIDIAG_1_1Suite : public TestCommand case 1: { LogStep(1, "Reads NetworkInterface structure attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, - GeneralDiagnostics::Attributes::NetworkInterfaces::Id); + GeneralDiagnostics::Attributes::NetworkInterfaces::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Reads SecurityType attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + WiFiNetworkDiagnostics::Attributes::SecurityType::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads SecurityType attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + WiFiNetworkDiagnostics::Attributes::SecurityType::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads WiFiVersion attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Reads ChannelNumber attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Reads RSSI attribute constraints"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::Rssi::Id); + WiFiNetworkDiagnostics::Attributes::Rssi::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -32021,43 +33120,45 @@ class Test_TC_WIFIDIAG_3_1Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::WiFiNetworkDiagnostics::Commands::ResetCounts::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Commands::ResetCounts::Id, value); + WiFiNetworkDiagnostics::Commands::ResetCounts::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Reads BeaconLostCount attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads BeaconRxCount attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads PacketMulticastRxCount attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Reads PacketMulticastTxCount attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Reads PacketUnicastRxCount attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Reads PacketUnicastTxCount attribute from DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -32217,16 +33318,18 @@ class Test_TC_WNCV_1_1Suite : public TestCommand case 1: { LogStep(1, "TH reads from the DUT the (0xFFFD) ClusterRevision attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::ClusterRevision::Id); + WindowCovering::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads from the DUT the (0xFFFC) FeatureMap attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "TH reads from the DUT the (0xFFFB) AttributeList attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "TH reads from the DUT the (0xFFFA) EventList attribute"); @@ -32241,12 +33344,12 @@ class Test_TC_WNCV_1_1Suite : public TestCommand LogStep(5, "TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::AcceptedCommandList::Id); + WindowCovering::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::GeneratedCommandList::Id); + WindowCovering::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -32717,85 +33820,93 @@ class Test_TC_WNCV_2_1Suite : public TestCommand } case 1: { LogStep(1, "2: read the RO mandatory attribute default: Type"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "3a: write a value into the RO mandatory attribute: Type"); chip::app::Clusters::WindowCovering::Type value; value = static_cast(250); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, value, + chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "3b: reads back the RO mandatory attribute: Type"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "2: read the RO mandatory attribute default: ConfigStatus"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "3a: write a value into the RO mandatory attribute: ConfigStatus"); chip::BitFlags value; value = static_cast>(128); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "3b: reads back the RO mandatory attribute: ConfigStatus"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "2: read the RO mandatory attribute default: OperationalStatus"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 8: { LogStep(8, "3a: write a value into the RO mandatory attribute: OperationalStatus"); uint8_t value; value = 128; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id, value); + WindowCovering::Attributes::OperationalStatus::Id, value, chip::NullOptional, chip::NullOptional); } case 9: { LogStep(9, "3b: reads back the RO mandatory attribute: OperationalStatus"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 10: { LogStep(10, "2: read the RO mandatory attribute default: EndProductType"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::EndProductType::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id, + true, chip::NullOptional); } case 11: { LogStep(11, "3a: write a value into the RO mandatory attribute: EndProductType"); chip::app::Clusters::WindowCovering::EndProductType value; value = static_cast(250); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::EndProductType::Id, value); + WindowCovering::Attributes::EndProductType::Id, value, chip::NullOptional, chip::NullOptional); } case 12: { LogStep(12, "3b: reads back the RO mandatory attribute: EndProductType"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::EndProductType::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id, + true, chip::NullOptional); } case 13: { LogStep(13, "2: read the RW mandatory attribute default: Mode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "3a: write a value into the RW mandatory attribute:: Mode"); chip::BitFlags value; value = static_cast>(8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 15: { LogStep(15, "3b: reads back the RW mandatory attribute: Mode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "2: read the RO optional attribute default: TargetPositionLiftPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3a: write a value into the RO optional attribute: TargetPositionLiftPercent100ths"); @@ -32803,17 +33914,18 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 20000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, value); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, value, chip::NullOptional, + chip::NullOptional); } case 18: { LogStep(18, "3b: reads back the RO optional attribute: TargetPositionLiftPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 19: { LogStep(19, "2: read the RO optional attribute default: TargetPositionTiltPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 20: { LogStep(20, "3a: write a value into the RO optional attribute: TargetPositionTiltPercent100ths"); @@ -32821,17 +33933,18 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 20000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, value); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, value, chip::NullOptional, + chip::NullOptional); } case 21: { LogStep(21, "3b: reads back the RO optional attribute: TargetPositionTiltPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 22: { LogStep(22, "2: read the RO optional attribute default: CurrentPositionLiftPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 23: { LogStep(23, "3a: write a value into the RO optional attribute: CurrentPositionLiftPercent100ths"); @@ -32839,17 +33952,18 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 20000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, value); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, value, chip::NullOptional, + chip::NullOptional); } case 24: { LogStep(24, "3b: reads back the RO optional attribute: CurrentPositionLiftPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 25: { LogStep(25, "2: read the RO optional attribute default: CurrentPositionTiltPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 26: { LogStep(26, "3a: write a value into the RO optional attribute: CurrentPositionTiltPercent100ths"); @@ -32857,100 +33971,107 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 20000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, value); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, value, chip::NullOptional, + chip::NullOptional); } case 27: { LogStep(27, "3b: reads back the RO optional attribute: CurrentPositionTiltPercent100ths"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 28: { LogStep(28, "2: read the RO optional attribute default: InstalledOpenLimitLift"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledOpenLimitLift::Id); + WindowCovering::Attributes::InstalledOpenLimitLift::Id, true, chip::NullOptional); } case 29: { LogStep(29, "3a: write a value into the RO optional attribute: InstalledOpenLimitLift"); uint16_t value; value = 255U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledOpenLimitLift::Id, value); + WindowCovering::Attributes::InstalledOpenLimitLift::Id, value, chip::NullOptional, + chip::NullOptional); } case 30: { LogStep(30, "3b: reads back the RO optional attribute: InstalledOpenLimitLift"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledOpenLimitLift::Id); + WindowCovering::Attributes::InstalledOpenLimitLift::Id, true, chip::NullOptional); } case 31: { LogStep(31, "2: read the RO optional attribute default: InstalledClosedLimitLift"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledClosedLimitLift::Id); + WindowCovering::Attributes::InstalledClosedLimitLift::Id, true, chip::NullOptional); } case 32: { LogStep(32, "3a: write a value into the RO optional attribute: InstalledClosedLimitLift"); uint16_t value; value = 255U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledClosedLimitLift::Id, value); + WindowCovering::Attributes::InstalledClosedLimitLift::Id, value, chip::NullOptional, + chip::NullOptional); } case 33: { LogStep(33, "3b: reads back the RO optional attribute: InstalledClosedLimitLift"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledClosedLimitLift::Id); + WindowCovering::Attributes::InstalledClosedLimitLift::Id, true, chip::NullOptional); } case 34: { LogStep(34, "2: read the RO optional attribute default: InstalledOpenLimitTilt"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledOpenLimitTilt::Id); + WindowCovering::Attributes::InstalledOpenLimitTilt::Id, true, chip::NullOptional); } case 35: { LogStep(35, "3a: write a value into the RO optional attribute: InstalledOpenLimitTilt"); uint16_t value; value = 255U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledOpenLimitTilt::Id, value); + WindowCovering::Attributes::InstalledOpenLimitTilt::Id, value, chip::NullOptional, + chip::NullOptional); } case 36: { LogStep(36, "3b: reads back the RO optional attribute: InstalledOpenLimitTilt"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledOpenLimitTilt::Id); + WindowCovering::Attributes::InstalledOpenLimitTilt::Id, true, chip::NullOptional); } case 37: { LogStep(37, "2: read the RO optional attribute default: InstalledClosedLimitTilt"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledClosedLimitTilt::Id); + WindowCovering::Attributes::InstalledClosedLimitTilt::Id, true, chip::NullOptional); } case 38: { LogStep(38, "3a: write a value into the RO optional attribute: InstalledClosedLimitTilt"); uint16_t value; value = 255U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledClosedLimitTilt::Id, value); + WindowCovering::Attributes::InstalledClosedLimitTilt::Id, value, chip::NullOptional, + chip::NullOptional); } case 39: { LogStep(39, "3b: reads back the RO optional attribute: InstalledClosedLimitTilt"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::InstalledClosedLimitTilt::Id); + WindowCovering::Attributes::InstalledClosedLimitTilt::Id, true, chip::NullOptional); } case 40: { LogStep(40, "4: read the RO mandatory attribute default: SafetyStatus"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id, + true, chip::NullOptional); } case 41: { LogStep(41, "5a: write a value into the RO mandatory attribute: SafetyStatus"); uint16_t value; value = 4096U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 42: { LogStep(42, "5b: reads back the RO mandatory attribute: SafetyStatus"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id, + true, chip::NullOptional); } case 43: { LogStep(43, "4: read the RO optional attribute default: CurrentPositionLift"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLift::Id); + WindowCovering::Attributes::CurrentPositionLift::Id, true, chip::NullOptional); } case 44: { LogStep(44, "5a: write a value into the RO optional attribute: CurrentPositionLift"); @@ -32958,17 +34079,18 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 255U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLift::Id, value); + WindowCovering::Attributes::CurrentPositionLift::Id, value, chip::NullOptional, + chip::NullOptional); } case 45: { LogStep(45, "5b: reads back the RO optional attribute: CurrentPositionLift"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLift::Id); + WindowCovering::Attributes::CurrentPositionLift::Id, true, chip::NullOptional); } case 46: { LogStep(46, "4: read the RO optional attribute default: CurrentPositionTilt"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTilt::Id); + WindowCovering::Attributes::CurrentPositionTilt::Id, true, chip::NullOptional); } case 47: { LogStep(47, "5a: write a value into the RO optional attribute: CurrentPositionTilt"); @@ -32976,17 +34098,18 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 255U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTilt::Id, value); + WindowCovering::Attributes::CurrentPositionTilt::Id, value, chip::NullOptional, + chip::NullOptional); } case 48: { LogStep(48, "5b: reads back the RO optional attribute: CurrentPositionTilt"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTilt::Id); + WindowCovering::Attributes::CurrentPositionTilt::Id, true, chip::NullOptional); } case 49: { LogStep(49, "4: read the RO optional attribute default: CurrentPositionLiftPercentage"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 50: { LogStep(50, "5a: write a value into the RO optional attribute: CurrentPositionLiftPercentage"); @@ -32994,17 +34117,18 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, value); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, value, chip::NullOptional, + chip::NullOptional); } case 51: { LogStep(51, "5b: reads back the RO optional attribute: CurrentPositionLiftPercentage"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 52: { LogStep(52, "4: read the RO optional attribute default: CurrentPositionTiltPercentage"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 53: { LogStep(53, "5a: write a value into the RO optional attribute: CurrentPositionTiltPercentage"); @@ -33012,12 +34136,13 @@ class Test_TC_WNCV_2_1Suite : public TestCommand value.SetNonNull(); value.Value() = 200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, value); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, value, chip::NullOptional, + chip::NullOptional); } case 54: { LogStep(54, "5b: reads back the RO optional attribute: CurrentPositionTiltPercentage"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -33291,110 +34416,132 @@ class Test_TC_WNCV_2_3Suite : public TestCommand VerifyOrdo(!ShouldSkip("WNCV_REVERSAL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::BitFlags value; value = static_cast>(1); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "1b: TH reads ConfigStatus attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_REVERSAL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "1c: TH clear the Mode Attribute bit0 of the DUT"); VerifyOrdo(!ShouldSkip("WNCV_REVERSAL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::BitFlags value; value = static_cast>(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "1d: TH reads ConfigStatus attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_REVERSAL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "2a: TH set the Mode Attribute bit1 of the DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::BitFlags value; value = static_cast>(2); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "2b: TH reads ConfigStatus attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "2c: If (ConfigStatus bit0 == 0) TH send DownOrClose command to the DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "2d: TH clear the Mode Attribute bit1 of the DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::BitFlags value; value = static_cast>(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 9: { LogStep(9, "2e: TH reads ConfigStatus attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "2f: TH reads the Mode Attribute from the DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "2g: TH send DownOrClose command to the DUT"); VerifyOrdo(!ShouldSkip("WNCV_CALIBRATION"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "3a: TH set the Mode Attribute bit2 of the DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::BitFlags value; value = static_cast>(4); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "3c: TH reads ConfigStatus attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "3c: TH send DownOrClose command to the DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "3d: TH clear the Mode Attribute bit2 of the DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::BitFlags value; value = static_cast>(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "3e: TH reads ConfigStatus attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "3f: TH reads the Mode Attribute from the DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "3g: TH send DownOrClose command to the DUT"); VerifyOrdo(!ShouldSkip("WNCV_MAINTENANCE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -33483,12 +34630,14 @@ class Test_TC_WNCV_2_4Suite : public TestCommand case 1: { LogStep(1, "Reads Type attribute from DUT"); VerifyOrdo(!ShouldSkip("A_TYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Reads Type attribute constraints"); VerifyOrdo(!ShouldSkip("A_TYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -33577,14 +34726,14 @@ class Test_TC_WNCV_2_5Suite : public TestCommand case 1: { LogStep(1, "Reads EndProductType attribute from DUT"); VerifyOrdo(!ShouldSkip("A_ENDPRODUCTTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::EndProductType::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Reads EndProductType attribute constraints from DUT"); VerifyOrdo(!ShouldSkip("A_ENDPRODUCTTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::EndProductType::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -33833,8 +34982,10 @@ class Test_TC_WNCV_3_1Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends DownOrClose command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH Waits for 10 seconds movement(s) on the device"); @@ -33846,37 +34997,41 @@ class Test_TC_WNCV_3_1Suite : public TestCommand LogStep(3, "1c: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 4: { LogStep(4, "1d: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 5: { LogStep(5, "1e: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 6: { LogStep(6, "1f: If (PA & TL) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 7: { LogStep(7, "2: Subscribe to DUT reports on OperationalStatus attribute"); return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id, 4, 5); + WindowCovering::Attributes::OperationalStatus::Id, 4, 5, true, chip::NullOptional, + chip::NullOptional); } case 8: { LogStep(8, "2a: TH sends UpOrOpen command to DUT"); chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "2b: DUT updates its attributes"); @@ -33888,13 +35043,13 @@ class Test_TC_WNCV_3_1Suite : public TestCommand LogStep(10, "2c: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 11: { LogStep(11, "2d: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 12: { LogStep(12, "2e: TH leave the device moving for 2 seconds"); @@ -33916,32 +35071,35 @@ class Test_TC_WNCV_3_1Suite : public TestCommand LogStep(15, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 16: { LogStep(16, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 18: { LogStep(18, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 19: { LogStep(19, "4a: TH sends a StopMotion command to DUT"); chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value, + chip::NullOptional + + ); } case 20: { LogStep(20, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); @@ -33952,7 +35110,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand case 21: { LogStep(21, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 22: { LogStep(22, "5a: TH waits for x seconds attributes update on the device"); @@ -33964,13 +35122,13 @@ class Test_TC_WNCV_3_1Suite : public TestCommand LogStep(23, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 24: { LogStep(24, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -34219,7 +35377,10 @@ class Test_TC_WNCV_3_2Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends UpOrOpen command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH Waits for 10 seconds movement(s) on the device"); @@ -34231,38 +35392,41 @@ class Test_TC_WNCV_3_2Suite : public TestCommand LogStep(3, "1c: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 4: { LogStep(4, "1d: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 5: { LogStep(5, "1e: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 6: { LogStep(6, "1f: If (PA & TL) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 7: { LogStep(7, "2: Subscribe to DUT reports on OperationalStatus attribute"); return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id, 4, 5); + WindowCovering::Attributes::OperationalStatus::Id, 4, 5, true, chip::NullOptional, + chip::NullOptional); } case 8: { LogStep(8, "2a: TH sends DownOrClose command to DUT"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "2b: DUT updates its attributes"); @@ -34274,13 +35438,13 @@ class Test_TC_WNCV_3_2Suite : public TestCommand LogStep(10, "2c: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 11: { LogStep(11, "2d: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 12: { LogStep(12, "2e: TH leave the device moving for 2 seconds"); @@ -34302,32 +35466,35 @@ class Test_TC_WNCV_3_2Suite : public TestCommand LogStep(15, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 16: { LogStep(16, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 18: { LogStep(18, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 19: { LogStep(19, "4a: TH sends a StopMotion command to DUT"); chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value, + chip::NullOptional + + ); } case 20: { LogStep(20, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); @@ -34338,7 +35505,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand case 21: { LogStep(21, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 22: { LogStep(22, "5a: TH waits for x seconds attributes update on the device"); @@ -34350,13 +35517,13 @@ class Test_TC_WNCV_3_2Suite : public TestCommand LogStep(23, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 24: { LogStep(24, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -34534,8 +35701,10 @@ class Test_TC_WNCV_3_3Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends DownOrClose command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH Waits for 6-8 seconds movement(s) on the device"); @@ -34546,7 +35715,10 @@ class Test_TC_WNCV_3_3Suite : public TestCommand case 3: { LogStep(3, "1c: TH sends UpOrOpen command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "1d: TH Waits for 2 seconds movement(s) on the device"); @@ -34557,12 +35729,16 @@ class Test_TC_WNCV_3_3Suite : public TestCommand case 5: { LogStep(5, "2: Subscribe to DUT reports on OperationalStatus attribute"); return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id, 4, 5); + WindowCovering::Attributes::OperationalStatus::Id, 4, 5, true, chip::NullOptional, + chip::NullOptional); } case 6: { LogStep(6, "2a: TH sends a StopMotion command to DUT"); chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "2b: TH waits for 3 seconds the end of inertial movement(s) on the device"); @@ -34583,13 +35759,13 @@ class Test_TC_WNCV_3_3Suite : public TestCommand case 10: { LogStep(10, "2e: TH reads OperationalStatus attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 11: { LogStep(11, "3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 12: { LogStep(12, @@ -34597,13 +35773,13 @@ class Test_TC_WNCV_3_3Suite : public TestCommand "CurrentPositionLiftPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 13: { LogStep(13, "4a: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 14: { LogStep(14, @@ -34611,7 +35787,7 @@ class Test_TC_WNCV_3_3Suite : public TestCommand "CurrentPositionTiltPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -34736,8 +35912,10 @@ class Test_TC_WNCV_3_4Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends DownOrClose command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH Waits for fastMotionDuration seconds movement(s) on the device"); @@ -34748,7 +35926,10 @@ class Test_TC_WNCV_3_4Suite : public TestCommand case 3: { LogStep(3, "2a: TH sends UpOrOpen command to DUT"); chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "2b: TH Waits for fullMotionDuration seconds movement(s) on the device"); @@ -34760,27 +35941,27 @@ class Test_TC_WNCV_3_4Suite : public TestCommand LogStep(5, "3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 6: { LogStep(6, "3b: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 7: { LogStep(7, "3c: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 8: { LogStep(8, "3d: If (PA & TL) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -34905,7 +36086,10 @@ class Test_TC_WNCV_3_5Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends UpOrOpen command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH Waits for fastMotionDuration seconds movement(s) on the device"); @@ -34916,8 +36100,10 @@ class Test_TC_WNCV_3_5Suite : public TestCommand case 3: { LogStep(3, "2a: TH sends DownOrClose command to DUT"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "2b: TH Waits for fullMotionDuration seconds movement(s) on the device"); @@ -34929,27 +36115,27 @@ class Test_TC_WNCV_3_5Suite : public TestCommand LogStep(5, "3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 6: { LogStep(6, "3b: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 7: { LogStep(7, "3c: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 8: { LogStep(8, "3d: If (PA & TL) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -35129,8 +36315,10 @@ class Test_TC_WNCV_4_1Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends DownOrClose command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH waits for x seconds movement(s) on the DUT"); @@ -35142,7 +36330,7 @@ class Test_TC_WNCV_4_1Suite : public TestCommand LogStep(3, "1c: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 4: { LogStep(4, "2a: TH sends GoToLiftPercentage command with 25 percent to DUT"); @@ -35150,7 +36338,9 @@ class Test_TC_WNCV_4_1Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type value; value.liftPercent100thsValue = 2500U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "2b: DUT updates its attributes"); @@ -35162,7 +36352,7 @@ class Test_TC_WNCV_4_1Suite : public TestCommand LogStep(6, "2c: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 7: { LogStep(7, "3a: TH set a timeout of X minutes for failure"); @@ -35173,20 +36363,20 @@ class Test_TC_WNCV_4_1Suite : public TestCommand case 8: { LogStep(8, "3b: TH reads OperationalStatus attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 9: { LogStep(9, "3c: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 10: { LogStep(10, "3d: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } case 11: { LogStep(11, "4a: TH sends GoToLiftPercentage command with 75.20 percent to DUT"); @@ -35194,7 +36384,9 @@ class Test_TC_WNCV_4_1Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type value; value.liftPercent100thsValue = 7520U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id, - value); + value, chip::NullOptional + + ); } case 12: { LogStep(12, "4b: DUT updates its attributes"); @@ -35206,7 +36398,7 @@ class Test_TC_WNCV_4_1Suite : public TestCommand LogStep(13, "4c: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id); + WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 14: { LogStep(14, "5a: TH waits for x seconds movement(s) on the DUT"); @@ -35217,20 +36409,20 @@ class Test_TC_WNCV_4_1Suite : public TestCommand case 15: { LogStep(15, "5b: TH reads OperationalStatus attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 16: { LogStep(16, "5c: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 17: { LogStep(17, "5d: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_LF && WNCV_LF && A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercentage::Id); + WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -35410,8 +36602,10 @@ class Test_TC_WNCV_4_2Suite : public TestCommand case 1: { LogStep(1, "1a: TH sends DownOrClose command to preposition the DUT in the opposite direction"); chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1b: TH waits for x seconds movement(s) on the DUT"); @@ -35423,7 +36617,7 @@ class Test_TC_WNCV_4_2Suite : public TestCommand LogStep(3, "1c: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 4: { LogStep(4, "2a: TH sends GoToTiltPercentage command with 30 percent to DUT"); @@ -35431,7 +36625,9 @@ class Test_TC_WNCV_4_2Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type value; value.tiltPercent100thsValue = 3000U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "2b: DUT updates its attributes"); @@ -35443,7 +36639,7 @@ class Test_TC_WNCV_4_2Suite : public TestCommand LogStep(6, "2c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 7: { LogStep(7, "3a: TH set a timeout of X minutes for failure"); @@ -35454,20 +36650,20 @@ class Test_TC_WNCV_4_2Suite : public TestCommand case 8: { LogStep(8, "3b: TH reads OperationalStatus attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 9: { LogStep(9, "3c: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 10: { LogStep(10, "3d: If (PA & TL) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 11: { LogStep(11, "4a: TH sends GoToTiltPercentage command with 60.20 percent to DUT"); @@ -35475,7 +36671,9 @@ class Test_TC_WNCV_4_2Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type value; value.tiltPercent100thsValue = 6005U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id, - value); + value, chip::NullOptional + + ); } case 12: { LogStep(12, "4b: DUT updates its attributes"); @@ -35487,7 +36685,7 @@ class Test_TC_WNCV_4_2Suite : public TestCommand LogStep(13, "4c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id); + WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 14: { LogStep(14, "5a: TH waits for x seconds movement(s) on the DUT"); @@ -35498,20 +36696,20 @@ class Test_TC_WNCV_4_2Suite : public TestCommand case 15: { LogStep(15, "5b: TH reads OperationalStatus attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::OperationalStatus::Id); + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 16: { LogStep(16, "5c: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 17: { LogStep(17, "5d: If (PA & TL) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrdo(!ShouldSkip("WNCV_PA_TL && WNCV_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -35604,7 +36802,7 @@ class Test_TC_WNCV_4_3Suite : public TestCommand LogStep(1, "1a: If (PA_LF & LF) TH reads CurrentPositionLiftPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 2: { LogStep(2, "2b: TH sends GoToLiftPercentage command with BadParam to DUT"); @@ -35613,7 +36811,9 @@ class Test_TC_WNCV_4_3Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type value; value.liftPercent100thsValue = 12288U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id, - value); + value, chip::NullOptional + + ); } case 3: { LogStep(3, "3a: TH sends GoToLiftPercentage command with 10001 to DUT"); @@ -35622,7 +36822,9 @@ class Test_TC_WNCV_4_3Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type value; value.liftPercent100thsValue = 10001U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id, - value); + value, chip::NullOptional + + ); } case 4: { LogStep(4, "4a: TH sends GoToLiftPercentage command with 0xFFFF to DUT"); @@ -35631,7 +36833,9 @@ class Test_TC_WNCV_4_3Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type value; value.liftPercent100thsValue = 65535U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id, - value); + value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -35735,14 +36939,14 @@ class Test_TC_WNCV_4_4Suite : public TestCommand LogStep(1, "1a: If (PA_TL & TL) TH reads CurrentPositionTiltPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 2: { LogStep(2, "1b: If (PA_TL & TL) TH reads CurrentPositionTiltPercentage from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercentage::Id); + WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } case 3: { LogStep(3, "2b: TH sends GoToTiltPercentage command with BadParam to DUT"); @@ -35751,7 +36955,9 @@ class Test_TC_WNCV_4_4Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type value; value.tiltPercent100thsValue = 12288U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id, - value); + value, chip::NullOptional + + ); } case 4: { LogStep(4, "3a: TH sends GoToTiltPercentage command with 10001 to DUT"); @@ -35760,7 +36966,9 @@ class Test_TC_WNCV_4_4Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type value; value.tiltPercent100thsValue = 10001U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "4a: TH sends GoToTiltPercentage command with 0xFFFF to DUT"); @@ -35769,7 +36977,9 @@ class Test_TC_WNCV_4_4Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type value; value.tiltPercent100thsValue = 65535U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id, - value); + value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -35936,7 +37146,10 @@ class Test_TC_WNCV_4_5Suite : public TestCommand case 1: { LogStep(1, "0b: TH sends UpOrOpen command to preposition the DUT"); chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "1a: If (PA_LF & LF) TH sends GoToLiftPercentage command with 90%% to DUT"); @@ -35944,7 +37157,9 @@ class Test_TC_WNCV_4_5Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type value; value.liftPercent100thsValue = 9000U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id, - value); + value, chip::NullOptional + + ); } case 3: { LogStep(3, "1b: TH Waits for 100ms-1s"); @@ -35955,7 +37170,10 @@ class Test_TC_WNCV_4_5Suite : public TestCommand case 4: { LogStep(4, "1c: TH sends StopMotion command to DUT"); chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "1d: TH Waits for 100ms-1s"); @@ -35969,7 +37187,9 @@ class Test_TC_WNCV_4_5Suite : public TestCommand chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type value; value.tiltPercent100thsValue = 9000U; return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id, - value); + value, chip::NullOptional + + ); } case 7: { LogStep(7, "2b: TH Waits for 100ms-1s"); @@ -35980,7 +37200,10 @@ class Test_TC_WNCV_4_5Suite : public TestCommand case 8: { LogStep(8, "2c: TH sends StopMotion command to DUT"); chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "2d: TH Waits for 100ms-1s"); @@ -35992,13 +37215,13 @@ class Test_TC_WNCV_4_5Suite : public TestCommand LogStep(10, "3a: TH reads CurrentPositionLiftPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 11: { LogStep(11, "3b: TH reads CurrentPositionTiltPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 12: { LogStep(12, "3c: reboot/restart the DUT"); @@ -36015,13 +37238,13 @@ class Test_TC_WNCV_4_5Suite : public TestCommand LogStep(14, "3e: TH reads CurrentPositionLiftPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_LF && WNCV_PA_LF"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } case 15: { LogStep(15, "3f: TH reads CurrentPositionTiltPercent100ths from DUT"); VerifyOrdo(!ShouldSkip("WNCV_TL && WNCV_PA_TL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, - WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id); + WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -36130,12 +37353,13 @@ class TV_TargetNavigatorClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute Target Navigator list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::TargetList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::TargetList::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read attribute current navigator target"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::CurrentTarget::Id); + TargetNavigator::Attributes::CurrentTarget::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Navigate Target Request Command"); @@ -36144,7 +37368,9 @@ class TV_TargetNavigatorClusterSuite : public TestCommand value.data.Emplace(); value.data.Value() = chip::Span("1garbage: not in length on purpose", 1); return SendCommand(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Commands::NavigateTarget::Id, - value); + value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -36276,28 +37502,37 @@ class TV_AudioOutputClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute Audio Output list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read attribute current audio output"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Attributes::CurrentOutput::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Attributes::CurrentOutput::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Select Output Command"); chip::app::Clusters::AudioOutput::Commands::SelectOutput::Type value; value.index = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Commands::SelectOutput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Commands::SelectOutput::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Rename Output Command"); chip::app::Clusters::AudioOutput::Commands::RenameOutput::Type value; value.index = 1; value.name = chip::Span("HDMI Testgarbage: not in length on purpose", 9); - return SendCommand(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Commands::RenameOutput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Commands::RenameOutput::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Read attribute Audio Output list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(2), AudioOutput::Id, AudioOutput::Attributes::OutputList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -36423,12 +37658,12 @@ class TV_ApplicationLauncherClusterSuite : public TestCommand case 1: { LogStep(1, "Read attribute Application Launcher list"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::CatalogList::Id); + ApplicationLauncher::Attributes::CatalogList::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read attribute application launcher app"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::CurrentApp::Id); + ApplicationLauncher::Attributes::CurrentApp::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Launch App Command"); @@ -36440,7 +37675,9 @@ class TV_ApplicationLauncherClusterSuite : public TestCommand value.data.Emplace(); value.data.Value() = chip::ByteSpan(chip::Uint8::from_const_char("datagarbage: not in length on purpose"), 4); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Commands::LaunchApp::Id, value); + ApplicationLauncher::Commands::LaunchApp::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "Stop App Command"); @@ -36450,7 +37687,9 @@ class TV_ApplicationLauncherClusterSuite : public TestCommand value.application.applicationId = chip::Span("applicationIdgarbage: not in length on purpose", 13); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Commands::StopApp::Id, - value); + value, chip::NullOptional + + ); } case 5: { LogStep(5, "Hide App Command"); @@ -36460,7 +37699,9 @@ class TV_ApplicationLauncherClusterSuite : public TestCommand value.application.applicationId = chip::Span("applicationIdgarbage: not in length on purpose", 13); return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Commands::HideApp::Id, - value); + value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -36541,7 +37782,10 @@ class TV_KeypadInputClusterSuite : public TestCommand LogStep(1, "Send Key Command"); chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(3); - return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Commands::SendKey::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -36629,7 +37873,9 @@ class TV_AccountLoginClusterSuite : public TestCommand chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::Type value; value.tempAccountIdentifier = chip::Span("asdfgarbage: not in length on purpose", 4); return SendCommand(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Commands::GetSetupPIN::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 2: { LogStep(2, "Login Command"); @@ -36637,13 +37883,17 @@ class TV_AccountLoginClusterSuite : public TestCommand value.tempAccountIdentifier = chip::Span("asdfgarbage: not in length on purpose", 4); value.setupPIN = chip::Span("tempPin123garbage: not in length on purpose", 10); return SendCommand(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Commands::Login::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "Logout Command"); chip::app::Clusters::AccountLogin::Commands::Logout::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Commands::Logout::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -36722,7 +37972,8 @@ class TV_WakeOnLanClusterSuite : public TestCommand } case 1: { LogStep(1, "Read mac address"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::MACAddress::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::MACAddress::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -36866,40 +38117,43 @@ class TV_ApplicationBasicClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute vendor name"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::VendorName::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorName::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read attribute vendor id"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorID::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read attribute application name"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::ApplicationName::Id); + ApplicationBasic::Attributes::ApplicationName::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Read attribute product id"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::ProductID::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::ProductID::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Read attribute application status"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read attribute application status"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::Application::Id); + ApplicationBasic::Attributes::Application::Id, true, chip::NullOptional); } case 7: { LogStep(7, "Read attribute application version"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::ApplicationVersion::Id); + ApplicationBasic::Attributes::ApplicationVersion::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Read attribute application allowed vendor list"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::AllowedVendorList::Id); + ApplicationBasic::Attributes::AllowedVendorList::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -37187,101 +38441,144 @@ class TV_MediaPlaybackClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute playback state"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read attribute start time"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::StartTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::StartTime::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read attribute duration"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::Duration::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::Duration::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read attribute position"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Read attribute playback speed"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "Read attribute seek range end"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SeekRangeEnd::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SeekRangeEnd::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Read attribute seek range start"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SeekRangeStart::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SeekRangeStart::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Media Playback Play Command"); chip::app::Clusters::MediaPlayback::Commands::Play::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Media Playback Pause Command"); chip::app::Clusters::MediaPlayback::Commands::Pause::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Media Playback Stop Command"); chip::app::Clusters::MediaPlayback::Commands::StopPlayback::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::StopPlayback::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::StopPlayback::Id, value, + chip::NullOptional + + ); } case 11: { LogStep(11, "Media Playback Start Over Command"); chip::app::Clusters::MediaPlayback::Commands::StartOver::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::StartOver::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::StartOver::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Media Playback Previous Command"); chip::app::Clusters::MediaPlayback::Commands::Previous::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Previous::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Previous::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Media Playback Next Command"); chip::app::Clusters::MediaPlayback::Commands::Next::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Next::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Next::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Media Playback Rewind Command"); chip::app::Clusters::MediaPlayback::Commands::Rewind::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "Media Playback Fast Forward Command"); chip::app::Clusters::MediaPlayback::Commands::FastForward::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "Media Playback Skip Forward Command"); chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type value; value.deltaPositionMilliseconds = 500ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::SkipForward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::SkipForward::Id, value, + chip::NullOptional + + ); } case 17: { LogStep(17, "Read attribute position after skip forward"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } case 18: { LogStep(18, "Media Playback Skip Backward Command"); chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type value; value.deltaPositionMilliseconds = 100ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::SkipBackward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::SkipBackward::Id, value, + chip::NullOptional + + ); } case 19: { LogStep(19, "Read attribute position after skip backward"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } case 20: { LogStep(20, "Media Playback Seek Command"); chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; value.position = 1000ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Seek::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Commands::Seek::Id, value, + chip::NullOptional + + ); } case 21: { LogStep(21, "Read attribute position after seek"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -37463,34 +38760,46 @@ class TV_ChannelClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute Channel list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::ChannelList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read attribute channel lineup"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::Lineup::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::Lineup::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read attribute current channel"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::CurrentChannel::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Change Channel Command"); chip::app::Clusters::Channel::Commands::ChangeChannel::Type value; value.match = chip::Span("PBSgarbage: not in length on purpose", 3); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::ChangeChannel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::ChangeChannel::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Change Channel By Number Command"); chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::Type value; value.majorNumber = 6U; value.minorNumber = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::ChangeChannelByNumber::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::ChangeChannelByNumber::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Skip Channel Command"); chip::app::Clusters::Channel::Commands::SkipChannel::Type value; value.count = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::SkipChannel::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Commands::SkipChannel::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -37564,7 +38873,10 @@ class TV_LowPowerClusterSuite : public TestCommand case 1: { LogStep(1, "Sleep Input Status Command"); chip::app::Clusters::LowPower::Commands::Sleep::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Commands::Sleep::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Commands::Sleep::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -37680,13 +38992,13 @@ class TV_ContentLauncherClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute accept header list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::AcceptHeader::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptHeader::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Read attribute supported streaming protocols"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::SupportedStreamingProtocols::Id); + ContentLauncher::Attributes::SupportedStreamingProtocols::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Launch Content Command"); @@ -37722,7 +39034,9 @@ class TV_ContentLauncherClusterSuite : public TestCommand value.data.Emplace(); value.data.Value() = chip::Span("exampleDatagarbage: not in length on purpose", 11); return SendCommand(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Commands::LaunchContent::Id, - value); + value, chip::NullOptional + + ); } case 4: { LogStep(4, "Launch URL Command"); @@ -37809,8 +39123,10 @@ class TV_ContentLauncherClusterSuite : public TestCommand value.brandingInformation.Value().waterMark.Value().size.Value().metric = static_cast(0); - return SendCommand(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Commands::LaunchURL::Id, - value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Commands::LaunchURL::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -37947,38 +39263,53 @@ class TV_MediaInputClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute media input list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read current media input"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::CurrentInput::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::CurrentInput::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Select Input Command"); chip::app::Clusters::MediaInput::Commands::SelectInput::Type value; value.index = 1; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::SelectInput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::SelectInput::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Hide Input Status Command"); chip::app::Clusters::MediaInput::Commands::HideInputStatus::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::HideInputStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::HideInputStatus::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Show Input Status Command"); chip::app::Clusters::MediaInput::Commands::ShowInputStatus::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::ShowInputStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::ShowInputStatus::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Rename Input Command"); chip::app::Clusters::MediaInput::Commands::RenameInput::Type value; value.index = 1; value.name = chip::Span("HDMI Testgarbage: not in length on purpose", 9); - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::RenameInput::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Commands::RenameInput::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "Read attribute media input list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -41346,573 +42677,700 @@ class TestClusterSuite : public TestCommand case 1: { LogStep(1, "Send Test Command"); chip::app::Clusters::TestCluster::Commands::Test::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::Test::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::Test::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send Test Not Handled Command"); chip::app::Clusters::TestCluster::Commands::TestNotHandled::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestNotHandled::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestNotHandled::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Send Test Specific Command"); chip::app::Clusters::TestCluster::Commands::TestSpecific::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestSpecific::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestSpecific::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Send Test Add Arguments Command"); chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = 3; value.arg2 = 17; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Send failing Test Add Arguments Command"); chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = 250; value.arg2 = 6; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Read attribute BOOLEAN Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Write attribute BOOLEAN True"); bool value; value = 1; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value, + chip::NullOptional, chip::NullOptional); } case 8: { LogStep(8, "Read attribute BOOLEAN True"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Write attribute BOOLEAN False"); bool value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value, + chip::NullOptional, chip::NullOptional); } case 10: { LogStep(10, "Read attribute BOOLEAN False"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Read attribute BITMAP8 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Write attribute BITMAP8 Max Value"); chip::BitFlags value; value = static_cast>(255); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value, + chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "Read attribute BITMAP8 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Write attribute BITMAP8 Min Value"); chip::BitFlags value; value = static_cast>(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value, + chip::NullOptional, chip::NullOptional); } case 15: { LogStep(15, "Read attribute BITMAP8 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Read attribute BITMAP16 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Write attribute BITMAP16 Max Value"); chip::BitFlags value; value = static_cast>(65535U); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value, + chip::NullOptional, chip::NullOptional); } case 18: { LogStep(18, "Read attribute BITMAP16 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Write attribute BITMAP16 Min Value"); chip::BitFlags value; value = static_cast>(0U); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value, + chip::NullOptional, chip::NullOptional); } case 20: { LogStep(20, "Read attribute BITMAP16 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Read attribute BITMAP32 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, true, + chip::NullOptional); } case 22: { LogStep(22, "Write attribute BITMAP32 Max Value"); chip::BitFlags value; value = static_cast>(4294967295UL); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value, + chip::NullOptional, chip::NullOptional); } case 23: { LogStep(23, "Read attribute BITMAP32 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, true, + chip::NullOptional); } case 24: { LogStep(24, "Write attribute BITMAP32 Min Value"); chip::BitFlags value; value = static_cast>(0UL); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value, + chip::NullOptional, chip::NullOptional); } case 25: { LogStep(25, "Read attribute BITMAP32 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, true, + chip::NullOptional); } case 26: { LogStep(26, "Read attribute BITMAP64 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, true, + chip::NullOptional); } case 27: { LogStep(27, "Write attribute BITMAP64 Max Value"); chip::BitFlags value; value = static_cast>(18446744073709551615ULL); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value, + chip::NullOptional, chip::NullOptional); } case 28: { LogStep(28, "Read attribute BITMAP64 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, true, + chip::NullOptional); } case 29: { LogStep(29, "Write attribute BITMAP64 Min Value"); chip::BitFlags value; value = static_cast>(0ULL); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value, + chip::NullOptional, chip::NullOptional); } case 30: { LogStep(30, "Read attribute BITMAP64 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, true, + chip::NullOptional); } case 31: { LogStep(31, "Read attribute INT8U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, true, + chip::NullOptional); } case 32: { LogStep(32, "Write attribute INT8U Max Value"); uint8_t value; value = 255; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value, + chip::NullOptional, chip::NullOptional); } case 33: { LogStep(33, "Read attribute INT8U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, true, + chip::NullOptional); } case 34: { LogStep(34, "Write attribute INT8U Min Value"); uint8_t value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value, + chip::NullOptional, chip::NullOptional); } case 35: { LogStep(35, "Read attribute INT8U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, true, + chip::NullOptional); } case 36: { LogStep(36, "Read attribute INT16U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, true, + chip::NullOptional); } case 37: { LogStep(37, "Write attribute INT16U Max Value"); uint16_t value; value = 65535U; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value, + chip::NullOptional, chip::NullOptional); } case 38: { LogStep(38, "Read attribute INT16U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, true, + chip::NullOptional); } case 39: { LogStep(39, "Write attribute INT16U Min Value"); uint16_t value; value = 0U; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value, + chip::NullOptional, chip::NullOptional); } case 40: { LogStep(40, "Read attribute INT16U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, true, + chip::NullOptional); } case 41: { LogStep(41, "Read attribute INT32U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 42: { LogStep(42, "Write attribute INT32U Max Value"); uint32_t value; value = 4294967295UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value, + chip::NullOptional, chip::NullOptional); } case 43: { LogStep(43, "Read attribute INT32U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 44: { LogStep(44, "Write attribute INT32U Min Value"); uint32_t value; value = 0UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value, + chip::NullOptional, chip::NullOptional); } case 45: { LogStep(45, "Read attribute INT32U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 46: { LogStep(46, "Read attribute INT64U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, true, + chip::NullOptional); } case 47: { LogStep(47, "Write attribute INT64U Max Value"); uint64_t value; value = 18446744073709551615ULL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value, + chip::NullOptional, chip::NullOptional); } case 48: { LogStep(48, "Read attribute INT64U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, true, + chip::NullOptional); } case 49: { LogStep(49, "Write attribute INT64U Min Value"); uint64_t value; value = 0ULL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value, + chip::NullOptional, chip::NullOptional); } case 50: { LogStep(50, "Read attribute INT64U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, true, + chip::NullOptional); } case 51: { LogStep(51, "Read attribute INT8S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 52: { LogStep(52, "Write attribute INT8S Max Value"); int8_t value; value = 127; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value, + chip::NullOptional, chip::NullOptional); } case 53: { LogStep(53, "Read attribute INT8S Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 54: { LogStep(54, "Write attribute INT8S Min Value"); int8_t value; value = -128; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value, + chip::NullOptional, chip::NullOptional); } case 55: { LogStep(55, "Read attribute INT8S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 56: { LogStep(56, "Write attribute INT8S Default Value"); int8_t value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value, + chip::NullOptional, chip::NullOptional); } case 57: { LogStep(57, "Read attribute INT8S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 58: { LogStep(58, "Read attribute INT16S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 59: { LogStep(59, "Write attribute INT16S Max Value"); int16_t value; value = 32767; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value, + chip::NullOptional, chip::NullOptional); } case 60: { LogStep(60, "Read attribute INT16S Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 61: { LogStep(61, "Write attribute INT16S Min Value"); int16_t value; value = -32768; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value, + chip::NullOptional, chip::NullOptional); } case 62: { LogStep(62, "Read attribute INT16S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 63: { LogStep(63, "Write attribute INT16S Default Value"); int16_t value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value, + chip::NullOptional, chip::NullOptional); } case 64: { LogStep(64, "Read attribute INT16S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 65: { LogStep(65, "Read attribute INT32S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 66: { LogStep(66, "Write attribute INT32S Max Value"); int32_t value; value = 2147483647L; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value, + chip::NullOptional, chip::NullOptional); } case 67: { LogStep(67, "Read attribute INT32S Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 68: { LogStep(68, "Write attribute INT32S Min Value"); int32_t value; value = -2147483648L; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value, + chip::NullOptional, chip::NullOptional); } case 69: { LogStep(69, "Read attribute INT32S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 70: { LogStep(70, "Write attribute INT32S Default Value"); int32_t value; value = 0L; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value, + chip::NullOptional, chip::NullOptional); } case 71: { LogStep(71, "Read attribute INT32S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 72: { LogStep(72, "Read attribute INT64S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 73: { LogStep(73, "Write attribute INT64S Max Value"); int64_t value; value = 9223372036854775807LL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value, + chip::NullOptional, chip::NullOptional); } case 74: { LogStep(74, "Read attribute INT64S Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 75: { LogStep(75, "Write attribute INT64S Min Value"); int64_t value; value = -9223372036854775807LL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value, + chip::NullOptional, chip::NullOptional); } case 76: { LogStep(76, "Read attribute INT64S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 77: { LogStep(77, "Write attribute INT64S Default Value"); int64_t value; value = 0LL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value, + chip::NullOptional, chip::NullOptional); } case 78: { LogStep(78, "Read attribute INT64S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 79: { LogStep(79, "Read attribute SINGLE Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, true, + chip::NullOptional); } case 80: { LogStep(80, "Write attribute SINGLE medium Value"); float value; value = 0.1f; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value, + chip::NullOptional, chip::NullOptional); } case 81: { LogStep(81, "Read attribute SINGLE medium Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, true, + chip::NullOptional); } case 82: { LogStep(82, "Write attribute SINGLE large Value"); float value; value = 17000000000.0f; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value, + chip::NullOptional, chip::NullOptional); } case 83: { LogStep(83, "Read attribute SINGLE large Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, true, + chip::NullOptional); } case 84: { LogStep(84, "Write attribute SINGLE small Value"); float value; value = 1.7e-10f; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value, + chip::NullOptional, chip::NullOptional); } case 85: { LogStep(85, "Read attribute SINGLE small Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, true, + chip::NullOptional); } case 86: { LogStep(86, "Write attribute SINGLE Default Value"); float value; value = 0.0f; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, value, + chip::NullOptional, chip::NullOptional); } case 87: { LogStep(87, "Read attribute SINGLE Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatSingle::Id, true, + chip::NullOptional); } case 88: { LogStep(88, "Read attribute DOUBLE Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, true, + chip::NullOptional); } case 89: { LogStep(89, "Write attribute DOUBLE medium Value"); double value; value = 0.1234567890123; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value, + chip::NullOptional, chip::NullOptional); } case 90: { LogStep(90, "Read attribute DOUBLE medium Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, true, + chip::NullOptional); } case 91: { LogStep(91, "Write attribute DOUBLE large Value"); double value; value = 1.7e+200; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value, + chip::NullOptional, chip::NullOptional); } case 92: { LogStep(92, "Read attribute DOUBLE large Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, true, + chip::NullOptional); } case 93: { LogStep(93, "Write attribute DOUBLE small Value"); double value; value = 1.7e-200; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value, + chip::NullOptional, chip::NullOptional); } case 94: { LogStep(94, "Read attribute DOUBLE small Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, true, + chip::NullOptional); } case 95: { LogStep(95, "Write attribute DOUBLE Default Value"); double value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, value, + chip::NullOptional, chip::NullOptional); } case 96: { LogStep(96, "Read attribute DOUBLE Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::FloatDouble::Id, true, + chip::NullOptional); } case 97: { LogStep(97, "Read attribute ENUM8 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, true, + chip::NullOptional); } case 98: { LogStep(98, "Write attribute ENUM8 Max Value"); uint8_t value; value = 255; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value, + chip::NullOptional, chip::NullOptional); } case 99: { LogStep(99, "Read attribute ENUM8 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, true, + chip::NullOptional); } case 100: { LogStep(100, "Write attribute ENUM8 Min Value"); uint8_t value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value, + chip::NullOptional, chip::NullOptional); } case 101: { LogStep(101, "Read attribute ENUM8 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, true, + chip::NullOptional); } case 102: { LogStep(102, "Read attribute ENUM16 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, true, + chip::NullOptional); } case 103: { LogStep(103, "Write attribute ENUM16 Max Value"); uint16_t value; value = 65535U; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value, + chip::NullOptional, chip::NullOptional); } case 104: { LogStep(104, "Read attribute ENUM16 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, true, + chip::NullOptional); } case 105: { LogStep(105, "Write attribute ENUM16 Min Value"); uint16_t value; value = 0U; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value, + chip::NullOptional, chip::NullOptional); } case 106: { LogStep(106, "Read attribute ENUM16 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, true, + chip::NullOptional); } case 107: { LogStep(107, "Read attribute OCTET_STRING Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 108: { LogStep(108, "Write attribute OCTET_STRING with embedded null"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("Tes\000ti\000nggarbage: not in length on purpose"), 9); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 109: { LogStep(109, "Read attribute OCTET_STRING with embedded null"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 110: { LogStep(110, "Write attribute OCTET_STRING with weird chars"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("\015\012\377\042\240garbage: not in length on purpose"), 5); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 111: { LogStep(111, "Read attribute OCTET_STRING with weird chars"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 112: { LogStep(112, "Write attribute OCTET_STRING"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("TestValuegarbage: not in length on purpose"), 9); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 113: { LogStep(113, "Read attribute OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 114: { LogStep(114, "Write attribute OCTET_STRING"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("TestValueLongerThan10garbage: not in length on purpose"), 21); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 115: { LogStep(115, "Read attribute OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 116: { LogStep(116, "Write attribute OCTET_STRING"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("garbage: not in length on purpose"), 0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 117: { LogStep(117, "Read attribute LONG_OCTET_STRING Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongOctetString::Id, + true, chip::NullOptional); } case 118: { LogStep(118, "Write attribute LONG_OCTET_STRING"); @@ -41924,52 +43382,60 @@ class TestClusterSuite : public TestCommand "111111111111111111111111111111111111111111111garbage: not in length on purpose"), 300); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 119: { LogStep(119, "Read attribute LONG_OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongOctetString::Id, + true, chip::NullOptional); } case 120: { LogStep(120, "Write attribute LONG_OCTET_STRING"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("garbage: not in length on purpose"), 0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 121: { LogStep(121, "Read attribute CHAR_STRING Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 122: { LogStep(122, "Write attribute CHAR_STRING"); chip::CharSpan value; value = chip::Span("☉T☉garbage: not in length on purpose", 7); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 123: { LogStep(123, "Read attribute CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 124: { LogStep(124, "Write attribute CHAR_STRING - Value too long"); chip::CharSpan value; value = chip::Span("☉TestValueLongerThan10☉garbage: not in length on purpose", 27); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 125: { LogStep(125, "Read attribute CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 126: { LogStep(126, "Write attribute CHAR_STRING - Empty"); chip::CharSpan value; value = chip::Span("garbage: not in length on purpose", 0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 127: { LogStep(127, "Read attribute LONG_CHAR_STRING Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongCharString::Id, true, + chip::NullOptional); } case 128: { LogStep(128, "Write attribute LONG_CHAR_STRING"); @@ -41980,22 +43446,24 @@ class TestClusterSuite : public TestCommand "☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉☉garbage: not in length on purpose", 900); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongCharString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 129: { LogStep(129, "Read attribute LONG_CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongCharString::Id, true, + chip::NullOptional); } case 130: { LogStep(130, "Write attribute LONG_CHAR_STRING"); chip::CharSpan value; value = chip::Span("garbage: not in length on purpose", 0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::LongCharString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 131: { LogStep(131, "Read attribute LIST_LONG_OCTET_STRING (for chunked read)"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListLongOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListLongOctetString::Id, + true, chip::NullOptional); } case 132: { LogStep(132, "Write attribute LIST_LONG_OCTET_STRING (for chunked write)"); @@ -42053,106 +43521,132 @@ class TestClusterSuite : public TestCommand value = chip::app::DataModel::List(listHolder_0->mList, 5); } return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListLongOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 133: { LogStep(133, "Read attribute LIST_LONG_OCTET_STRING (for chunked read)"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListLongOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListLongOctetString::Id, + true, chip::NullOptional); } case 134: { LogStep(134, "Read attribute EPOCH_US Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, true, + chip::NullOptional); } case 135: { LogStep(135, "Write attribute EPOCH_US Max Value"); uint64_t value; value = 18446744073709551615ULL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value, + chip::NullOptional, chip::NullOptional); } case 136: { LogStep(136, "Read attribute EPOCH_US Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, true, + chip::NullOptional); } case 137: { LogStep(137, "Write attribute EPOCH_US Min Value"); uint64_t value; value = 0ULL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value, + chip::NullOptional, chip::NullOptional); } case 138: { LogStep(138, "Read attribute EPOCH_US Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, true, + chip::NullOptional); } case 139: { LogStep(139, "Read attribute EPOCH_S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, true, + chip::NullOptional); } case 140: { LogStep(140, "Write attribute EPOCH_S Max Value"); uint32_t value; value = 4294967295UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value, + chip::NullOptional, chip::NullOptional); } case 141: { LogStep(141, "Read attribute EPOCH_S Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, true, + chip::NullOptional); } case 142: { LogStep(142, "Write attribute EPOCH_S Min Value"); uint32_t value; value = 0UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value, + chip::NullOptional, chip::NullOptional); } case 143: { LogStep(143, "Read attribute EPOCH_S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, true, + chip::NullOptional); } case 144: { LogStep(144, "Read attribute UNSUPPORTED"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Unsupported::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Unsupported::Id, true, + chip::NullOptional); } case 145: { LogStep(145, "Writeattribute UNSUPPORTED"); bool value; value = 0; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Unsupported::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Unsupported::Id, value, + chip::NullOptional, chip::NullOptional); } case 146: { LogStep(146, "Send Test Command to unsupported endpoint"); chip::app::Clusters::TestCluster::Commands::Test::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(200), TestCluster::Id, TestCluster::Commands::Test::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(200), TestCluster::Id, TestCluster::Commands::Test::Id, value, + chip::NullOptional + + ); } case 147: { LogStep(147, "Send Test Command to unsupported cluster"); chip::app::Clusters::TestCluster::Commands::Test::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(0), TestCluster::Id, TestCluster::Commands::Test::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(0), TestCluster::Id, TestCluster::Commands::Test::Id, value, + chip::NullOptional + + ); } case 148: { LogStep(148, "Read attribute vendor_id Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, true, + chip::NullOptional); } case 149: { LogStep(149, "Write attribute vendor_id"); chip::VendorId value; value = static_cast(17); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value, + chip::NullOptional, chip::NullOptional); } case 150: { LogStep(150, "Read attribute vendor_id"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, true, + chip::NullOptional); } case 151: { LogStep(151, "Restore attribute vendor_id"); chip::VendorId value; value = static_cast(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value, + chip::NullOptional, chip::NullOptional); } case 152: { LogStep(152, "Send a command with a vendor_id and enum"); chip::app::Clusters::TestCluster::Commands::TestEnumsRequest::Type value; value.arg1 = static_cast(20003); value.arg2 = static_cast(101); - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestEnumsRequest::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestEnumsRequest::Id, value, + chip::NullOptional + + ); } case 153: { LogStep(153, "Send Test Command With Struct Argument and arg1.b is true"); @@ -42168,7 +43662,9 @@ class TestClusterSuite : public TestCommand value.arg1.h = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestStructArgumentRequest::Id, value); + TestCluster::Commands::TestStructArgumentRequest::Id, value, chip::NullOptional + + ); } case 154: { LogStep(154, "Send Test Command With Struct Argument and arg1.b is false"); @@ -42184,7 +43680,9 @@ class TestClusterSuite : public TestCommand value.arg1.h = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestStructArgumentRequest::Id, value); + TestCluster::Commands::TestStructArgumentRequest::Id, value, chip::NullOptional + + ); } case 155: { LogStep(155, "Send Test Command With Nested Struct Argument and arg1.c.b is true"); @@ -42203,7 +43701,9 @@ class TestClusterSuite : public TestCommand value.arg1.c.h = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNestedStructArgumentRequest::Id, value); + TestCluster::Commands::TestNestedStructArgumentRequest::Id, value, chip::NullOptional + + ); } case 156: { LogStep(156, "Send Test Command With Nested Struct Argument arg1.c.b is false"); @@ -42222,7 +43722,9 @@ class TestClusterSuite : public TestCommand value.arg1.c.h = 0; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNestedStructArgumentRequest::Id, value); + TestCluster::Commands::TestNestedStructArgumentRequest::Id, value, chip::NullOptional + + ); } case 157: { LogStep(157, "Send Test Command With Nested Struct List Argument and all fields b of arg1.d are true"); @@ -42299,7 +43801,9 @@ class TestClusterSuite : public TestCommand } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNestedStructListArgumentRequest::Id, value); + TestCluster::Commands::TestNestedStructListArgumentRequest::Id, value, chip::NullOptional + + ); } case 158: { LogStep(158, "Send Test Command With Nested Struct List Argument and some fields b of arg1.d are false"); @@ -42376,7 +43880,9 @@ class TestClusterSuite : public TestCommand } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNestedStructListArgumentRequest::Id, value); + TestCluster::Commands::TestNestedStructListArgumentRequest::Id, value, chip::NullOptional + + ); } case 159: { LogStep(159, "Send Test Command With Struct Argument and see what we get back"); @@ -42392,7 +43898,9 @@ class TestClusterSuite : public TestCommand value.arg1.h = 0.1; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::SimpleStructEchoRequest::Id, - value); + value, chip::NullOptional + + ); } case 160: { LogStep(160, "Send Test Command With List of INT8U and none of them is set to 0"); @@ -42414,7 +43922,9 @@ class TestClusterSuite : public TestCommand value.arg1 = chip::app::DataModel::List(listHolder_0->mList, 9); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListInt8UArgumentRequest::Id, value); + TestCluster::Commands::TestListInt8UArgumentRequest::Id, value, chip::NullOptional + + ); } case 161: { LogStep(161, "Send Test Command With List of INT8U and one of them is set to 0"); @@ -42437,7 +43947,9 @@ class TestClusterSuite : public TestCommand value.arg1 = chip::app::DataModel::List(listHolder_0->mList, 10); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListInt8UArgumentRequest::Id, value); + TestCluster::Commands::TestListInt8UArgumentRequest::Id, value, chip::NullOptional + + ); } case 162: { LogStep(162, "Send Test Command With List of INT8U and get it reversed"); @@ -42459,7 +43971,9 @@ class TestClusterSuite : public TestCommand value.arg1 = chip::app::DataModel::List(listHolder_0->mList, 9); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListInt8UReverseRequest::Id, value); + TestCluster::Commands::TestListInt8UReverseRequest::Id, value, chip::NullOptional + + ); } case 163: { LogStep(163, "Send Test Command With empty List of INT8U and get an empty list back"); @@ -42468,7 +43982,9 @@ class TestClusterSuite : public TestCommand value.arg1 = chip::app::DataModel::List(); return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListInt8UReverseRequest::Id, value); + TestCluster::Commands::TestListInt8UReverseRequest::Id, value, chip::NullOptional + + ); } case 164: { LogStep(164, "Send Test Command With List of Struct Argument and arg1.b of first item is true"); @@ -42503,7 +44019,9 @@ class TestClusterSuite : public TestCommand listHolder_0->mList, 2); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListStructArgumentRequest::Id, value); + TestCluster::Commands::TestListStructArgumentRequest::Id, value, chip::NullOptional + + ); } case 165: { LogStep(165, "Send Test Command With List of Struct Argument and arg1.b of first item is false"); @@ -42538,7 +44056,9 @@ class TestClusterSuite : public TestCommand listHolder_0->mList, 2); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListStructArgumentRequest::Id, value); + TestCluster::Commands::TestListStructArgumentRequest::Id, value, chip::NullOptional + + ); } case 166: { LogStep(166, @@ -42625,7 +44145,9 @@ class TestClusterSuite : public TestCommand listHolder_0->mList, 1); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListNestedStructListArgumentRequest::Id, value); + TestCluster::Commands::TestListNestedStructListArgumentRequest::Id, value, chip::NullOptional + + ); } case 167: { LogStep(167, "Send Test Command With Nested Struct List Argument and some fields b of elements of arg1.d are false"); @@ -42711,7 +44233,9 @@ class TestClusterSuite : public TestCommand listHolder_0->mList, 1); } return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestListNestedStructListArgumentRequest::Id, value); + TestCluster::Commands::TestListNestedStructListArgumentRequest::Id, value, chip::NullOptional + + ); } case 168: { LogStep(168, "Write attribute LIST With List of INT8U and none of them is set to 0"); @@ -42727,11 +44251,13 @@ class TestClusterSuite : public TestCommand listHolder_0->mList[3] = 4; value = chip::app::DataModel::List(listHolder_0->mList, 4); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, value, + chip::NullOptional, chip::NullOptional); } case 169: { LogStep(169, "Read attribute LIST With List of INT8U"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, true, + chip::NullOptional); } case 170: { LogStep(170, "Write attribute LIST With List of OCTET_STRING"); @@ -42748,11 +44274,12 @@ class TestClusterSuite : public TestCommand value = chip::app::DataModel::List(listHolder_0->mList, 4); } return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 171: { LogStep(171, "Read attribute LIST With List of OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListOctetString::Id, + true, chip::NullOptional); } case 172: { LogStep(172, "Write attribute LIST With List of LIST_STRUCT_OCTET_STRING"); @@ -42783,12 +44310,13 @@ class TestClusterSuite : public TestCommand listHolder_0->mList, 4); } return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::ListStructOctetString::Id, value); + TestCluster::Attributes::ListStructOctetString::Id, value, chip::NullOptional, + chip::NullOptional); } case 173: { LogStep(173, "Read attribute LIST With List of LIST_STRUCT_OCTET_STRING"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::ListStructOctetString::Id); + TestCluster::Attributes::ListStructOctetString::Id, true, chip::NullOptional); } case 174: { LogStep(174, "Send Test Command with optional arg set."); @@ -42797,18 +44325,22 @@ class TestClusterSuite : public TestCommand value.arg1.Value().SetNonNull(); value.arg1.Value().Value() = 5; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNullableOptionalRequest::Id, value); + TestCluster::Commands::TestNullableOptionalRequest::Id, value, chip::NullOptional + + ); } case 175: { LogStep(175, "Send Test Command without its optional arg."); chip::app::Clusters::TestCluster::Commands::TestNullableOptionalRequest::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNullableOptionalRequest::Id, value); + TestCluster::Commands::TestNullableOptionalRequest::Id, value, chip::NullOptional + + ); } case 176: { LogStep(176, "Read list of structs containing nullables and optionals"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::ListNullablesAndOptionalsStruct::Id); + TestCluster::Attributes::ListNullablesAndOptionalsStruct::Id, true, chip::NullOptional); } case 177: { LogStep(177, "Write list of structs containing nullables and optionals"); @@ -42838,23 +44370,25 @@ class TestClusterSuite : public TestCommand listHolder_0->mList, 1); } return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::ListNullablesAndOptionalsStruct::Id, value); + TestCluster::Attributes::ListNullablesAndOptionalsStruct::Id, value, chip::NullOptional, + chip::NullOptional); } case 178: { LogStep(178, "Read list of structs containing nullables and optionals after writing"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::ListNullablesAndOptionalsStruct::Id); + TestCluster::Attributes::ListNullablesAndOptionalsStruct::Id, true, chip::NullOptional); } case 179: { LogStep(179, "Write attribute NULLABLE_BOOLEAN null"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 180: { LogStep(180, "Read attribute NULLABLE_BOOLEAN null"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id, + true, chip::NullOptional); } case 181: { LogStep(181, "Write attribute NULLABLE_BOOLEAN True"); @@ -42862,15 +44396,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = true; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 182: { LogStep(182, "Read attribute NULLABLE_BOOLEAN True"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id, + true, chip::NullOptional); } case 183: { LogStep(183, "Read attribute NULLABLE_BOOLEAN not null"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBoolean::Id, + true, chip::NullOptional); } case 184: { LogStep(184, "Write attribute NULLABLE_BITMAP8 Max Value"); @@ -42878,11 +44414,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(254); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 185: { LogStep(185, "Read attribute NULLABLE_BITMAP8 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, + true, chip::NullOptional); } case 186: { LogStep(186, "Write attribute NULLABLE_BITMAP8 Invalid Value"); @@ -42890,26 +44427,29 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(255); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 187: { LogStep(187, "Read attribute NULLABLE_BITMAP8 unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, + true, chip::NullOptional); } case 188: { LogStep(188, "Write attribute NULLABLE_BITMAP8 null Value"); chip::app::DataModel::Nullable> value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 189: { LogStep(189, "Read attribute NULLABLE_BITMAP8 null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, + true, chip::NullOptional); } case 190: { LogStep(190, "Read attribute NULLABLE_BITMAP8 not 254 Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap8::Id, + true, chip::NullOptional); } case 191: { LogStep(191, "Write attribute NULLABLE_BITMAP16 Max Value"); @@ -42917,11 +44457,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(65534U); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 192: { LogStep(192, "Read attribute NULLABLE_BITMAP16 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id, + true, chip::NullOptional); } case 193: { LogStep(193, "Write attribute NULLABLE_BITMAP16 Invalid Value"); @@ -42929,22 +44470,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(65535U); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 194: { LogStep(194, "Read attribute NULLABLE_BITMAP16 unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id, + true, chip::NullOptional); } case 195: { LogStep(195, "Write attribute NULLABLE_BITMAP16 null Value"); chip::app::DataModel::Nullable> value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 196: { LogStep(196, "Read attribute NULLABLE_BITMAP16 null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap16::Id, + true, chip::NullOptional); } case 197: { LogStep(197, "Write attribute NULLABLE_BITMAP32 Max Value"); @@ -42952,11 +44495,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(4294967294UL); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 198: { LogStep(198, "Read attribute NULLABLE_BITMAP32 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id, + true, chip::NullOptional); } case 199: { LogStep(199, "Write attribute NULLABLE_BITMAP32 Invalid Value"); @@ -42964,22 +44508,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(4294967295UL); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 200: { LogStep(200, "Read attribute NULLABLE_BITMAP32 unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id, + true, chip::NullOptional); } case 201: { LogStep(201, "Write attribute NULLABLE_BITMAP32 null Value"); chip::app::DataModel::Nullable> value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 202: { LogStep(202, "Read attribute NULLABLE_BITMAP32 null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap32::Id, + true, chip::NullOptional); } case 203: { LogStep(203, "Write attribute NULLABLE_BITMAP64 Max Value"); @@ -42987,11 +44533,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(18446744073709551614ULL); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 204: { LogStep(204, "Read attribute NULLABLE_BITMAP64 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id, + true, chip::NullOptional); } case 205: { LogStep(205, "Write attribute NULLABLE_BITMAP64 Invalid Value"); @@ -42999,22 +44546,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast>(18446744073709551615ULL); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 206: { LogStep(206, "Read attribute NULLABLE_BITMAP64 unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id, + true, chip::NullOptional); } case 207: { LogStep(207, "Write attribute NULLABLE_BITMAP64 null Value"); chip::app::DataModel::Nullable> value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 208: { LogStep(208, "Read attribute NULLABLE_BITMAP64 null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableBitmap64::Id, + true, chip::NullOptional); } case 209: { LogStep(209, "Write attribute NULLABLE_INT8U Min Value"); @@ -43022,11 +44571,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 210: { LogStep(210, "Read attribute NULLABLE_INT8U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 211: { LogStep(211, "Write attribute NULLABLE_INT8U Max Value"); @@ -43034,11 +44584,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 254; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 212: { LogStep(212, "Read attribute NULLABLE_INT8U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 213: { LogStep(213, "Write attribute NULLABLE_INT8U Invalid Value"); @@ -43046,34 +44597,39 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 255; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 214: { LogStep(214, "Read attribute NULLABLE_INT8U unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 215: { LogStep(215, "Read attribute NULLABLE_INT8U unchanged Value with constraint"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 216: { LogStep(216, "Write attribute NULLABLE_INT8U null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 217: { LogStep(217, "Read attribute NULLABLE_INT8U null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 218: { LogStep(218, "Read attribute NULLABLE_INT8U null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 219: { LogStep(219, "Read attribute NULLABLE_INT8U null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 220: { LogStep(220, "Write attribute NULLABLE_INT8U Value"); @@ -43081,15 +44637,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 128; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 221: { LogStep(221, "Read attribute NULLABLE_INT8U Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 222: { LogStep(222, "Read attribute NULLABLE_INT8U notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8u::Id, true, + chip::NullOptional); } case 223: { LogStep(223, "Write attribute NULLABLE_INT16U Min Value"); @@ -43097,11 +44655,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 224: { LogStep(224, "Read attribute NULLABLE_INT16U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 225: { LogStep(225, "Write attribute NULLABLE_INT16U Max Value"); @@ -43109,11 +44668,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 65534U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 226: { LogStep(226, "Read attribute NULLABLE_INT16U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 227: { LogStep(227, "Write attribute NULLABLE_INT16U Invalid Value"); @@ -43121,30 +44681,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 65535U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 228: { LogStep(228, "Read attribute NULLABLE_INT16U unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 229: { LogStep(229, "Write attribute NULLABLE_INT16U null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 230: { LogStep(230, "Read attribute NULLABLE_INT16U null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 231: { LogStep(231, "Read attribute NULLABLE_INT16U null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 232: { LogStep(232, "Read attribute NULLABLE_INT16U null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 233: { LogStep(233, "Write attribute NULLABLE_INT16U Value"); @@ -43152,15 +44716,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 32000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 234: { LogStep(234, "Read attribute NULLABLE_INT16U Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 235: { LogStep(235, "Read attribute NULLABLE_INT16U notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16u::Id, true, + chip::NullOptional); } case 236: { LogStep(236, "Write attribute NULLABLE_INT32U Min Value"); @@ -43168,11 +44734,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 237: { LogStep(237, "Read attribute NULLABLE_INT32U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 238: { LogStep(238, "Write attribute NULLABLE_INT32U Max Value"); @@ -43180,11 +44747,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 4294967294UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 239: { LogStep(239, "Read attribute NULLABLE_INT32U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 240: { LogStep(240, "Write attribute NULLABLE_INT32U Invalid Value"); @@ -43192,30 +44760,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 4294967295UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 241: { LogStep(241, "Read attribute NULLABLE_INT32U unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 242: { LogStep(242, "Write attribute NULLABLE_INT32U null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 243: { LogStep(243, "Read attribute NULLABLE_INT32U null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 244: { LogStep(244, "Read attribute NULLABLE_INT32U null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 245: { LogStep(245, "Read attribute NULLABLE_INT32U null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 246: { LogStep(246, "Write attribute NULLABLE_INT32U Value"); @@ -43223,15 +44795,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 2147483647UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 247: { LogStep(247, "Read attribute NULLABLE_INT32U Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 248: { LogStep(248, "Read attribute NULLABLE_INT32U notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32u::Id, true, + chip::NullOptional); } case 249: { LogStep(249, "Write attribute NULLABLE_INT64U Min Value"); @@ -43239,11 +44813,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 250: { LogStep(250, "Read attribute NULLABLE_INT64U Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 251: { LogStep(251, "Write attribute NULLABLE_INT64U Max Value"); @@ -43251,11 +44826,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 18446744073709551614ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 252: { LogStep(252, "Read attribute NULLABLE_INT64U Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 253: { LogStep(253, "Write attribute NULLABLE_INT64U Invalid Value"); @@ -43263,30 +44839,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 18446744073709551615ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 254: { LogStep(254, "Read attribute NULLABLE_INT64U unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 255: { LogStep(255, "Write attribute NULLABLE_INT64U null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 256: { LogStep(256, "Read attribute NULLABLE_INT64U null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 257: { LogStep(257, "Read attribute NULLABLE_INT64U null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 258: { LogStep(258, "Read attribute NULLABLE_INT64U null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 259: { LogStep(259, "Write attribute NULLABLE_INT64U Value"); @@ -43294,15 +44874,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 18000000000000000000ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 260: { LogStep(260, "Read attribute NULLABLE_INT64U Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 261: { LogStep(261, "Read attribute NULLABLE_INT64U notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64u::Id, true, + chip::NullOptional); } case 262: { LogStep(262, "Write attribute NULLABLE_INT8S Min Value"); @@ -43310,11 +44892,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -127; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 263: { LogStep(263, "Read attribute NULLABLE_INT8S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 264: { LogStep(264, "Write attribute NULLABLE_INT8S Invalid Value"); @@ -43322,30 +44905,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -128; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 265: { LogStep(265, "Read attribute NULLABLE_INT8S unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 266: { LogStep(266, "Write attribute NULLABLE_INT8S null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 267: { LogStep(267, "Read attribute NULLABLE_INT8S null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 268: { LogStep(268, "Read attribute NULLABLE_INT8S null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 269: { LogStep(269, "Read attribute NULLABLE_INT8S null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 270: { LogStep(270, "Write attribute NULLABLE_INT8S Value"); @@ -43353,15 +44940,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -127; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 271: { LogStep(271, "Read attribute NULLABLE_INT8S Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 272: { LogStep(272, "Read attribute NULLABLE_INT8S notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt8s::Id, true, + chip::NullOptional); } case 273: { LogStep(273, "Write attribute NULLABLE_INT16S Min Value"); @@ -43369,11 +44958,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -32767; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 274: { LogStep(274, "Read attribute NULLABLE_INT16S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 275: { LogStep(275, "Write attribute NULLABLE_INT16S Invalid Value"); @@ -43381,30 +44971,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -32768; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 276: { LogStep(276, "Read attribute NULLABLE_INT16S unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 277: { LogStep(277, "Write attribute NULLABLE_INT16S null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 278: { LogStep(278, "Read attribute NULLABLE_INT16S null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 279: { LogStep(279, "Read attribute NULLABLE_INT16S null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 280: { LogStep(280, "Read attribute NULLABLE_INT16S null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 281: { LogStep(281, "Write attribute NULLABLE_INT16S Value"); @@ -43412,15 +45006,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -32767; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 282: { LogStep(282, "Read attribute NULLABLE_INT16S Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 283: { LogStep(283, "Read attribute NULLABLE_INT16S notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt16s::Id, true, + chip::NullOptional); } case 284: { LogStep(284, "Write attribute NULLABLE_INT32S Min Value"); @@ -43428,11 +45024,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -2147483647L; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 285: { LogStep(285, "Read attribute NULLABLE_INT32S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 286: { LogStep(286, "Write attribute NULLABLE_INT32S Invalid Value"); @@ -43440,30 +45037,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -2147483648L; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 287: { LogStep(287, "Read attribute NULLABLE_INT32S unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 288: { LogStep(288, "Write attribute NULLABLE_INT32S null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 289: { LogStep(289, "Read attribute NULLABLE_INT32S null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 290: { LogStep(290, "Read attribute NULLABLE_INT32S null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 291: { LogStep(291, "Read attribute NULLABLE_INT32S null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 292: { LogStep(292, "Write attribute NULLABLE_INT32S Value"); @@ -43471,15 +45072,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -2147483647L; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 293: { LogStep(293, "Read attribute NULLABLE_INT32S Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 294: { LogStep(294, "Read attribute NULLABLE_INT32S notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt32s::Id, true, + chip::NullOptional); } case 295: { LogStep(295, "Write attribute NULLABLE_INT64S Min Value"); @@ -43487,11 +45090,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -9223372036854775807LL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 296: { LogStep(296, "Read attribute NULLABLE_INT64S Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 297: { LogStep(297, "Write attribute NULLABLE_INT64S Invalid Value"); @@ -43499,30 +45103,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast(-9223372036854775807LL - 1); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 298: { LogStep(298, "Read attribute NULLABLE_INT64S unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 299: { LogStep(299, "Write attribute NULLABLE_INT64S null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 300: { LogStep(300, "Read attribute NULLABLE_INT64S null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 301: { LogStep(301, "Read attribute NULLABLE_INT64S null Value & range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 302: { LogStep(302, "Read attribute NULLABLE_INT64S null Value & not"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 303: { LogStep(303, "Write attribute NULLABLE_INT64S Value"); @@ -43530,15 +45138,17 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -9223372036854775807LL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 304: { LogStep(304, "Read attribute NULLABLE_INT64S Value in range"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 305: { LogStep(305, "Read attribute NULLABLE_INT64S notValue OK"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableInt64s::Id, true, + chip::NullOptional); } case 306: { LogStep(306, "Write attribute NULLABLE_SINGLE medium Value"); @@ -43546,11 +45156,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0.1f; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 307: { LogStep(307, "Read attribute NULLABLE_SINGLE medium Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, + true, chip::NullOptional); } case 308: { LogStep(308, "Write attribute NULLABLE_SINGLE largest Value"); @@ -43558,11 +45169,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = INFINITY; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 309: { LogStep(309, "Read attribute NULLABLE_SINGLE largest Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, + true, chip::NullOptional); } case 310: { LogStep(310, "Write attribute NULLABLE_SINGLE smallest Value"); @@ -43570,22 +45182,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -INFINITY; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 311: { LogStep(311, "Read attribute NULLABLE_SINGLE smallest Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, + true, chip::NullOptional); } case 312: { LogStep(312, "Write attribute NULLABLE_SINGLE null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 313: { LogStep(313, "Read attribute NULLABLE_SINGLE null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, + true, chip::NullOptional); } case 314: { LogStep(314, "Write attribute NULLABLE_SINGLE 0 Value"); @@ -43593,11 +45207,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0.0f; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 315: { LogStep(315, "Read attribute NULLABLE_SINGLE 0 Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatSingle::Id, + true, chip::NullOptional); } case 316: { LogStep(316, "Write attribute NULLABLE_DOUBLE medium Value"); @@ -43605,11 +45220,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0.1234567890123; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 317: { LogStep(317, "Read attribute NULLABLE_DOUBLE medium Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, + true, chip::NullOptional); } case 318: { LogStep(318, "Write attribute NULLABLE_DOUBLE largest Value"); @@ -43617,11 +45233,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = INFINITY; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 319: { LogStep(319, "Read attribute NULLABLE_DOUBLE largest Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, + true, chip::NullOptional); } case 320: { LogStep(320, "Write attribute NULLABLE_DOUBLE smallest Value"); @@ -43629,22 +45246,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -INFINITY; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 321: { LogStep(321, "Read attribute NULLABLE_DOUBLE smallest Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, + true, chip::NullOptional); } case 322: { LogStep(322, "Write attribute NULLABLE_DOUBLE null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 323: { LogStep(323, "Read attribute NULLABLE_DOUBLE null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, + true, chip::NullOptional); } case 324: { LogStep(324, "Write attribute NULLABLE_DOUBLE 0 Value"); @@ -43652,11 +45271,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 325: { LogStep(325, "Read attribute NULLABLE_DOUBLE 0 Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableFloatDouble::Id, + true, chip::NullOptional); } case 326: { LogStep(326, "Write attribute NULLABLE_ENUM8 Min Value"); @@ -43664,11 +45284,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 327: { LogStep(327, "Read attribute NULLABLE_ENUM8 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, true, + chip::NullOptional); } case 328: { LogStep(328, "Write attribute NULLABLE_ENUM8 Max Value"); @@ -43676,11 +45297,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 254; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 329: { LogStep(329, "Read attribute NULLABLE_ENUM8 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, true, + chip::NullOptional); } case 330: { LogStep(330, "Write attribute NULLABLE_ENUM8 Invalid Value"); @@ -43688,22 +45310,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 255; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 331: { LogStep(331, "Read attribute NULLABLE_ENUM8 unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, true, + chip::NullOptional); } case 332: { LogStep(332, "Write attribute NULLABLE_ENUM8 null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 333: { LogStep(333, "Read attribute NULLABLE_ENUM8 null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum8::Id, true, + chip::NullOptional); } case 334: { LogStep(334, "Write attribute NULLABLE_ENUM16 Min Value"); @@ -43711,11 +45335,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 335: { LogStep(335, "Read attribute NULLABLE_ENUM16 Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, true, + chip::NullOptional); } case 336: { LogStep(336, "Write attribute NULLABLE_ENUM16 Max Value"); @@ -43723,11 +45348,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 65534U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 337: { LogStep(337, "Read attribute NULLABLE_ENUM16 Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, true, + chip::NullOptional); } case 338: { LogStep(338, "Write attribute NULLABLE_ENUM16 Invalid Value"); @@ -43735,22 +45361,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 65535U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 339: { LogStep(339, "Read attribute NULLABLE_ENUM16 unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, true, + chip::NullOptional); } case 340: { LogStep(340, "Write attribute NULLABLE_ENUM16 null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 341: { LogStep(341, "Read attribute NULLABLE_ENUM16 null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnum16::Id, true, + chip::NullOptional); } case 342: { LogStep(342, "Write attribute NULLABLE_SIMPLE_ENUM Min Value"); @@ -43758,11 +45386,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast(0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 343: { LogStep(343, "Read attribute NULLABLE_SIMPLE_ENUM Min Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, + true, chip::NullOptional); } case 344: { LogStep(344, "Write attribute NULLABLE_SIMPLE_ENUM Max Value"); @@ -43770,11 +45399,12 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast(254); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 345: { LogStep(345, "Read attribute NULLABLE_SIMPLE_ENUM Max Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, + true, chip::NullOptional); } case 346: { LogStep(346, "Write attribute NULLABLE_SIMPLE_ENUM Invalid Value"); @@ -43782,30 +45412,34 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = static_cast(255); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 347: { LogStep(347, "Read attribute NULLABLE_SIMPLE_ENUM unchanged Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, + true, chip::NullOptional); } case 348: { LogStep(348, "Write attribute NULLABLE_SIMPLE_ENUM null Value"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 349: { LogStep(349, "Read attribute NULLABLE_SIMPLE_ENUM null Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, + true, chip::NullOptional); } case 350: { LogStep(350, "Read attribute NULLABLE_SIMPLE_ENUM not 254 Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableEnumAttr::Id, + true, chip::NullOptional); } case 351: { LogStep(351, "Read attribute NULLABLE_OCTET_STRING Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, + true, chip::NullOptional); } case 352: { LogStep(352, "Write attribute NULLABLE_OCTET_STRING"); @@ -43813,22 +45447,24 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = chip::ByteSpan(chip::Uint8::from_const_char("TestValuegarbage: not in length on purpose"), 9); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 353: { LogStep(353, "Read attribute NULLABLE_OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, + true, chip::NullOptional); } case 354: { LogStep(354, "Write attribute NULLABLE_OCTET_STRING"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 355: { LogStep(355, "Read attribute NULLABLE_OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, + true, chip::NullOptional); } case 356: { LogStep(356, "Write attribute NULLABLE_OCTET_STRING"); @@ -43836,19 +45472,22 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = chip::ByteSpan(chip::Uint8::from_const_char("garbage: not in length on purpose"), 0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 357: { LogStep(357, "Read attribute NULLABLE_OCTET_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, + true, chip::NullOptional); } case 358: { LogStep(358, "Read attribute NULLABLE_OCTET_STRING not TestValue"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableOctetString::Id, + true, chip::NullOptional); } case 359: { LogStep(359, "Read attribute NULLABLE_CHAR_STRING Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, + true, chip::NullOptional); } case 360: { LogStep(360, "Write attribute NULLABLE_CHAR_STRING"); @@ -43856,26 +45495,29 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = chip::Span("☉T☉garbage: not in length on purpose", 7); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 361: { LogStep(361, "Read attribute NULLABLE_CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, + true, chip::NullOptional); } case 362: { LogStep(362, "Read attribute NULLABLE_CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, + true, chip::NullOptional); } case 363: { LogStep(363, "Write attribute NULLABLE_CHAR_STRING - Value too long"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 364: { LogStep(364, "Read attribute NULLABLE_CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, + true, chip::NullOptional); } case 365: { LogStep(365, "Write attribute NULLABLE_CHAR_STRING - Empty"); @@ -43883,29 +45525,35 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = chip::Span("garbage: not in length on purpose", 0); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 366: { LogStep(366, "Read attribute NULLABLE_CHAR_STRING"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, + true, chip::NullOptional); } case 367: { LogStep(367, "Read attribute NULLABLE_CHAR_STRING not ☉T☉"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::NullableCharString::Id, + true, chip::NullOptional); } case 368: { LogStep(368, "Read attribute from nonexistent endpoint."); - return ReadAttribute(kIdentityAlpha, GetEndpoint(200), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(200), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, true, + chip::NullOptional); } case 369: { LogStep(369, "Read attribute from nonexistent cluster."); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, true, + chip::NullOptional); } case 370: { LogStep(370, "Send a command that takes an optional parameter but do not set it."); chip::app::Clusters::TestCluster::Commands::TestSimpleOptionalArgumentRequest::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestSimpleOptionalArgumentRequest::Id, value); + TestCluster::Commands::TestSimpleOptionalArgumentRequest::Id, value, chip::NullOptional + + ); } case 371: { LogStep(371, "Send a command that takes an optional parameter but do not set it."); @@ -43913,12 +45561,14 @@ class TestClusterSuite : public TestCommand value.arg1.Emplace(); value.arg1.Value() = 1; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestSimpleOptionalArgumentRequest::Id, value); + TestCluster::Commands::TestSimpleOptionalArgumentRequest::Id, value, chip::NullOptional + + ); } case 372: { LogStep(372, "Subscribe to list attribute"); - return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, 2, - 5); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, 2, 5, + true, chip::NullOptional, chip::NullOptional); } case 373: { LogStep(373, "Write subscribed-to list attribute"); @@ -43934,7 +45584,8 @@ class TestClusterSuite : public TestCommand listHolder_0->mList[3] = 8; value = chip::app::DataModel::List(listHolder_0->mList, 4); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ListInt8u::Id, value, + chip::NullOptional, chip::NullOptional); } case 374: { LogStep(374, "Check for list attribute report"); @@ -43942,304 +45593,318 @@ class TestClusterSuite : public TestCommand } case 375: { LogStep(375, "Read range-restricted unsigned 8-bit integer"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8u::Id, + true, chip::NullOptional); } case 376: { LogStep(376, "Write min value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 377: { LogStep(377, "Write just-below-range value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 19; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 378: { LogStep(378, "Write just-above-range value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 101; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 379: { LogStep(379, "Write max value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 255; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 380: { LogStep(380, "Verify range-restricted unsigned 8-bit integer value has not changed"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8u::Id, + true, chip::NullOptional); } case 381: { LogStep(381, "Write min valid value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 20; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 382: { LogStep(382, "Verify range-restricted unsigned 8-bit integer value is at min valid"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8u::Id, + true, chip::NullOptional); } case 383: { LogStep(383, "Write max valid value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 384: { LogStep(384, "Verify range-restricted unsigned 8-bit integer value is at max valid"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8u::Id, + true, chip::NullOptional); } case 385: { LogStep(385, "Write middle valid value to a range-restricted unsigned 8-bit integer"); uint8_t value; value = 50; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id, value); + TestCluster::Attributes::RangeRestrictedInt8u::Id, value, chip::NullOptional, chip::NullOptional); } case 386: { LogStep(386, "Verify range-restricted unsigned 8-bit integer value is at mid valid"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8u::Id, + true, chip::NullOptional); } case 387: { LogStep(387, "Read range-restricted unsigned 16-bit integer"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id); + TestCluster::Attributes::RangeRestrictedInt16u::Id, true, chip::NullOptional); } case 388: { LogStep(388, "Write min value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 389: { LogStep(389, "Write just-below-range value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 99U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 390: { LogStep(390, "Write just-above-range value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 1001U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 391: { LogStep(391, "Write max value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 65535U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 392: { LogStep(392, "Verify range-restricted unsigned 16-bit integer value has not changed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id); + TestCluster::Attributes::RangeRestrictedInt16u::Id, true, chip::NullOptional); } case 393: { LogStep(393, "Write min valid value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 100U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 394: { LogStep(394, "Verify range-restricted unsigned 16-bit integer value is at min valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id); + TestCluster::Attributes::RangeRestrictedInt16u::Id, true, chip::NullOptional); } case 395: { LogStep(395, "Write max valid value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 1000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 396: { LogStep(396, "Verify range-restricted unsigned 16-bit integer value is at max valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id); + TestCluster::Attributes::RangeRestrictedInt16u::Id, true, chip::NullOptional); } case 397: { LogStep(397, "Write middle valid value to a range-restricted unsigned 16-bit integer"); uint16_t value; value = 500U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id, value); + TestCluster::Attributes::RangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 398: { LogStep(398, "Verify range-restricted unsigned 16-bit integer value is at mid valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16u::Id); + TestCluster::Attributes::RangeRestrictedInt16u::Id, true, chip::NullOptional); } case 399: { LogStep(399, "Read range-restricted signed 8-bit integer"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8s::Id, + true, chip::NullOptional); } case 400: { LogStep(400, "Write min value to a range-restricted signed 8-bit integer"); int8_t value; value = -128; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 401: { LogStep(401, "Write just-below-range value to a range-restricted signed 8-bit integer"); int8_t value; value = -41; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 402: { LogStep(402, "Write just-above-range value to a range-restricted signed 8-bit integer"); int8_t value; value = 51; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 403: { LogStep(403, "Write max value to a range-restricted signed 8-bit integer"); int8_t value; value = 127; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 404: { LogStep(404, "Verify range-restricted signed 8-bit integer value has not changed"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8s::Id, + true, chip::NullOptional); } case 405: { LogStep(405, "Write min valid value to a range-restricted signed 8-bit integer"); int8_t value; value = -40; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 406: { LogStep(406, "Verify range-restricted signed 8-bit integer value is at min valid"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8s::Id, + true, chip::NullOptional); } case 407: { LogStep(407, "Write max valid value to a range-restricted signed 8-bit integer"); int8_t value; value = 50; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 408: { LogStep(408, "Verify range-restricted signed 8-bit integer value is at max valid"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8s::Id, + true, chip::NullOptional); } case 409: { LogStep(409, "Write middle valid value to a range-restricted signed 8-bit integer"); int8_t value; value = 6; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id, value); + TestCluster::Attributes::RangeRestrictedInt8s::Id, value, chip::NullOptional, chip::NullOptional); } case 410: { LogStep(410, "Verify range-restricted signed 8-bit integer value is at mid valid"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::RangeRestrictedInt8s::Id, + true, chip::NullOptional); } case 411: { LogStep(411, "Read range-restricted signed 16-bit integer"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id); + TestCluster::Attributes::RangeRestrictedInt16s::Id, true, chip::NullOptional); } case 412: { LogStep(412, "Write min value to a range-restricted signed 16-bit integer"); int16_t value; value = -32768; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 413: { LogStep(413, "Write just-below-range value to a range-restricted signed 16-bit integer"); int16_t value; value = -151; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 414: { LogStep(414, "Write just-above-range value to a range-restricted signed 16-bit integer"); int16_t value; value = 201; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 415: { LogStep(415, "Write max value to a range-restricted signed 16-bit integer"); int16_t value; value = 32767; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 416: { LogStep(416, "Verify range-restricted signed 16-bit integer value has not changed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id); + TestCluster::Attributes::RangeRestrictedInt16s::Id, true, chip::NullOptional); } case 417: { LogStep(417, "Write min valid value to a range-restricted signed 16-bit integer"); int16_t value; value = -150; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 418: { LogStep(418, "Verify range-restricted signed 16-bit integer value is at min valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id); + TestCluster::Attributes::RangeRestrictedInt16s::Id, true, chip::NullOptional); } case 419: { LogStep(419, "Write max valid value to a range-restricted signed 16-bit integer"); int16_t value; value = 200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 420: { LogStep(420, "Verify range-restricted signed 16-bit integer value is at max valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id); + TestCluster::Attributes::RangeRestrictedInt16s::Id, true, chip::NullOptional); } case 421: { LogStep(421, "Write middle valid value to a range-restricted signed 16-bit integer"); int16_t value; value = 7; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id, value); + TestCluster::Attributes::RangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 422: { LogStep(422, "Verify range-restricted signed 16-bit integer value is at mid valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::RangeRestrictedInt16s::Id); + TestCluster::Attributes::RangeRestrictedInt16s::Id, true, chip::NullOptional); } case 423: { LogStep(423, "Read nullable range-restricted unsigned 8-bit integer"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, true, chip::NullOptional); } case 424: { LogStep(424, "Write min value to a nullable range-restricted unsigned 8-bit integer"); @@ -44247,7 +45912,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 425: { LogStep(425, "Write just-below-range value to a nullable range-restricted unsigned 8-bit integer"); @@ -44255,7 +45921,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 19; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 426: { LogStep(426, "Write just-above-range value to a nullable range-restricted unsigned 8-bit integer"); @@ -44263,7 +45930,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 101; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 427: { LogStep(427, "Write max value to a nullable range-restricted unsigned 8-bit integer"); @@ -44271,12 +45939,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 254; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 428: { LogStep(428, "Verify nullable range-restricted unsigned 8-bit integer value has not changed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, true, chip::NullOptional); } case 429: { LogStep(429, "Write min valid value to a nullable range-restricted unsigned 8-bit integer"); @@ -44284,12 +45953,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 20; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 430: { LogStep(430, "Verify nullable range-restricted unsigned 8-bit integer value is at min valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, true, chip::NullOptional); } case 431: { LogStep(431, "Write max valid value to a nullable range-restricted unsigned 8-bit integer"); @@ -44297,12 +45967,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 432: { LogStep(432, "Verify nullable range-restricted unsigned 8-bit integer value is at max valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, true, chip::NullOptional); } case 433: { LogStep(433, "Write middle valid value to a nullable range-restricted unsigned 8-bit integer"); @@ -44310,29 +45981,31 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 50; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 434: { LogStep(434, "Verify nullable range-restricted unsigned 8-bit integer value is at mid valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, true, chip::NullOptional); } case 435: { LogStep(435, "Write null value to a nullable range-restricted unsigned 8-bit integer"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, value, chip::NullOptional, + chip::NullOptional); } case 436: { LogStep(436, "Verify nullable range-restricted unsigned 8-bit integer value is null"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8u::Id, true, chip::NullOptional); } case 437: { LogStep(437, "Read nullable range-restricted unsigned 16-bit integer"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, true, chip::NullOptional); } case 438: { LogStep(438, "Write min value to a nullable range-restricted unsigned 16-bit integer"); @@ -44340,7 +46013,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 0U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 439: { LogStep(439, "Write just-below-range value to a nullable range-restricted unsigned 16-bit integer"); @@ -44348,7 +46022,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 99U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 440: { LogStep(440, "Write just-above-range value to a nullable range-restricted unsigned 16-bit integer"); @@ -44356,7 +46031,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 1001U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 441: { LogStep(441, "Write max value to a nullable range-restricted unsigned 16-bit integer"); @@ -44364,12 +46040,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 65534U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 442: { LogStep(442, "Verify nullable range-restricted unsigned 16-bit integer value has not changed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, true, chip::NullOptional); } case 443: { LogStep(443, "Write min valid value to a nullable range-restricted unsigned 16-bit integer"); @@ -44377,12 +46054,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 100U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 444: { LogStep(444, "Verify nullable range-restricted unsigned 16-bit integer value is at min valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, true, chip::NullOptional); } case 445: { LogStep(445, "Write max valid value to a nullable range-restricted unsigned 16-bit integer"); @@ -44390,12 +46068,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 1000U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 446: { LogStep(446, "Verify nullable range-restricted unsigned 16-bit integer value is at max valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, true, chip::NullOptional); } case 447: { LogStep(447, "Write middle valid value to a nullable range-restricted unsigned 16-bit integer"); @@ -44403,29 +46082,31 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 500U; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 448: { LogStep(448, "Verify nullable range-restricted unsigned 16-bit integer value is at mid valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, true, chip::NullOptional); } case 449: { LogStep(449, "Write null value to a nullable range-restricted unsigned 16-bit integer"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, value, chip::NullOptional, + chip::NullOptional); } case 450: { LogStep(450, "Verify nullable range-restricted unsigned 16-bit integer value is null"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16u::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16u::Id, true, chip::NullOptional); } case 451: { LogStep(451, "Read nullable range-restricted signed 8-bit integer"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, true, chip::NullOptional); } case 452: { LogStep(452, "Write min value to a nullable range-restricted signed 8-bit integer"); @@ -44433,7 +46114,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -127; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 453: { LogStep(453, "Write just-below-range value to a nullable range-restricted signed 8-bit integer"); @@ -44441,7 +46123,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -41; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 454: { LogStep(454, "Write just-above-range value to a nullable range-restricted signed 8-bit integer"); @@ -44449,7 +46132,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 51; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 455: { LogStep(455, "Write max value to a nullable range-restricted signed 8-bit integer"); @@ -44457,12 +46141,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 127; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 456: { LogStep(456, "Verify nullable range-restricted signed 8-bit integer value has not changed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, true, chip::NullOptional); } case 457: { LogStep(457, "Write min valid value to a nullable range-restricted signed 8-bit integer"); @@ -44470,12 +46155,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -40; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 458: { LogStep(458, "Verify nullable range-restricted signed 8-bit integer value is at min valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, true, chip::NullOptional); } case 459: { LogStep(459, "Write max valid value to a nullable range-restricted signed 8-bit integer"); @@ -44483,12 +46169,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 50; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 460: { LogStep(460, "Verify nullable range-restricted signed 8-bit integer value is at max valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, true, chip::NullOptional); } case 461: { LogStep(461, "Write middle valid value to a nullable range-restricted signed 8-bit integer"); @@ -44496,29 +46183,31 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 6; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 462: { LogStep(462, "Verify nullable range-restricted signed 8-bit integer value is at mid valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, true, chip::NullOptional); } case 463: { LogStep(463, "Write null value to a nullable range-restricted signed 8-bit integer"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, value, chip::NullOptional, + chip::NullOptional); } case 464: { LogStep(464, "Verify nullable range-restricted signed 8-bit integer value is at null"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt8s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt8s::Id, true, chip::NullOptional); } case 465: { LogStep(465, "Read nullable range-restricted signed 16-bit integer"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, true, chip::NullOptional); } case 466: { LogStep(466, "Write min value to a nullable range-restricted signed 16-bit integer"); @@ -44526,7 +46215,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -32767; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 467: { LogStep(467, "Write just-below-range value to a nullable range-restricted signed 16-bit integer"); @@ -44534,7 +46224,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -151; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 468: { LogStep(468, "Write just-above-range value to a nullable range-restricted signed 16-bit integer"); @@ -44542,7 +46233,8 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 201; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 469: { LogStep(469, "Write max value to a nullable range-restricted signed 16-bit integer"); @@ -44550,12 +46242,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 32767; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 470: { LogStep(470, "Verify nullable range-restricted signed 16-bit integer value has not changed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, true, chip::NullOptional); } case 471: { LogStep(471, "Write min valid value to a nullable range-restricted signed 16-bit integer"); @@ -44563,12 +46256,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = -150; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 472: { LogStep(472, "Verify nullable range-restricted signed 16-bit integer value is at min valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, true, chip::NullOptional); } case 473: { LogStep(473, "Write max valid value to a nullable range-restricted signed 16-bit integer"); @@ -44576,12 +46270,13 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 474: { LogStep(474, "Verify nullable range-restricted signed 16-bit integer value is at max valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, true, chip::NullOptional); } case 475: { LogStep(475, "Write middle valid value to a nullable range-restricted signed 16-bit integer"); @@ -44589,55 +46284,60 @@ class TestClusterSuite : public TestCommand value.SetNonNull(); value.Value() = 7; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 476: { LogStep(476, "Verify nullable range-restricted signed 16-bit integer value is at mid valid"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, true, chip::NullOptional); } case 477: { LogStep(477, "Write null value to a nullable range-restricted signed 16-bit integer"); chip::app::DataModel::Nullable value; value.SetNull(); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, value, chip::NullOptional, + chip::NullOptional); } case 478: { LogStep(478, "Verify nullable range-restricted signed 16-bit integer value is null"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::NullableRangeRestrictedInt16s::Id); + TestCluster::Attributes::NullableRangeRestrictedInt16s::Id, true, chip::NullOptional); } case 479: { LogStep(479, "Write attribute that returns general status on write"); bool value; value = false; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::GeneralErrorBoolean::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 480: { LogStep(480, "Write attribute that returns cluster-specific status on write"); bool value; value = false; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ClusterErrorBoolean::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 481: { LogStep(481, "Read attribute that returns general status on read"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::GeneralErrorBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::GeneralErrorBoolean::Id, + true, chip::NullOptional); } case 482: { LogStep(482, "read attribute that returns cluster-specific status on read"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ClusterErrorBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::ClusterErrorBoolean::Id, + true, chip::NullOptional); } case 483: { LogStep(483, "read AcceptedCommandList attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::AcceptedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); } case 484: { LogStep(484, "read GeneratedCommandList attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::GeneratedCommandList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); } case 485: { LogStep(485, "Write struct-typed attribute"); @@ -44652,11 +46352,13 @@ class TestClusterSuite : public TestCommand value.g = 1.5f; value.h = 3.14159265358979; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::StructAttr::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::StructAttr::Id, value, + chip::NullOptional, chip::NullOptional); } case 486: { LogStep(486, "Read struct-typed attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::StructAttr::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::StructAttr::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -44837,25 +46539,34 @@ class TestClusterComplexTypesSuite : public TestCommand value.arg1.Emplace(); value.arg1.Value().SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TestNullableOptionalRequest::Id, value); + TestCluster::Commands::TestNullableOptionalRequest::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Send command that needs timed invoke without a timeout value"); chip::app::Clusters::TestCluster::Commands::TimedInvokeRequest::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TimedInvokeRequest::Id, - value, chip::NullOptional); + value, chip::NullOptional, chip::NullOptional + + ); } case 3: { LogStep(3, "Send command that needs timed invoke with a long timeout value"); chip::app::Clusters::TestCluster::Commands::TimedInvokeRequest::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TimedInvokeRequest::Id, - value, chip::Optional(10000)); + value, chip::Optional(10000), chip::NullOptional + + ); } case 4: { LogStep(4, "Send command that needs timed invoke with a too-short timeout value"); chip::app::Clusters::TestCluster::Commands::TimedInvokeRequest::Type value; ReturnErrorOnFailure(SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Commands::TimedInvokeRequest::Id, value, chip::Optional(1))); + TestCluster::Commands::TimedInvokeRequest::Id, value, chip::Optional(1), + chip::NullOptional + + )); using namespace chip::System::Clock::Literals; return BusyWaitFor(100_ms); @@ -44864,99 +46575,112 @@ class TestClusterComplexTypesSuite : public TestCommand LogStep(5, "Send command that does not need timed invoke with a long timeout value"); chip::app::Clusters::TestCluster::Commands::Test::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::Test::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 6: { LogStep(6, "Send command that does not need timed invoke with a too-short timeout value"); chip::app::Clusters::TestCluster::Commands::Test::Type value; ReturnErrorOnFailure(SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::Test::Id, - value, chip::Optional(1))); + value, chip::Optional(1), chip::NullOptional + + )); using namespace chip::System::Clock::Literals; return BusyWaitFor(100_ms); } case 7: { LogStep(7, "Read attribute that needs timed write initial state"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Write attribute that needs timed write without a timeout value"); bool value; value = true; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, - value, chip::NullOptional); + value, chip::NullOptional, chip::NullOptional, chip::NullOptional); } case 9: { LogStep(9, "Read attribute that needs timed write state unchanged 1"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "Write attribute that needs timed write with a too-short timeout value"); bool value; value = true; ReturnErrorOnFailure(WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::TimedWriteBoolean::Id, value, - chip::Optional(1))); + TestCluster::Attributes::TimedWriteBoolean::Id, value, chip::Optional(1), + chip::NullOptional, chip::NullOptional)); using namespace chip::System::Clock::Literals; return BusyWaitFor(100_ms); } case 11: { LogStep(11, "Read attribute that needs timed write state unchanged 2"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "Write attribute that needs timed write with a long timeout value"); bool value; value = true; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, - value, chip::Optional(10000)); + value, chip::Optional(10000), chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "Read attribute that needs timed write state changed"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, + true, chip::NullOptional); } case 14: { LogStep(14, "Write attribute that needs timed write reset to default"); bool value; value = false; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::TimedWriteBoolean::Id, - value, chip::Optional(10000)); + value, chip::Optional(10000), chip::NullOptional, chip::NullOptional); } case 15: { LogStep(15, "Read attribute that does not need timed write initial value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Write attribute that does not need timed write with a too-short timeout value"); bool value; value = true; ReturnErrorOnFailure(WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, - TestCluster::Attributes::Boolean::Id, value, chip::Optional(1))); + TestCluster::Attributes::Boolean::Id, value, chip::Optional(1), + chip::NullOptional, chip::NullOptional)); using namespace chip::System::Clock::Literals; return BusyWaitFor(100_ms); } case 17: { LogStep(17, "Read attribute that does not need timed write unchanged value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 18: { LogStep(18, "Write attribute that does not need timed write with a long timeout value"); bool value; value = true; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional, chip::NullOptional); } case 19: { LogStep(19, "Read attribute that does not need timed write changed value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 20: { LogStep(20, "Write attribute that does not need timed write reset to default"); bool value; value = false; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -45154,103 +46878,124 @@ class TestConstraintsSuite : public TestCommand LogStep(1, "Write attribute INT32U Value"); uint32_t value; value = 5UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Read attribute INT32U Value MinValue Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read attribute INT32U Value MaxValue Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read attribute INT32U Value NotValue Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Write attribute INT32U Value Back to Default Value"); uint32_t value; value = 0UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value, + chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "Write attribute CHAR_STRING Value"); chip::CharSpan value; value = chip::Span("** Test **garbage: not in length on purpose", 10); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 7: { LogStep(7, "Read attribute CHAR_STRING Value MinLength Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Read attribute CHAR_STRING Value MaxLength Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Read attribute CHAR_STRING Value StartsWith Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Read attribute CHAR_STRING Value EndsWith Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Write attribute CHAR_STRING Value"); chip::CharSpan value; value = chip::Span("lowercasegarbage: not in length on purpose", 9); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 12: { LogStep(12, "Read attribute CHAR_STRING Value isLowerCase/isUpperCase Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 13: { LogStep(13, "Write attribute CHAR_STRING Value"); chip::CharSpan value; value = chip::Span("UPPERCASEgarbage: not in length on purpose", 9); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 14: { LogStep(14, "Read attribute CHAR_STRING Value isLowerCase/isUpperCase Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Write attribute CHAR_STRING Value"); chip::CharSpan value; value = chip::Span("lowUPPERgarbage: not in length on purpose", 8); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Read attribute CHAR_STRING Value isLowerCase/isUpperCase Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Write attribute CHAR_STRING Value"); chip::CharSpan value; value = chip::Span("ABCDEF012Vgarbage: not in length on purpose", 10); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 18: { LogStep(18, "Read attribute CHAR_STRING Value isHexString Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Write attribute CHAR_STRING Value"); chip::CharSpan value; value = chip::Span("ABCDEF0123garbage: not in length on purpose", 10); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 20: { LogStep(20, "Read attribute CHAR_STRING Value isHexString Constraints"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Write attribute CHAR_STRING Value Back to Default Value"); chip::CharSpan value; value = chip::Span("garbage: not in length on purpose", 0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -45336,7 +47081,7 @@ class TestDelayCommandsSuite : public TestCommand class TestEventsSuite : public TestCommand { public: - TestEventsSuite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("TestEvents", 10, credsIssuerConfig) + TestEventsSuite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("TestEvents", 12, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -45376,17 +47121,19 @@ class TestEventsSuite : public TestCommand shouldContinue = true; break; case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + switch (mTestSubStepIndex) { - chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; } break; case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + switch (mTestSubStepIndex) { - chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; } break; case 3: @@ -45399,16 +47146,52 @@ class TestEventsSuite : public TestCommand } break; case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + switch (mTestSubStepIndex) { - chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("testEvent.arg1", value.arg1, 1)); - VerifyOrReturn(CheckValue("testEvent.arg2", value.arg2, 2)); - VerifyOrReturn(CheckValue("testEvent.arg3", value.arg3, true)); + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEvent.arg1", value.arg1, 1)); + VerifyOrReturn(CheckValue("testEvent.arg2", value.arg2, 2)); + VerifyOrReturn(CheckValue("testEvent.arg3", value.arg3, true)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; } break; case 5: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEvent.arg1", value.arg1, 1)); + VerifyOrReturn(CheckValue("testEvent.arg2", value.arg2, 2)); + VerifyOrReturn(CheckValue("testEvent.arg3", value.arg3, true)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 6: + switch (mTestSubStepIndex) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::TestCluster::Commands::TestEmitTestEventResponse::DecodableType value; @@ -45416,7 +47199,7 @@ class TestEventsSuite : public TestCommand VerifyOrReturn(CheckValue("value", value.value, static_cast(eventNumber + 1))); } break; - case 6: + case 8: switch (mTestSubStepIndex) { case 0: @@ -45446,7 +47229,7 @@ class TestEventsSuite : public TestCommand break; } break; - case 7: + case 9: switch (mTestSubStepIndex) { case 0: @@ -45476,7 +47259,7 @@ class TestEventsSuite : public TestCommand break; } break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::TestCluster::Commands::TestEmitTestEventResponse::DecodableType value; @@ -45484,16 +47267,25 @@ class TestEventsSuite : public TestCommand VerifyOrReturn(CheckValue("value", value.value, static_cast(eventNumber + 2))); } break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 11: + switch (mTestSubStepIndex) { - chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("testEvent.arg1", value.arg1, 4)); - VerifyOrReturn(CheckValue("testEvent.arg2", value.arg2, 5)); - VerifyOrReturn(CheckValue("testEvent.arg3", value.arg3, true)); + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::TestCluster::Events::TestEvent::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEvent.arg1", value.arg1, 4)); + VerifyOrReturn(CheckValue("testEvent.arg2", value.arg2, 5)); + VerifyOrReturn(CheckValue("testEvent.arg3", value.arg3, true)); + } + shouldContinue = true; + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; } - shouldContinue = true; break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); @@ -45518,11 +47310,15 @@ class TestEventsSuite : public TestCommand } case 1: { LogStep(1, "Check there is no event on the target endpoint"); - return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id); + mTestSubStepCount = 0; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, false, + chip::NullOptional); } case 2: { LogStep(2, "Check reading events from an invalid endpoint"); - return ReadEvent(kIdentityAlpha, GetEndpoint(0), TestCluster::Id, TestCluster::Events::TestEvent::Id); + mTestSubStepCount = 0; + return ReadEvent(kIdentityAlpha, GetEndpoint(0), TestCluster::Id, TestCluster::Events::TestEvent::Id, false, + chip::NullOptional); } case 3: { LogStep(3, "Generate an event on the accessory"); @@ -45531,42 +47327,65 @@ class TestEventsSuite : public TestCommand value.arg2 = static_cast(2); value.arg3 = true; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestEmitTestEventRequest::Id, - value); + value, chip::NullOptional + + ); } case 4: { LogStep(4, "Read the event back"); - return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, false, + chip::NullOptional); } case 5: { - LogStep(5, "Generate a second event on the accessory"); + LogStep(5, "Read the event with eventNumber set to the event value"); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, false, + chip::Optional(eventNumber)); + } + case 6: { + LogStep(6, "Read the event with eventNumber set to the event value + 1"); + mTestSubStepCount = 0; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, false, + chip::Optional(eventNumber + 1)); + } + case 7: { + LogStep(7, "Generate a second event on the accessory"); chip::app::Clusters::TestCluster::Commands::TestEmitTestEventRequest::Type value; value.arg1 = 3; value.arg2 = static_cast(4); value.arg3 = false; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestEmitTestEventRequest::Id, - value); + value, chip::NullOptional + + ); } - case 6: { - LogStep(6, "Read the event back"); + case 8: { + LogStep(8, "Read the event back"); mTestSubStepCount = 2; - return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id); + return ReadEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, false, + chip::NullOptional); } - case 7: { - LogStep(7, "Subscribe to the event"); + case 9: { + LogStep(9, "Subscribe to the event"); mTestSubStepCount = 2; - return SubscribeEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, 3, 5); + return SubscribeEvent(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Events::TestEvent::Id, 3, 5, false, + chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, "Generate a third event on the accessory"); + case 10: { + LogStep(10, "Generate a third event on the accessory"); chip::app::Clusters::TestCluster::Commands::TestEmitTestEventRequest::Type value; value.arg1 = 4; value.arg2 = static_cast(5); value.arg3 = true; return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestEmitTestEventRequest::Id, - value); + value, chip::NullOptional + + ); } - case 9: { - LogStep(9, "Check for event report"); + case 11: { + LogStep(11, "Check for event report"); + mTestSubStepCount = 1; return WaitForReport(); } } @@ -45889,7 +47708,9 @@ class TestDiscoverySuite : public TestCommand value.commissioningTimeout = 120U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 4: { LogStep(4, "Open Commissioning Window with too-long timeout"); @@ -45897,7 +47718,9 @@ class TestDiscoverySuite : public TestCommand value.commissioningTimeout = 1000U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 5: { LogStep(5, "Open Commissioning Window"); @@ -45905,7 +47728,9 @@ class TestDiscoverySuite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 6: { LogStep(6, "Check Instance Name"); @@ -46023,7 +47848,9 @@ class TestDiscoverySuite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 26: { LogStep(26, "Check Instance Name"); @@ -46976,529 +48803,644 @@ class TestSaveAsSuite : public TestCommand chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = 3; value.arg2 = 17; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send Test Add Arguments Command"); chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = 3; value.arg2 = 17; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Send Test Add Arguments Command"); chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = 3; value.arg2 = TestAddArgumentDefaultValue; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Read attribute BOOLEAN Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Write attribute BOOLEAN Not Default Value"); bool value; value = 1; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value, + chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "Read attribute BOOLEAN Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Write attribute BOOLEAN DefaultValue"); bool value; value = readAttributeBooleanDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, value, + chip::NullOptional, chip::NullOptional); } case 8: { LogStep(8, "Read attribute BOOLEAN False"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Boolean::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Read attribute BITMAP8 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Write attribute BITMAP8 Not Default Value"); chip::BitFlags value; value = static_cast>(1); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value, + chip::NullOptional, chip::NullOptional); } case 11: { LogStep(11, "Read attribute BITMAP8 Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Write attribute BITMAP8 Default Value"); chip::BitFlags value; value = readAttributeBitmap8DefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, value, + chip::NullOptional, chip::NullOptional); } case 13: { LogStep(13, "Read attribute BITMAP8 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap8::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Read attribute BITMAP16 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Write attribute BITMAP16 Not Default Value"); chip::BitFlags value; value = static_cast>(1U); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Read attribute BITMAP16 Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Write attribute BITMAP16 Default Value"); chip::BitFlags value; value = readAttributeBitmap16DefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, value, + chip::NullOptional, chip::NullOptional); } case 18: { LogStep(18, "Read attribute BITMAP16 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap16::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Read attribute BITMAP32 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, true, + chip::NullOptional); } case 20: { LogStep(20, "Write attribute BITMAP32 Not Default Value"); chip::BitFlags value; value = static_cast>(1UL); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value, + chip::NullOptional, chip::NullOptional); } case 21: { LogStep(21, "Read attribute BITMAP32 Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, true, + chip::NullOptional); } case 22: { LogStep(22, "Write attribute BITMAP32 Default Value"); chip::BitFlags value; value = readAttributeBitmap32DefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, value, + chip::NullOptional, chip::NullOptional); } case 23: { LogStep(23, "Read attribute BITMAP32 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap32::Id, true, + chip::NullOptional); } case 24: { LogStep(24, "Read attribute BITMAP64 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, true, + chip::NullOptional); } case 25: { LogStep(25, "Write attribute BITMAP64 Not Default Value"); chip::BitFlags value; value = static_cast>(1ULL); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value, + chip::NullOptional, chip::NullOptional); } case 26: { LogStep(26, "Read attribute BITMAP64 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, true, + chip::NullOptional); } case 27: { LogStep(27, "Write attribute BITMAP64 Default Value"); chip::BitFlags value; value = readAttributeBitmap64DefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, value, + chip::NullOptional, chip::NullOptional); } case 28: { LogStep(28, "Read attribute BITMAP64 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Bitmap64::Id, true, + chip::NullOptional); } case 29: { LogStep(29, "Read attribute INT8U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, true, + chip::NullOptional); } case 30: { LogStep(30, "Write attribute INT8U Not Default Value"); uint8_t value; value = 1; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value, + chip::NullOptional, chip::NullOptional); } case 31: { LogStep(31, "Read attribute INT8U Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, true, + chip::NullOptional); } case 32: { LogStep(32, "Write attribute INT8U Default Value"); uint8_t value; value = readAttributeInt8uDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, value, + chip::NullOptional, chip::NullOptional); } case 33: { LogStep(33, "Read attribute INT8U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8u::Id, true, + chip::NullOptional); } case 34: { LogStep(34, "Read attribute INT16U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, true, + chip::NullOptional); } case 35: { LogStep(35, "Write attribute INT16U Not Default Value"); uint16_t value; value = 1U; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value, + chip::NullOptional, chip::NullOptional); } case 36: { LogStep(36, "Read attribute INT16U Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, true, + chip::NullOptional); } case 37: { LogStep(37, "Write attribute INT16U Default Value"); uint16_t value; value = readAttributeInt16uDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, value, + chip::NullOptional, chip::NullOptional); } case 38: { LogStep(38, "Read attribute INT16U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16u::Id, true, + chip::NullOptional); } case 39: { LogStep(39, "Read attribute INT32U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 40: { LogStep(40, "Write attribute INT32U Not Default Value"); uint32_t value; value = 1UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value, + chip::NullOptional, chip::NullOptional); } case 41: { LogStep(41, "Read attribute INT32U Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 42: { LogStep(42, "Write attribute INT32U Default Value"); uint32_t value; value = readAttributeInt32uDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, value, + chip::NullOptional, chip::NullOptional); } case 43: { LogStep(43, "Read attribute INT32U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32u::Id, true, + chip::NullOptional); } case 44: { LogStep(44, "Read attribute INT64U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, true, + chip::NullOptional); } case 45: { LogStep(45, "Write attribute INT64U Not Default Value"); uint64_t value; value = 1ULL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value, + chip::NullOptional, chip::NullOptional); } case 46: { LogStep(46, "Read attribute INT64U Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, true, + chip::NullOptional); } case 47: { LogStep(47, "Write attribute INT64U Default Value"); uint64_t value; value = readAttributeInt64uDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, value, + chip::NullOptional, chip::NullOptional); } case 48: { LogStep(48, "Read attribute INT64U Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64u::Id, true, + chip::NullOptional); } case 49: { LogStep(49, "Read attribute INT8S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 50: { LogStep(50, "Write attribute INT8S Not Default Value"); int8_t value; value = 1; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value, + chip::NullOptional, chip::NullOptional); } case 51: { LogStep(51, "Read attribute INT8S Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 52: { LogStep(52, "Write attribute INT8S Default Value"); int8_t value; value = readAttributeInt8sDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, value, + chip::NullOptional, chip::NullOptional); } case 53: { LogStep(53, "Read attribute INT8S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int8s::Id, true, + chip::NullOptional); } case 54: { LogStep(54, "Read attribute INT16S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 55: { LogStep(55, "Write attribute INT16S Not Default Value"); int16_t value; value = 1; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value, + chip::NullOptional, chip::NullOptional); } case 56: { LogStep(56, "Read attribute INT16S Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 57: { LogStep(57, "Write attribute INT16S Default Value"); int16_t value; value = readAttributeInt16sDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, value, + chip::NullOptional, chip::NullOptional); } case 58: { LogStep(58, "Read attribute INT16S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int16s::Id, true, + chip::NullOptional); } case 59: { LogStep(59, "Read attribute INT32S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 60: { LogStep(60, "Write attribute INT32S Not Default Value"); int32_t value; value = 1L; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value, + chip::NullOptional, chip::NullOptional); } case 61: { LogStep(61, "Read attribute INT32S Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 62: { LogStep(62, "Write attribute INT32S Default Value"); int32_t value; value = readAttributeInt32sDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, value, + chip::NullOptional, chip::NullOptional); } case 63: { LogStep(63, "Read attribute INT32S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int32s::Id, true, + chip::NullOptional); } case 64: { LogStep(64, "Read attribute INT64S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 65: { LogStep(65, "Write attribute INTS Not Default Value"); int64_t value; value = 1LL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value, + chip::NullOptional, chip::NullOptional); } case 66: { LogStep(66, "Read attribute INT64S Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 67: { LogStep(67, "Write attribute INT64S Default Value"); int64_t value; value = readAttributeInt64sDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, value, + chip::NullOptional, chip::NullOptional); } case 68: { LogStep(68, "Read attribute INT64S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Int64s::Id, true, + chip::NullOptional); } case 69: { LogStep(69, "Read attribute ENUM8 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, true, + chip::NullOptional); } case 70: { LogStep(70, "Write attribute ENUM8 Not Default Value"); uint8_t value; value = 1; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value, + chip::NullOptional, chip::NullOptional); } case 71: { LogStep(71, "Read attribute ENUM8 Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, true, + chip::NullOptional); } case 72: { LogStep(72, "Write attribute ENUM8 Default Value"); uint8_t value; value = readAttributeEnum8DefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, value, + chip::NullOptional, chip::NullOptional); } case 73: { LogStep(73, "Read attribute ENUM8 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum8::Id, true, + chip::NullOptional); } case 74: { LogStep(74, "Read attribute ENUM16 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, true, + chip::NullOptional); } case 75: { LogStep(75, "Write attribute ENUM16 Not Default Value"); uint16_t value; value = 1U; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value, + chip::NullOptional, chip::NullOptional); } case 76: { LogStep(76, "Read attribute ENUM16 Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, true, + chip::NullOptional); } case 77: { LogStep(77, "Write attribute ENUM16 Default Value"); uint16_t value; value = readAttributeEnum16DefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, value, + chip::NullOptional, chip::NullOptional); } case 78: { LogStep(78, "Read attribute ENUM16 Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::Enum16::Id, true, + chip::NullOptional); } case 79: { LogStep(79, "Read attribute EPOCH_US Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, true, + chip::NullOptional); } case 80: { LogStep(80, "Write attribute EPOCH_US Not Default Value"); uint64_t value; value = 1ULL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value, + chip::NullOptional, chip::NullOptional); } case 81: { LogStep(81, "Read attribute EPOCH_US Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, true, + chip::NullOptional); } case 82: { LogStep(82, "Write attribute EPOCH_US Default Value"); uint64_t value; value = readAttributeEpochUSDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, value, + chip::NullOptional, chip::NullOptional); } case 83: { LogStep(83, "Read attribute EPOCH_US Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochUs::Id, true, + chip::NullOptional); } case 84: { LogStep(84, "Read attribute EPOCH_S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, true, + chip::NullOptional); } case 85: { LogStep(85, "Write attribute EPOCH_S Not Default Value"); uint32_t value; value = 1UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value, + chip::NullOptional, chip::NullOptional); } case 86: { LogStep(86, "Read attribute EPOCH_S Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, true, + chip::NullOptional); } case 87: { LogStep(87, "Write attribute EPOCH_S Default Value"); uint32_t value; value = readAttributeEpochSDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, value, + chip::NullOptional, chip::NullOptional); } case 88: { LogStep(88, "Read attribute EPOCH_S Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::EpochS::Id, true, + chip::NullOptional); } case 89: { LogStep(89, "Read attribute vendor_id Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, true, + chip::NullOptional); } case 90: { LogStep(90, "Write attribute vendor_id Not Default Value"); chip::VendorId value; value = static_cast(1); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value, + chip::NullOptional, chip::NullOptional); } case 91: { LogStep(91, "Read attribute vendor_id Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, true, + chip::NullOptional); } case 92: { LogStep(92, "Write attribute vendor_id Default Value"); chip::VendorId value; value = readAttributeVendorIdDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, value, + chip::NullOptional, chip::NullOptional); } case 93: { LogStep(93, "Read attribute vendor_id Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::VendorId::Id, true, + chip::NullOptional); } case 94: { LogStep(94, "Read attribute char_string Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 95: { LogStep(95, "Read attribute char_string Default Value and compare to saved value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 96: { LogStep(96, "Write attribute char_string Not Default Value"); chip::CharSpan value; value = chip::Span("NotDefaultgarbage: not in length on purpose", 10); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 97: { LogStep(97, "Read attribute char_string Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 98: { LogStep(98, "Read attribute char_string Not Default Value and compare to saved value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 99: { LogStep(99, "Write attribute char_string Not Default Value from saved value"); chip::CharSpan value; value = readAttributeCharStringNotDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 100: { LogStep(100, "Read attribute char_string Not Default Value and compare to expected value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, true, + chip::NullOptional); } case 101: { LogStep(101, "Write attribute char_string Default Value"); chip::CharSpan value; value = readAttributeCharStringDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::CharString::Id, value, + chip::NullOptional, chip::NullOptional); } case 102: { LogStep(102, "Read attribute octet_string Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 103: { LogStep(103, "Read attribute octet_string Default Value and compare to saved value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 104: { LogStep(104, "Write attribute octet_string Not Default Value"); chip::ByteSpan value; value = chip::ByteSpan(chip::Uint8::from_const_char("NotDefaultgarbage: not in length on purpose"), 10); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 105: { LogStep(105, "Read attribute octet_string Not Default Value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 106: { LogStep(106, "Read attribute octet_string Not Default Value and compare to saved value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 107: { LogStep(107, "Write attribute octet_string Not Default Value from saved value"); chip::ByteSpan value; value = readAttributeOctetStringNotDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } case 108: { LogStep(108, "Read attribute octet_string Not Default Value and compare to expected value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, true, + chip::NullOptional); } case 109: { LogStep(109, "Write attribute octet_string Default Value"); chip::ByteSpan value; value = readAttributeOctetStringDefaultValue; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Attributes::OctetString::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -47597,14 +49539,20 @@ class TestConfigVariablesSuite : public TestCommand chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = 3; value.arg2 = 17; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Send Test Add Arguments Command"); chip::app::Clusters::TestCluster::Commands::TestAddArguments::Type value; value.arg1 = mArg1.HasValue() ? mArg1.Value() : 5; value.arg2 = TestAddArgumentDefaultValue; - return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), TestCluster::Id, TestCluster::Commands::TestAddArguments::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -47780,19 +49728,23 @@ class TestDescriptorClusterSuite : public TestCommand } case 1: { LogStep(1, "Read attribute Device list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::DeviceList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::DeviceList::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read attribute Server list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ServerList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ServerList::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Read attribute Client list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ClientList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ClientList::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read attribute Parts list"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::PartsList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::PartsList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -48012,55 +49964,66 @@ class TestBasicInformationSuite : public TestCommand } case 1: { LogStep(1, "Read location"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Write location"); chip::CharSpan value; value = chip::Span("USgarbage: not in length on purpose", 2); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, value, + chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "Read back location"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Restore initial location value"); chip::CharSpan value; value = chip::Span("XXgarbage: not in length on purpose", 2); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::Location::Id, value, + chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "Read AttributeList value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::AttributeList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::AttributeList::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Read NodeLabel"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Write NodeLabel"); chip::CharSpan value; value = chip::Span("My nodegarbage: not in length on purpose", 7); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 8: { LogStep(8, "Read back NodeLabel"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Read LocalConfigDisabled"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Write LocalConfigDisabled"); bool value; value = true; - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, value, + chip::NullOptional, chip::NullOptional); } case 11: { LogStep(11, "Read back LocalConfigDisabled"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Reboot the device"); @@ -48075,23 +50038,27 @@ class TestBasicInformationSuite : public TestCommand } case 14: { LogStep(14, "Read back NodeLabel after reboot"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Restore initial NodeLabel value"); chip::CharSpan value; value = chip::Span("garbage: not in length on purpose", 0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Read back LocalConfigDisabled after reboot"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Restore initial LocalConfigDisabled value"); bool value; value = false; - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::LocalConfigDisabled::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -48368,24 +50335,24 @@ class TestGeneralCommissioningSuite : public TestCommand uint64_t value; value = 137438953472ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id, value); + GeneralCommissioning::Attributes::Breadcrumb::Id, value, chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Read back Breadcrumb (1/2)"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Write Breadcrumb (2/2)"); uint64_t value; value = 81ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id, value); + GeneralCommissioning::Attributes::Breadcrumb::Id, value, chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Read back Breadcrumb (2/2)"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Reboot to reset Breadcrumb"); @@ -48401,30 +50368,32 @@ class TestGeneralCommissioningSuite : public TestCommand case 7: { LogStep(7, "Read back Breadcrumb after reboot and ensure it was not persisted"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Set Breadcrumb to nonzero value"); uint64_t value; value = 1ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id, value); + GeneralCommissioning::Attributes::Breadcrumb::Id, value, chip::NullOptional, chip::NullOptional); } case 9: { LogStep(9, "Check Breadcrumb set worked"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 10: { LogStep(10, "Send CommissioningComplete without armed fail-safe"); chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::CommissioningComplete::Id, value); + GeneralCommissioning::Commands::CommissioningComplete::Id, value, chip::NullOptional + + ); } case 11: { LogStep(11, "Check Breadcrumb was not touched by invalid CommissioningComplete"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 12: { LogStep(12, "Open Commissioning Window from alpha"); @@ -48432,7 +50401,9 @@ class TestGeneralCommissioningSuite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 13: { LogStep(13, "Try to arm fail-safe"); @@ -48440,19 +50411,21 @@ class TestGeneralCommissioningSuite : public TestCommand value.expiryLengthSeconds = 10U; value.breadcrumb = 5000ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::ArmFailSafe::Id, value); + GeneralCommissioning::Commands::ArmFailSafe::Id, value, chip::NullOptional + + ); } case 14: { LogStep(14, "Check Breadcrumb was not touched by ArmFailSafe with commissioning window open"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 15: { LogStep(15, "Reset Breadcrumb to 0 so we can commission"); uint64_t value; value = 0ULL; return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id, value); + GeneralCommissioning::Attributes::Breadcrumb::Id, value, chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Commission from beta"); @@ -48473,12 +50446,14 @@ class TestGeneralCommissioningSuite : public TestCommand value.expiryLengthSeconds = 500U; value.breadcrumb = 2ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::ArmFailSafe::Id, value); + GeneralCommissioning::Commands::ArmFailSafe::Id, value, chip::NullOptional + + ); } case 19: { LogStep(19, "Check Breadcrumb was properly set by ArmFailSafe"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 20: { LogStep(20, "Try to arm fail-safe from wrong fabric"); @@ -48486,34 +50461,40 @@ class TestGeneralCommissioningSuite : public TestCommand value.expiryLengthSeconds = 10U; value.breadcrumb = 5000ULL; return SendCommand(kIdentityBeta, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::ArmFailSafe::Id, value); + GeneralCommissioning::Commands::ArmFailSafe::Id, value, chip::NullOptional + + ); } case 21: { LogStep(21, "Check Breadcrumb was not touched by ArmFailSafe with existing fail-safe armed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 22: { LogStep(22, "Send CommissioningComplete from wrong fabric"); chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::Type value; return SendCommand(kIdentityBeta, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::CommissioningComplete::Id, value); + GeneralCommissioning::Commands::CommissioningComplete::Id, value, chip::NullOptional + + ); } case 23: { LogStep(23, "Check Breadcrumb was not touched by CommissioningComplete from wrong fabric"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 24: { LogStep(24, "Close out the fail-safe gracefully"); chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::CommissioningComplete::Id, value); + GeneralCommissioning::Commands::CommissioningComplete::Id, value, chip::NullOptional + + ); } case 25: { LogStep(25, "Check Breadcrumb was reset to 0 by CommissioningComplete"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 26: { LogStep(26, "Arm fail-safe again"); @@ -48521,12 +50502,14 @@ class TestGeneralCommissioningSuite : public TestCommand value.expiryLengthSeconds = 500U; value.breadcrumb = 3ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::ArmFailSafe::Id, value); + GeneralCommissioning::Commands::ArmFailSafe::Id, value, chip::NullOptional + + ); } case 27: { LogStep(27, "Check Breadcrumb was set by arming fail-safe again"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 28: { LogStep(28, "Force-expire the fail-safe"); @@ -48534,17 +50517,19 @@ class TestGeneralCommissioningSuite : public TestCommand value.expiryLengthSeconds = 0U; value.breadcrumb = 4ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::ArmFailSafe::Id, value); + GeneralCommissioning::Commands::ArmFailSafe::Id, value, chip::NullOptional + + ); } case 29: { LogStep(29, "Check Breadcrumb was reset by expiring the fail-safe"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::Breadcrumb::Id); + GeneralCommissioning::Attributes::Breadcrumb::Id, true, chip::NullOptional); } case 30: { LogStep(30, "Validate presence of SupportsConcurrentConnection"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::SupportsConcurrentConnection::Id); + GeneralCommissioning::Attributes::SupportsConcurrentConnection::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -48620,7 +50605,10 @@ class TestIdentifyClusterSuite : public TestCommand LogStep(1, "Send Identify command and expect success response"); chip::app::Clusters::Identify::Commands::Identify::Type value; value.identifyTime = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), Identify::Id, Identify::Commands::Identify::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(0), Identify::Id, Identify::Commands::Identify::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -48773,41 +50761,45 @@ class TestOperationalCredentialsClusterSuite : public TestCommand case 1: { LogStep(1, "Read number of supported fabrics"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::SupportedFabrics::Id); + OperationalCredentials::Attributes::SupportedFabrics::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read number of commissioned fabrics"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::CommissionedFabrics::Id); + OperationalCredentials::Attributes::CommissionedFabrics::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read current fabric index"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::CurrentFabricIndex::Id); + OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Remove nonexistent fabric"); chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; value.fabricIndex = 243; return SendCommand(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Commands::RemoveFabric::Id, value); + OperationalCredentials::Commands::RemoveFabric::Id, value, chip::NullOptional + + ); } case 5: { LogStep(5, "Read fabric list before setting label"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Set the fabric label"); chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::Type value; value.label = chip::Span("Batcavegarbage: not in length on purpose", 7); return SendCommand(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Commands::UpdateFabricLabel::Id, value); + OperationalCredentials::Commands::UpdateFabricLabel::Id, value, chip::NullOptional + + ); } case 7: { LogStep(7, "Read fabric list after setting label"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -49070,127 +51062,161 @@ class TestModeSelectClusterSuite : public TestCommand } case 1: { LogStep(1, "Read Description"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::Description::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::Description::Id, true, + chip::NullOptional); } case 2: { LogStep(2, "Read StandardNamespace"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StandardNamespace::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StandardNamespace::Id, + true, chip::NullOptional); } case 3: { LogStep(3, "Read SupportedModes"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::SupportedModes::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::SupportedModes::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Read CurrentMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Read StartUpMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Read OnMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Change to Supported Mode"); chip::app::Clusters::ModeSelect::Commands::ChangeToMode::Type value; value.newMode = 4; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Commands::ChangeToMode::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Commands::ChangeToMode::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Verify Current Mode Change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Change to Unsupported Mode"); chip::app::Clusters::ModeSelect::Commands::ChangeToMode::Type value; value.newMode = 2; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Commands::ChangeToMode::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Commands::ChangeToMode::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Toggle OnOff"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 11: { LogStep(11, "Toggle OnOff"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 12: { LogStep(12, "Verify Current Mode does not change when OnMode is null"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id, true, + chip::NullOptional); } case 13: { LogStep(13, "Change to Unsupported OnMode"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 2; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 14: { LogStep(14, "Change OnMode"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 7; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 15: { LogStep(15, "Verify OnMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, true, + chip::NullOptional); } case 16: { LogStep(16, "Toggle OnOff"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 17: { LogStep(17, "Toggle OnOff"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 18: { LogStep(18, "Verify Current Mode Changes if OnMode is not null"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Change to Unsupported StartUp Mode"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 2; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 20: { LogStep(20, "Change to Supported StartUp Mode"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 7; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 21: { LogStep(21, "Verify StartUp Mode Change"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::StartUpMode::Id, true, + chip::NullOptional); } case 22: { LogStep(22, "Change CurrentMode to another value"); chip::app::Clusters::ModeSelect::Commands::ChangeToMode::Type value; value.newMode = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Commands::ChangeToMode::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Commands::ChangeToMode::Id, value, + chip::NullOptional + + ); } case 23: { LogStep(23, "Change On Mode"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 4; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 24: { LogStep(24, "Set StartUpOnOff"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = static_cast(1); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id, value, + chip::NullOptional, chip::NullOptional); } case 25: { LogStep(25, "Reboot target device"); @@ -49205,13 +51231,15 @@ class TestModeSelectClusterSuite : public TestCommand } case 27: { LogStep(27, "Verify Current Mode Change based on OnMode, as it overwrites StartUpMode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id, true, + chip::NullOptional); } case 28: { LogStep(28, "Change On Mode to Null"); chip::app::DataModel::Nullable value; value.SetNull(); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::OnMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 29: { LogStep(29, "Reboot target device"); @@ -49226,7 +51254,8 @@ class TestModeSelectClusterSuite : public TestCommand } case 31: { LogStep(31, "Verify Current Mode Change based on new StartUp Mode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::CurrentMode::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -49326,19 +51355,21 @@ class TestSelfFabricRemovalSuite : public TestCommand case 1: { LogStep(1, "Read number of commissioned fabrics"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::CommissionedFabrics::Id); + OperationalCredentials::Attributes::CommissionedFabrics::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read current fabric index"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::CurrentFabricIndex::Id); + OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Remove single own fabric"); chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; value.fabricIndex = ourFabricIndex; return SendCommand(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Commands::RemoveFabric::Id, value); + OperationalCredentials::Commands::RemoveFabric::Id, value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -49816,11 +51847,13 @@ class TestBindingSuite : public TestCommand chip::app::DataModel::List value; value = chip::app::DataModel::List(); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Read empty binding table"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Write invalid binding table"); @@ -49846,7 +51879,8 @@ class TestBindingSuite : public TestCommand value = chip::app::DataModel::List(listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Write binding table (endpoint 1)"); @@ -49878,11 +51912,13 @@ class TestBindingSuite : public TestCommand value = chip::app::DataModel::List(listHolder_0->mList, 3); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, value, + chip::NullOptional, chip::NullOptional); } case 5: { LogStep(5, "Read binding table (endpoint 1)"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Write binding table (endpoint 0)"); @@ -49902,15 +51938,18 @@ class TestBindingSuite : public TestCommand value = chip::app::DataModel::List(listHolder_0->mList, 1); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Binding::Id, Binding::Attributes::Binding::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Binding::Id, Binding::Attributes::Binding::Id, value, + chip::NullOptional, chip::NullOptional); } case 7: { LogStep(7, "Read binding table (endpoint 0)"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Binding::Id, Binding::Attributes::Binding::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Binding::Id, Binding::Attributes::Binding::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Verify endpoint 1 not changed"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::Binding::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -50036,11 +52075,13 @@ class TestUserLabelClusterSuite : public TestCommand chip::app::DataModel::List value; value = chip::app::DataModel::List(); - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Read User Label List"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Write User Label List"); @@ -50066,7 +52107,8 @@ class TestUserLabelClusterSuite : public TestCommand value = chip::app::DataModel::List(listHolder_0->mList, 4); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Reboot target device"); @@ -50081,7 +52123,8 @@ class TestUserLabelClusterSuite : public TestCommand } case 6: { LogStep(6, "Verify"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UserLabel::Id, UserLabel::Attributes::LabelList::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -50191,7 +52234,7 @@ class TestArmFailSafeSuite : public TestCommand case 2: { LogStep(2, "Query fabrics list"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id); + OperationalCredentials::Attributes::Fabrics::Id, true, chip::NullOptional); } case 3: { LogStep(3, "ArmFailSafe on target device with timeout 0"); @@ -50199,11 +52242,14 @@ class TestArmFailSafeSuite : public TestCommand value.expiryLengthSeconds = 0U; value.breadcrumb = 0ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Commands::ArmFailSafe::Id, value); + GeneralCommissioning::Commands::ArmFailSafe::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "Reads NodeLabel mandatory attribute of target device"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -50435,118 +52481,139 @@ class TestFanControlSuite : public TestCommand LogStep(1, "Write fan mode"); chip::app::Clusters::FanControl::FanModeType value; value = static_cast(3); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 2: { LogStep(2, "Read back fan mode"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, true, + chip::NullOptional); } case 3: { LogStep(3, "Write fan mode sequence"); chip::app::Clusters::FanControl::FanModeSequenceType value; value = static_cast(5); return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanModeSequence::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Read back fan mode sequence"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanModeSequence::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanModeSequence::Id, true, + chip::NullOptional); } case 5: { LogStep(5, "Write percent setting"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 84; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, - value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, value, + chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "Read back percent setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, true, + chip::NullOptional); } case 7: { LogStep(7, "Read back speed setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Read back speed current"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedCurrent::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedCurrent::Id, true, + chip::NullOptional); } case 9: { LogStep(9, "Write percent setting"); chip::app::DataModel::Nullable value; value.SetNull(); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, - value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, value, + chip::NullOptional, chip::NullOptional); } case 10: { LogStep(10, "Read back percent setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, true, + chip::NullOptional); } case 11: { LogStep(11, "Write speed setting"); chip::app::DataModel::Nullable value; value.SetNonNull(); value.Value() = 73; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, value, + chip::NullOptional, chip::NullOptional); } case 12: { LogStep(12, "Read back speed setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, true, + chip::NullOptional); } case 13: { LogStep(13, "Read back percent setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, true, + chip::NullOptional); } case 14: { LogStep(14, "Read back percent current"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentCurrent::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentCurrent::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "Write speed setting"); chip::app::DataModel::Nullable value; value.SetNull(); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "Read back speed setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "Write fan mode"); chip::app::Clusters::FanControl::FanModeType value; value = static_cast(0); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 18: { LogStep(18, "Read back percent setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, true, + chip::NullOptional); } case 19: { LogStep(19, "Read back percent current"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentCurrent::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentCurrent::Id, true, + chip::NullOptional); } case 20: { LogStep(20, "Read back speed setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, true, + chip::NullOptional); } case 21: { LogStep(21, "Read back speed current"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedCurrent::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedCurrent::Id, true, + chip::NullOptional); } case 22: { LogStep(22, "Write fan mode"); chip::app::Clusters::FanControl::FanModeType value; value = static_cast(5); - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::FanMode::Id, value, + chip::NullOptional, chip::NullOptional); } case 23: { LogStep(23, "Read back percent setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::PercentSetting::Id, true, + chip::NullOptional); } case 24: { LogStep(24, "Read back speed setting"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::SpeedSetting::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -50747,7 +52814,9 @@ class TestMultiAdminSuite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 5: { LogStep(5, "Commission from alpha again"); @@ -50759,14 +52828,16 @@ class TestMultiAdminSuite : public TestCommand case 6: { LogStep(6, "Check that we just have the one fabric and did not add a new one"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, - OperationalCredentials::Attributes::Fabrics::Id, false); + OperationalCredentials::Attributes::Fabrics::Id, false, chip::NullOptional); } case 7: { LogStep(7, "Close Commissioning Window after failed commissioning"); chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::RevokeCommissioning::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 8: { LogStep(8, "Open Commissioning Window from alpha again"); @@ -50774,7 +52845,9 @@ class TestMultiAdminSuite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 9: { LogStep(9, "Commission from beta"); @@ -50795,7 +52868,9 @@ class TestMultiAdminSuite : public TestCommand value.commissioningTimeout = 180U; return SendCommand(kIdentityBeta, GetEndpoint(0), AdministratorCommissioning::Id, AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 12: { LogStep(12, "Commission from gamma"); @@ -50812,23 +52887,27 @@ class TestMultiAdminSuite : public TestCommand } case 14: { LogStep(14, "read the mandatory attribute: NodeLabel from alpha"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 15: { LogStep(15, "write the mandatory attribute NodeLabel from beta"); chip::CharSpan value; value = chip::Span("written from betagarbage: not in length on purpose", 17); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityBeta, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } case 16: { LogStep(16, "read the mandatory attribute: NodeLabel from gamma"); - return ReadAttribute(kIdentityGamma, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityGamma, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 17: { LogStep(17, "write the mandatory attribute NodeLabel back to default"); chip::CharSpan value; value = readFromAlpha; - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -50945,24 +53024,24 @@ class Test_TC_SWDIAG_1_1Suite : public TestCommand LogStep(1, "Reads a list of ThreadMetrics struct non-global attribute from DUT."); VerifyOrdo(!ShouldSkip("A_THREADMETRICS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::ThreadMetrics::Id); + SoftwareDiagnostics::Attributes::ThreadMetrics::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Reads CurrentHeapFree non-global attribute value from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::CurrentHeapFree::Id); + SoftwareDiagnostics::Attributes::CurrentHeapFree::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentHeapUsed non-global attribute value from DUT"); VerifyOrdo(!ShouldSkip("A_CURRENTHEAPUSED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id); + SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads CurrentHeapHighWaterMark non-global attribute value from DUT"); VerifyOrdo(!ShouldSkip("A_CURRENTHEAPHIGHWATERMARK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id); + SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -51142,25 +53221,27 @@ class Test_TC_SWDIAG_3_1Suite : public TestCommand VerifyOrdo(!ShouldSkip("CR_RESETWATERMARKS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Commands::ResetWatermarks::Id, value); + SoftwareDiagnostics::Commands::ResetWatermarks::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Reads a list of ThreadMetrics struct attribute from DUT."); VerifyOrdo(!ShouldSkip("A_THREADMETRICS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::ThreadMetrics::Id); + SoftwareDiagnostics::Attributes::ThreadMetrics::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Reads CurrentHeapUsed attribute value from DUT"); VerifyOrdo(!ShouldSkip("A_CURRENTHEAPUSED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id); + SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Reads CurrentHeapHighWaterMark attribute value from DUT"); VerifyOrdo(!ShouldSkip("A_CURRENTHEAPHIGHWATERMARK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, - SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id); + SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id, true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -51267,16 +53348,21 @@ class TestSubscribe_OnOffSuite : public TestCommand case 1: { LogStep(1, "Set OnOff Attribute to false"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Subscribe OnOff Attribute"); - return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, 2, 5); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, 2, 5, true, + chip::NullOptional, chip::NullOptional); } case 3: { LogStep(3, "Turn On the light to see attribute change"); chip::app::Clusters::OnOff::Commands::On::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "Check for attribute report"); @@ -51285,7 +53371,9 @@ class TestSubscribe_OnOffSuite : public TestCommand case 5: { LogStep(5, "Turn Off the light to see attribute change"); chip::app::Clusters::OnOff::Commands::Off::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id, value, chip::NullOptional + + ); } case 6: { LogStep(6, "Check for attribute report"); @@ -53110,24 +55198,33 @@ class DL_UsersAndCredentialsSuite : public TestCommand LogStep(1, "Read available user slot and verify response fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "Get number of supported users and verify default value"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::NumberOfTotalUsersSupported::Id); + DoorLock::Attributes::NumberOfTotalUsersSupported::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read fails for user with index 0"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "Read fails for user with index greater than Number Of Users Supported"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "Create new user with default parameters"); @@ -53140,13 +55237,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 6: { LogStep(6, "Read the user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "Set user at the occupied index fails with appropriate response"); @@ -53159,7 +55261,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 8: { LogStep(8, "Modify userName for existing user"); @@ -53173,13 +55277,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 9: { LogStep(9, "Read the modified user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Modify userUniqueId for existing user"); @@ -53193,13 +55302,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 11: { LogStep(11, "Read the modified user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Modify userStatus for existing user"); @@ -53213,13 +55327,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 13: { LogStep(13, "Read the modified user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Modify userType for existing user"); @@ -53233,13 +55352,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.Value() = static_cast(6); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 15: { LogStep(15, "Read the modified user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "Modify credentialRule for existing user"); @@ -53253,13 +55377,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credentialRule.SetNonNull(); value.credentialRule.Value() = static_cast(2); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 17: { LogStep(17, "Read the modified user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 18: { LogStep(18, "Modify all fields for existing user"); @@ -53277,13 +55406,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credentialRule.SetNonNull(); value.credentialRule.Value() = static_cast(1); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 19: { LogStep(19, "Read the modified user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 20: { LogStep(20, "Add another user with non-default fields"); @@ -53301,13 +55435,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credentialRule.SetNonNull(); value.credentialRule.Value() = static_cast(2); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 21: { LogStep(21, "Read the new user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 22: { LogStep(22, "Create user in the last slot"); @@ -53321,13 +55460,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 23: { LogStep(23, "Read the last user back and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = NumberOfTotalUsersSupported; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 24: { LogStep(24, "User creation in the 0 slot fails"); @@ -53340,7 +55484,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 25: { LogStep(25, "User creation in the out-of-bounds slot fails"); @@ -53353,20 +55499,27 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 26: { LogStep(26, "Clear first user"); chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 27: { LogStep(27, "Read cleared user and verify it is available"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 28: { LogStep(28, "Create new user in the cleared slot"); @@ -53379,50 +55532,68 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 29: { LogStep(29, "Read the user in the previously cleared slot and verify its fields"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 30: { LogStep(30, "Clear user with index 0 fails"); chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 31: { LogStep(31, "Clear user with out-of-bounds index fails"); chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 32: { LogStep(32, "Clear all users"); chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 65534U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 33: { LogStep(33, "Read first cleared user and verify it is available"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 34: { LogStep(34, "Read last cleared user and verify it is available"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = NumberOfTotalUsersSupported; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 35: { LogStep(35, "Get number of supported PIN credentials and verify default value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfPINUsersSupported::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfPINUsersSupported::Id, + true, chip::NullOptional); } case 36: { LogStep(36, "Check that PIN credential does not exist"); @@ -53431,7 +55602,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 37: { LogStep(37, "Reading PIN credential with index 0 fails"); @@ -53440,7 +55614,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 38: { LogStep(38, "Reading PIN credential with out-of-bounds index fails"); @@ -53449,7 +55626,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = static_cast(NumberOfPINUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 39: { LogStep(39, "Create new PIN credential and user"); @@ -53464,13 +55644,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 40: { LogStep(40, "Verify created user"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 41: { LogStep(41, "Verify created PIN credential"); @@ -53479,7 +55664,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 42: { LogStep(42, "Create new PIN credential and user with index 0 fails"); @@ -53494,7 +55682,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 43: { LogStep(43, "Create new PIN credential and user with out-of-bounds index fails"); @@ -53509,12 +55699,14 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 44: { LogStep(44, "Get number of supported RFID credentials and verify default value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::NumberOfRFIDUsersSupported::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfRFIDUsersSupported::Id, + true, chip::NullOptional); } case 45: { LogStep(45, "Reading RFID credential with index 0 fails"); @@ -53523,7 +55715,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 46: { LogStep(46, "Reading RFID credential with out-of-bounds index fails"); @@ -53532,7 +55727,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = static_cast(NumberOfRFIDUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 47: { LogStep(47, "Check that RFID credential does not exist"); @@ -53541,7 +55739,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 48: { LogStep(48, "Create new RFID credential and add it to existing user"); @@ -53558,13 +55759,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 49: { LogStep(49, "Verify modified user"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 50: { LogStep(50, "Verify created credential"); @@ -53573,7 +55779,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 51: { LogStep(51, "Create new RFID credential and user with index 0 fails"); @@ -53589,7 +55798,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 52: { LogStep(52, "Create new RFID credential and user with out-of-bounds index fails"); @@ -53605,7 +55816,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 53: { LogStep(53, "Create new credential and try to add it to 0 user"); @@ -53621,7 +55834,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 54: { LogStep(54, "Create new credential and try to add it to out-of-bounds user"); @@ -53637,7 +55852,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 55: { LogStep(55, "Create new PIN with too short data"); @@ -53653,7 +55870,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 56: { LogStep(56, "Create new PIN with too long data"); @@ -53669,7 +55888,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 57: { LogStep(57, "Create new RFID with too short data"); @@ -53685,7 +55906,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 58: { LogStep(58, "Create new PIN with Programming user type fails"); @@ -53702,7 +55925,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userType.SetNonNull(); value.userType.Value() = static_cast(3); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 59: { LogStep(59, "Create new RFID with too short data"); @@ -53719,7 +55944,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 60: { LogStep(60, "Create new PIN credential with data the would cause duplicate"); @@ -53734,7 +55961,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 61: { LogStep(61, "Create new RFID credential with data the would cause duplicate"); @@ -53750,7 +55979,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 62: { LogStep(62, "Modify credentialData of existing PIN credential"); @@ -53766,7 +55997,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 63: { LogStep(63, "Verify that credential was changed by creating new credential with old data"); @@ -53781,7 +56014,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 64: { LogStep(64, "Verify that credential was changed by creating new credential with new data"); @@ -53796,7 +56031,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 65: { LogStep(65, "Create new RFID credential and add it to existing user"); @@ -53813,13 +56050,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 66: { LogStep(66, "Verify modified user"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 67: { LogStep(67, "Create new RFID credential and add it to existing user"); @@ -53835,13 +56077,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 68: { LogStep(68, "Verify modified user"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 69: { LogStep(69, "Clear first PIN credential"); @@ -53852,7 +56099,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 70: { LogStep(70, "Read back the credential and make sure it is deleted"); @@ -53861,13 +56110,19 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 71: { LogStep(71, "Read the user back and make sure PIN credential is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 72: { LogStep(72, "Clear the second PIN credential"); @@ -53878,7 +56133,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 3U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 73: { LogStep(73, "Read back the credential and make sure it is deleted"); @@ -53887,13 +56144,19 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 3U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 74: { LogStep(74, "Read the user back and make sure related user is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 75: { LogStep(75, "Create new RFID credential with user"); @@ -53909,7 +56172,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 76: { LogStep(76, "Clear all the RFID credentials"); @@ -53920,7 +56185,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 65534U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 77: { LogStep(77, "Read back the fist RFID credential and make sure it is deleted"); @@ -53929,7 +56196,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 78: { LogStep(78, "Read back the second RFID credential and make sure it is deleted"); @@ -53938,7 +56208,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 79: { LogStep(79, "Read back the third RFID credential and make sure it is deleted"); @@ -53947,19 +56220,28 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 4U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 80: { LogStep(80, "Read the user related with first RFID back and make sure it has only PIN credential"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 81: { LogStep(81, "Read the user related with second RFID back and make sure it is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 82: { LogStep(82, "Create new PIN credential with user"); @@ -53974,7 +56256,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 83: { LogStep(83, "Create new RFID credential with user"); @@ -53990,7 +56274,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 84: { LogStep(84, "Create another RFID credential with user"); @@ -54006,14 +56292,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 85: { LogStep(85, "Clear all the credentials"); chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value; value.credential.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 86: { LogStep(86, "Read back the first PIN credential and make sure it is deleted"); @@ -54022,7 +56312,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 87: { LogStep(87, "Read back the first RFID credential and make sure it is deleted"); @@ -54031,7 +56324,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(2); value.credential.credentialIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 88: { LogStep(88, "Read back the second PIN credential and make sure it is deleted"); @@ -54040,31 +56336,46 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(1); value.credential.credentialIndex = 6U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 89: { LogStep(89, "Read the user related with first PIN back and make sure it is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 90: { LogStep(90, "Read the user related with first RFID back and make sure it is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 91: { LogStep(91, "Read the user related with second PIN back and make sure it is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 3U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 92: { LogStep(92, "Read the user related with last RFID back and make sure it is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 4U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 93: { LogStep(93, "Create new Programming PIN credential with invalid index"); @@ -54079,7 +56390,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 94: { LogStep(94, "Create new Programming PIN credential with valid index"); @@ -54094,13 +56407,18 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 95: { LogStep(95, "Verify created user"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 96: { LogStep(96, "Verify created programming PIN credential"); @@ -54109,7 +56427,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(0); value.credential.credentialIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 97: { LogStep(97, "Modify the Programming PIN credential"); @@ -54124,7 +56445,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 98: { LogStep(98, "Clearing Programming PIN fails"); @@ -54135,7 +56458,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 99: { LogStep(99, "Clearing Programming PIN with invalid index fails"); @@ -54146,7 +56471,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 100: { LogStep(100, "Clearing PIN credential with zero index fails"); @@ -54157,7 +56484,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 101: { LogStep(101, "Clearing PIN credential with out-of-bound index fails"); @@ -54168,7 +56497,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = static_cast(NumberOfPINUsersSupported + 1); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 102: { LogStep(102, "Clearing RFID credential with zero index fails"); @@ -54179,7 +56510,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = 0U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 103: { LogStep(103, "Clearing RFID credential with out-of-bound index fails"); @@ -54190,20 +56523,27 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.Value().credentialIndex = static_cast(NumberOfRFIDUsersSupported + 1); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 104: { LogStep(104, "Clear the Programming PIN user"); chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 105: { LogStep(105, "Make sure Programming PIN user is deleted"); chip::app::Clusters::DoorLock::Commands::GetUser::Type value; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); } case 106: { LogStep(106, "Make sure programming PIN credential is deleted"); @@ -54212,7 +56552,10 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.credential.credentialType = static_cast(0); value.credential.credentialIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); } case 107: { LogStep(107, "Create new PIN credential and user"); @@ -54227,7 +56570,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 108: { LogStep(108, "Create second PIN credential and add it to existing user"); @@ -54243,7 +56588,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 109: { LogStep(109, "Create third PIN credential and add it to existing user"); @@ -54259,7 +56606,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 110: { LogStep(110, "Create fourth PIN credential and add it to existing user"); @@ -54275,7 +56624,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 111: { LogStep(111, "Create fifth PIN credential and add it to existing user"); @@ -54291,7 +56642,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 112: { LogStep(112, "Try to create sixth PIN credential and make sure it fails"); @@ -54307,7 +56660,9 @@ class DL_UsersAndCredentialsSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -54453,7 +56808,9 @@ class DL_LockUnlockSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 2: { LogStep(2, "Try to unlock the door with invalid PIN"); @@ -54461,11 +56818,14 @@ class DL_LockUnlockSuite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("000000garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "Verify that lock state attribute value is set to Locked"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); } case 4: { LogStep(4, "Try to unlock the door with valid PIN"); @@ -54473,11 +56833,14 @@ class DL_LockUnlockSuite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 5: { LogStep(5, "Verify that lock state attribute value is set to Unlocked"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Try to lock the door with invalid PIN"); @@ -54485,11 +56848,14 @@ class DL_LockUnlockSuite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("000000garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 7: { LogStep(7, "Verify that lock state attribute value is set to Unlocked"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Try to unlock the door with valid PIN"); @@ -54497,11 +56863,14 @@ class DL_LockUnlockSuite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 9: { LogStep(9, "Verify that lock state attribute value is set to Locked"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Clean the created credential"); @@ -54512,7 +56881,9 @@ class DL_LockUnlockSuite : public TestCommand value.credential.Value().credentialIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -55309,22 +57680,24 @@ class DL_SchedulesSuite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 2: { LogStep(2, "Get number of supported users"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::NumberOfTotalUsersSupported::Id); + DoorLock::Attributes::NumberOfTotalUsersSupported::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Get Max number of Week Day schedules for user and verify default value"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id); + DoorLock::Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id, true, chip::NullOptional); } case 4: { LogStep(4, "Get Max number of Year Day schedules for user and verify default value"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id); + DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id, true, chip::NullOptional); } case 5: { LogStep(5, "Create Week Day schedule with 0 index"); @@ -55336,7 +57709,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Create Week Day schedule with out-of-bounds index"); @@ -55348,7 +57724,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "Create Week Day schedule with 0 user index"); @@ -55360,7 +57739,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Create Week Day schedule with out-of-bounds user index"); @@ -55372,7 +57754,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Create Week Day schedule for non-existing user"); @@ -55384,7 +57769,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Create Week Day schedule with 0 days mask"); @@ -55396,7 +57784,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 11: { LogStep(11, "Create Week Day schedule for Sunday and Monday"); @@ -55408,7 +57799,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "Create Week Day schedule for Sunday Wednesday and Saturday"); @@ -55420,7 +57814,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Create Week Day schedule with invalid start hour"); @@ -55432,7 +57829,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Create Week Day schedule with invalid start minute"); @@ -55444,7 +57844,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 60; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "Create Week Day schedule with invalid end hour"); @@ -55456,7 +57859,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 24; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "Create Week Day schedule with invalid end minute"); @@ -55468,7 +57874,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 60; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 17: { LogStep(17, "Create Week Day schedule with start hour later that end hour"); @@ -55480,7 +57889,10 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 18: { LogStep(18, "Create Week Day schedule with start minute later that end minute when hours are equal"); @@ -55492,49 +57904,70 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 50; value.endHour = 15; value.endMinute = 49; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 19: { LogStep(19, "Make sure that previous operations did not create a schedule"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 20: { LogStep(20, "Get Week Day schedule with 0 index"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 0; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 21: { LogStep(21, "Get Week Day schedule with out-of-bounds index"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = static_cast(NumberOfWeekDaySchedulesSupportedPerUser + 1); value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 22: { LogStep(22, "Get Week Day schedule with 0 user index"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 23: { LogStep(23, "Get Week Day schedule with out-of-bounds user index"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 24: { LogStep(24, "Get Week Day schedule with non-existing user index"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 25: { LogStep(25, "Create Year Day schedule with 0 index"); @@ -55543,7 +57976,10 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 12345UL; value.localEndTime = 12345689UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 26: { LogStep(26, "Create Year Day schedule with out-of-bounds index"); @@ -55552,7 +57988,10 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 12345UL; value.localEndTime = 12345689UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 27: { LogStep(27, "Create Year Day schedule with 0 user index"); @@ -55561,7 +58000,10 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 0U; value.localStartTime = 12345UL; value.localEndTime = 12345689UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 28: { LogStep(28, "Create Year Day schedule with out-of-bounds user index"); @@ -55570,7 +58012,10 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); value.localStartTime = 12345UL; value.localEndTime = 12345689UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 29: { LogStep(29, "Create Year Day schedule for non-existing user"); @@ -55579,7 +58024,10 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 2U; value.localStartTime = 12345UL; value.localEndTime = 12345689UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 30: { LogStep(30, "Create Year Day schedule with start hour later that end hour"); @@ -55588,49 +58036,70 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 12345689UL; value.localEndTime = 12345688UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 31: { LogStep(31, "Make sure that previous operations did not create a schedule"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 32: { LogStep(32, "Get Year Day schedule with 0 index"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 0; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 33: { LogStep(33, "Get Year Day schedule with out-of-bounds index"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = static_cast(NumberOfYearDaySchedulesSupportedPerUser + 1); value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 34: { LogStep(34, "Get Year Day schedule with 0 user index"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 35: { LogStep(35, "Get Year Day schedule with out-of-bounds user index"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 36: { LogStep(36, "Get Year Day schedule with non-existing user index"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 37: { LogStep(37, "Create Week Day schedule with valid parameters"); @@ -55642,14 +58111,20 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 16; value.endHour = 18; value.endMinute = 0; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 38: { LogStep(38, "Verify created schedule"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 39: { LogStep(39, "Create Year Day schedule with valid parameters"); @@ -55658,98 +58133,140 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 12345UL; value.localEndTime = 12345689UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 40: { LogStep(40, "Verify created schedule"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 41: { LogStep(41, "Clear Week Day schedule with 0 index"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 0; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 42: { LogStep(42, "Clear Week Day schedule with out-of-bounds index"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = static_cast(NumberOfWeekDaySchedulesSupportedPerUser + 1); value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 43: { LogStep(43, "Clear Week Day schedule with 0 user index"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 44: { LogStep(44, "Clear Week Day schedule with out-of-bounds user index"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 45: { LogStep(45, "Clear Week Day schedule with non-existing user"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 46: { LogStep(46, "Clear Year Day schedule with 0 index"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 0; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 47: { LogStep(47, "Clear Year Day schedule with out-of-bounds index"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = static_cast(NumberOfYearDaySchedulesSupportedPerUser + 1); value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 48: { LogStep(48, "Clear Year Day schedule with 0 user index"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 49: { LogStep(49, "Clear Year Day schedule with out-of-bounds user index"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = static_cast(NumberOfTotalUsersSupported + 1); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 50: { LogStep(50, "Clear Year Day schedule with non-existing user"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 51: { LogStep(51, "Make sure that week day schedule was not deleted"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 52: { LogStep(52, "Make sure that year day schedule was not deleted"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 53: { LogStep(53, "Create another Week Day schedule with valid parameters"); @@ -55761,14 +58278,20 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 0; value.endHour = 23; value.endMinute = 59; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 54: { LogStep(54, "Verify created week day schedule"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 2; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 55: { LogStep(55, "Create another Year Day schedule with valid parameters"); @@ -55777,56 +58300,80 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 9000UL; value.localEndTime = 888888888UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 56: { LogStep(56, "Verify created year day schedule"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 2; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 57: { LogStep(57, "Clear a single week day schedule for the first user"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 58: { LogStep(58, "Verify cleared week day schedule"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 59: { LogStep(59, "Clear all remaining week day schedules for the first user"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 254; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 60: { LogStep(60, "Verify cleared week schedule"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 2; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 61: { LogStep(61, "Make sure that first year day schedule was not deleted"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 62: { LogStep(62, "Make sure that second year day schedule was not deleted"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 2; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 63: { LogStep(63, "Create another Week Day schedule with valid parameters"); @@ -55838,49 +58385,70 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 0; value.endHour = 23; value.endMinute = 59; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 64: { LogStep(64, "Clear a single year day schedule for the first user"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 65: { LogStep(65, "Verify cleared year day schedule"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 66: { LogStep(66, "Clear all remaining year schedules for the first user"); chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 254; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 67: { LogStep(67, "Verify that second year day schedule was cleared"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 2; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 68: { LogStep(68, "Verify created week day schedule"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 69: { LogStep(69, "Clear all remaining week day schedules for the first user"); chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type value; value.weekDayIndex = 254; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 70: { LogStep(70, "Create new user without credential so we can add more schedules to it"); @@ -55893,7 +58461,9 @@ class DL_SchedulesSuite : public TestCommand value.userType.SetNull(); value.credentialRule.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 71: { LogStep(71, "Create Week Day schedule with valid parameters for first user"); @@ -55905,14 +58475,20 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 0; value.endHour = 23; value.endMinute = 59; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 72: { LogStep(72, "Verify created week day schedule for first user"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 73: { LogStep(73, "Create Year Day schedule for first user"); @@ -55921,14 +58497,20 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 9000UL; value.localEndTime = 888888888UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 74: { LogStep(74, "Verify created year day schedule for first"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 4; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 75: { LogStep(75, "Create Week Day schedule with valid parameters for second user"); @@ -55940,14 +58522,20 @@ class DL_SchedulesSuite : public TestCommand value.startMinute = 0; value.endHour = 23; value.endMinute = 59; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 76: { LogStep(76, "Verify created week day schedule for first user"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 4; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 77: { LogStep(77, "Create Year Day schedule for second user"); @@ -55956,49 +58544,69 @@ class DL_SchedulesSuite : public TestCommand value.userIndex = 1U; value.localStartTime = 55555UL; value.localEndTime = 7777777UL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 78: { LogStep(78, "Verify created year day schedule for first"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 79: { LogStep(79, "Cleanup"); chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 65534U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 80: { LogStep(80, "Make sure clearing first user also cleared week day schedules"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 1; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 81: { LogStep(81, "Make sure clearing first user also cleared year day schedules"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 4; value.userIndex = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } case 82: { LogStep(82, "Make sure clearing second user also cleared week day schedules"); chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type value; value.weekDayIndex = 4; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetWeekDaySchedule::Id, value, + chip::NullOptional + + ); } case 83: { LogStep(83, "Make sure clearing second user also cleared year day schedules"); chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; value.yearDayIndex = 1; value.userIndex = 2U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -56132,7 +58740,8 @@ class Test_TC_DL_2_2Suite : public TestCommand bool value; value = false; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::RequirePINforRemoteOperation::Id, value); + DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, + chip::NullOptional); } case 2: { LogStep(2, "TH sends Lock Door Command to the DUT without PINCode"); @@ -56140,14 +58749,17 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("garbage: not in length on purpose"), 0); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "TH writes the RequirePINforRemoteOperation attribute value as True on the DUT"); bool value; value = true; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::RequirePINforRemoteOperation::Id, value); + DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, + chip::NullOptional); } case 4: { LogStep(4, "Create new PIN credential and lock/unlock user"); @@ -56162,7 +58774,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 5: { LogStep(5, "TH sends Lock Door Command to the DUT with valid PINCode"); @@ -56170,7 +58784,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 6: { LogStep(6, "TH sends Lock Door Command to the DUT without any argument PINCode"); @@ -56178,21 +58794,24 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("garbage: not in length on purpose"), 0); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 7: { LogStep(7, "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT"); uint8_t value; value = 3; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, - value); + value, chip::NullOptional, chip::NullOptional); } case 8: { LogStep(8, "TH writes UserCodeTemporaryDisableTime attribute value as 5 seconds on the DUT"); uint8_t value; value = 5; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value); + DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, + chip::NullOptional); } case 9: { LogStep(9, "TH sends Lock Door Command to the DUT with invalid PINCode"); @@ -56200,7 +58819,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("12345garbage: not in length on purpose"), 5); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 10: { LogStep(10, "TH sends Lock Door Command to the DUT with invalid PINCode"); @@ -56208,7 +58829,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("54321garbage: not in length on purpose"), 5); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 11: { LogStep(11, "TH sends Lock Door Command to the DUT with invalid PINCode"); @@ -56216,7 +58839,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("987623garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 12: { LogStep(12, "TH sends Lock Door Command to the DUT with invalid PINCode"); @@ -56224,12 +58849,14 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("67890garbage: not in length on purpose"), 5); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 13: { LogStep(13, "TH reads UserCodeTemporaryDisableTime attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, - DoorLock::Attributes::UserCodeTemporaryDisableTime::Id); + DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, true, chip::NullOptional); } case 14: { LogStep(14, "TH sends Lock Door Command to the DUT with valid PINCode"); @@ -56237,7 +58864,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 15: { LogStep(15, "Clean the created credential"); @@ -56248,7 +58877,9 @@ class Test_TC_DL_2_2Suite : public TestCommand value.credential.Value().credentialIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -56376,7 +59007,9 @@ class Test_TC_DL_2_3Suite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 2: { LogStep(2, "Precondition: Door is in locked state"); @@ -56384,13 +59017,16 @@ class Test_TC_DL_2_3Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); uint32_t value; value = 10UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "TH sends the unlock Door command to the DUT with valid PINCode"); @@ -56398,11 +59034,14 @@ class Test_TC_DL_2_3Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 5: { LogStep(5, "TH reads AutoRelockTime attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Wait 10000ms"); @@ -56412,7 +59051,8 @@ class Test_TC_DL_2_3Suite : public TestCommand } case 7: { LogStep(7, "TH reads LockState attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Clean the created credential"); @@ -56423,7 +59063,9 @@ class Test_TC_DL_2_3Suite : public TestCommand value.credential.Value().credentialIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -56548,7 +59190,9 @@ class Test_TC_DL_2_4Suite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 2: { LogStep(2, "Precondition: Door is in locked state"); @@ -56556,13 +59200,16 @@ class Test_TC_DL_2_4Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 3: { LogStep(3, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); uint32_t value; value = 10UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "TH sends the unlock with Timeout command to the DUT "); @@ -56571,11 +59218,14 @@ class Test_TC_DL_2_4Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockWithTimeout::Id, value, - chip::Optional(10000)); + chip::Optional(10000), chip::NullOptional + + ); } case 5: { LogStep(5, "TH reads AutoRelockTime attribute from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, + chip::NullOptional); } case 6: { LogStep(6, "Wait 5000ms"); @@ -56585,7 +59235,8 @@ class Test_TC_DL_2_4Suite : public TestCommand } case 7: { LogStep(7, "TH reads LockState attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); } } return CHIP_NO_ERROR; @@ -56734,14 +59385,18 @@ class TestGroupMessagingSuite : public TestCommand chip::app::Clusters::Groups::Commands::AddGroup::Type value; value.groupId = 257U; value.groupName = chip::Span("Group #1garbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "Add Group 2 (endpoint 0)"); chip::app::Clusters::Groups::Commands::AddGroup::Type value; value.groupId = 258U; value.groupName = chip::Span("Group #2garbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(0), Groups::Id, Groups::Commands::AddGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(0), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional + + ); } case 3: { LogStep(3, "KeySet Write 1"); @@ -56773,7 +59428,9 @@ class TestGroupMessagingSuite : public TestCommand value.groupKeySet.epochStartTime2.Value() = 1110002ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetWrite::Id, value); + GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "KeySet Write 2"); @@ -56805,7 +59462,9 @@ class TestGroupMessagingSuite : public TestCommand value.groupKeySet.epochStartTime2.Value() = 2220002ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetWrite::Id, value); + GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional + + ); } case 5: { LogStep(5, "Write Group Keys"); @@ -56828,7 +59487,7 @@ class TestGroupMessagingSuite : public TestCommand listHolder_0->mList, 2); } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupKeyMap::Id, value); + GroupKeyManagement::Attributes::GroupKeyMap::Id, value, chip::NullOptional, chip::NullOptional); } case 6: { LogStep(6, "Install ACLs"); @@ -56854,31 +59513,35 @@ class TestGroupMessagingSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } case 7: { LogStep(7, "Read initial Attribute value"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 8: { LogStep(8, "Group Write Attribute"); chip::CharSpan value; value = chip::Span("xyzzygarbage: not in length on purpose", 5); - return WriteGroupAttribute(kIdentityAlpha, 258, Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteGroupAttribute(kIdentityAlpha, 258, Basic::Id, Basic::Attributes::NodeLabel::Id, value, chip::NullOptional); } case 9: { LogStep(9, "Read back Attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 10: { LogStep(10, "Restore initial Attribute value"); chip::CharSpan value; value = chip::Span("garbage: not in length on purpose", 0); - return WriteGroupAttribute(kIdentityAlpha, 258, Basic::Id, Basic::Attributes::NodeLabel::Id, value); + return WriteGroupAttribute(kIdentityAlpha, 258, Basic::Id, Basic::Attributes::NodeLabel::Id, value, chip::NullOptional); } case 11: { LogStep(11, "Read back Attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Basic::Id, Basic::Attributes::NodeLabel::Id, true, + chip::NullOptional); } case 12: { LogStep(12, "Turn On the light to see attribute change"); @@ -56887,7 +59550,7 @@ class TestGroupMessagingSuite : public TestCommand } case 13: { LogStep(13, "Check on/off attribute value is true after on command for endpoint 1"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id, true, chip::NullOptional); } case 14: { LogStep(14, "Cleanup ACLs"); @@ -56907,7 +59570,8 @@ class TestGroupMessagingSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 1); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -57171,32 +59835,46 @@ class TestGroupsClusterSuite : public TestCommand LogStep(1, "View Group 0 (invalid)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "View Group 1 (not found)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 3: { LogStep(3, "Add Group 1 (new)"); chip::app::Clusters::Groups::Commands::AddGroup::Type value; value.groupId = 1U; value.groupName = chip::Span("Group #1garbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "View Group 1 (new)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "View Group 2 (not found)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 4369U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "Get Group Membership 1 (all)"); @@ -57204,43 +59882,64 @@ class TestGroupsClusterSuite : public TestCommand chip::app::Clusters::Groups::Commands::GetGroupMembership::Type value; value.groupList = chip::app::DataModel::List(); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::GetGroupMembership::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::GetGroupMembership::Id, value, + chip::NullOptional + + ); } case 7: { LogStep(7, "View Group 3 (not found)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 32767U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "View Group 1 (existing)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 9: { LogStep(9, "Remove Group 0 (invalid)"); chip::app::Clusters::Groups::Commands::RemoveGroup::Type value; value.groupId = 0U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveGroup::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "Remove Group 4 (not found)"); chip::app::Clusters::Groups::Commands::RemoveGroup::Type value; value.groupId = 4U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveGroup::Id, value, + chip::NullOptional + + ); } case 11: { LogStep(11, "View Group 1 (not removed)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "View Group 2 (removed)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 4369U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "Get Group Membership 3"); @@ -57256,30 +59955,45 @@ class TestGroupsClusterSuite : public TestCommand listHolder_0->mList[3] = 3U; value.groupList = chip::app::DataModel::List(listHolder_0->mList, 4); } - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::GetGroupMembership::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::GetGroupMembership::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "Remove All"); chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value, + chip::NullOptional + + ); } case 15: { LogStep(15, "View Group 1 (removed)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 1U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "View Group 2 (still removed)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 4369U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 17: { LogStep(17, "View Group 3 (removed)"); chip::app::Clusters::Groups::Commands::ViewGroup::Type value; value.groupId = 32767U; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value, + chip::NullOptional + + ); } case 18: { LogStep(18, "Get Group Membership 4"); @@ -57296,7 +60010,10 @@ class TestGroupsClusterSuite : public TestCommand listHolder_0->mList[4] = 32767U; value.groupList = chip::app::DataModel::List(listHolder_0->mList, 5); } - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::GetGroupMembership::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::GetGroupMembership::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -57519,26 +60236,30 @@ class TestGroupKeyManagementClusterSuite : public TestCommand case 1: { LogStep(1, "Read maxGroupsPerFabric"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::MaxGroupsPerFabric::Id); + GroupKeyManagement::Attributes::MaxGroupsPerFabric::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read maxGroupKeysPerFabric"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::MaxGroupKeysPerFabric::Id); + GroupKeyManagement::Attributes::MaxGroupKeysPerFabric::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Add Group 1"); chip::app::Clusters::Groups::Commands::AddGroup::Type value; value.groupId = 257U; value.groupName = chip::Span("Group #1garbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional + + ); } case 4: { LogStep(4, "Add Group 2"); chip::app::Clusters::Groups::Commands::AddGroup::Type value; value.groupId = 258U; value.groupName = chip::Span("Group #2garbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional + + ); } case 5: { LogStep(5, "KeySet Write 1"); @@ -57570,7 +60291,9 @@ class TestGroupKeyManagementClusterSuite : public TestCommand value.groupKeySet.epochStartTime2.Value() = 1110002ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetWrite::Id, value); + GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional + + ); } case 6: { LogStep(6, "KeySet Write 2"); @@ -57602,14 +60325,18 @@ class TestGroupKeyManagementClusterSuite : public TestCommand value.groupKeySet.epochStartTime2.Value() = 2110002ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetWrite::Id, value); + GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional + + ); } case 7: { LogStep(7, "KeySet Read"); chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::Type value; value.groupKeySetID = 417U; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetRead::Id, - value); + value, chip::NullOptional + + ); } case 8: { LogStep(8, "Write Group Keys (invalid)"); @@ -57628,7 +60355,7 @@ class TestGroupKeyManagementClusterSuite : public TestCommand listHolder_0->mList, 1); } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupKeyMap::Id, value); + GroupKeyManagement::Attributes::GroupKeyMap::Id, value, chip::NullOptional, chip::NullOptional); } case 9: { LogStep(9, "Write Group Keys"); @@ -57651,57 +60378,70 @@ class TestGroupKeyManagementClusterSuite : public TestCommand listHolder_0->mList, 2); } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupKeyMap::Id, value); + GroupKeyManagement::Attributes::GroupKeyMap::Id, value, chip::NullOptional, chip::NullOptional); } case 10: { LogStep(10, "Read Group Keys"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupKeyMap::Id); + GroupKeyManagement::Attributes::GroupKeyMap::Id, true, chip::NullOptional); } case 11: { LogStep(11, "Read GroupTable"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupTable::Id); + GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional); } case 12: { LogStep(12, "KeySet Remove 1"); chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type value; value.groupKeySetID = 417U; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetRemove::Id, value); + GroupKeyManagement::Commands::KeySetRemove::Id, value, chip::NullOptional + + ); } case 13: { LogStep(13, "KeySet Read (removed)"); chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::Type value; value.groupKeySetID = 417U; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetRead::Id, - value); + value, chip::NullOptional + + ); } case 14: { LogStep(14, "KeySet Read (not removed)"); chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::Type value; value.groupKeySetID = 418U; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetRead::Id, - value); + value, chip::NullOptional + + ); } case 15: { LogStep(15, "Remove All"); chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "KeySet Remove 2"); chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type value; value.groupKeySetID = 418U; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetRemove::Id, value); + GroupKeyManagement::Commands::KeySetRemove::Id, value, chip::NullOptional + + ); } case 17: { LogStep(17, "KeySet Read (also removed)"); chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::Type value; value.groupKeySetID = 418U; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetRead::Id, - value); + value, chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -59572,7 +62312,9 @@ class TestGroupDemoConfigSuite : public TestCommand chip::app::Clusters::Groups::Commands::AddGroup::Type value; value.groupId = 257U; value.groupName = chip::Span("Group #1garbage: not in length on purpose", 8); - return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional + + ); } case 2: { LogStep(2, "KeySet Write 1"); @@ -59604,7 +62346,9 @@ class TestGroupDemoConfigSuite : public TestCommand value.groupKeySet.epochStartTime2.Value() = 1110002ULL; return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Commands::KeySetWrite::Id, value); + GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional + + ); } case 3: { LogStep(3, "Map Group Key Set to group ID on a given fabric"); @@ -59623,7 +62367,7 @@ class TestGroupDemoConfigSuite : public TestCommand listHolder_0->mList, 1); } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupKeyMap::Id, value); + GroupKeyManagement::Attributes::GroupKeyMap::Id, value, chip::NullOptional, chip::NullOptional); } case 4: { LogStep(4, "Install ACLs for test"); @@ -59656,7 +62400,8 @@ class TestGroupDemoConfigSuite : public TestCommand value = chip::app::DataModel::List( listHolder_0->mList, 2); } - return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value); + return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, + chip::NullOptional, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -64179,7 +66924,10 @@ class Test_TC_MC_6_1Suite : public TestCommand LogStep(1, "Precondition: Media content in a paused state at the beginning of the content"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Pause::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "log a command"); @@ -64190,13 +66938,17 @@ class Test_TC_MC_6_1Suite : public TestCommand case 3: { LogStep(3, "Reads the CurrentState attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "sends a Play command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Play::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "log a command"); @@ -64207,13 +66959,17 @@ class Test_TC_MC_6_1Suite : public TestCommand } case 6: { LogStep(6, "Reads the playback state attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "sends a Pause command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Pause::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "log a command"); @@ -64225,13 +66981,17 @@ class Test_TC_MC_6_1Suite : public TestCommand case 9: { LogStep(9, "Reads the playback state attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 10: { LogStep(10, "sends a Stop command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::StopPlayback::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::StopPlayback::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::StopPlayback::Id, value, + chip::NullOptional + + ); } case 11: { LogStep(11, "log a command"); @@ -64243,7 +67003,8 @@ class Test_TC_MC_6_1Suite : public TestCommand case 12: { LogStep(12, "Reads the playback state attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -64424,7 +67185,10 @@ class Test_TC_MC_6_2Suite : public TestCommand LogStep(1, "Precondition: Media content in a paused state at the beginning of the content"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Pause::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "log a command"); @@ -64435,13 +67199,17 @@ class Test_TC_MC_6_2Suite : public TestCommand case 3: { LogStep(3, "Reads the CurrentState attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Sends a Play command to the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Play::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value, + chip::NullOptional + + ); } case 5: { LogStep(5, "log a command"); @@ -64452,13 +67220,17 @@ class Test_TC_MC_6_2Suite : public TestCommand } case 6: { LogStep(6, "Reads the CurrentState attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 7: { LogStep(7, "Sends a StartOver command to the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::StartOver::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::StartOver::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::StartOver::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "log a command"); @@ -64470,7 +67242,10 @@ class Test_TC_MC_6_2Suite : public TestCommand case 9: { LogStep(9, "Sends a Next command to the DUT"); chip::app::Clusters::MediaPlayback::Commands::Next::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Next::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Next::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "log a command"); @@ -64483,7 +67258,10 @@ class Test_TC_MC_6_2Suite : public TestCommand LogStep(11, "Sends a Previous command to the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Previous::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Previous::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Previous::Id, value, + chip::NullOptional + + ); } case 12: { LogStep(12, "log a command"); @@ -64497,7 +67275,10 @@ class Test_TC_MC_6_2Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type value; value.deltaPositionMilliseconds = 10000ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::SkipForward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::SkipForward::Id, value, + chip::NullOptional + + ); } case 14: { LogStep(14, "log a command"); @@ -64509,14 +67290,18 @@ class Test_TC_MC_6_2Suite : public TestCommand case 15: { LogStep(15, "Reads the SampledPosition attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Sends a SkipBackward command to the DUT "); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type value; value.deltaPositionMilliseconds = 10000ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::SkipBackward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::SkipBackward::Id, value, + chip::NullOptional + + ); } case 17: { LogStep(17, "log a command"); @@ -64528,7 +67313,8 @@ class Test_TC_MC_6_2Suite : public TestCommand case 18: { LogStep(18, "Reads the SampledPosition attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -64644,7 +67430,10 @@ class Test_TC_MC_6_3Suite : public TestCommand LogStep(1, "Precondition: Media content in a paused state at the beginning of the content"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Pause::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "log a command"); @@ -64657,7 +67446,10 @@ class Test_TC_MC_6_3Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; value.position = 10000ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Seek::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Seek::Id, value, + chip::NullOptional + + ); } case 4: { LogStep(4, "log a command"); @@ -64669,7 +67461,8 @@ class Test_TC_MC_6_3Suite : public TestCommand case 5: { LogStep(5, "Reads the SampledPosition attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } case 6: { LogStep(6, "log a command"); @@ -64683,12 +67476,16 @@ class Test_TC_MC_6_3Suite : public TestCommand VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; value.position = 10000ULL; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Seek::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Seek::Id, value, + chip::NullOptional + + ); } case 8: { LogStep(8, "Reads the SampledPosition attribute"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -64888,7 +67685,10 @@ class Test_TC_MC_6_4Suite : public TestCommand LogStep(1, "Precondition: Media content in a paused state at the beginning of the content"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Pause::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Pause::Id, value, + chip::NullOptional + + ); } case 2: { LogStep(2, "log a command"); @@ -64899,17 +67699,22 @@ class Test_TC_MC_6_4Suite : public TestCommand case 3: { LogStep(3, "Reads the CurrentState attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 4: { LogStep(4, "Reads the PlaybackSpeed attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id, + true, chip::NullOptional); } case 5: { LogStep(5, "Sends a FastForward command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::FastForward::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value, + chip::NullOptional + + ); } case 6: { LogStep(6, "log a command"); @@ -64919,18 +67724,23 @@ class Test_TC_MC_6_4Suite : public TestCommand } case 7: { LogStep(7, "Reads the CurrentState attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 8: { LogStep(8, "Reads the PlaybackSpeed attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id, + true, chip::NullOptional); } case 9: { LogStep(9, "Sends a FastForward command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::FastForward::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value, + chip::NullOptional + + ); } case 10: { LogStep(10, "log a command"); @@ -64942,13 +67752,17 @@ class Test_TC_MC_6_4Suite : public TestCommand case 11: { LogStep(11, "Reads the PlaybackSpeed attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id, + true, chip::NullOptional); } case 12: { LogStep(12, "Sends a Rewind command to the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Rewind::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value, + chip::NullOptional + + ); } case 13: { LogStep(13, "log a command"); @@ -64959,13 +67773,17 @@ class Test_TC_MC_6_4Suite : public TestCommand } case 14: { LogStep(14, "Reads the CurrentState attribute"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::CurrentState::Id, + true, chip::NullOptional); } case 15: { LogStep(15, "Sends a Rewind command to the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Rewind::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value, + chip::NullOptional + + ); } case 16: { LogStep(16, "log a command"); @@ -64978,7 +67796,10 @@ class Test_TC_MC_6_4Suite : public TestCommand LogStep(17, "Sends a Play command"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Play::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Play::Id, value, + chip::NullOptional + + ); } case 18: { LogStep(18, "log a command"); @@ -64990,19 +67811,26 @@ class Test_TC_MC_6_4Suite : public TestCommand case 19: { LogStep(19, "Reads the PlaybackSpeed attribute from the DUT"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::PlaybackSpeed::Id, + true, chip::NullOptional); } case 20: { LogStep(20, "Sends consecutive FastForward commands"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::FastForward::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::FastForward::Id, value, + chip::NullOptional + + ); } case 21: { LogStep(21, "Sends consecutive Rewind commands"); VerifyOrdo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); chip::app::Clusters::MediaPlayback::Commands::Rewind::Type value; - return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value); + return SendCommand(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Commands::Rewind::Id, value, + chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -69018,7 +71846,8 @@ class Test_TC_OCC_2_2Suite : public TestCommand case 1: { LogStep(1, "Reads Occupancy attribute from DUT"); VerifyOrdo(!ShouldSkip("A_OCCUPANCY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); } case 2: { LogStep(2, "Operate on DUT to change the occupancy status"); @@ -69031,7 +71860,8 @@ class Test_TC_OCC_2_2Suite : public TestCommand case 3: { LogStep(3, "Reads back Occupancy attribute from DUT after few seconds"); VerifyOrdo(!ShouldSkip("A_OCCUPANCY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR;