Message ID | 20240529154341.10426-6-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | 73f18f32c958d681126394fa7556828805221f69 |
Headers | show |
Series |
|
Related | show |
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; > } >
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; }