| {{#if expectMultipleResponses}} |
| switch(mTestSubStepIndex) |
| { |
| {{/if}} |
| {{#chip_tests_item_responses}} |
| {{~#*inline "maybeContinueWithoutWaitingOnDone"}} |
| {{~#if isWaitForReport}}shouldContinue = true;{{/if~}} |
| {{~#if (isTestOnlyCluster cluster)}}shouldContinue = true;{{/if~}} |
| {{/inline~}} |
| |
| {{~#*inline "maybeCheckClusterError"}} |
| {{#if clusterError}} |
| VerifyOrReturn(CheckValue("clusterStatus", status.mClusterStatus.HasValue(), true)); |
| VerifyOrReturn(CheckValue("clusterStatus", status.mClusterStatus.Value(), {{clusterError}})); |
| {{/if}} |
| {{/inline~}} |
| |
| {{! --- Test Step Response Content --}} |
| {{#if ../expectMultipleResponses}} |
| case {{index}}: |
| {{/if}} |
| {{#if error}} |
| VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), {{error}})); |
| {{>maybeCheckClusterError}} |
| {{else}} |
| VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), {{error}})); |
| {{#if hasSpecificResponse}} |
| { |
| {{asDecodableType}} value; |
| VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); |
| {{#chip_tests_item_response_parameters}} |
| {{>maybeCheckExpectedValue cluster=../cluster}} |
| {{>maybeCheckExpectedConstraints}} |
| {{>maybeSaveAs}} |
| {{/chip_tests_item_response_parameters}} |
| } |
| {{/if}} |
| {{/if}} |
| {{>maybeContinueWithoutWaitingOnDone}} |
| {{#if ../expectMultipleResponses}} |
| mTestSubStepIndex++; |
| break; |
| {{/if}} |
| {{/chip_tests_item_responses}} |
| {{#if expectMultipleResponses}} |
| default: |
| LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); |
| break; |
| } |
| {{/if}} |