Improve reliability of kernel jobs
[lttng-ci.git] / scripts / liburcu / scan-build.sh
CommitLineData
e3022ad9
MJ
1#!/bin/sh
2#
3# Copyright (C) 2015 - Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
4#
5# This program is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18
19# do not exit immediately if any command fails
20set +e
21
22# temp directory to store the scan-build report
23SCAN_BUILD_TMPDIR=$( mktemp -d /tmp/scan-build.XXXXXX )
24
25# directory to use for archiving the scan-build report
26SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive"
27
28# Create build directory
29rm -rf $WORKSPACE/build
30mkdir -p $WORKSPACE/build
31
32export CFLAGS="-O0 -g -DDEBUG"
33PREFIX="$WORKSPACE/build"
34
35./bootstrap
36./configure --prefix=$PREFIX
37make clean
38# generate the scan-build report
39scan-build -k -o ${SCAN_BUILD_TMPDIR} make
40
41# get the directory name of the report created by scan-build
42SCAN_BUILD_REPORT=$( find ${SCAN_BUILD_TMPDIR} -maxdepth 1 -not -empty -not -name `basename ${SCAN_BUILD_TMPDIR}` )
43rc=$?
44
45if [ -z "${SCAN_BUILD_REPORT}" ]; then
46 echo ">>> No new bugs identified."
47 echo ">>> No scan-build report has been generated"
48else
49 echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}"
50
51 if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then
52 echo ">>> Creating scan-build archive directory"
53 install -d -o jenkins -g jenkins -m 0755 "${SCAN_BUILD_ARCHIVE}"
54 else
55 echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}"
56 rm -f ${SCAN_BUILD_ARCHIVE}/*
57 fi
58
59 echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}"
60 mv ${SCAN_BUILD_REPORT}/* ${SCAN_BUILD_ARCHIVE}/
61
62 echo ">>> Removing any temporary files and directories"
63 rm -rf "${SCAN_BUILD_TMPDIR}"
64fi
65
66exit ${rc}
This page took 0.028852 seconds and 4 git commands to generate.