test: Don't add current build directory to include path

Meson adds the current source and build directory to the include path by
default. This causes a namespace clash in tests when using C++20, as the
Span class test is compiled into a binary named 'span', which then gets
included by source code through indirect '#include <span>' directives.
Unsurprisingly, the compiler doesn't react happily when fed binary data.

We could work around the problem by renaming the test executable, but
disabling the implicit inclusion of the local directory is a more
generic solution that will avoid similar issues in the future.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2024-05-04 16:47:55 +03:00
parent bf4695266b
commit 6cd8491258

View file

@ -89,6 +89,7 @@ foreach test : public_tests
exe = executable(test['name'], test['sources'],
dependencies : deps,
implicit_include_directories : false,
link_with : test_libraries,
include_directories : test_includes_public)
@ -103,6 +104,7 @@ foreach test : internal_tests
exe = executable(test['name'], test['sources'],
dependencies : deps,
implicit_include_directories : false,
link_with : test_libraries,
include_directories : test_includes_internal)
@ -117,6 +119,7 @@ foreach test : internal_non_parallel_tests
exe = executable(test['name'], test['sources'],
dependencies : deps,
implicit_include_directories : false,
link_with : test_libraries,
include_directories : test_includes_internal)