[libcamera-devel,v2,3/5] test: v4l2_device: Allow each test to specify which device and entity to test

Message ID 20190511111115.16727-4-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
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(-)

Patch

diff --git a/test/v4l2_device/buffer_sharing.cpp b/test/v4l2_device/buffer_sharing.cpp
index 09695239ee4b9e80..e63ddff856894130 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 2a41b11e95e77dac..fd428ff909f32999 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 7ec80a60f57ee036..b402de04fca5ddbb 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 72676c9d334a69b0..3ac47f5cc665b62b 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 938d4f85d5a1e711..794b083eb84d8d2e 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 ea1b3f5bd5a4cbea..4902d5fd6d58a73d 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 833038d56ea4631d..ee5a8e009bef2a5e 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 c476d3c05e79747a..651c005f4e5485e6 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_;