| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Fri, 17 Sep 2010 09:02:29 +0300 | |
| changeset 0 | 4f2f89ce4247 | 
| permissions | -rw-r--r-- | 
| 0 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | #!/usr/bin/env python | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | # Copyright (C) 2004, 2005, 2006 Nathaniel Smith | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | # Copyright (C) 2007 Holger Hans Peter Freyther | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | # | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | # Redistribution and use in source and binary forms, with or without | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | # modification, are permitted provided that the following conditions | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | # are met: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | # | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | # 1. Redistributions of source code must retain the above copyright | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | # notice, this list of conditions and the following disclaimer. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | # 2. Redistributions in binary form must reproduce the above copyright | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | # notice, this list of conditions and the following disclaimer in the | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | # documentation and/or other materials provided with the distribution. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | # its contributors may be used to endorse or promote products derived | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | # from this software without specific prior written permission. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | # | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | import os, sys | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | # from BitBake | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | def mkdirhier(dir): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | """Create a directory like 'mkdir -p', but does not complain if | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | directory already exists like os.makedirs | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | try: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | os.makedirs(dir) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | except OSError, e: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | if e.errno != 17: raise e | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | def collect_base(src,match_array): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | Collect all files that match the match_array. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | sources = [] | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | for root, dirs, files in os.walk(src): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | if ".svn" in root: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | continue | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | for file in files: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 | base,ext = os.path.splitext(file) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 | if ext in match_array: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | sources.append( os.path.join(root, file) ) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | return sources | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | def collect_depends(src): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | return collect_base(src, [".d"]) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 | def parse_dependency_file(src, base_dir, black_list): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | Parse the .d files of the gcc | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | Wow, the first time os.path.join is doing the right thing. We might | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 | have a relative path in the depends using os.path.join(dirname of .d, dep) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | we will end up in | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 69 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 70 | file = open(src) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 71 | file = file.read() | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 72 |     file = file.replace('\\', '').replace('\n', '')
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 73 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 74 | # We now have object: dependencies splitted | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 75 |     ar  = file.split(':', 1)
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 76 | obj = ar[0].strip() | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 77 | dir = os.path.dirname(obj) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 78 |     deps = ar[1].split(' ')
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 79 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 80 | # Remove files outside WebKit, make path absolute | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 81 | deps = filter(lambda x: base_dir in x, deps) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 82 | deps = map(lambda x: os.path.abspath(os.path.join(dir, x)), deps) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 83 | return (obj, dir, deps) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 84 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 85 | def collect_cov(base_path,targets): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 86 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 87 | Collect gcov files, collect_sources is not used as it also creates | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 88 | dirs and needs to do substituting. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 89 | Actually we will build a mapping from source file to gcov files of | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 90 | interest. This is because we could have bytestream.h in many different | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 91 | subdirectories. And we would endup with bla.cpp##bytestream.h and we | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 92 | do not know which bytestream file was tested | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 93 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 94 | def find_source_file(root,cov_file): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 95 | """ Find a Source line or crash | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 96 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 97 | '#Users#ich#projekte#src#threadmessage.cpp###space#dports#include#qt3#qstring.h.gcov' | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 98 | '#Users#ich#projekte#src#threadmessage.cpp##..#^#src#threadmessage.cpp.gcov' | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 99 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 100 | ### is absolute path | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 101 | ##..#^# is relative path... well a gcov bug as well | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 102 | ## normal split file in the same directory | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 103 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 104 | if '###' in cov_file: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 105 |             split = cov_file.split('###')
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 106 | if not len(split) == 2: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 107 | raise "Unexpected split result" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 108 |             filepath = split[1][:-5].replace('#',os.path.sep)
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 109 | return os.path.join(os.path.sep,filepath) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 110 | elif '##..#^#' in cov_file: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 111 |             split = cov_file.split('##..#^#')
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 112 | if not len(split) == 2: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 113 | raise "Unexpected split result" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 114 |             filepath = split[1][:-5].replace('#',os.path.sep)
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 115 | return os.path.abspath(os.path.join(root,os.path.pardir,os.path.pardir,filepath)) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 116 | elif '##' in cov_file: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 117 |             split = cov_file.split('##')
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 118 | if not len(split) == 2: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 119 | raise "Unexpected split result" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 120 |             filepath = split[1][:-5].replace('#',os.path.sep)
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 121 | return os.path.abspath(os.path.join(root,filepath)) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 122 | elif '#' in cov_file: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 123 | # wow a not broken gcov on OSX | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 124 |             basename=os.path.basename(cov_file).replace('#',os.path.sep)[:-5]
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 125 | return os.path.abspath(os.path.join(root,basename)) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 126 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 127 | else: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 128 | raise "No source found %s" % cov_file | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 129 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 130 | def sanitize_path(path): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 131 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 132 | Well fix up paths once again /usr/lib/gcc/i486-linux-gnu/4.1.2/^/^/^/^/include/c++/4.1.2/bits/stl_pair.h | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 133 | according to gcov '^' is a relative path, we will now build one from this one. Somehow it depends | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 134 | on the gcov version if .. really gets replaced to ^.... | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 135 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 136 | import os | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 137 | split = path.split(os.path.sep) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 138 | str = "" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 139 | for part in split: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 140 | if part == '': | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 141 | str = os.path.sep | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 142 | elif part == '^': | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 143 | str = "%s..%s" % (str,os.path.sep) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 144 | else: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 145 | str = "%s%s%s" % (str,part,os.path.sep) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 146 | return os.path.abspath(str) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 147 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 148 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 149 |     gcov = {}
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 150 | for root, dirs, files in os.walk(base_path): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 151 | if ".svn" in root: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 152 | continue | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 153 | for file in files: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 154 | base,ext = os.path.splitext(file) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 155 | if ext in [".gcov"]: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 156 | try: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 157 | cov = os.path.join(root, file) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 158 | src = find_source_file( root, cov ) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 159 | src = sanitize_path( src ) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 160 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 161 | if not src in gcov: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 162 | gcov[src] = [] | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 163 | gcov[src].append( cov ) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 164 | except Exception,e: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 165 | print "Exception on ", e | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | #import sys | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 | #sys.exit(0) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | pass | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | #print gcov | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | return gcov | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | def generate_covs(candidates): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | Generate gcov files in the right directory | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | candidtaes contains the directories we have used when | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | building. Each directory contains a set of files we will | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | try to generate gcov files for. | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | print candidates.keys() | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 | for dir in candidates.keys(): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 | print "Trying in %s" % (dir) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | for dep in candidates[dir].keys(): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | cmd = "cd %s; gcov -p -l %s" % (dir, dep) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 |             os.system("%s > /dev/null 2>&1 " % cmd)
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | def analyze_coverage(sources,data,dirs,runid,base): | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 | sources actual source files relative to src_dir e.g kdelibs/kdecore/klibloader.cpp | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | data Where to put the stuff | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 | dirs Where to take a look for gcov files | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | base The base directory for files. All files not inside base will be ignored | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 | """ | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | import cov | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 | print base | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | gcov = collect_cov(base,dirs) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | result = cov.analyze_coverage(gcov, sources, runid, data, base) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 | print result | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | if __name__ == "__main__": | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | #global targets | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | if not len(sys.argv) == 3: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 | print "This script needs three parameters" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 206 | print "Call it with generate_cov RUNID ResultsDir" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 207 | sys.exit(-1) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 208 | runid = sys.argv[1] | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 209 | results = sys.argv[2] | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 210 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 211 | # create directories for out result | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 212 | mkdirhier(results) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 213 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 214 | print "Collection Sources and preparing data tree" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 215 | base_dir = os.path.abspath(os.path.curdir) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 216 | depends = collect_depends(base_dir) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 217 | candidates = map(lambda x: parse_dependency_file(x,base_dir,[]), depends) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 218 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 219 | # Build a number of sources from the candidates. This is a Set for the poor | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 220 | # Two level dict. One for | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 221 |     dirs = {}
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 222 |     files = {}
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 223 | for (_,dir,deps) in candidates: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 224 | if not dir in dirs: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 225 |             dirs[dir] = {}
 | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 226 | for dep in deps: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 227 | if not dep in dirs[dir]: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 228 | dirs[dir][dep] = dep | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 229 | if not dep in files: | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 230 | files[dep] = dep | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 231 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 232 | sources = files.keys() | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 233 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 234 | print "Found %d candidates" % (len(sources)) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 235 | print "Will run inefficient generation of gcov files now" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 236 | generate_covs(dirs) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 237 | |
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 238 | print "Analyzing Gcov" | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 239 | analyze_coverage(sources, results, dirs.keys(), runid, base_dir) | 
| 
4f2f89ce4247
Revision: 201037
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 240 | print "Done" |