| {{~#*inline "clusterName"}}{{asUpperCamelCase cluster}}{{/inline~}} |
| |
| {{~#*inline "maybePICS"}} |
| {{#if PICS}} |
| VerifyOrDo(!ShouldSkip("{{PICS}}"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeSetupSubStepCount"}} |
| {{#if expectMultipleResponses}} |
| mTestSubStepCount = {{response.length}}; |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybePrepareArguments"}} |
| {{#unless isWait}} |
| {{#if hasSpecificArguments}} |
| ListFreer listFreer; |
| {{asEncodableType}} value; |
| {{#chip_tests_item_parameters}} |
| {{>commandValue ns=parent.cluster container=(asPropertyValue dontUnwrapValue=true) definedValue=definedValue depth=0}} |
| {{/chip_tests_item_parameters}} |
| {{/if}} |
| {{/unless}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeFabricFiltered"}} |
| {{#if fabricFiltered}} |
| , true |
| {{else}} |
| , false |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeSuppressResponse"}} |
| {{#if suppressResponse}} |
| , chip::Optional<bool>({{suppressResponse}}) |
| {{else}} |
| , chip::NullOptional |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeDataVersion"}} |
| {{#if dataVersion}} |
| , chip::Optional<chip::DataVersion>({{dataVersion}}) |
| {{else}} |
| , chip::NullOptional |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeTimedInteractionTimeoutMs"}} |
| {{#if timedInteractionTimeoutMs}} |
| , chip::Optional<uint16_t>({{timedInteractionTimeoutMs}}) |
| {{else if commandObject.mustUseTimedInvoke}} |
| , chip::NullOptional |
| {{else if attributeObject.mustUseTimedWrite}} |
| , chip::NullOptional |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeEventNumber"}} |
| {{#if eventNumber}} |
| , chip::Optional<chip::EventNumber>({{eventNumber}}) |
| {{else}} |
| , chip::NullOptional |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeKeepSubscriptions"}} |
| {{#if keepSubscriptions}} |
| , chip::Optional<bool>({{keepSubscriptions}}) |
| {{else}} |
| , chip::NullOptional |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "kIdentity"}}kIdentity{{asUpperCamelCase identity}}{{/inline~}} |
| {{~#*inline "groupId"}}{{groupId}}{{/inline~}} |
| {{~#*inline "endpointId"}}GetEndpoint({{endpoint}}){{/inline~}} |
| {{~#*inline "clusterId"}}{{>clusterName}}::Id{{/inline~}} |
| {{~#*inline "attributeId"}}{{>clusterName}}::Attributes::{{asUpperCamelCase attribute}}::Id{{/inline~}} |
| {{~#*inline "eventId"}}{{>clusterName}}::Events::{{asUpperCamelCase event}}::Id{{/inline~}} |
| {{~#*inline "commandId"}}{{>clusterName}}::Commands::{{asUpperCamelCase command}}::Id{{/inline~}} |
| |
| {{~#*inline "testOnlyClusterArguments"}}{{>kIdentity}}{{/inline~}} |
| {{~#*inline "attributeArguments"}}{{>kIdentity}}, {{>endpointId}}, {{>clusterId}}, {{>attributeId}}{{/inline~}} |
| {{~#*inline "eventArguments"}}{{>kIdentity}}, {{>endpointId}}, {{>clusterId}}, {{>eventId}}{{/inline~}} |
| {{~#*inline "commandArguments"}}{{>kIdentity}}, {{>endpointId}}, {{>clusterId}}, {{>commandId}}{{/inline~}} |
| {{~#*inline "waitAttributeArguments"}}{{>endpointId}}, {{>clusterId}}, {{>attributeId}}{{/inline~}} |
| {{~#*inline "waitEventArguments"}}{{>endpointId}}, {{>clusterId}}, {{>eventId}}{{/inline~}} |
| {{~#*inline "waitCommandArguments"}}{{>endpointId}}, {{>clusterId}}, {{>commandId}}{{/inline~}} |
| {{~#*inline "groupAttributeArguments"}}{{>kIdentity}}, {{>groupId}}, {{>clusterId}}, {{>attributeId}}{{/inline~}} |
| {{~#*inline "groupCommandArguments"}}{{>kIdentity}}, {{>groupId}}, {{>clusterId}}, {{>commandId}}{{/inline~}} |
| |
| {{~#*inline "waitArguments"}} |
| {{#if isAttribute}} |
| {{>waitAttributeArguments}} |
| {{else if isEvent}} |
| {{>endpointId}}, {{>clusterId}}, {{>eventId}} |
| {{else}} |
| {{>waitCommandArguments}} |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "arguments"}} |
| {{#if (isTestOnlyCluster cluster)}}{{>testOnlyClusterArguments}}, value |
| {{else if isWait}} {{>waitArguments}} |
| {{else if isReadAttribute}} {{>attributeArguments}}{{>maybeFabricFiltered}}{{>maybeDataVersion~}} |
| {{else if isSubscribeAttribute}} {{>attributeArguments}}, {{minInterval}}, {{maxInterval}}{{>maybeFabricFiltered}}{{>maybeDataVersion}}{{>maybeKeepSubscriptions~}}, /* autoResubscribe = */ chip::NullOptional |
| {{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~}}, /* autoResubscribe = */ chip::NullOptional |
| {{else if isGroupCommand}} {{>groupCommandArguments}}, value |
| {{else if isCommand}} {{>commandArguments}}, value{{>maybeTimedInteractionTimeoutMs}}{{>maybeSuppressResponse}} |
| {{/if}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeBusyWait"}} |
| {{#if busyWaitMs}} |
| ReturnErrorOnFailure({{commandName}}({{>arguments}})); |
| |
| using namespace chip::System::Clock::Literals; |
| return BusyWaitFor({{busyWaitMs}}_ms); |
| {{else}} |
| return {{commandName}}({{>arguments}}); |
| {{/if}} |
| {{/inline~}} |
| |
| {{! --- Test Step Content --}} |
| LogStep({{index}}, "{{label}}"); |
| {{>maybePICS}} |
| {{>maybeSetupSubStepCount}} |
| {{>maybePrepareArguments}} |
| {{>maybeBusyWait}} |