X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=buildscripts%2Fcoverage.py;h=d44f81fdeeb8a7b0ba7328cf6e35c1b059506b7b;hb=7b69c77b4ea1f49c20830ac66912226d58889f14;hp=668b6a0043fa4c3d65f6158c69b416ff23e0df6b;hpb=305f1a98bad22056fe6c343dd45fd50f94269503;p=lilypond.git diff --git a/buildscripts/coverage.py b/buildscripts/coverage.py index 668b6a0043..d44f81fdee 100644 --- a/buildscripts/coverage.py +++ b/buildscripts/coverage.py @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/python + import os import glob import re @@ -70,22 +71,29 @@ class Chunk: sys.stdout.write ('%8s:%8d:%s' % (cov, n, l)) def uncovered_score (self): - return length (self) + return self.length () class SchemeChunk (Chunk): def uncovered_score (self): text = self.text () - if (text.startswith ('(define') + if (text.startswith ('(define ') and not text.startswith ('(define (')): return 0 + if text.startswith ('(use-modules '): + return 0 + + if (text.startswith ('(define-public ') + and not text.startswith ('(define-public (')): + return 0 + return len ([l for (c,n,l) in self.lines() if (c == 0)]) def read_gcov (f): ls = [] in_lines = [l for l in open (f).readlines ()] - (count_len, line_num_len) = tuple (map (len, in_lines[0].split( ':')[:2])) + (count_len, line_num_len) = tuple (map (len, in_lines[0].split (':')[:2])) for l in in_lines: c = l[:count_len].strip () @@ -140,7 +148,7 @@ def get_scm_chunks (ls, file): last_c = -1 for (cov_count, line_number, line) in ls: - if line.startswith ('(define'): + if line.startswith ('('): new_chunk () last_c = -1 @@ -224,7 +232,7 @@ def main (): if options.uncovered: chunks = filter_uncovered (chunks) - chunks = [(c.uncovered_score (), c) for c in chunks] + chunks = [(c.uncovered_score (), c) for c in chunks if c.uncovered_score() > 0] elif options.hotspots: chunks = [((c.coverage_count, -c.length()), c) for c in chunks]