aboutsummaryrefslogtreecommitdiff
path: root/cmake/scripts/linux/cppcheck-test.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/scripts/linux/cppcheck-test.sh.in')
-rwxr-xr-xcmake/scripts/linux/cppcheck-test.sh.in28
1 files changed, 28 insertions, 0 deletions
diff --git a/cmake/scripts/linux/cppcheck-test.sh.in b/cmake/scripts/linux/cppcheck-test.sh.in
new file mode 100755
index 0000000000..08cb672636
--- /dev/null
+++ b/cmake/scripts/linux/cppcheck-test.sh.in
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# This script performs a single analysis using cppcheck
+# It is used by the 'make test' target in the buildsystems
+# Usually you should use 'ctest -C cppcheck' rather than calling this script directly
+#
+# Parameters: $1 = Application binary
+# $2 = Source file to process
+# $3..$N = include path parameters (-I dir1 -I dir2 ...)
+
+cppcheck_cmd=$1
+source_file=$2
+shift 2
+
+tmpfil=`mktemp`
+$cppcheck_cmd $@ --force --enable=all --suppress=unusedFunction $source_file &> $tmpfil
+nmatch=`cat $tmpfil | grep "\[.*\]" | wc -l`
+nnone=`cat $tmpfil | grep "\[\\*]" | wc -l`
+let "nval=$nmatch-$nnone"
+if test $nval -gt 0
+then
+ cat $tmpfil
+ rm $tmpfil
+ exit 1
+fi
+
+rm $tmpfil
+exit 0