[libcamera-devel,5/5] test: v4l2_device: Switch most tests to vimc

Message ID 20190508165814.26201-6-niklas.soderlund@ragnatech.se
State Superseded
Headers show
Series
  • test: v4l2_device: Cleanups and a small speed increase
Related show

Commit Message

Niklas Söderlund May 8, 2019, 4:58 p.m. UTC
The vimc driver delivers frames much faster then the vivid driver hence
most v4l2 device tests complete much quicker if vimc is used. The only
v4l2 device test which can't be switched is buffer_sharing as it needs
to import buffers somewhere, something vimc do not support.

With this change I manage to shave of almost 7 seconds for each run of
all v4l2 device tests.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
---
 test/v4l2_device/capture_async.cpp   | 2 +-
 test/v4l2_device/double_open.cpp     | 2 +-
 test/v4l2_device/formats.cpp         | 2 +-
 test/v4l2_device/request_buffers.cpp | 2 +-
 test/v4l2_device/stream_on_off.cpp   | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

Comments

Laurent Pinchart May 11, 2019, 2:49 a.m. UTC | #1
Hi Niklas,

Thank you for the patch.

On Wed, May 08, 2019 at 06:58:14PM +0200, Niklas Söderlund wrote:
> The vimc driver delivers frames much faster then the vivid driver hence
> most v4l2 device tests complete much quicker if vimc is used. The only
> v4l2 device test which can't be switched is buffer_sharing as it needs
> to import buffers somewhere, something vimc do not support.
> 
> With this change I manage to shave of almost 7 seconds for each run of
> all v4l2 device tests.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

Nice improvement!

How does this work after you reset all the links without enabling new
ones ?

