mirror of https://codeberg.org/nsxiv/nsxiv
CI: misc cleanups + faster analysis (#449)
* switch to git ls-files to avoid picking up any other local .c files * enable assertions during static analysis since we used some assertions to disable/silence certain warnings. * update TCC commit hash to a more recent one * parallelize static analysis cppcheck already has -j argument to parallelize it's analysis and provide results faster, clang-tidy unfortunately doesn't. so use xargs -P to archive parallel execution. on my system this brings down the analysis time from ~27s to ~5s.pull/453/head
parent
c03ec39437
commit
28018e92d3
@ -1,21 +1,24 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
std="c99"
|
||||
NProc=$(( $(nproc) / 4 ))
|
||||
if [ -z "$NProc" ] || [ "$NProc" -lt 1 ]; then NProc="1"; fi
|
||||
|
||||
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) \
|
||||
--max-ctu-depth=8 -j"$NProc" \
|
||||
$(make OPT_DEP_DEFAULT="$1" dump_cppflags) -DDEBUG \
|
||||
--suppress=varFuncNullUB --suppress=uninitvar \
|
||||
*.c
|
||||
$(git ls-files *.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)
|
||||
git ls-files *.c | xargs -P"$NProc" -I{} clang-tidy --quiet \
|
||||
--warnings-as-errors="*" --checks="$checks" {} \
|
||||
-- -std="$std" $(make OPT_DEP_DEFAULT="$1" dump_cppflags) -DDEBUG
|
||||
}
|
||||
|
||||
run_cppcheck "0"; run_cppcheck "1";
|
||||
run_tidy "0"; run_tidy "1";
|
||||
run_cppcheck "0" & run_cppcheck "1" & run_tidy "0" & run_tidy "1";
|
||||
wait
|
||||
|
Loading…
Reference in New Issue