public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: passt-dev@passt.top, Stefano Brivio <sbrivio@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH v3 12/12] pesto: Run static checkers on pesto sources
Date: Tue, 12 May 2026 15:52:56 +1000	[thread overview]
Message-ID: <20260512055256.1800449-13-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20260512055256.1800449-1-david@gibson.dropbear.id.au>

Update the Makefile to run both clang-tidy and cppcheck on pesto as well
as on passt and passt-repair.  This requires a couple of secondary
corrections:
  * pesto.c had an inline suppression that is no longer correct now that
    the protocol version has been bumped to 1.  Remove it.
  * We were globally suppressing the unusedStructMember because it
    hit many false positives on both passt and passt-repair.  It doesn't
    in pesto, meaning it instead creates an unusedSuppression warning.
    Apply the suppression as a flag override for passt and passt-repair,
    instead of globally.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 Makefile | 19 ++++++++++++++++---
 pesto.c  |  1 -
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 5027d587..7939bd79 100644
--- a/Makefile
+++ b/Makefile
@@ -193,7 +193,7 @@ docs: README.md
 CLANG_TIDY = clang-tidy
 CLANG_TIDY_FLAGS = -DCLANG_TIDY_58992
 
-clang-tidy: passt.clang-tidy passt-repair.clang-tidy
+clang-tidy: passt.clang-tidy passt-repair.clang-tidy pesto.clang-tidy
 
 .PHONY: %.clang-tidy
 %.clang-tidy:
@@ -201,6 +201,7 @@ clang-tidy: passt.clang-tidy passt-repair.clang-tidy
 
 passt.clang-tidy: $(PASST_SRCS) $(PASST_HEADERS) seccomp.h
 passt-repair.clang-tidy: $(PASST_REPAIR_SRCS) $(PASST_REPAIR_HEADERS) seccomp_repair.h
+pesto.clang-tidy: $(PESTO_SRCS) $(PESTO_HEADERS) seccomp_pesto.h
 
 CPPCHECK = cppcheck
 CPPCHECK_FLAGS = --std=c11 --error-exitcode=1 --enable=all --force	\
@@ -212,14 +213,26 @@ CPPCHECK_FLAGS = --std=c11 --error-exitcode=1 --enable=all --force	\
 		echo "";						\
 	fi)								\
 	--suppress=missingIncludeSystem					\
-	--suppress=unusedStructMember					\
 	 -D CPPCHECK_6936
 
-cppcheck: passt.cppcheck passt-repair.cppcheck
+cppcheck: passt.cppcheck passt-repair.cppcheck pesto.cppcheck
 
 .PHONY: %.cppcheck
 %.cppcheck:
 	$(CPPCHECK) $(CPPCHECK_FLAGS) $(BASE_CPPFLAGS) $^
 
+passt.cppcheck: BASE_CPPFLAGS += -UPESTO
+passt.cppcheck: CPPCHECK_FLAGS += --suppress=unusedStructMember
 passt.cppcheck: $(PASST_SRCS) $(PASST_HEADERS) seccomp.h
+
+passt-repair.cppcheck: CPPCHECK_FLAGS += --suppress=unusedStructMember
 passt-repair.cppcheck: $(PASST_REPAIR_SRCS) $(PASST_REPAIR_HEADERS) seccomp_repair.h
+
+pesto.cppcheck: BASE_CPPFLAGS += -DPESTO
+pesto.cppcheck: CPPCHECK_FLAGS += --suppress=unusedFunction:bitmap.c
+pesto.cppcheck: CPPCHECK_FLAGS += --suppress=unusedFunction:inany.h
+pesto.cppcheck: CPPCHECK_FLAGS += --suppress=unusedFunction:inany.c
+pesto.cppcheck: CPPCHECK_FLAGS += --suppress=unusedFunction:ip.h
+pesto.cppcheck: CPPCHECK_FLAGS += --suppress=unusedFunction:serialise.c
+pesto.cppcheck: CPPCHECK_FLAGS += --suppress=staticFunction:fwd_rule.c
+pesto.cppcheck: $(PESTO_SRCS) $(PESTO_HEADERS) seccomp_pesto.h
diff --git a/pesto.c b/pesto.c
index f4d752bb..eeaf274d 100644
--- a/pesto.c
+++ b/pesto.c
@@ -410,7 +410,6 @@ int main(int argc, char **argv)
 		    s_version, PESTO_PROTOCOL_VERSION);
 	}
 
-	/* cppcheck-suppress knownConditionTrueFalse */
 	if (!s_version) {
 		if (PESTO_PROTOCOL_VERSION)
 			die("Unsupported experimental server protocol");
-- 
2.54.0


      parent reply	other threads:[~2026-05-12  5:53 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-12  5:52 [PATCH v3 00/12] Improvements to static checker invocation David Gibson
2026-05-12  5:52 ` [PATCH v3 01/12] Makefile: Use make variables for static checker configuration David Gibson
2026-05-12  5:52 ` [PATCH v3 02/12] Makefile: Make conditional definition of $(BIN) clearer David Gibson
2026-05-12  5:52 ` [PATCH v3 03/12] Makefile: Use common binary compilation rule David Gibson
2026-05-12  5:52 ` [PATCH v3 04/12] Makefile: Remove unhelpful $(HEADERS) variable David Gibson
2026-05-12  5:52 ` [PATCH v3 05/12] Makefile: Add header dependencies for secondary binaries David Gibson
2026-05-12  5:52 ` [PATCH v3 06/12] Makefile: Split $(FLAGS) into cpp and cc components David Gibson
2026-05-12  5:52 ` [PATCH v3 07/12] cppcheck, clang-tidy: Static checkers don't need non-preprocessor flags David Gibson
2026-05-12  5:52 ` [PATCH v3 08/12] Makefile: Split static checker targets David Gibson
2026-05-12  5:52 ` [PATCH v3 09/12] passt-repair: Split out inotify handling to its own function David Gibson
2026-05-12  5:52 ` [PATCH v3 10/12] passt-repair: Simplify construction of Unix path from inotify David Gibson
2026-05-12  5:52 ` [PATCH v3 11/12] passt-repair: Run static checkers David Gibson
2026-05-12  5:52 ` David Gibson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260512055256.1800449-13-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    --cc=sbrivio@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).