From 9cb9a54944e8ad9a42b3113286cb51bceae4b2d0 Mon Sep 17 00:00:00 2001 From: NRK Date: Fri, 2 Dec 2022 10:50:15 +0000 Subject: [PATCH] [ci]: make it easy to run analysis locally (#395) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit allows for developers to more easily run the analysis locally before opening a pull request if they wish. also disables a noisy warning (bugprone-assignment-in-if-condition) producing too many false positives. Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/395 Reviewed-by: Berke Kocaoğlu Co-authored-by: NRK Co-committed-by: NRK --- etc/woodpecker/analysis.sh | 21 +++++++++++++++++++++ etc/woodpecker/analysis.yml | 19 +------------------ etc/woodpecker/clang-tidy-checks | 1 + 3 files changed, 23 insertions(+), 18 deletions(-) create mode 100755 etc/woodpecker/analysis.sh diff --git a/etc/woodpecker/analysis.sh b/etc/woodpecker/analysis.sh new file mode 100755 index 0000000..330d140 --- /dev/null +++ b/etc/woodpecker/analysis.sh @@ -0,0 +1,21 @@ +#!/bin/sh -e + +std="c99" + +run_cppcheck() { + cppcheck --std="$std" --enable=performance,portability \ + --force --quiet --inline-suppr --error-exitcode=1 \ + --max-ctu-depth=8 -j"$(nproc)" \ + $(make OPT_DEP_DEFAULT="$1" dump_cppflags) \ + --suppress=varFuncNullUB --suppress=uninitvar \ + *.c +} + +run_tidy() { + checks="$(sed '/^#/d' etc/woodpecker/clang-tidy-checks | paste -d ',' -s)" + clang-tidy --warnings-as-errors="*" --checks="$checks" --quiet *.c \ + -- -std="$std" $(make OPT_DEP_DEFAULT="$1" dump_cppflags) +} + +run_cppcheck "0"; run_cppcheck "1"; +run_tidy "0"; run_tidy "1"; diff --git a/etc/woodpecker/analysis.yml b/etc/woodpecker/analysis.yml index 35cef7f..65da7aa 100644 --- a/etc/woodpecker/analysis.yml +++ b/etc/woodpecker/analysis.yml @@ -8,21 +8,4 @@ pipeline: imlib2-dev xorgproto \ libxft-dev libexif-dev giflib-dev libwebp-dev >/dev/null make config.h version.h - std="c99" - run_cppcheck() { - cppcheck --std="$std" --enable=performance,portability \ - --force --quiet --inline-suppr --error-exitcode=1 \ - --max-ctu-depth=8 -j"$(nproc)" \ - $(make OPT_DEP_DEFAULT="$1" dump_cppflags) \ - --suppress=varFuncNullUB --suppress=uninitvar \ - *.c - } - run_tidy() { - checks="$(sed '/^#/d' etc/woodpecker/clang-tidy-checks | paste -d ',' -s)" - clang-tidy --warnings-as-errors="*" --checks="$checks" --quiet *.c \ - -- -std="$std" $(make OPT_DEP_DEFAULT="$1" dump_cppflags) - } - run_cppcheck "0" - run_cppcheck "1" - run_tidy "0" - run_tidy "1" + ./etc/woodpecker/analysis.sh diff --git a/etc/woodpecker/clang-tidy-checks b/etc/woodpecker/clang-tidy-checks index 9c016d2..c243f30 100644 --- a/etc/woodpecker/clang-tidy-checks +++ b/etc/woodpecker/clang-tidy-checks @@ -8,6 +8,7 @@ misc-*,android-cloexec-*,cert-*,llvm-include-order -bugprone-easily-swappable-parameters,-bugprone-narrowing-conversions,-bugprone-incorrect-roundings -bugprone-implicit-widening-of-multiplication-result,-bugprone-integer-division -android-cloexec-fopen,-android-cloexec-pipe,-cert-err33-c +-bugprone-assignment-in-if-condition # false positive warnings -clang-analyzer-valist.Uninitialized