[libcamera-devel] [PATCH v2 8/8] test: v4l2_device: Provide buffer sharing test

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Feb 13 18:00:50 CET 2019


Heya,

On 13/02/2019 16:54, Laurent Pinchart wrote:
> Hi Kieran,
> 
> On Wed, Feb 13, 2019 at 04:23:07PM +0000, Kieran Bingham wrote:
>> On 13/02/2019 16:01, Laurent Pinchart wrote:
>>> On Wed, Feb 13, 2019 at 03:10:27PM +0000, Kieran Bingham wrote:
>>>> Obtain two V4L2Devices and use one to obtain a BufferPool.
>>>>
>>>> Propagate the formats from the first to the second device and then commence
>>>> sending buffers between the two devices in a ping-pong fashion.
>>>>
>>>> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>>>> ---
>>>>  test/v4l2_device/buffer_sharing.cpp | 179 ++++++++++++++++++++++++++++
>>>>  test/v4l2_device/meson.build        |   1 +
>>>>  2 files changed, 180 insertions(+)
>>>>  create mode 100644 test/v4l2_device/buffer_sharing.cpp
>>>>
>>>> diff --git a/test/v4l2_device/buffer_sharing.cpp b/test/v4l2_device/buffer_sharing.cpp
>>>> new file mode 100644
>>>> index 000000000000..f03201e82084
>>>> --- /dev/null
>>>> +++ b/test/v4l2_device/buffer_sharing.cpp
>>>> @@ -0,0 +1,179 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>>>> +/*
>>>> + * Copyright (C) 2019, Google Inc.
>>>> + *
>>>> + * libcamera V4L2 API tests
>>>> + *
>>>> + * Validate the function of exporting buffers from a V4L2Device and
>>>> + * the ability to import them to another V4L2Device instance.
>>>> + * Ensure that the Buffers can successfully be queued and dequeued
>>>> + * between both devices.
>>>> + */
>>>> +
>>>> +#include <iostream>
>>>> +
>>>> +#include <libcamera/buffer.h>
>>>> +#include <libcamera/camera_manager.h>
>>>> +#include <libcamera/event_dispatcher.h>
>>>> +#include <libcamera/timer.h>
>>>> +
>>>> +#include "v4l2_device_test.h"
>>>> +
>>>> +#include "log.h"
>>>> +
>>>> +LOG_DEFINE_CATEGORY(Test)
>>>
>>> Can you use std::cout until we implement a test logger ?
>>>
>>>> +class BufferSharingTest : public V4L2DeviceTest
>>>> +{
>>>> +public:
>>>> +	BufferSharingTest()
>>>> +		: output_(nullptr), framesCapture(0), framesOutput(0){};
>>>
>>> 	BufferSharingTest()
>>> 		: V4L2DeviceTest(), output_(nullptr), framesCapture(0),
>>> 		  framesOutput(0)
>>> 	{
>>> 	}
>>
>>
>> Checkstyle complains at this change, and prefers to have the {} inline.
>>
>> --- test/v4l2_device/buffer_sharing.cpp
>> +++ test/v4l2_device/buffer_sharing.cpp
>> @@ -23,9 +23,7 @@
>>  {
>>  public:
>>         BufferSharingTest()
>> -               : output_(nullptr), framesCaptured_(0), framesOutput_(0)
>> -       {
>> -       };
>> +               : output_(nullptr), framesCaptured_(0), framesOutput_(0){};
>>
>>
>> Would you like to override checkstyle here?
> 
> The trailing ; is really not needed, and we need at least a space before
> {}. When we have a list of initialisers I prefer splitting { and } to
> separate lines for readability. If clang-format can do that through an
> option it would be best. Otherwise we can override checkstyle here, or
> keep {} inline (provided we add the space and remove the ;) if you
> prefer (it's your code after all :-)).

I don't really care as long as checkstyle is clean.

Removing the ; satisfies clang-format in putting the { } on new lines,
so I've done that.

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list