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