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

Kieran Bingham kieran.bingham at ideasonboard.com
Thu May 9 11:29:11 CEST 2019


Hi Niklas,

I like the flexibility this gives.

Acked-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

On 08/05/2019 17:58, Niklas Söderlund wrote:
> 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 at ragnatech.se>
> ---
>  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 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_;
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list