From: Claudius Heine <
c...@denx.de>
This commit adds cppcheck as a travis target. Raised issues are
suppressed and should be fixed in further commits.
.travis-build.sh | 43 +++++++++++++++++++++++++++++++++++++++++++
.travis.yml | 1 +
2 files changed, 44 insertions(+)
diff --git a/.travis-build.sh b/.travis-build.sh
index 56786ab..c1d16cd 100755
--- a/.travis-build.sh
+++ b/.travis-build.sh
@@ -10,6 +10,21 @@ prepare_build()
mkdir build
cd build
}
+
+install_cppcheck()
+{
+ git clone
https://github.com/danmar/cppcheck.git
+ cd cppcheck
+ git checkout 1.80
+ make SRCDIR=build CFGDIR=/usr/share/cppcheck HAVE_RULES=no -j2
+ sudo make install
+ # On travis cppcheck ignores CFGDIR. Instead, it looks in $PWD. Compare
+ # strace output.
+ sudo install -m644 ./cfg/* ../
+ cd ..
+ rm -rf cppcheck
+}
+
case "$TARGET" in
native)
prepare_build
@@ -24,6 +39,34 @@ case "$TARGET" in
host_alias=i586-linux
exec make check
;;
+ cppcheck)
+ install_cppcheck
+ sup_error=""
+ sup_warn="--suppress=invalidScanfArgType_int:tools/ebgpart.c"
+ sup_info=""
+ sup_perf="--suppress=invalidscanf:tools/ebgpart.c"
+ sup_style="\
+ --suppress=unusedFunction:tools/bg_utils.c \
+ --suppress=unusedFunction:utils \
+ --suppress=unusedFunction:swupdate-adapter/ebgenv.c \
+ --suppress=unusedFunction:main.c \
+ --suppress=unusedFunction:tools/tests/test_environment.c \
+ --suppress=unusedFunction:env/fatvars.c"
+ suppress="$sup_error $sup_warn $sup_info $sup_perf $sup_style"
+ enable="--enable=all --check-config"
+ includes="-I include \
+ -I tools \
+ -I swupdate-adapter \
+ -I /usr/include \
+ -I /usr/include/linux \
+ -I /usr/include/efi \
+ -I /usr/include/efi/x86_64 \
+ -I /usr/include/x86_64-linux-gnu"
+ # Exit code '1' is returned if arguments are not valid or if no input
+ # files are provided. Compare 'cppcheck --help'.
+ exec cppcheck -f -q --error-exitcode=2 --std=posix \
+ $enable $suppress $includes .
+ ;;
*)
exit -1
;;
diff --git a/.travis.yml b/.travis.yml
index dae0337..4fa4045 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,7 @@ env:
matrix:
- TARGET=native
- TARGET=i586
+ - TARGET=cppcheck
language: c
compiler:
--
2.14.1