| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- #!/usr/bin/python
 
- import os
 
- import re
 
- import subprocess
 
- import sys
 
- def handle_file(source_fname, cov_fname):
 
-    
 
-    lines_blm = subprocess.Popen(["git", "blame", source_fname], stdout=subprocess.PIPE).stdout.readlines()
 
-    lines_cov = open(cov_fname).readlines()
 
-    # XXXX expensive!
 
-    while re.match(r'\s*-:\s*0:', lines_cov[0]):
 
-       del lines_cov[0]
 
-    if len(lines_blm) != len(lines_cov):
 
-       print >>sys.stderr, "MISMATCH IN NUMBER OF LINES in",source_fname
 
-    for b,c in zip(lines_blm, lines_cov):
 
-       m = re.match(r'\s*([^\s:]+):', c)
 
-       if not m:
 
-          print >>sys.stderr, "CONFUSING LINE %r"% c
 
-          cov = 'X'
 
-       elif m.group(1) == '-':
 
-          cov = '-'
 
-       elif m.group(1)[0] == '#':
 
-          cov = '#'
 
-       elif m.group(1)[0].isdigit():
 
-          cov = '1'
 
-       else:
 
-          print >>sys.stderr, "CONFUSING LINE %r"% c
 
-          cov = 'X'
 
-       print cov, b,
 
- COV_DIR = sys.argv[1]
 
- SOURCES = sys.argv[2:]
 
- for fn in SOURCES:
 
-    _, base = os.path.split(fn)
 
-    cfn = os.path.join(COV_DIR, base)
 
-    cfn += ".gcov"
 
-    if os.path.exists(cfn):
 
-       handle_file(fn, cfn)
 
-    else:
 
-       print >>sys.stderr, "NO FILE EXISTS CALLED ",cfn
 
 
  |