[PATCH 09/10] test: gstreamer: Include missing sanitizer/asan_interface.h header
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Jun 24 23:44:25 CEST 2024
Quoting Laurent Pinchart (2024-06-24 20:29:40)
> The GStreamet tests define a __asan_default_options() function to
GStreamer
> influence the behaviour of ASan. The function is declared in
> sanitizer/asan_interface.h, but we don't include the header. This will
> cause missing declaration warnings when we enable the
> -Wmissing-declarations option.
>
> Include the header to fix the issue. It can't be done unconditionally as
> not all toolchains provide ASan, so check for its availability at
> configuration time.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> test/gstreamer/gstreamer_test.cpp | 6 ++++++
> test/gstreamer/meson.build | 7 +++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/test/gstreamer/gstreamer_test.cpp b/test/gstreamer/gstreamer_test.cpp
> index e8119b853e7e..a15fef0e0c07 100644
> --- a/test/gstreamer/gstreamer_test.cpp
> +++ b/test/gstreamer/gstreamer_test.cpp
> @@ -9,12 +9,17 @@
>
> #include <libcamera/base/utils.h>
>
> +#if HAVE_ASAN
> +#include <sanitizer/asan_interface.h>
> +#endif
> +
> #include "gstreamer_test.h"
>
> #include "test.h"
>
> using namespace std;
>
> +#if HAVE_ASAN
> extern "C" {
> const char *__asan_default_options()
> {
> @@ -26,6 +31,7 @@ const char *__asan_default_options()
> return "detect_leaks=false";
> }
> }
> +#endif
>
> GstreamerTest::GstreamerTest(unsigned int numStreams)
> : pipeline_(nullptr), libcameraSrc_(nullptr)
> diff --git a/test/gstreamer/meson.build b/test/gstreamer/meson.build
> index f3ba5a23dfba..37ad125ef3fd 100644
> --- a/test/gstreamer/meson.build
> +++ b/test/gstreamer/meson.build
> @@ -11,8 +11,15 @@ gstreamer_tests = [
> ]
> gstreamer_dep = dependency('gstreamer-1.0', required : true)
>
> +gstreamer_test_args = []
> +
> +if asan_enabled
Ha, I just went looking to figure out where in meson this was defined,
but we create it!
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> + gstreamer_test_args += ['-D', 'HAVE_ASAN=1']
> +endif
> +
> foreach test : gstreamer_tests
> exe = executable(test['name'], test['sources'], 'gstreamer_test.cpp',
> + cpp_args : gstreamer_test_args,
> dependencies : [libcamera_private, gstreamer_dep],
> link_with : test_libraries,
> include_directories : test_includes_internal)
> --
> Regards,
>
> Laurent Pinchart
>
More information about the libcamera-devel
mailing list