| author | andrews@symbian.org | 
| Thu, 25 Jun 2009 01:50:42 +0100 | |
| changeset 4 | 36af9b97c29e | 
| parent 0 | dd21522fd290 | 
| permissions | -rw-r--r-- | 
| 0 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 1 | #!/usr/bin/env python | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 2 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 3 | # Copyright (C) 2004, 2005, 2006 Nathaniel Smith | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 4 | # Copyright (C) 2007 Holger Hans Peter Freyther | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 5 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 6 | # Redistribution and use in source and binary forms, with or without | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 7 | # modification, are permitted provided that the following conditions | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 8 | # are met: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 9 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 10 | # 1. Redistributions of source code must retain the above copyright | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 11 | # notice, this list of conditions and the following disclaimer. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 12 | # 2. Redistributions in binary form must reproduce the above copyright | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 13 | # notice, this list of conditions and the following disclaimer in the | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 14 | # documentation and/or other materials provided with the distribution. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 15 | # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 16 | # its contributors may be used to endorse or promote products derived | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 17 | # from this software without specific prior written permission. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 18 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 19 | # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 20 | # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 21 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 22 | # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 23 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 24 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 25 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 26 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 27 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 28 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 29 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 30 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 31 | # HTML output inspired by the output of lcov as found on the GStreamer | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 32 | # site. I assume this is not copyrightable. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 33 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 34 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 35 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 36 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 37 | # Read all CSV files and | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 38 | # Create an overview file | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 39 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 40 | # | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 41 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 42 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 43 | import sys | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 44 | import csv | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 45 | import glob | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 46 | import time | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 47 | import os | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 48 | import os.path | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 49 | import datetime | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 50 | import shutil | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 51 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 52 | os.environ["TTFPATH"] = ":".join(["/usr/share/fonts/truetype/" + d | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 53 | for d in "ttf-bitstream-vera", | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 54 | "freefont", | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 55 | "msttcorefonts"]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 56 | import matplotlib | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 57 | matplotlib.use("Agg")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 58 | import matplotlib.pylab as m | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 59 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 60 | level_LOW = 10 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 61 | level_MEDIUM = 70 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 62 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 63 | def copy_files(dest_dir): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 64 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 65 | Copy the CSS and the png's to the destination directory | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 66 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 67 | images = ["amber.png", "emerald.png", "glass.png", "ruby.png", "snow.png"] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 68 | css = "gcov.css" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 69 | (base_path, name) = os.path.split(__file__) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 70 | base_path = os.path.abspath(base_path) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 71 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 72 | shutil.copyfile(os.path.join(base_path,css), os.path.join(dest_dir,css)) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 73 | map(lambda x: shutil.copyfile(os.path.join(base_path,x), os.path.join(dest_dir,x)), images) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 74 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 75 | def sumcov(cov): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 76 | return "%.2f%% (%s/%s)" % (cov[1] * 100.0 / (cov[0] or 1), cov[1], cov[0]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 77 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 78 | def create_page(dest_dir, name): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 79 | index = open(os.path.join(dest_dir, name), "w") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 80 |     index.write("""<HTML>
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 81 | <HEAD> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 82 | <TITLE>WebKit test coverage information</TITLE> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 83 | <link rel="stylesheet" type="text/css" href="gcov.css"> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 84 | </HEAD> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 85 | <BODY> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 86 | """) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 87 | return index | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 88 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 89 | def generate_header(file, last_time, total_lines, total_executed, path, image): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 90 | product = "WebKit" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 91 |     date = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(last_time))
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 92 | covered_lines = sumcov((total_lines, total_executed)) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 93 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 94 |     file.write("""<table width="100%%" border=0 cellspacing=0 cellpadding=0>
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 95 | <tr><td class="title">GCOV code coverage report</td></tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 96 | <tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 97 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 98 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 99 | <td width="100%%"> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 100 | <table cellpadding=1 border=0 width="100%%"> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 101 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 102 | <td class="headerItem" width="20%%">Current view:</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 103 | <td class="headerValue" width="80%%" colspan=4>%(path)s</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 104 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 105 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 106 | <td class="headerItem" width="20%%">Test:</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 107 | <td class="headerValue" width="80%%" colspan=4>%(product)s</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 108 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 109 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 110 | <td class="headerItem" width="20%%">Date:</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 111 | <td class="headerValue" width="20%%">%(date)s</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 112 | <td width="20%%"></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 113 | <td class="headerItem" width="20%%">Instrumented lines:</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 114 | <td class="headerValue" width="20%%">%(total_lines)s</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 115 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 116 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 117 | <td class="headerItem" width="20%%">Code covered:</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 118 | <td class="headerValue" width="20%%">%(covered_lines)s</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 119 | <td width="20%%"></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 120 | <td class="headerItem" width="20%%">Executed lines:</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 121 | <td class="headerValue" width="20%%">%(total_executed)s</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 122 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 123 | </table> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 124 | </td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 125 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 126 | <tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 127 | </table>""" % vars()) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 128 | # disabled for now <tr><td><img src="%(image)s"></td></tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 129 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 130 | def generate_table_item(file, name, total_lines, covered_lines): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 131 | covered_precise = (covered_lines*100.0)/(total_lines or 1.0) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 132 | covered = int(round(covered_precise)) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 133 | remainder = 100-covered | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 134 | (image,perClass,numClass) = coverage_icon(covered_precise) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 135 | site = "%s.html" % name.replace(os.path.sep,'__') | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 136 |     file.write("""
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 137 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 138 | <td class="coverFile"><a href="%(site)s">%(name)s</a></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 139 | <td class="coverBar" align="center"> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 140 | <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="%(image)s" width=%(covered)s height=10 alt="%(covered_precise).2f"><img src="snow.png" width=%(remainder)s height=10 alt="%(covered_precise).2f"></td></tr></table> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 141 | </td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 142 | <td class="%(perClass)s">%(covered_precise).2f %%</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 143 | <td class="%(numClass)s">%(covered_lines)s / %(total_lines)s lines</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 144 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 145 | """ % vars()) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 146 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 147 | def generate_table_header_start(file): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 148 |   file.write("""<center>
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 149 | <table width="80%%" cellpadding=2 cellspacing=1 border=0> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 150 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 151 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 152 | <td width="50%%"><br></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 153 | <td width="15%%"></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 154 | <td width="15%%"></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 155 | <td width="20%%"></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 156 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 157 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 158 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 159 | <td class="tableHead">Directory name</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 160 | <td class="tableHead" colspan=3>Coverage</td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 161 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 162 | """) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 163 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 164 | def coverage_icon(percent): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 165 | if percent < level_LOW: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 166 |         return ("ruby.png", "coverPerLo", "coverNumLo")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 167 | elif percent < level_MEDIUM: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 168 |         return ("amber.png", "coverPerMed", "coverNumMed")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 169 | else: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 170 |         return ("emerald.png", "coverPerHi", "coverNumHi")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 171 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 172 | def replace(text, *pairs): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 173 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 174 | From pydoc... almost identical at least | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 175 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 176 | from string import split, join | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 177 | while pairs: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 178 | (a,b) = pairs[0] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 179 | text = join(split(text, a), b) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 180 | pairs = pairs[1:] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 181 | return text | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 182 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 183 | def escape(text): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 184 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 185 | Escape string to be conform HTML | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 186 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 187 | return replace(text, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 188 |                         ('&', '&'),
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 189 |                         ('<', '<' ),
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 190 |                         ('>', '>' ) )
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 191 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 192 | def generate_table_header_end(file): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 193 |     file.write("""</table>
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 194 | </center>""") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 195 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 196 | def write_title_page(dest_dir,plot_files, last_time, last_tot_lines, last_tot_covered, dir_series): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 197 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 198 | Write the index.html with a overview of each directory | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 199 | """ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 200 | index= create_page(dest_dir, "index.html") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 201 | generate_header(index, last_time, last_tot_lines, last_tot_covered, "directory", "images/Total.png") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 202 | # Create the directory overview | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 203 | generate_table_header_start(index) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 204 | dirs = dir_series.keys() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 205 | dirs.sort() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 206 | for dir in dirs: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 207 | (dir_files, total_lines, covered_lines,_) = dir_series[dir][-1] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 208 | generate_table_item(index, dir, total_lines, covered_lines) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 209 | generate_table_header_end(index) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 210 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 211 |     index.write("""</BODY></HTML>""")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 212 | index.close() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 213 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 214 | def write_directory_site(dest_dir, plot_files, dir_name, last_time, dir_series, file_series): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 215 | escaped_dir = dir_name.replace(os.path.sep,'__') | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 216 | site = create_page(dest_dir, "%s.html" % escaped_dir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 217 | (_,tot_lines,tot_covered,files) = dir_series[dir_name][-1] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 218 | generate_header(site, last_time, tot_lines, tot_covered, "directory - %s" % dir_name, "images/%s.png" % escaped_dir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 219 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 220 | files.sort() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 221 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 222 | generate_table_header_start(site) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 223 | for file in files: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 224 | (lines,covered) = file_series[file][-1] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 225 | generate_table_item(site, file, lines, covered) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 226 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 227 | generate_table_header_end(site) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 228 |     site.write("""</BODY></HTML>""")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 229 | site.close() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 230 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 231 | def write_file_site(dest_dir, plot_files, file_name, last_time, data_dir, last_id, file_series): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 232 | escaped_name = file_name.replace(os.path.sep,'__') | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 233 | site = create_page(dest_dir, "%s.html" % escaped_name) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 234 | (tot_lines,tot_covered) = file_series[file_name][-1] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 235 | generate_header(site, last_time, tot_lines, tot_covered, "file - %s" % file_name, "images/%s.png" % escaped_name) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 236 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 237 | path = "%s/%s.annotated%s" % (data_dir,last_id,file_name) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 238 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 239 | # In contrast to the lcov we want to show files that have been compiled | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 240 | # but have not been tested at all. This means we have sourcefiles with 0 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 241 | # lines covered in the path but they are not lcov files. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 242 | # To identify them we check the first line now. If we see that we can | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 243 | # continue | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 244 | # -: 0:Source: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 245 | try: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 246 | file = open(path, "r") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 247 | except: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 248 | return | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 249 |     all_lines = file.read().split("\n")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 250 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 251 | # Convert the gcov file to HTML if we have a chanche to do so | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 252 | # Scan each line and see if it was covered or not and escape the | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 253 | # text | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 254 | if len(all_lines) == 0 or not "-: 0:Source:" in all_lines[0]: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 255 |         site.write("<p>The file was not excercised</p>")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 256 | else: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 257 |         site.write("""</br><table cellpadding=0 cellspacing=0 border=0>
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 258 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 259 | <td><br></td> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 260 | </tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 261 | <tr> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 262 | <td><pre class="source"> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 263 | """) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 264 | for line in all_lines: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 265 |             split_line = line.split(':',2)
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 266 | # e.g. at the EOF | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 267 | if len(split_line) == 1: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 268 | continue | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 269 | line_number = split_line[1].strip() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 270 | if line_number == "0": | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 271 | continue | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 272 | covered = 15*" " | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 273 | end = "" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 274 | if "#####" in split_line[0]: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 275 | covered = '<span class="lineNoCov">%15s' % "0" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 276 | end = "</span>" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 277 | elif split_line[0].strip() != "-": | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 278 | covered = '<span class="lineCov">%15s' % split_line[0].strip() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 279 | end = "</span>" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 280 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 281 | escaped_line = escape(split_line[2]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 282 | str = '<span class="lineNum">%(line_number)10s </span>%(covered)s: %(escaped_line)s%(end)s\n' % vars() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 283 | site.write(str) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 284 |         site.write("</pre></td></tr></table>")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 285 |     site.write("</BODY></HTML>")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 286 | site.close() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 287 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 288 | def main(progname, args): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 289 | if len(args) != 2: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 290 |         sys.exit("Usage: %s DATADIR OUTDIR" % progname)
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 291 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 292 | branch = "WebKit from trunk" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 293 | datadir, outdir = args | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 294 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 295 | # First, load in all data from the data directory. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 296 | data = [] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 297 | for datapath in glob.glob(os.path.join(datadir, "*.csv")): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 298 | data.append(read_csv(datapath)) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 299 | # Sort by time | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 300 | data.sort() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 301 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 302 | # Calculate time series for each file. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 303 | times = [sample[0] for sample in data] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 304 | times = [datetime.datetime.utcfromtimestamp(t) for t in times] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 305 | times = m.date2num(times) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 306 |     all_files = {}
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 307 |     all_dirs  = {}
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 308 | for sample in data: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 309 | t, i, tot_line, tot_cover, per_file, per_dir = sample | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 310 | all_files.update(per_file) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 311 | all_dirs.update(per_dir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 312 | total_series = [] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 313 | file_serieses = dict([[k, [(0, 0)] * len(times)] for k in all_files.keys()]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 314 | dir_serieses = dict([[k, [(0, 0, 0, [])] * len(times)] for k in all_dirs.keys()]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 315 | data_idx = 0 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 316 | for sample in data: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 317 | t, i, tot_line, tot_cover, per_file, per_dir = sample | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 318 | total_series.append([tot_line, tot_cover]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 319 | for f, covinfo in per_file.items(): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 320 | file_serieses[f][data_idx] = covinfo | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 321 | for f, covinfo in per_dir.items(): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 322 | dir_serieses[f][data_idx] = covinfo | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 323 | data_idx += 1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 324 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 325 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 326 | # Okay, ready to start outputting. First make sure our directories | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 327 | # exist. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 328 | if not os.path.exists(outdir): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 329 | os.makedirs(outdir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 330 | rel_imgdir = "images" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 331 | imgdir = os.path.join(outdir, rel_imgdir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 332 | if not os.path.exists(imgdir): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 333 | os.makedirs(imgdir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 334 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 335 | # Now plot the actual graphs | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 336 |     plot_files = {}
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 337 | #plot_files["Total"] = plot_coverage(times, total_series, imgdir, "Total") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 338 | #for dir, series in dir_serieses.items(): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 339 | # plot_files[dir] = plot_coverage(times, map(lambda (a,b,c,d):(b,c), series), imgdir, dir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 340 | #for f, series in file_serieses.items(): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 341 | # plot_files[f] = plot_coverage(times, series, imgdir, f) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 342 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 343 | # And look up the latest revision id, and coverage information | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 344 | last_time, last_id, last_tot_lines, last_tot_covered = data[-1][:4] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 345 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 346 | # Now start generating our html file | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 347 | copy_files(outdir) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 348 | write_title_page(outdir, plot_files, last_time, last_tot_lines, last_tot_covered, dir_serieses) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 349 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 350 | dir_keys = dir_serieses.keys() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 351 | dir_keys.sort() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 352 | for dir_name in dir_keys: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 353 | write_directory_site(outdir, plot_files, dir_name, last_time, dir_serieses, file_serieses) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 354 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 355 | file_keys = file_serieses.keys() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 356 | for file_name in file_keys: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 357 | write_file_site(outdir, plot_files, file_name, last_time, datadir, last_id, file_serieses) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 358 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 359 | def read_csv(path): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 360 | r = csv.reader(open(path, "r")) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 361 | # First line is id, time | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 362 | for row in r: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 363 | id, time_str = row | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 364 | break | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 365 | time = int(float(time_str)) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 366 | # Rest of lines are path, total_lines, covered_lines | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 367 |     per_file = {}
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 368 |     per_dir  = {}
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 369 | grand_total_lines, grand_covered_lines = 0, 0 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 370 | for row in r: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 371 | path, total_lines_str, covered_lines_str = row | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 372 | total_lines = int(total_lines_str) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 373 | covered_lines = int(covered_lines_str) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 374 | grand_total_lines += total_lines | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 375 | grand_covered_lines += covered_lines | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 376 | per_file[path] = [total_lines, covered_lines] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 377 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 378 | # Update dir statistics | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 379 | dirname = os.path.dirname(path) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 380 | if not dirname in per_dir: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 381 | per_dir[dirname] = (0,0,0,[]) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 382 | (dir_files,dir_total_lines,dir_covered_lines, files) = per_dir[dirname] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 383 | dir_files += 1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 384 | dir_total_lines += total_lines | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 385 | dir_covered_lines += covered_lines | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 386 | files.append(path) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 387 | per_dir[dirname] = (dir_files,dir_total_lines,dir_covered_lines,files) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 388 | return [time, id, grand_total_lines, grand_covered_lines, per_file, per_dir] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 389 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 390 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 391 | def plot_coverage(times, series, imgdir, name): | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 392 | percentages = [cov * 100.0 / (tot or 1) for tot, cov in series] | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 393 | m.plot_date(times, percentages, "b-") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 394 | m.plot_date(times, percentages, "bo") | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 395 | m.title(name) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 396 | m.ylim(0, 100) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 397 |     m.xlabel("Date")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 398 |     m.ylabel("Statement Coverage (%)")
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 399 |     outfile_base = name.replace("/", "__") + ".png"
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 400 | outfile = os.path.join(imgdir, outfile_base) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 401 | m.savefig(outfile, dpi=75) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 402 | m.close() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 403 | return outfile_base | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 404 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 405 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 406 | if __name__ == "__main__": | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 407 | import sys | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 408 | main(sys.argv[0], sys.argv[1:]) |