From 44937caa3d4be3e17e1402575431c3ef17704c90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>
Date: Wed, 8 May 2019 17:35:48 +0200
Subject: test: v4l2_device: Reset media links and set a resolution
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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(-)

(limited to 'test')

diff --git a/test/v4l2_device/v4l2_device_test.cpp b/test/v4l2_device/v4l2_device_test.cpp
index ee5a8e00..baad48f8 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()
-- 
cgit v1.2.1