]> git.donarmstrong.com Git - lilypond.git/blob - buildscripts/coverage.py
Fix off-by-one error in constrained-breaking.
[lilypond.git] / buildscripts / coverage.py
1 #!/bin/sh
2 import os
3 import glob
4 import re
5
6 cmds = """
7 ./configure --enable-config=cov --disable-optimising
8 make conf=cov -j2
9 make conf=cov test LILYPOND_JOBS=          
10
11 cd out-cov
12 ln ../lily/* .
13 ln ../lily/out-conv/*cc .
14 mkdir include
15 ln ../lily/include/* include/
16 for a in *[cyl] ; do  gcov -o ../lily/out-cov/  -p $a > $a.gcov-summary ; done 
17 """
18
19 cmds = ''
20
21 for c in cmds.split ('\n'):
22     os.system (c)
23
24 os.chdir ('out-cov')
25
26 #File 'accidental-engraver.cc'
27 #Lines executed:87.70% of 252
28
29 results = []
30 for f in glob.glob ('*.gcov-summary'):
31     str = open (f).read ()
32     m = re.search ("File '([^']+.cc)'\s*Lines executed:([0-9.]+)% of ([0-9]+)", str)
33     if '/usr/lib' in m.group (1):
34         continue
35    
36     if m:
37         cov = float (m.group (2))
38         lines = int (m.group (3))
39         pain = lines * (100.0 - cov)
40         file = m.group (1)
41         tup = (pain, locals ().copy())
42         
43         results.append(tup)
44
45 results.sort ()
46 results.reverse()
47 for (pain, d) in results:
48     print '%(cov)5.2f (%(lines)6d): %(file)s' % d
49