[PATCH v2 0/6] Test and linter fixups
Before starting to convert testcases to use tunbridge, I wanted to add linting for the Python test scripts. While doing that I discovered a new crop of cppcheck and clang-tidy false positives, and a Makefile bug. Here's a batch of fixes. I didn't manage to get through the whole testsuite with this. I keep getting hangs on rampstream_out, which I *think* are unrelated. v2: * Actually understood why exetool was being deleted, and fixed it properly. David Gibson (6): test: Add linting of Python test scripts clang-tidy: Suppress redundant expression warning cppcheck: Suppress the suppression of a suppression cppcheck: Suppress a buggy cppcheck warning cppcheck: Suppress variable scope warnings in dhcpv6() test: Don't delete exetool on make clean dhcpv6.c | 8 ++++++++ linux_dep.h | 2 +- tcp.c | 5 +++++ test/Makefile | 19 +++++++++++++++---- test/build/build.py | 5 +++-- test/build/static_checkers.sh | 6 +++++- vhost_user.c | 1 + 7 files changed, 38 insertions(+), 8 deletions(-) -- 2.51.0
clang-tidy 20.1.8 doesn't like (VHOST_USER_MAX_VQS / 2), because it expands
to (2 / 2). But in the context of the #define, this makes logical sense,
so suppress the warning.
I'm not sure why it isn't firing on the debug() line just below. Possibly
it only complains once per expression per function, so we only have to
suppress it once?
Signed-off-by: David Gibson
Another cppcheck package in Fedora, another bogus false positive. This
one seems to not realise that a variable has been initialised by
getsockopt() under a complicated set of circumstances.
Signed-off-by: David Gibson
At least some cppcheck versions (2.18.3 for me) complain that the _storage
variables in dhcpv6() could be reduced in scope. That's not actually the
case, because although we don't reference the variables, we may touch
their memory via pointers after the blocks in question. There's no
reasonable way for cppcheck to determine that, though, so suppress its
warnings.
Signed-off-by: David Gibson
exetool is listed in $(LOCAL_ASSETS), which seems like it makes sense,
until you realise that $(LOCAL_ASSETS) are deleted on make clean, and we
can't rebuild exetool after deleting it (since it's just part of the
exeter tree we download). Move it to $(DOWNLOAD_ASSETS) instead.
Signed-off-by: David Gibson
participants (1)
-
David Gibson