[libcamera-devel] [PATCH v8 16/17] lc-compliance: Check that requests complete successfully

Paul Elder paul.elder at ideasonboard.com
Thu Dec 1 12:31:37 CET 2022


On Tue, Aug 24, 2021 at 04:56:35PM -0300, Nícolas F. R. A. Prado wrote:
> 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>

> 
> ---
> 
> Changes in v8:
> - Fixed issue in UnbalancedStop test where requests cancelled due to stop() call
>   were failing the test
> - Fixed formatting
> 
> Changes in v5:
> - New
> 
>  src/lc-compliance/simple_capture.cpp | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/src/lc-compliance/simple_capture.cpp b/src/lc-compliance/simple_capture.cpp
> index d4805ff3403c..701d0feb70d1 100644
> --- a/src/lc-compliance/simple_capture.cpp
> +++ b/src/lc-compliance/simple_capture.cpp
> @@ -165,6 +165,9 @@ int SimpleCaptureBalanced::queueRequest(Request *request)
>  
>  void SimpleCaptureBalanced::requestComplete(Request *request)
>  {
> +	EXPECT_EQ(request->status(), Request::Status::RequestComplete)
> +		<< "Request didn't complete successfully";
> +
>  	if (captureCompleted())
>  		return;
>  
> @@ -202,6 +205,9 @@ void SimpleCaptureUnbalanced::requestComplete(Request *request)
>  	if (captureCompleted())
>  		return;
>  
> +	EXPECT_EQ(request->status(), Request::Status::RequestComplete)
> +		<< "Request didn't complete successfully";
> +
>  	request->reuse(Request::ReuseBuffers);
>  	if (camera_->queueRequest(request))
>  		loop_->exit(-EINVAL);
> @@ -233,5 +239,8 @@ void SimpleCaptureOverflow::capture()
>  
>  void SimpleCaptureOverflow::requestComplete([[maybe_unused]] Request *request)
>  {
> +	EXPECT_EQ(request->status(), Request::Status::RequestComplete)
> +		<< "Request didn't complete successfully";
> +
>  	captureCompleted();
>  }
> -- 
> 2.33.0
> 


More information about the libcamera-devel mailing list