Skip to content

Commit fe6cd84

Browse files
Handle decode failure in ClusterTester Invoke by setting status and logging
1 parent 46e400c commit fe6cd84

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/app/clusters/testing/ClusterTester.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,15 @@ class ClusterTester
168168
result.status = mCluster.InvokeCommand(invokeRequest, reader, &mHandler);
169169

170170
// If command was successful and there's a response, decode it
171-
if (result.status.has_value() && result.status->IsSuccess() && mHandler.HasResponse())
172-
{
171+
if (result.status.has_value() && result.status->IsSuccess() && mHandler.HasResponse()) {
173172
ResponseType decodedResponse;
174-
if (mHandler.DecodeResponse(decodedResponse) == CHIP_NO_ERROR)
175-
{
173+
CHIP_ERROR decodeError = mHandler.DecodeResponse(decodedResponse);
174+
if (decodeError == CHIP_NO_ERROR) {
176175
result.response = std::move(decodedResponse);
176+
} else {
177+
// Decode failed; reflect error in status and log
178+
result.status = app::DataModel::ActionReturnStatus(decodeError);
179+
ChipLogError(Test, "DecodeResponse failed: %s", decodeError.AsString());
177180
}
178181
}
179182

0 commit comments

Comments
 (0)