3
# ***** BEGIN LICENSE BLOCK *****
4
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
6
# The contents of this file are subject to the Mozilla Public License Version
7
# 1.1 (the "License"); you may not use this file except in compliance with
8
# the License. You may obtain a copy of the License at
9
# http://www.mozilla.org/MPL/
11
# Software distributed under the License is distributed on an "AS IS" basis,
12
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
# for the specific language governing rights and limitations under the
16
# The Original Code is the Network Security Services
18
# The Initial Developer of the Original Code is Sun Microsystems, Inc.
19
# Portions created by the Initial Developer are Copyright (C) 2007-2009
20
# Sun Microsystems, Inc. All Rights Reserved.
23
# Slavomir Katuscak <slavomir.katuscak@sun.com>, Sun Microsystems, Inc.
25
# Alternatively, the contents of this file may be used under the terms of
26
# either the GNU General Public License Version 2 or later (the "GPL"), or
27
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28
# in which case the provisions of the GPL or the LGPL are applicable instead
29
# of those above. If you wish to allow use of your version of this file only
30
# under the terms of either the GPL or the LGPL, and not to allow others to
31
# use your version of this file under the terms of the MPL, indicate your
32
# decision by deleting the provisions above and replace them with the notice
33
# and other provisions required by the GPL or the LGPL. If you do not delete
34
# the provisions above, a recipient may use your version of this file under
35
# the terms of any one of the MPL, the GPL or the LGPL.
37
# ***** END LICENSE BLOCK *****
44
if [ $# -lt 1 -o $# -gt 3 ]; then
45
echo "Usage: $0 [securitytip|securityjes5] <date> <architecture>"
51
if [ "${BRANCH}" != "securitytip" -a "${BRANCH}" != "securityjes5" ]; then
52
echo "Usage: $0 [securitytip|securityjes5] <date> <architecture>"
64
HEADER="Code Coverage - NSS - ${BRANCH} - ${OS}/${ARCH} - ${DATE}"
66
COV_DIR="/share/builds/mccrel3/security/coverage"
67
BRANCH_DIR="${COV_DIR}/${BRANCH}"
68
DATE_DIR="${BRANCH_DIR}/${DATE}-${ARCH}"
69
CVS_DIR="${DATE_DIR}/cvs_mozilla"
70
TCOV_DIR="${DATE_DIR}/tcov_mozilla"
71
OUTPUT="${DATE_DIR}/nss.html"
73
LIB_PATH="/mozilla/security/nss/lib"
74
CVS_PATH="${CVS_DIR}${LIB_PATH}"
75
TCOV_PATH="${TCOV_DIR}${LIB_PATH}"
82
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final\">"
83
echo "<HTML><HEAD><TITLE>${HEADER}</TITLE></HEAD><BODY>"
84
echo "<TABLE ALIGN=\"CENTER\" WIDTH=\"100%\">"
85
echo "<TR><TH BGCOLOR=\"GREY\"><H2>${HEADER}</H2></TH></TR>"
96
echo "<TABLE ALIGN=\"CENTER\" WIDTH=\"100%\">"
97
echo "<TR ALIGN=\"CENTER\" BGCOLOR=\"LIGHTGREY\"><TD><A HREF=\"http://wikihome.sfbay.sun.com/jes-security/Wiki.jsp?page=Code_Coverage_Test_Execution\">Test Execution Notes</A></TD></TR>"
103
echo "<TABLE ALIGN=\"CENTER\" WIDTH=\"100%\">"
104
echo "<TR ALIGN=\"CENTER\" BGCOLOR=\"GREY\"><TH>Legend</TH></TR>"
105
echo "<TR ALIGN=\"CENTER\" BGCOLOR=\"LIGHTGREEN\"><TD>${MIN_GREEN}% - 100% of blocks tested</TD></TR>"
106
echo "<TR ALIGN=\"CENTER\" BGCOLOR=\"YELLOW\"><TD>${MIN_YELLOW}% - ${MIN_GREEN}% of blocks tested</TD></TR>"
107
echo "<TR ALIGN=\"CENTER\" BGCOLOR=\"ORANGE\"><TD>0% - ${MIN_YELLOW}% of blocks tested</TD></TR>"
108
echo "<TR ALIGN=\"CENTER\" BGCOLOR=\"RED\"><TD>File not tested (these files are not included into statistics)</TD></TR>"
114
if [ ${PERCENT_INT} -le ${MIN_YELLOW} ]; then
116
elif [ ${PERCENT_INT} -le ${MIN_GREEN} ]; then
125
echo "<TABLE ALIGN=\"CENTER\" WIDTH=\"100%\">"
126
echo "<TR><TH BGCOLOR=\"GREY\" COLSPAN=\"2\">${DIR}</TH></TR>"
127
echo "<TR BGCOLOR=\"DARKGREY\"><TH WIDTH=\"50%\">File</TH>"
128
echo "<TH>Tested blocks (Tested blocks/Total blocks/Total lines)</TR>"
133
if [ "${LASTDIR}" != "" ]; then
134
if [ ${DFILES} -gt 0 ]; then
135
if [ ${DBLOCKS_TOTAL} -eq 0 ]; then
138
PERCENT_INT=`expr ${DBLOCKS_EXEC} \* 100 \/ ${DBLOCKS_TOTAL}`
142
echo "<TR><TH BGCOLOR=\"${bgcolor}\" COLSPAN=\"2\">Total: ${PERCENT_INT}% (${DBLOCKS_EXEC}/${DBLOCKS_TOTAL})</TH></TR>"
144
echo "<TR><TH BGCOLOR=\"RED\" COLSPAN=\"2\">Total: Not tested</TH></TR>"
152
LINES_TOTAL=`wc -l "${file}" | /usr/bin/awk '{print $1}'`
154
if [ -r "${TCOV_PATH}/${DIR}/${FILE}" ]; then
155
BLOCKS_EXEC=`cat "${TCOV_PATH}/${DIR}/${FILE}" | grep "Basic blocks executed" | /usr/bin/awk '{print $1}'`
156
BLOCKS_TOTAL=`cat "${TCOV_PATH}/${DIR}/${FILE}" | grep "Basic blocks in this file" | /usr/bin/awk '{print $1}'`
158
DBLOCKS_EXEC=`expr ${DBLOCKS_EXEC} + ${BLOCKS_EXEC}`
159
DBLOCKS_TOTAL=`expr ${DBLOCKS_TOTAL} + ${BLOCKS_TOTAL}`
160
TBLOCKS_EXEC=`expr ${TBLOCKS_EXEC} + ${BLOCKS_EXEC}`
161
TBLOCKS_TOTAL=`expr ${TBLOCKS_TOTAL} + ${BLOCKS_TOTAL}`
163
TFILES=`expr ${TFILES} + 1`
164
DFILES=`expr ${DFILES} + 1`
166
PERCENT_EXEC=`cat "${TCOV_PATH}/${DIR}/${FILE}" | grep "Percent of the file executed" | /usr/bin/awk '{print $1}'`
167
PERCENT_INT=`echo ${PERCENT_EXEC} | cut -d. -f1`
170
echo "<TR><TD BGCOLOR=\"LIGHTGREY\"><A HREF=\"${TCOV_PATH}/${DIR}/${FILE}\">${FILE}</A></TD>"
171
echo "<TD BGCOLOR=\"${bgcolor}\">${PERCENT_EXEC}% (${BLOCKS_EXEC}/${BLOCKS_TOTAL}/${LINES_TOTAL})</TD></TR>"
173
echo "<TR><TD BGCOLOR=\"LIGHTGREY\"><A HREF=\"${file}\">${FILE}</A></TD>"
174
echo "<TD BGCOLOR=\"RED\">Not tested (0/?/${LINES_TOTAL})</TD></TR>"
180
echo "<TABLE ALIGN=\"CENTER\" WIDTH=\"100%\">"
181
if [ ${TFILES} -gt 0 ]; then
182
if [ ${TBLOCKS_TOTAL} -eq 0 ]; then
185
PERCENT_INT=`expr ${TBLOCKS_EXEC} \* 100 \/ ${TBLOCKS_TOTAL}`
189
echo "<TR><TH BGCOLOR=\"${bgcolor}\"><H2>Total: ${PERCENT_INT}% (${TBLOCKS_EXEC}/${TBLOCKS_TOTAL})</H2></TH></TR>"
191
echo "<TR><TH BGCOLOR=\"RED\"><H2>Total: Not tested</H2></TH></TR>"
203
for dir in `find "${CVS_PATH}" -type d | sort`
205
DIR=`echo "${dir}" | sed "s:^${CVS_PATH}/::"`
206
for file in `ls -1 ${dir}/*.c 2> /dev/null`
208
if [ "${DIR}" != "${LASTDIR}" ]; then
218
FILE=`echo "${file}" | sed "s:^.*/\(.*.c\):\1:"`
229
print_header > "${OUTPUT}"
230
print_notes >> "${OUTPUT}"
231
process_cmd >> "${OUTPUT}"
232
print_legend >> "${OUTPUT}"
233
print_footer >> "${OUTPUT}"