> ---
>  test/v4l2_device/capture_async.cpp   | 2 +-
>  test/v4l2_device/double_open.cpp     | 2 +-
>  test/v4l2_device/formats.cpp         | 2 +-
>  test/v4l2_device/request_buffers.cpp | 2 +-
>  test/v4l2_device/stream_on_off.cpp   | 2 +-
>  5 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
> index fd428ff909f32999..69b1d5a13ed8675a 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()
> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"), frames(0) {}
> +		: V4L2DeviceTest("vimc", "Raw Capture 0"), frames(0) {}
>  
>  	void receiveBuffer(Buffer *buffer)
>  	{
> diff --git a/test/v4l2_device/double_open.cpp b/test/v4l2_device/double_open.cpp
> index b402de04fca5ddbb..53850620889b0972 100644
> --- a/test/v4l2_device/double_open.cpp
> +++ b/test/v4l2_device/double_open.cpp
> @@ -15,7 +15,7 @@ class DoubleOpen : public V4L2DeviceTest
>  {
>  public:
>  	DoubleOpen()
> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
>  protected:
>  	int run()
>  	{
> diff --git a/test/v4l2_device/formats.cpp b/test/v4l2_device/formats.cpp
> index 3ac47f5cc665b62b..6be045ff754c4258 100644
> --- a/test/v4l2_device/formats.cpp
> +++ b/test/v4l2_device/formats.cpp
> @@ -19,7 +19,7 @@ class Format : public V4L2DeviceTest
>  {
>  public:
>  	Format()
> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
>  protected:
>  	int run()
>  	{
> diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
> index 794b083eb84d8d2e..7b7b06b2b409bd23 100644
> --- a/test/v4l2_device/request_buffers.cpp
> +++ b/test/v4l2_device/request_buffers.cpp
> @@ -11,7 +11,7 @@ class RequestBuffersTest : public V4L2DeviceTest
>  {
>  public:
>  	RequestBuffersTest()
> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
>  
>  protected:
>  	int run()
> diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
> index 4902d5fd6d58a73d..b158b8e402c83156 100644
> --- a/test/v4l2_device/stream_on_off.cpp
> +++ b/test/v4l2_device/stream_on_off.cpp
> @@ -11,7 +11,7 @@ class StreamOnStreamOffTest : public V4L2DeviceTest
>  {
>  public:
>  	StreamOnStreamOffTest()
> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
>  protected:
>  	int run()
>  	{
Niklas Söderlund May 11, 2019, 11:07 a.m. UTC | #2
Hi Laurent,

Thanks for your feedback.

On 2019-05-11 05:49:27 +0300, Laurent Pinchart wrote:
> Hi Niklas,
> 
> Thank you for the patch.
> 
> On Wed, May 08, 2019 at 06:58:14PM +0200, Niklas Söderlund wrote:
> > The vimc driver delivers frames much faster then the vivid driver hence
> > most v4l2 device tests complete much quicker if vimc is used. The only
> > v4l2 device test which can't be switched is buffer_sharing as it needs
> > to import buffers somewhere, something vimc do not support.
> > 
> > With this change I manage to shave of almost 7 seconds for each run of
> > all v4l2 device tests.
> > 
> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> 
> Nice improvement!
> 
> How does this work after you reset all the links without enabling new
> ones ?

All tests based on vimc uses the "Raw Capture 0" node which is enabled 
with an immutable link so there is no need (yet) to explicit enable 
links for vimc based tests.

I'm hoping we can get vimc multistreaming support upstream somehow and a 
test based on that would need to enable links in it's run() before 
executing its tests.

> 
> > ---
> >  test/v4l2_device/capture_async.cpp   | 2 +-
> >  test/v4l2_device/double_open.cpp     | 2 +-
> >  test/v4l2_device/formats.cpp         | 2 +-
> >  test/v4l2_device/request_buffers.cpp | 2 +-
> >  test/v4l2_device/stream_on_off.cpp   | 2 +-
> >  5 files changed, 5 insertions(+), 5 deletions(-)
> > 
> > diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
> > index fd428ff909f32999..69b1d5a13ed8675a 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()
> > -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"), frames(0) {}
> > +		: V4L2DeviceTest("vimc", "Raw Capture 0"), frames(0) {}
> >  
> >  	void receiveBuffer(Buffer *buffer)
> >  	{
> > diff --git a/test/v4l2_device/double_open.cpp b/test/v4l2_device/double_open.cpp
> > index b402de04fca5ddbb..53850620889b0972 100644
> > --- a/test/v4l2_device/double_open.cpp
> > +++ b/test/v4l2_device/double_open.cpp
> > @@ -15,7 +15,7 @@ class DoubleOpen : public V4L2DeviceTest
> >  {
> >  public:
> >  	DoubleOpen()
> > -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> > +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >  protected:
> >  	int run()
> >  	{
> > diff --git a/test/v4l2_device/formats.cpp b/test/v4l2_device/formats.cpp
> > index 3ac47f5cc665b62b..6be045ff754c4258 100644
> > --- a/test/v4l2_device/formats.cpp
> > +++ b/test/v4l2_device/formats.cpp
> > @@ -19,7 +19,7 @@ class Format : public V4L2DeviceTest
> >  {
> >  public:
> >  	Format()
> > -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> > +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >  protected:
> >  	int run()
> >  	{
> > diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
> > index 794b083eb84d8d2e..7b7b06b2b409bd23 100644
> > --- a/test/v4l2_device/request_buffers.cpp
> > +++ b/test/v4l2_device/request_buffers.cpp
> > @@ -11,7 +11,7 @@ class RequestBuffersTest : public V4L2DeviceTest
> >  {
> >  public:
> >  	RequestBuffersTest()
> > -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> > +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >  
> >  protected:
> >  	int run()
> > diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
> > index 4902d5fd6d58a73d..b158b8e402c83156 100644
> > --- a/test/v4l2_device/stream_on_off.cpp
> > +++ b/test/v4l2_device/stream_on_off.cpp
> > @@ -11,7 +11,7 @@ class StreamOnStreamOffTest : public V4L2DeviceTest
> >  {
> >  public:
> >  	StreamOnStreamOffTest()
> > -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> > +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >  protected:
> >  	int run()
> >  	{
> 
> -- 
> Regards,
> 
> Laurent Pinchart
Laurent Pinchart May 11, 2019, 1:39 p.m. UTC | #3
Hi Niklas,

On Sat, May 11, 2019 at 01:07:26PM +0200, Niklas Söderlund wrote:
> On 2019-05-11 05:49:27 +0300, Laurent Pinchart wrote:
> > On Wed, May 08, 2019 at 06:58:14PM +0200, Niklas Söderlund wrote:
> >> The vimc driver delivers frames much faster then the vivid driver hence
> >> most v4l2 device tests complete much quicker if vimc is used. The only
> >> v4l2 device test which can't be switched is buffer_sharing as it needs
> >> to import buffers somewhere, something vimc do not support.
> >> 
> >> With this change I manage to shave of almost 7 seconds for each run of
> >> all v4l2 device tests.
> >> 
> >> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> > 
> > Nice improvement!
> > 
> > How does this work after you reset all the links without enabling new
> > ones ?
> 
> All tests based on vimc uses the "Raw Capture 0" node which is enabled 
> with an immutable link so there is no need (yet) to explicit enable 
> links for vimc based tests.
> 
> I'm hoping we can get vimc multistreaming support upstream somehow and a 
> test based on that would need to enable links in it's run() before 
> executing its tests.

OK.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> >> ---
> >>  test/v4l2_device/capture_async.cpp   | 2 +-
> >>  test/v4l2_device/double_open.cpp     | 2 +-
> >>  test/v4l2_device/formats.cpp         | 2 +-
> >>  test/v4l2_device/request_buffers.cpp | 2 +-
> >>  test/v4l2_device/stream_on_off.cpp   | 2 +-
> >>  5 files changed, 5 insertions(+), 5 deletions(-)
> >> 
> >> diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
> >> index fd428ff909f32999..69b1d5a13ed8675a 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()
> >> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"), frames(0) {}
> >> +		: V4L2DeviceTest("vimc", "Raw Capture 0"), frames(0) {}
> >>  
> >>  	void receiveBuffer(Buffer *buffer)
> >>  	{
> >> diff --git a/test/v4l2_device/double_open.cpp b/test/v4l2_device/double_open.cpp
> >> index b402de04fca5ddbb..53850620889b0972 100644
> >> --- a/test/v4l2_device/double_open.cpp
> >> +++ b/test/v4l2_device/double_open.cpp
> >> @@ -15,7 +15,7 @@ class DoubleOpen : public V4L2DeviceTest
> >>  {
> >>  public:
> >>  	DoubleOpen()
> >> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> >> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >>  protected:
> >>  	int run()
> >>  	{
> >> diff --git a/test/v4l2_device/formats.cpp b/test/v4l2_device/formats.cpp
> >> index 3ac47f5cc665b62b..6be045ff754c4258 100644
> >> --- a/test/v4l2_device/formats.cpp
> >> +++ b/test/v4l2_device/formats.cpp
> >> @@ -19,7 +19,7 @@ class Format : public V4L2DeviceTest
> >>  {
> >>  public:
> >>  	Format()
> >> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> >> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >>  protected:
> >>  	int run()
> >>  	{
> >> diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
> >> index 794b083eb84d8d2e..7b7b06b2b409bd23 100644
> >> --- a/test/v4l2_device/request_buffers.cpp
> >> +++ b/test/v4l2_device/request_buffers.cpp
> >> @@ -11,7 +11,7 @@ class RequestBuffersTest : public V4L2DeviceTest
> >>  {
> >>  public:
> >>  	RequestBuffersTest()
> >> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> >> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >>  
> >>  protected:
> >>  	int run()
> >> diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
> >> index 4902d5fd6d58a73d..b158b8e402c83156 100644
> >> --- a/test/v4l2_device/stream_on_off.cpp
> >> +++ b/test/v4l2_device/stream_on_off.cpp
> >> @@ -11,7 +11,7 @@ class StreamOnStreamOffTest : public V4L2DeviceTest
> >>  {
> >>  public:
> >>  	StreamOnStreamOffTest()
> >> -		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
> >> +		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
> >>  protected:
> >>  	int run()
> >>  	{

Patch

diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
index fd428ff909f32999..69b1d5a13ed8675a 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()
-		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"), frames(0) {}
+		: V4L2DeviceTest("vimc", "Raw Capture 0"), frames(0) {}
 
 	void receiveBuffer(Buffer *buffer)
 	{
diff --git a/test/v4l2_device/double_open.cpp b/test/v4l2_device/double_open.cpp
index b402de04fca5ddbb..53850620889b0972 100644
--- a/test/v4l2_device/double_open.cpp
+++ b/test/v4l2_device/double_open.cpp
@@ -15,7 +15,7 @@  class DoubleOpen : public V4L2DeviceTest
 {
 public:
 	DoubleOpen()
-		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
+		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/formats.cpp b/test/v4l2_device/formats.cpp
index 3ac47f5cc665b62b..6be045ff754c4258 100644
--- a/test/v4l2_device/formats.cpp
+++ b/test/v4l2_device/formats.cpp
@@ -19,7 +19,7 @@  class Format : public V4L2DeviceTest
 {
 public:
 	Format()
-		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
+		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
index 794b083eb84d8d2e..7b7b06b2b409bd23 100644
--- a/test/v4l2_device/request_buffers.cpp
+++ b/test/v4l2_device/request_buffers.cpp
@@ -11,7 +11,7 @@  class RequestBuffersTest : public V4L2DeviceTest
 {
 public:
 	RequestBuffersTest()
-		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
+		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
 
 protected:
 	int run()
diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
index 4902d5fd6d58a73d..b158b8e402c83156 100644
--- a/test/v4l2_device/stream_on_off.cpp
+++ b/test/v4l2_device/stream_on_off.cpp
@@ -11,7 +11,7 @@  class StreamOnStreamOffTest : public V4L2DeviceTest
 {
 public:
 	StreamOnStreamOffTest()
-		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
+		: V4L2DeviceTest("vimc", "Raw Capture 0") {}
 protected:
 	int run()
 	{