blob: 555ed337f43d611d8b3a9b74999d4ab637d19255 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
#! /bin/sh
#
# This script automates running Coverity on newlib targeting RTEMS
# tools and submitting the results.
#
# + https://scan.coverity.com/
#
# You have to have an account to view the results
#
#
# TODO:
# + parse arguments for some of the hard-coded items.
# + better instructions on setup. Where to download, etc.
#
RTEMS_BIN=/home/joel/rtems-work/tools/4.12/bin
COVERITY=${HOME}/coverity/cov-analysis-linux64-8.7.0/
#
# Checks the status returned by executables and exits if it is non-zero.
#
check_fatal()
{
if [ $1 -ne 0 ] ; then
shift
echo "ERROR: $*" >&2
exit 1
fi
}
type gcc
check_fatal $? "gcc not in path"
test -d ${COVERITY}
check_fatal $? "Coverity path not right"
test -d ${COVERITY}/bin
check_fatal $? "${COVERITY}/bin does not exist"
test -d tools
check_fatal $? "Are you in the rtems-tools directory?"
test -d tester
check_fatal $? "Are you in the rtems-tools directory?"
# Prepend Coverity to our PATH
export PATH=${COVERITY}/bin:$PATH
# # Configure Coverity for this target compiler
rm -rf ${COVERITY}/config/coverity_config.xml
rm -rf ${COVERITY}/config/gcc-config-? ${COVERITY}/config/g++-config-?
cov-configure --gcc
check_fatal $? "could not coverity configure gcc"
# cov-configure --comptype gcc --compiler ${RTEMS_TARGET}-gcc --template
# check_fatal $? "could not coverity configure gcc"
./waf distclean
check_fatal $? "waf distclean failed"
# Configure
./waf configure >c.log 2>&1
check_fatal $? "waf configure failed" >c.log 2>&1
check_fatal $? "could not configure rtems-tools"
# Build newlib
cov-build --dir cov-int ./waf >b.log 2>&1
check_fatal $? "could not make rtems-tools"
# Did we have problems loading the Coverity dynamic library?
grep -i "ERROR: ld.so:.*" b.log >/dev/null
if [ $? -ne 1 ] ; then
check_fatal 1 "Looks like you have dynamic library issues with Coverity."
fi
# Did Coverity report that it had no results?
grep -i "No files were emitted" cov-int/build-log.txt >/dev/null
if [ $? -ne 1 ] ; then
check_fatal 1 "No output from Coverity. Something went wrong."
fi
# Now create the tar file that Coverity wants
tar czvf rtems-tools-coverity.tar.gz cov-int
check_fatal $? "could not make rtems-tools-coverity"
curl --form token=zhfOCWF5jpcB-sGffpvKaQ \
--form email=joel.sherrill@gmail.com \
--form file=@rtems-tools-coverity.tar.gz \
--form version="Master" \
--form description="Master (${RTEMS_TARGET})" \
https://scan.coverity.com/builds?project=RTEMS-Tools
# Ran completed OK
exit 0
|