[libcamera-devel] [PATCH v3 2/7] apps: lc-compliance: Check that requests complete successfully
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri Jan 12 12:40:26 CET 2024
Quoting Jacopo Mondi via libcamera-devel (2023-12-30 16:29:07)
> From: Nícolas F. R. A. Prado <nfraprado at collabora.com>
>
> When a request fails to queue it is completed but with its status set to
> RequestCancelled. Add a check in the requestComplete callback to make
> sure that the request was completed successfully.
>
> For the SimpleCaptureUnbalanced test we need to do this check only if
> the capture isn't over yet, otherwise the few extra requests that get
> cancelled at the end, which is the normal behavior, will make the test
> fail.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado at collabora.com>
> Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
This sounds and looks pretty reasonable. So I would say this should
already be good to go.
I'll be keen to see lc-compliance run more and grow in our automated
tests.
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> src/apps/lc-compliance/simple_capture.cpp | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/src/apps/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/simple_capture.cpp
> index cf4d7cf38bc3..e22a339c4e1c 100644
> --- a/src/apps/lc-compliance/simple_capture.cpp
> +++ b/src/apps/lc-compliance/simple_capture.cpp
> @@ -127,6 +127,9 @@ int SimpleCaptureBalanced::queueRequest(Request *request)
>
> void SimpleCaptureBalanced::requestComplete(Request *request)
> {
> + EXPECT_EQ(request->status(), Request::Status::RequestComplete)
> + << "Request didn't complete successfully";
> +
> captureCount_++;
> if (captureCount_ >= captureLimit_) {
> loop_->exit(0);
> @@ -184,6 +187,9 @@ void SimpleCaptureUnbalanced::requestComplete(Request *request)
> return;
> }
>
> + EXPECT_EQ(request->status(), Request::Status::RequestComplete)
> + << "Request didn't complete successfully";
> +
> request->reuse(Request::ReuseBuffers);
> if (camera_->queueRequest(request))
> loop_->exit(-EINVAL);
> --
> 2.41.0
>
More information about the libcamera-devel
mailing list