diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-06-23 23:10:20 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-06-25 16:11:11 +0100 |
commit | fc9b226d19b59e965b1746ba5dc6fc603de3b591 (patch) | |
tree | 6a50ea9111f00f56d4bf08431cfd3e7db1c876fc | |
parent | 5c01d541208d32265d398e07085bcdf4606cc1f5 (diff) |
test: Ensure LIBCAMERA_BASE_PRIVATE isn't public
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.
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | test/meson.build | 1 | ||||
-rw-r--r-- | test/public-api.cpp | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/test/meson.build b/test/meson.build index 73eb44d0..2c3e7654 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 00000000..a1cebcf9 --- /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" + return TestFail; +#else + return TestPass; +#endif + } +}; + +TEST_REGISTER(PublicAPITest) |