[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