[libcamera-devel] [PATCH v4 8/8] test: Test V4L2BufferCache::isEmpty() member function

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Mar 23 10:59:57 CET 2022


Quoting Naushir Patuck via libcamera-devel (2022-03-22 09:22:57)
> Add a test for V4L2BufferCache::isEmpty() for various levels for cache fullness.
> 
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

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

> ---
>  test/v4l2_videodevice/buffer_cache.cpp | 36 ++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/test/v4l2_videodevice/buffer_cache.cpp b/test/v4l2_videodevice/buffer_cache.cpp
> index b3f2bec11783..5a9aa2199c50 100644
> --- a/test/v4l2_videodevice/buffer_cache.cpp
> +++ b/test/v4l2_videodevice/buffer_cache.cpp
> @@ -126,6 +126,35 @@ public:
>                 return TestPass;
>         }
>  
> +       int testIsEmpty(const std::vector<std::unique_ptr<FrameBuffer>> &buffers)
> +       {
> +               V4L2BufferCache cache(buffers.size());
> +
> +               if (!cache.isEmpty())
> +                       return TestFail;
> +
> +               for (auto const &buffer : buffers) {
> +                       FrameBuffer &b = *buffer.get();
> +                       cache.get(b);
> +               }
> +
> +               if (cache.isEmpty())
> +                       return TestFail;
> +
> +               unsigned int i;
> +               for (i = 0; i < buffers.size() - 1; i++)
> +                       cache.put(i);
> +
> +               if (cache.isEmpty())
> +                       return TestFail;
> +
> +               cache.put(i);
> +               if (!cache.isEmpty())
> +                       return TestFail;
> +
> +               return TestPass;
> +       }
> +
>         int init() override
>         {
>                 std::random_device rd;
> @@ -204,6 +233,13 @@ public:
>                 if (testHot(&cacheHalf, buffers, numBuffers / 2) != TestPass)
>                         return TestFail;
>  
> +               /*
> +                * Test that the isEmpty function reports the correct result at
> +                * various levels of cache fullness.
> +                */
> +               if (testIsEmpty(buffers) != TestPass)
> +                       return TestFail;
> +
>                 return TestPass;
>         }
>  
> -- 
> 2.25.1
>


More information about the libcamera-devel mailing list