From 9566df31e8c0297c947d065c07523b191554fe6c Mon Sep 17 00:00:00 2001
From: Vivek Kumar Dutta <vivek.dutta@iopsys.eu>
Date: Thu, 22 Aug 2024 08:59:45 +0530
Subject: [PATCH] Added clang analysis using cppcheck

---
 docker/code-analysis/Dockerfile   |  2 +-
 docker/code-analysis/more_test.sh | 18 ++++++++++++++----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/docker/code-analysis/Dockerfile b/docker/code-analysis/Dockerfile
index fcf0646..3eb95bd 100644
--- a/docker/code-analysis/Dockerfile
+++ b/docker/code-analysis/Dockerfile
@@ -245,7 +245,7 @@ RUN cd /opt/dev && \
 ENV PATH /infer/bin:${PATH}
 
 # Install python ubus module and valgrind-ci
-RUN pip3 install ubus ValgrindCI
+RUN pip3 install ubus ValgrindCI codechecker
 
 WORKDIR /builds/iopsys/
 
diff --git a/docker/code-analysis/more_test.sh b/docker/code-analysis/more_test.sh
index c66692d..4ca71d0 100755
--- a/docker/code-analysis/more_test.sh
+++ b/docker/code-analysis/more_test.sh
@@ -2,7 +2,7 @@
 
 log()
 {
-	echo "# $* ..."
+	echo "# $* #"
 }
 
 exec_cmd()
@@ -33,9 +33,16 @@ generate_compilation_db()
 run_cppcheck_validation()
 {
 	if [ -f "compile_commands.json" ]; then
-		exec_cmd cppcheck --error-exitcode=1 --addon=threadsafety --addon=cert --inline-suppr ${CPPCHECK_OPTIONS} --project=compile_commands.json
+		exec_cmd cppcheck --error-exitcode=1 --addon=threadsafety --addon=cert -i ./test --inline-suppr ${CPPCHECK_OPTIONS} --project=compile_commands.json
 	else
-		exec_cmd cppcheck --error-exitcode=1 --addon=threadsafety --addon=cert --inline-suppr ${CPPCHECK_OPTIONS} ${SOURCE_FOLDER}
+		exec_cmd cppcheck --error-exitcode=1 --addon=threadsafety --addon=cert -i ./test --inline-suppr ${CPPCHECK_OPTIONS} ${SOURCE_FOLDER}
+	fi
+}
+
+run_cppcheck_clang_validation()
+{
+	if [ -f "compile_commands.json" ]; then
+		exec_cmd cppcheck --error-exitcode=1 --clang -i ./test --inline-suppr ${CPPCHECK_OPTIONS} --project=compile_commands.json
 	fi
 }
 
@@ -53,6 +60,7 @@ main()
 
 	# Install pre-req if present/defined
 	if [ -f "./gitlab-ci/install-dependencies.sh" ]; then
+		log "Installing prerequisites for compilation"
 		exec_cmd ./gitlab-ci/install-dependencies.sh
 	fi
 
@@ -60,11 +68,13 @@ main()
 	generate_compilation_db
 
 	# TODO: Run gcc fanalyzer analysis 
-	# TODO: Run clag analysis
 
 	# Run cppcheck with compilation-db
 	run_cppcheck_validation
 
+	# Run clag analysis
+	run_cppcheck_clang_validation
+
 	# Run infer analysis
 	run_infer_analysis
 }
-- 
GitLab