[libcamera-devel] [PATCH 16/16] test: Ensure LIBCAMERA_BASE_PRIVATE isn't public
paul.elder at ideasonboard.com
paul.elder at ideasonboard.com
Fri Jun 25 11:05:05 CEST 2021
Hi Kieran,
On Fri, Jun 25, 2021 at 02:35:39AM +0100, Kieran Bingham wrote:
> If LIBCAMERA_BASE_PRIVATE is ever exposed on the libcamera public dependencies,
> then the private.h header protection will be circumvented.
>
> Provide a test which will fail (at compile time) if the LIBCAMERA_BASE_PRIVATE
> define ever leaks to the public dependencies.
>
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> test/meson.build | 1 +
> test/public-api.cpp | 25 +++++++++++++++++++++++++
> 2 files changed, 26 insertions(+)
> create mode 100644 test/public-api.cpp
>
> diff --git a/test/meson.build b/test/meson.build
> index 73eb44d03ad0..2c3e76546fbc 100644
> --- a/test/meson.build
> +++ b/test/meson.build
> @@ -25,6 +25,7 @@ subdir('v4l2_videodevice')
>
> public_tests = [
> ['geometry', 'geometry.cpp'],
> + ['public-api', 'public-api.cpp'],
> ['signal', 'signal.cpp'],
> ['span', 'span.cpp'],
> ]
> diff --git a/test/public-api.cpp b/test/public-api.cpp
> new file mode 100644
> index 000000000000..5afce97c6887
> --- /dev/null
> +++ b/test/public-api.cpp
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Copyright (C) 2021, Google Inc.
> + *
> + * public-api.cpp - Public API validation
> + */
> +
> +#include <libcamera/libcamera.h>
> +
> +#include "test.h"
> +
> +class PublicAPITest : public Test
> +{
> + int run()
> + {
> +#ifdef LIBCAMERA_BASE_PRIVATE
> +#error "Public Interfaces should not be exposed to LIBCAMERA_BASE_PRIVATE"
s/be exposed to/expose/ ?
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> + return TestFail;
> +#else
> + return TestPass;
> +#endif
> + }
> +};
> +
> +TEST_REGISTER(PublicAPITest)
> --
> 2.30.2
>
More information about the libcamera-devel
mailing list