summaryrefslogtreecommitdiff
path: root/build/run-gcov.sh
blob: 98f911fc89a0cdade02cbceb2ee8330114f9b03c (plain)
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh

if [ ! -d coverage ]; then
    mkdir coverage
fi
cd coverage

# It would be really nice to find a better way to do this than copying the 
# HTML into this script.  But, I am being lazy right now.
cat > index.html << EOF
<!-- This is a generated file, do not edit -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <meta name="author" content="APR Developers" /><meta name="email" content="dev@apr.apache.org" />
    <title>Test Coverage</title>
  </head>
  <body bgcolor="#ffffff" text="#000000" link="#525D76">
<p><a href="/"><img src="./images/apr_logo_wide.png" alt="The Apache Portable Runtime Project" border="0"/></a></p>
 <table border="0" width="100%" cellspacing="4">
  <tr>
   <!-- LEFT SIDE NAVIGATION -->
   <td valign="top" nowrap="nowrap">
    <a href="http://apachecon.com/"
    ><img src="http://www.apache.org/images/ac2003-150.gif" height="86"
    width="150" border="0" alt="ApacheCon" /></a>
          <p><b>Get Involved</b></p>
   <menu compact="compact">
         <li><a href="/anoncvs.txt">CVS</a></li>
         <li><a href="/mailing-lists.html">Mailing Lists</a></li>
         <li><a href="http://cvs.apache.org/snapshots/apr/">Snapshots</a></li>
         <li><a href="/compiling_win32.html">Build on Win32</a></li>
         <li><a href="/compiling_unix.html">Build on Unix</a></li>
       </menu>
     <p><b>Download!</b></p>
   <menu compact="compact">
         <li><a href="http://www.apache.org/dyn/closer.cgi/apr/">from a mirror</a></li>
       </menu>
     <p><b>Docs</b></p>
   <menu compact="compact">
         <li><a href="/docs/apr/">APR</a></li>
         <li><a href="/docs/apr-util/">APR-util</a></li>
         <li>APR-iconv</li>
       </menu>
     <p><b>Guidelines</b></p>
   <menu compact="compact">
         <li><a href="/guidelines.html">Project Guidelines</a></li>
         <li><a href="/patches.html">Contributing</a></li>
         <li><a href="/versioning.html">Version Numbers</a></li>
      </menu>
    <p><b><a href="/info/">Miscellaneous</a></b></p>
  <menu compact="compact">
        <li><a href="http://www.apache.org/LICENSE.txt">License</a></li>
        <li><a href="/projects.html">Projects using APR</a></li>
      </menu>
  </td>
  <!-- RIGHT SIDE INFORMATION -->
  <td align="left" valign="top">
  <table border="0" cellspacing="0" cellpadding="2" width="100%">
  <tr><td bgcolor="#525D76">
   <font color="#ffffff" face="arial,helvetica,sanserif">
    <strong>APR Test Coverage</strong>
   </font>
  </td></tr>
  <tr><td>
   <blockquote>
<p>This should give us some idea of how well our tests actually stress our
code.  To generate this data, do the following:</p>
<menu compact="compact">
    <li>./buildconf</li>
    <li>CFLAGS="-fprofile-arcs -ftest-coverage ./configure</li>
    <li>make</li>
    <li>cd test</li>
    <li>make</li>
    <li>./testall</li>
    <li>cd ..</li>
    <li>make gcov</li>
</menu>
<p>Note that this will only generate test coverage data for the testall script,
but all tests should be moving to the unified framework, so this is correct.</p>
   </blockquote>

   <table border="0" width="100%" cellspacing="0">
EOF

for i in `find .. -name "*.bb" -maxdepth 1 | sort`; do
    percent=`gcov $i -o .. | grep "%" | awk -F'%' {'print $1'}`
    name=`echo $i | awk -F'/' {'print $2'}`
    basename=`echo $name | awk -F'.' {'print $1'}` 

    if [ "x$percent" = "x" ]; then
        echo "<tr>" >> index.html
        echo "<td bgcolor=#ffffff> Error generating data for $basename<br>" >> index.html
        continue;	
    fi
    intpercent=`echo "$percent/1" | bc`
    if [ $intpercent -lt 33 ]; then
        color="#ffaaaa"
    else if [ $intpercent -lt 66 ]; then
        color="#ffff77"
        else
            color="#aaffaa"
        fi
    fi

    echo "<tr>" >> index.html
    echo "<td bgcolor=$color><a href=\"$basename.c.gcov\">$basename</a><br>" >> index.html
    echo "<td bgcolor=$color>$percent% tested"  >> index.html
done

echo "</table><p>Last generated `date`</p>" >> index.html

cat >> index.html << EOF
</td></tr>
</table>
   <!-- FOOTER -->
   <tr><td colspan="2"><hr noshade="noshade" size="1"/></td></tr>
   <tr><td colspan="2" align="center">
        <font size="-1">
         <em>Copyright &#169; 1999-2004, The Apache Software Foundation</em>
        </font>
       </td>
   </tr>
  </table>
 </body>
</html>

EOF