summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/bad_syntax.lv2/meson.build1
-rw-r--r--test/cpp/.clang-tidy4
-rw-r--r--test/cpp/meson.build1
-rw-r--r--test/failed_instantiation.lv2/meson.build1
-rw-r--r--test/failed_lib_descriptor.lv2/meson.build1
-rw-r--r--test/headers/.clang-tidy15
-rw-r--r--test/headers/meson.build32
-rw-r--r--test/headers/test_headers.c13
-rw-r--r--test/lib_descriptor.lv2/meson.build1
-rw-r--r--test/lint/meson.build38
-rw-r--r--test/meson.build42
-rw-r--r--test/missing_descriptor.lv2/meson.build1
-rw-r--r--test/missing_name.lv2/meson.build1
-rw-r--r--test/missing_plugin.lv2/meson.build1
-rw-r--r--test/missing_port.lv2/meson.build1
-rw-r--r--test/missing_port_name.lv2/meson.build1
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',