summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2024-06-22 19:03:01 -0400
committerDavid Robillard <d@drobilla.net>2024-06-22 19:03:01 -0400
commit5e9dc9f1400148bcaf77c07f5bc73db39bbaf6a7 (patch)
tree9b9e558f05155b552861bb6998b0e99929f870e0
parentaad5574b4d52f0f02ed1ec3d8f1e12227176a98e (diff)
downloadzix-5e9dc9f1400148bcaf77c07f5bc73db39bbaf6a7.tar.gz
zix-5e9dc9f1400148bcaf77c07f5bc73db39bbaf6a7.tar.bz2
zix-5e9dc9f1400148bcaf77c07f5bc73db39bbaf6a7.zip
Add cppcheck test
-rw-r--r--meson.build1
-rw-r--r--test/meson.build28
2 files changed, 29 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index 0675045..3a99f85 100644
--- a/meson.build
+++ b/meson.build
@@ -16,6 +16,7 @@ project(
)
zix_src_root = meson.current_source_dir()
+zix_build_root = meson.current_build_dir()
major_version = meson.project_version().split('.')[0]
version_suffix = '-@0@'.format(major_version)
versioned_name = 'zix' + version_suffix
diff --git a/test/meson.build b/test/meson.build
index 2ef815e..128bf0b 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -34,6 +34,34 @@ if not meson.is_subproject() and get_option('lint')
suite: 'code',
)
endif
+
+ # Check code with cppcheck
+ if not meson.is_subproject()
+ cppcheck = find_program('cppcheck', required: false)
+ if cppcheck.found()
+ compdb_path = join_paths(zix_build_root, 'compile_commands.json')
+ test(
+ 'cppcheck',
+ cppcheck,
+ args: [
+ '--check-level=exhaustive',
+ '--enable=warning,style,performance,portability',
+ '--error-exitcode=1',
+ '--project=' + compdb_path,
+ '--suppress=assertWithSideEffect',
+ '--suppress=constParameterCallback',
+ '--suppress=constParameterPointer',
+ '--suppress=constVariablePointer',
+ '--suppress=invalidPrintfArgType_uint',
+ '--suppress=knownConditionTrueFalse',
+ '--suppress=selfAssignment',
+ '--suppress=unreadVariable',
+ '-q',
+ ],
+ suite: 'code',
+ )
+ endif
+ endif
endif
# Set warning suppression flags specific to tests