diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/bad_syntax.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/cpp/.clang-tidy | 4 | ||||
-rw-r--r-- | test/cpp/meson.build | 1 | ||||
-rw-r--r-- | test/failed_instantiation.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/failed_lib_descriptor.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/headers/.clang-tidy | 15 | ||||
-rw-r--r-- | test/headers/meson.build | 32 | ||||
-rw-r--r-- | test/headers/test_headers.c | 13 | ||||
-rw-r--r-- | test/lib_descriptor.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/lint/meson.build | 38 | ||||
-rw-r--r-- | test/meson.build | 42 | ||||
-rw-r--r-- | test/missing_descriptor.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/missing_name.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/missing_plugin.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/missing_port.lv2/meson.build | 1 | ||||
-rw-r--r-- | test/missing_port_name.lv2/meson.build | 1 |
16 files changed, 119 insertions, 35 deletions
diff --git a/test/bad_syntax.lv2/meson.build b/test/bad_syntax.lv2/meson.build index 2e22042..48df70e 100644 --- a/test/bad_syntax.lv2/meson.build +++ b/test/bad_syntax.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_bad_syntax.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/cpp/.clang-tidy b/test/cpp/.clang-tidy index 5d20fa0..a087a3d 100644 --- a/test/cpp/.clang-tidy +++ b/test/cpp/.clang-tidy @@ -1,7 +1,8 @@ -# Copyright 2020-2022 David Robillard <d@drobilla.net> +# Copyright 2020-2025 David Robillard <d@drobilla.net> # SPDX-License-Identifier: 0BSD OR ISC Checks: > + -*-nullptr, -cert-dcl50-cpp, -cppcoreguidelines-macro-usage, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, @@ -14,6 +15,7 @@ Checks: > -modernize-return-braced-init-list, -modernize-use-nodiscard, -modernize-use-trailing-return-type, + -modernize-use-using, -readability-implicit-bool-conversion, HeaderFilterRegex: '.*/lilvmm\.hpp' InheritParentConfig: true diff --git a/test/cpp/meson.build b/test/cpp/meson.build index 0c750de..b810e39 100644 --- a/test/cpp/meson.build +++ b/test/cpp/meson.build @@ -31,6 +31,7 @@ test( files('test_lilv_hpp.cpp'), cpp_args: test_args + cpp_suppressions, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), suite: 'unit', ) diff --git a/test/failed_instantiation.lv2/meson.build b/test/failed_instantiation.lv2/meson.build index 37f8e26..0719d53 100644 --- a/test/failed_instantiation.lv2/meson.build +++ b/test/failed_instantiation.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_failed_instantiation.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/failed_lib_descriptor.lv2/meson.build b/test/failed_lib_descriptor.lv2/meson.build index 15c01e1..8c5907a 100644 --- a/test/failed_lib_descriptor.lv2/meson.build +++ b/test/failed_lib_descriptor.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_failed_lib_descriptor.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/headers/.clang-tidy b/test/headers/.clang-tidy new file mode 100644 index 0000000..a42a718 --- /dev/null +++ b/test/headers/.clang-tidy @@ -0,0 +1,15 @@ +# Copyright 2020-2024 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +Checks: > + *, + -altera-*, + -llvmlibc-*, +CheckOptions: + - key: readability-function-cognitive-complexity.Threshold + value: '1' + - key: readability-identifier-length.IgnoredParameterNames + value: '^(a)|(b)|(ui)|(i)$' +WarningsAsErrors: '*' +HeaderFilterRegex: '.*' +FormatStyle: file diff --git a/test/headers/meson.build b/test/headers/meson.build new file mode 100644 index 0000000..c81ffaa --- /dev/null +++ b/test/headers/meson.build @@ -0,0 +1,32 @@ +# Copyright 2020-2025 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +header_c_suppressions = [] + +if get_option('warning_level') == 'everything' + if cc.get_id() == 'clang' + if not meson.is_cross_build() + header_c_suppressions += ['-Wno-poison-system-directories'] + endif + elif cc.get_id() == 'msvc' + header_c_suppressions += [ + '/wd4820', # padding added after construct + ] + endif +endif + +if cc.get_id() == 'clang' + header_c_suppressions += ['-Wno-nullability-extension'] +endif + +test( + 'headers', + executable( + 'test_headers', + files('test_headers.c'), + c_args: header_c_suppressions, + dependencies: lilv_dep, + implicit_include_directories: false, + ), + suite: 'unit', +) diff --git a/test/headers/test_headers.c b/test/headers/test_headers.c new file mode 100644 index 0000000..b0d4aa5 --- /dev/null +++ b/test/headers/test_headers.c @@ -0,0 +1,13 @@ +// Copyright 2022-2025 David Robillard <d@drobilla.net> +// SPDX-License-Identifier: ISC + +#include <lilv/lilv.h> // IWYU pragma: keep + +#ifdef __GNUC__ +__attribute__((const)) +#endif +int +main(void) +{ + return 0; +} diff --git a/test/lib_descriptor.lv2/meson.build b/test/lib_descriptor.lv2/meson.build index e70ed29..217b907 100644 --- a/test/lib_descriptor.lv2/meson.build +++ b/test/lib_descriptor.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_lib_descriptor.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/lint/meson.build b/test/lint/meson.build new file mode 100644 index 0000000..04214f1 --- /dev/null +++ b/test/lint/meson.build @@ -0,0 +1,38 @@ +# Copyright 2020-2024 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +# Check licensing metadata +reuse = find_program('reuse', required: false) +if reuse.found() + reuse_args = ['--root', lilv_src_root, 'lint'] + test('REUSE', reuse, args: reuse_args, suite: 'data') +endif + +if not meson.is_subproject() + # Check release metadata + autoship = find_program('autoship', required: false) + if autoship.found() + test('autoship', autoship, args: ['test', lilv_src_root], suite: 'data') + endif + + # Check code with cppcheck + cppcheck = find_program('cppcheck', required: false) + if cppcheck.found() + compdb_path = join_paths(lilv_build_root, 'compile_commands.json') + suppress_path = join_paths(lilv_src_root, '.suppress.cppcheck') + test( + 'cppcheck', + cppcheck, + args: [ + '--cppcheck-build-dir=' + meson.current_build_dir(), + '--enable=warning,style,performance,portability', + '--error-exitcode=1', + '--project=' + compdb_path, + '--suppressions-list=' + suppress_path, + '-DLILV_VERSION="\"@0@\""'.format(meson.project_version()), + '-q', + ], + suite: 'code', + ) + endif +endif diff --git a/test/meson.build b/test/meson.build index 1780bab..ce0c708 100644 --- a/test/meson.build +++ b/test/meson.build @@ -1,6 +1,12 @@ # Copyright 2020-2022 David Robillard <d@drobilla.net> # SPDX-License-Identifier: 0BSD OR ISC +################### +# Header Warnings # +################### + +subdir('headers') + ############## # Test Setup # ############## @@ -82,6 +88,7 @@ foreach unit : unit_tests files('lilv_test_utils.c', 'test_@0@.c'.format(unit)), c_args: define_args + test_args + c_suppressions, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), suite: 'unit', ) @@ -92,38 +99,5 @@ endforeach ######## if get_option('lint') - if not meson.is_subproject() - # Check release metadata - autoship = find_program('autoship', required: false) - if autoship.found() - test('autoship', autoship, args: ['test', lilv_src_root], suite: 'data') - endif - - # Check code with cppcheck - cppcheck = find_program('cppcheck', required: false) - if cppcheck.found() - compdb_path = join_paths(lilv_build_root, 'compile_commands.json') - suppress_path = join_paths(lilv_src_root, '.suppress.cppcheck') - test( - 'cppcheck', - cppcheck, - args: [ - '--enable=warning,style,performance,portability', - '--error-exitcode=1', - '--project=' + compdb_path, - '--suppressions-list=' + suppress_path, - '-DLILV_VERSION="\"@0@\""'.format(meson.project_version()), - '-q', - ], - suite: 'code', - ) - endif - endif - - # Check licensing metadata - reuse = find_program('reuse', required: false) - if reuse.found() - reuse_args = ['--root', lilv_src_root, 'lint'] - test('REUSE', reuse, args: reuse_args, suite: 'data') - endif + subdir('lint') endif diff --git a/test/missing_descriptor.lv2/meson.build b/test/missing_descriptor.lv2/meson.build index 78d749b..92c5145 100644 --- a/test/missing_descriptor.lv2/meson.build +++ b/test/missing_descriptor.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_missing_descriptor.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/missing_name.lv2/meson.build b/test/missing_name.lv2/meson.build index 56a695a..da9759e 100644 --- a/test/missing_name.lv2/meson.build +++ b/test/missing_name.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_missing_name.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/missing_plugin.lv2/meson.build b/test/missing_plugin.lv2/meson.build index 7e6f51f..f28fc9f 100644 --- a/test/missing_plugin.lv2/meson.build +++ b/test/missing_plugin.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_missing_plugin.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/missing_port.lv2/meson.build b/test/missing_port.lv2/meson.build index 8dfc655..3bf892b 100644 --- a/test/missing_port.lv2/meson.build +++ b/test/missing_port.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_missing_port.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', diff --git a/test/missing_port_name.lv2/meson.build b/test/missing_port_name.lv2/meson.build index 734177f..68fe629 100644 --- a/test/missing_port_name.lv2/meson.build +++ b/test/missing_port_name.lv2/meson.build @@ -29,6 +29,7 @@ test( files('test_missing_port_name.c'), c_args: c_suppressions + test_args, dependencies: [lv2_dep, lilv_dep], + implicit_include_directories: false, ), args: [meson.current_build_dir() / ''], suite: 'plugin', |