[libcamera-devel,v2,4/5] test: v4l2_device: Reset media links and set a resolution

Message ID 20190511111115.16727-5-niklas.soderlund@ragnatech.se
State Accepted
Headers show
Series
  • test: v4l2_device: Cleanups and a small speed increase
Related show

Commit Message

Niklas Söderlund May 11, 2019, 11:11 a.m. UTC
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@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 test/v4l2_device/v4l2_device_test.cpp | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

Patch

diff --git a/test/v4l2_device/v4l2_device_test.cpp b/test/v4l2_device/v4l2_device_test.cpp
index ee5a8e009bef2a5e..baad48f8aa9e6439 100644
--- a/test/v4l2_device/v4l2_device_test.cpp
+++ b/test/v4l2_device/v4l2_device_test.cpp
@@ -54,7 +54,27 @@  int V4L2DeviceTest::init()
 	if (!capture_)
 		return TestFail;
 
-	return capture_->open();
+	if (!media_->acquire())
+		return TestFail;
+
+	int ret = media_->disableLinks();
+	media_->release();
+	if (ret)
+		return TestFail;
+
+	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()