[libcamera-devel] [PATCH 4/5] test: v4l2_device: Reset media links and set a resolution
Kieran Bingham
kieran.bingham at ideasonboard.com
Thu May 9 11:30:41 CEST 2019
Hi Niklas,
On 08/05/2019 17:58, Niklas Söderlund wrote:
> When initializing the test reset any media links and set a know
> resolutions. This is needed to put the device under test into known
> state and not have the v4l2 device tests depend on that no one have
> touched the device before the test is executed.
>
> The resolution is picked purely at random and could possibly be moved to
> each test case if there is a need for different resolutions for a
> specific one.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> test/v4l2_device/v4l2_device_test.cpp | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/test/v4l2_device/v4l2_device_test.cpp b/test/v4l2_device/v4l2_device_test.cpp
> index ee5a8e009bef2a5e..5bd80a6c68d796b6 100644
> --- a/test/v4l2_device/v4l2_device_test.cpp
> +++ b/test/v4l2_device/v4l2_device_test.cpp
> @@ -54,7 +54,24 @@ int V4L2DeviceTest::init()
> if (!capture_)
> return TestFail;
>
> - return capture_->open();
> + media_->acquire();
Should you check the return code of acquire?
Does it block using lockf() internally?
> + if (media_->disableLinks())
Where do we recreate / re-enable the links?
or does it reset to a sane default?
> + return TestFail;
Is it an issue here that the media_ is not released? I now can't recall
if the acquire/release is about locking globally using lockf() or if
it's just a state machine state change.
If it must be released - perhaps we should do some sort of auto-lock
release by using the destructor of a local object, so that it releases
when it goes out of scope.
> + media_->release();
> +
> + if (capture_->open())
> + return TestFail;
> +
> + V4L2DeviceFormat format = {};
> + if (capture_->getFormat(&format))
> + return TestFail;
> +
> + format.size.width = 640;
> + format.size.height = 480;
> + if (capture_->setFormat(&format))
> + return TestFail;
> +
> + return TestPass;
> }
>
> void V4L2DeviceTest::cleanup()
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list