aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.clang-tidy3
-rw-r--r--examples/.clang-tidy7
-rw-r--r--test/.clang-tidy2
-rw-r--r--test/cpp/.clang-tidy38
-rw-r--r--test/cpp/meson.build106
-rw-r--r--test/cpp/test_build.cpp (renamed from test/test_build.cpp)0
-rw-r--r--test/cpp/test_inline_cpp.cpp (renamed from test/test_inline_cpp.cpp)0
-rw-r--r--test/cpp/test_inline_objcpp.mm (renamed from test/test_inline_objcpp.mm)0
-rw-r--r--test/meson.build108
-rw-r--r--test/test_utils.h5
10 files changed, 158 insertions, 111 deletions
diff --git a/.clang-tidy b/.clang-tidy
index 9af40ce..fb84f01 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 David Robillard <d@drobilla.net>
+# Copyright 2020-2025 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR ISC
Checks: >
@@ -13,6 +13,7 @@ Checks: >
-misc-include-cleaner,
-readability-avoid-nested-conditional-operator,
-readability-identifier-length,
+ -readability-implicit-bool-conversion,
CheckOptions:
- key: hicpp-uppercase-literal-suffix.NewSuffixes
value: L;U;f
diff --git a/examples/.clang-tidy b/examples/.clang-tidy
index cba7eda..c9cacb3 100644
--- a/examples/.clang-tidy
+++ b/examples/.clang-tidy
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 David Robillard <d@drobilla.net>
+# Copyright 2020-2025 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR ISC
Checks: >
@@ -12,6 +12,7 @@ Checks: >
-bugprone-reserved-identifier,
-bugprone-suspicious-string-compare,
-cert-dcl37-c,
+ -cert-dcl50-cpp,
-cert-dcl51-cpp,
-cert-err33-c,
-cert-err34-c,
@@ -27,6 +28,7 @@ Checks: >
-fuchsia-default-arguments,
-fuchsia-default-arguments-calls,
-fuchsia-overloaded-operator,
+ -google-readability-casting,
-google-runtime-references,
-hicpp-multiway-paths-covered,
-hicpp-no-array-decay,
@@ -34,7 +36,10 @@ Checks: >
-hicpp-vararg,
-llvm-header-guard,
-misc-misplaced-const,
+ -modernize-redundant-void-arg,
-modernize-use-trailing-return-type,
+ -modernize-use-using,
+ -performance-enum-size,
-performance-enum-size,
-performance-no-int-to-ptr,
-readability-function-cognitive-complexity,
diff --git a/test/.clang-tidy b/test/.clang-tidy
index c88c7b3..456eb2e 100644
--- a/test/.clang-tidy
+++ b/test/.clang-tidy
@@ -7,10 +7,8 @@ Checks: >
-cert-err33-c,
-cert-err34-c,
-clang-analyzer-optin.core.EnumCastOutOfRange,
- -google-runtime-references,
-hicpp-multiway-paths-covered,
-hicpp-signed-bitwise,
-llvm-header-guard,
- -modernize-use-trailing-return-type,
-readability-function-cognitive-complexity,
InheritParentConfig: true
diff --git a/test/cpp/.clang-tidy b/test/cpp/.clang-tidy
new file mode 100644
index 0000000..1d936a2
--- /dev/null
+++ b/test/cpp/.clang-tidy
@@ -0,0 +1,38 @@
+# Copyright 2020-2025 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+Checks: >
+ -*-use-auto,
+ -*-use-nullptr,
+ -bugprone-easily-swappable-parameters,
+ -cert-dcl50-cpp,
+ -cppcoreguidelines-avoid-c-arrays,
+ -cppcoreguidelines-avoid-do-while,
+ -cppcoreguidelines-macro-usage,
+ -cppcoreguidelines-no-malloc,
+ -cppcoreguidelines-owning-memory,
+ -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
+ -cppcoreguidelines-pro-bounds-constant-array-index,
+ -cppcoreguidelines-pro-bounds-pointer-arithmetic,
+ -cppcoreguidelines-pro-type-cstyle-cast,
+ -cppcoreguidelines-pro-type-member-init,
+ -cppcoreguidelines-pro-type-union-access,
+ -cppcoreguidelines-pro-type-vararg,
+ -google-readability-casting,
+ -google-runtime-int,
+ -hicpp-avoid-c-arrays,
+ -hicpp-member-init,
+ -hicpp-named-parameter,
+ -hicpp-no-array-decay,
+ -hicpp-no-malloc,
+ -hicpp-vararg,
+ -misc-use-anonymous-namespace,
+ -modernize-avoid-c-arrays,
+ -modernize-loop-convert,
+ -modernize-loop-convert,
+ -modernize-redundant-void-arg,
+ -modernize-use-trailing-return-type,
+ -modernize-use-using,
+ -performance-enum-size,
+ -readability-named-parameter,
+InheritParentConfig: true
diff --git a/test/cpp/meson.build b/test/cpp/meson.build
new file mode 100644
index 0000000..73e2320
--- /dev/null
+++ b/test/cpp/meson.build
@@ -0,0 +1,106 @@
+# Copyright 2021-2025 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+test_cpp_args = []
+if get_option('warning_level') == 'everything' and is_variable('cpp')
+ if cpp.get_id() == 'clang'
+ test_cpp_args += [
+ '-Wno-documentation', # Cairo
+ '-Wno-documentation-unknown-command', # Cairo
+ '-Wno-old-style-cast',
+ ]
+ endif
+
+ test_cpp_args = cpp.get_supported_arguments(test_cpp_args)
+endif
+
+unified_args = core_args
+unified_deps = [core_deps]
+if cairo_dep.found()
+ unified_args += ['-DWITH_CAIRO']
+ unified_deps += [cairo_dep]
+endif
+
+if opengl_dep.found()
+ unified_args += ['-DWITH_OPENGL']
+ unified_deps += [opengl_dep]
+endif
+
+if vulkan_dep.found()
+ unified_args += ['-DWITH_VULKAN']
+ unified_deps += [vulkan_deps]
+endif
+
+if host_machine.system() == 'darwin'
+ add_languages(['objcpp'], native: false)
+
+ objcpp = meson.get_compiler('objcpp')
+
+ objcpp_unified_args = unified_args
+ if objcpp.get_id() == 'clang'
+ objcpp_unified_args += [
+ '-Wno-c++98-compat',
+ '-Wno-c++98-compat-pedantic',
+ '-Wno-deprecated-declarations',
+ '-Wno-direct-ivar-access',
+ ]
+ endif
+
+ objcpp_unified_args = objcpp.get_supported_arguments(objcpp_unified_args)
+
+ test(
+ 'inline_objcpp',
+ executable(
+ 'test_inline_objcpp',
+ 'test_inline_objcpp.mm',
+ dependencies: unified_deps,
+ include_directories: include_directories('../../include'),
+ objcpp_args: objcpp_unified_args,
+ ),
+ suite: 'unit',
+ )
+
+elif is_variable('cpp')
+ cpp_unified_args = unified_args
+ if cpp.get_id() == 'clang'
+ cpp_unified_args += [
+ '-Wno-old-style-cast',
+ '-Wno-switch-default',
+ '-Wno-switch-enum',
+ '-Wno-unused-macros', # Mac
+ ]
+ if host_machine.system() == 'windows'
+ cpp_unified_args += [
+ '-Wno-cast-function-type',
+ '-Wno-deprecated-declarations',
+ '-Wno-nonportable-system-include-path',
+ ]
+ endif
+ elif cpp.get_id() == 'gcc'
+ cpp_unified_args += [
+ '-Wno-conditionally-supported',
+ '-Wno-old-style-cast',
+ '-Wno-switch-default',
+ '-Wno-switch-enum',
+ '-Wno-useless-cast',
+ ]
+ elif cpp.get_id() == 'msvc'
+ cpp_unified_args += [
+ '/wd4464', # relative include path contains '..'
+ ]
+ endif
+
+ cpp_unified_args = cpp.get_supported_arguments(cpp_unified_args)
+
+ test(
+ 'inline_cpp',
+ executable(
+ 'test_inline_cpp',
+ 'test_inline_cpp.cpp',
+ cpp_args: cpp_unified_args,
+ dependencies: unified_deps,
+ include_directories: include_directories('../../include'),
+ ),
+ suite: 'unit',
+ )
+endif
diff --git a/test/test_build.cpp b/test/cpp/test_build.cpp
index 4fd2dac..4fd2dac 100644
--- a/test/test_build.cpp
+++ b/test/cpp/test_build.cpp
diff --git a/test/test_inline_cpp.cpp b/test/cpp/test_inline_cpp.cpp
index f5694eb..f5694eb 100644
--- a/test/test_inline_cpp.cpp
+++ b/test/cpp/test_inline_cpp.cpp
diff --git a/test/test_inline_objcpp.mm b/test/cpp/test_inline_objcpp.mm
index 1c9079b..1c9079b 100644
--- a/test/test_inline_objcpp.mm
+++ b/test/cpp/test_inline_objcpp.mm
diff --git a/test/meson.build b/test/meson.build
index c47d3ee..d34763f 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -17,20 +17,6 @@ if get_option('warning_level') == 'everything'
test_c_args = cc.get_supported_arguments(test_c_args)
endif
-# Suppress some additional C++ warnings in tests
-test_cpp_args = []
-if get_option('warning_level') == 'everything' and is_variable('cpp')
- if cpp.get_id() == 'clang'
- test_cpp_args += [
- '-Wno-documentation', # Cairo
- '-Wno-documentation-unknown-command', # Cairo
- '-Wno-old-style-cast',
- ]
- endif
-
- test_cpp_args = cpp.get_supported_arguments(test_cpp_args)
-endif
-
# Check licensing metadata
if not meson.is_subproject() and get_option('lint')
reuse = find_program('reuse', required: false)
@@ -144,7 +130,6 @@ if vulkan_dep.found()
'test_' + test,
'test_@0@.c'.format(test),
c_args: test_c_args,
- cpp_args: test_cpp_args,
dependencies: [pugl_dep, pugl_vulkan_dep],
include_directories: include_directories(includes),
),
@@ -153,93 +138,8 @@ if vulkan_dep.found()
endforeach
endif
-unified_args = core_args
-unified_deps = [core_deps]
-if cairo_dep.found()
- unified_args += ['-DWITH_CAIRO']
- unified_deps += [cairo_dep]
-endif
-
-if opengl_dep.found()
- unified_args += ['-DWITH_OPENGL']
- unified_deps += [opengl_dep]
-endif
-
-if vulkan_dep.found()
- unified_args += ['-DWITH_VULKAN']
- unified_deps += [vulkan_deps]
-endif
-
-if host_machine.system() == 'darwin'
- add_languages(['objcpp'], native: false)
-
- objcpp = meson.get_compiler('objcpp')
+#######################
+# C++ / Objective C++ #
+#######################
- objcpp_unified_args = unified_args
- if objcpp.get_id() == 'clang'
- objcpp_unified_args += [
- '-Wno-c++98-compat',
- '-Wno-c++98-compat-pedantic',
- '-Wno-deprecated-declarations',
- '-Wno-direct-ivar-access',
- ]
- endif
-
- objcpp_unified_args = objcpp.get_supported_arguments(objcpp_unified_args)
-
- test(
- 'inline_objcpp',
- executable(
- 'test_inline_objcpp',
- 'test_inline_objcpp.mm',
- dependencies: unified_deps,
- include_directories: include_directories(includes),
- objcpp_args: objcpp_unified_args,
- ),
- suite: 'unit',
- )
-
-elif is_variable('cpp')
- cpp_unified_args = unified_args
- if cpp.get_id() == 'clang'
- cpp_unified_args += [
- '-Wno-old-style-cast',
- '-Wno-switch-default',
- '-Wno-switch-enum',
- '-Wno-unused-macros', # Mac
- ]
- if host_machine.system() == 'windows'
- cpp_unified_args += [
- '-Wno-cast-function-type',
- '-Wno-deprecated-declarations',
- '-Wno-nonportable-system-include-path',
- ]
- endif
- elif cpp.get_id() == 'gcc'
- cpp_unified_args += [
- '-Wno-conditionally-supported',
- '-Wno-old-style-cast',
- '-Wno-switch-default',
- '-Wno-switch-enum',
- '-Wno-useless-cast',
- ]
- elif cpp.get_id() == 'msvc'
- cpp_unified_args += [
- '/wd4464', # relative include path contains '..'
- ]
- endif
-
- cpp_unified_args = cpp.get_supported_arguments(cpp_unified_args)
-
- test(
- 'inline_cpp',
- executable(
- 'test_inline_cpp',
- 'test_inline_cpp.cpp',
- cpp_args: cpp_unified_args,
- dependencies: unified_deps,
- include_directories: include_directories(includes),
- ),
- suite: 'unit',
- )
-endif
+subdir('cpp')
diff --git a/test/test_utils.h b/test/test_utils.h
index 214b360..4ebd985 100644
--- a/test/test_utils.h
+++ b/test/test_utils.h
@@ -471,11 +471,10 @@ static inline void
printViewHints(const PuglView* view)
{
for (unsigned i = 0; i < PUGL_NUM_VIEW_HINTS; ++i) {
- const PuglViewHint hint = (PuglViewHint)i;
fprintf(stderr,
"%s: %d\n",
- puglViewHintString(hint),
- puglGetViewHint(view, hint));
+ puglViewHintString((PuglViewHint)i),
+ puglGetViewHint(view, (PuglViewHint)i));
}
}