[v2,5/6] test: v4l2_videodevice: Increase timeout for vimc capture tests
diff mbox series

Message ID 20240529154341.10426-6-laurent.pinchart@ideasonboard.com
State Accepted
Commit 73f18f32c958d681126394fa7556828805221f69
Headers show
Series
  • vimc scaling improvements
Related show

Commit Message

Laurent Pinchart May 29, 2024, 3:43 p.m. UTC
On slower machines, a 10s timeout to capture frames with vimc can be too
short and cause test failures. Make the timeout proportional to the
number of frames expected to be captured, using a conservative low
estimate of the frame rate at 2fps. This does not increase the test time
if the vimc driver is fast enough to produce frames.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
Changes since v1:

- Fix the timeout duration mentioned in the commit message
---
 test/v4l2_videodevice/capture_async.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

Comments

Dan Scally May 31, 2024, 2:59 p.m. UTC | #1
Hi Laurent

On 29/05/2024 16:43, Laurent Pinchart wrote:
> On slower machines, a 10s timeout to capture frames with vimc can be too
> short and cause test failures. Make the timeout proportional to the
> number of frames expected to be captured, using a conservative low
> estimate of the frame rate at 2fps. This does not increase the test time
> if the vimc driver is fast enough to produce frames.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> ---
> Changes since v1:
>
> - Fix the timeout duration mentioned in the commit message
> ---
>   test/v4l2_videodevice/capture_async.cpp | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
> index 42e1e671790b..673664615ada 100644
> --- a/test/v4l2_videodevice/capture_async.cpp
> +++ b/test/v4l2_videodevice/capture_async.cpp
> @@ -61,10 +61,12 @@ protected:
>   		if (ret)
>   			return TestFail;
>   
> -		timeout.start(10000ms);
> +		const unsigned int nFrames = 30;
> +
> +		timeout.start(500ms * nFrames);
>   		while (timeout.isRunning()) {
>   			dispatcher->processEvents();
> -			if (frames > 30)
> +			if (frames > nFrames)

This also looks fine to me: Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>

>   				break;
>   		}
>   
> @@ -73,8 +75,9 @@ protected:
>   			return TestFail;
>   		}
>   
> -		if (frames < 30) {
> -			std::cout << "Failed to capture 30 frames within timeout." << std::endl;
> +		if (frames < nFrames) {
> +			std::cout << "Failed to capture " << nFrames
> +				  << " frames within timeout." << std::endl;
>   			return TestFail;
>   		}
>

Patch
diff mbox series

diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
index 42e1e671790b..673664615ada 100644
--- a/test/v4l2_videodevice/capture_async.cpp
+++ b/test/v4l2_videodevice/capture_async.cpp
@@ -61,10 +61,12 @@  protected:
 		if (ret)
 			return TestFail;
 
-		timeout.start(10000ms);
+		const unsigned int nFrames = 30;
+
+		timeout.start(500ms * nFrames);
 		while (timeout.isRunning()) {
 			dispatcher->processEvents();
-			if (frames > 30)
+			if (frames > nFrames)
 				break;
 		}
 
@@ -73,8 +75,9 @@  protected:
 			return TestFail;
 		}
 
-		if (frames < 30) {
-			std::cout << "Failed to capture 30 frames within timeout." << std::endl;
+		if (frames < nFrames) {
+			std::cout << "Failed to capture " << nFrames
+				  << " frames within timeout." << std::endl;
 			return TestFail;
 		}