From 4f8ba02bbcf7c0e4f5c99f9ce6b788938f5987ea 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:37:04 +0200
Subject: test: v4l2_device: Allow each test to specify which device and entity
 to test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Prepare for different tests which implements V4L2DeviceTest to specify
which media device and entity they wish to test. There is no functional
changes, all tests still use vivid to perform there tests.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 test/v4l2_device/buffer_sharing.cpp   | 5 ++---
 test/v4l2_device/capture_async.cpp    | 2 +-
 test/v4l2_device/double_open.cpp      | 3 +++
 test/v4l2_device/formats.cpp          | 3 +++
 test/v4l2_device/request_buffers.cpp  | 4 ++++
 test/v4l2_device/stream_on_off.cpp    | 3 +++
 test/v4l2_device/v4l2_device_test.cpp | 6 +++---
 test/v4l2_device/v4l2_device_test.h   | 6 ++++--
 8 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/test/v4l2_device/buffer_sharing.cpp b/test/v4l2_device/buffer_sharing.cpp
index 09695239..e63ddff8 100644
--- a/test/v4l2_device/buffer_sharing.cpp
+++ b/test/v4l2_device/buffer_sharing.cpp
@@ -23,9 +23,8 @@ class BufferSharingTest : public V4L2DeviceTest
 {
 public:
 	BufferSharingTest()
-		: output_(nullptr), framesCaptured_(0), framesOutput_(0)
-	{
-	}
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"),
+		  output_(nullptr), framesCaptured_(0), framesOutput_(0) {}
 
 protected:
 	int init()
diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
index 2a41b11e..fd428ff9 100644
--- a/test/v4l2_device/capture_async.cpp
+++ b/test/v4l2_device/capture_async.cpp
@@ -18,7 +18,7 @@ class CaptureAsyncTest : public V4L2DeviceTest
 {
 public:
 	CaptureAsyncTest()
-		: frames(0){};
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"), frames(0) {}
 
 	void receiveBuffer(Buffer *buffer)
 	{
diff --git a/test/v4l2_device/double_open.cpp b/test/v4l2_device/double_open.cpp
index 7ec80a60..b402de04 100644
--- a/test/v4l2_device/double_open.cpp
+++ b/test/v4l2_device/double_open.cpp
@@ -13,6 +13,9 @@ namespace {
 
 class DoubleOpen : public V4L2DeviceTest
 {
+public:
+	DoubleOpen()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/formats.cpp b/test/v4l2_device/formats.cpp
index 72676c9d..3ac47f5c 100644
--- a/test/v4l2_device/formats.cpp
+++ b/test/v4l2_device/formats.cpp
@@ -17,6 +17,9 @@ using namespace libcamera;
 
 class Format : public V4L2DeviceTest
 {
+public:
+	Format()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
index 938d4f85..794b083e 100644
--- a/test/v4l2_device/request_buffers.cpp
+++ b/test/v4l2_device/request_buffers.cpp
@@ -9,6 +9,10 @@
 
 class RequestBuffersTest : public V4L2DeviceTest
 {
+public:
+	RequestBuffersTest()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
+
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
index ea1b3f5b..4902d5fd 100644
--- a/test/v4l2_device/stream_on_off.cpp
+++ b/test/v4l2_device/stream_on_off.cpp
@@ -9,6 +9,9 @@
 
 class StreamOnStreamOffTest : public V4L2DeviceTest
 {
+public:
+	StreamOnStreamOffTest()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/v4l2_device_test.cpp b/test/v4l2_device/v4l2_device_test.cpp
index 833038d5..ee5a8e00 100644
--- a/test/v4l2_device/v4l2_device_test.cpp
+++ b/test/v4l2_device/v4l2_device_test.cpp
@@ -39,14 +39,14 @@ int V4L2DeviceTest::init()
 		return TestFail;
 	}
 
-	DeviceMatch dm("vivid");
-	dm.add("vivid-000-vid-cap");
+	DeviceMatch dm(driver_);
+	dm.add(entity_);
 
 	media_ = enumerator_->search(dm);
 	if (!media_)
 		return TestSkip;
 
-	MediaEntity *entity = media_->getEntityByName("vivid-000-vid-cap");
+	MediaEntity *entity = media_->getEntityByName(entity_);
 	if (!entity)
 		return TestSkip;
 
diff --git a/test/v4l2_device/v4l2_device_test.h b/test/v4l2_device/v4l2_device_test.h
index c476d3c0..651c005f 100644
--- a/test/v4l2_device/v4l2_device_test.h
+++ b/test/v4l2_device/v4l2_device_test.h
@@ -22,8 +22,8 @@ using namespace libcamera;
 class V4L2DeviceTest : public Test
 {
 public:
-	V4L2DeviceTest()
-		: capture_(nullptr)
+	V4L2DeviceTest(const char *driver, const char *entity)
+		: driver_(driver), entity_(entity), capture_(nullptr)
 	{
 	}
 
@@ -31,6 +31,8 @@ protected:
 	int init();
 	void cleanup();
 
+	std::string driver_;
+	std::string entity_;
 	std::unique_ptr<DeviceEnumerator> enumerator_;
 	std::shared_ptr<MediaDevice> media_;
 	V4L2Device *capture_;
-- 
cgit v1.2.1