test: gstreamer: Include missing sanitizer/asan_interface.h header

The GStreamer tests define a __asan_default_options() function to
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@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2024-06-24 17:03:26 +03:00
parent 7817f9e0cf
commit 6fc5f90f16
2 changed files with 13 additions and 0 deletions

View file

@ -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)

View file

@ -11,8 +11,15 @@ gstreamer_tests = [
]
gstreamer_dep = dependency('gstreamer-1.0', required : true)
gstreamer_test_args = []
if asan_enabled
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)