aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am6
-rw-r--r--tests/data/cppcheck.supp30
2 files changed, 36 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index eb9ba7e..66193fe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -307,6 +307,12 @@ check-local: $(check_PROGRAMS)
@echo ''
cd perl && ./Build test
+# Used by maintainers to check the source code with cppcheck.
+check-cppcheck:
+ cd $(abs_top_srcdir) && cppcheck -q --error-exitcode=2 \
+ --suppressions-list=tests/data/cppcheck.supp \
+ --enable=warning,performance,portability,style .
+
# Alas, we have to disable this check because there's no way to do an
# uninstall from Perl.
distuninstallcheck:
diff --git a/tests/data/cppcheck.supp b/tests/data/cppcheck.supp
new file mode 100644
index 0000000..5a421df
--- /dev/null
+++ b/tests/data/cppcheck.supp
@@ -0,0 +1,30 @@
+// Suppressions file for cppcheck. -*- conf -*-
+//
+// This includes suppressions for all of my projects, including files that
+// aren't in rra-c-util, for ease of sharing between projects. The ones that
+// don't apply to a particular project should hopefully be harmless.
+//
+// Copyright 2018 Russ Allbery <eagle@eyrie.org>
+//
+// Copying and distribution of this file, with or without modification, are
+// permitted in any medium without royalty provided the copyright notice and
+// this notice are preserved. This file is offered as-is, without any
+// warranty.
+//
+// SPDX-License-Identifier: FSFAP
+
+// I like declaring variables at the top of a function rather than cluttering
+// every if and loop body with declarations.
+variableScope
+
+// False positive due to recursive function.
+knownConditionTrueFalse:portable/getopt.c:146
+
+// False positive since the string comes from a command-line define.
+knownConditionTrueFalse:tests/tap/remctl.c:79
+
+// Setting the variable to NULL explicitly after deallocation.
+redundantAssignment:tests/pam-util/options-t.c
+
+// (remctl) Nested assignments in this test confuse cppcheck.
+redundantAssignment:tests/server/acl-t.c