diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2013-07-12 14:58:31 +0000 |
---|---|---|
committer | Tarmac <Unknown> | 2013-07-12 14:58:31 +0000 |
commit | 550b78d3ce87fcbf446b4d9e70f93214c6d1c72a (patch) | |
tree | 54b1593439a2ef0e69d30a3b8cb891d865db9d31 /trim-lcov.py | |
parent | abf13603f580a2041b661dd0c81bdb0d95b92051 (diff) | |
parent | a19955f3f81b1a5eb8fc928bc5dcf8a24bb6833f (diff) | |
download | ayatana-indicator-session-550b78d3ce87fcbf446b4d9e70f93214c6d1c72a.tar.gz ayatana-indicator-session-550b78d3ce87fcbf446b4d9e70f93214c6d1c72a.tar.bz2 ayatana-indicator-session-550b78d3ce87fcbf446b4d9e70f93214c6d1c72a.zip |
This is the GMenu, login1 version of indicator-session.
This resubmission removes the prerequisite branch because the entire diff is contained in this ng-login1 branch.
Approved by PS Jenkins bot.
Diffstat (limited to 'trim-lcov.py')
-rwxr-xr-x | trim-lcov.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/trim-lcov.py b/trim-lcov.py new file mode 100755 index 0000000..78613d3 --- /dev/null +++ b/trim-lcov.py @@ -0,0 +1,53 @@ +#!/usr/bin/python + +# This script removes branch and/or line coverage data for lines that +# contain a particular substring. +# +# In the interest of "fairness" it removes all branch or coverage data +# when a match is found -- not just negative data. It is therefore +# likely that running this script will actually reduce the total number +# of lines and branches that are marked as covered (in absolute terms). +# +# This script intentionally avoids checking for errors. Any exceptions +# will trigger make to fail. +# +# Author: Ryan Lortie <desrt@desrt.ca> + +import sys + +line_suppress = ['g_assert_not_reached'] +branch_suppress = ['g_assert', 'g_return_if_fail', 'g_clear_object', 'g_clear_pointer', 'g_return_val_if_fail', 'G_DEFINE_TYPE'] + +def check_suppress(suppressions, source, data): + line, _, rest = data.partition(',') + line = int(line) - 1 + + assert line < len(source) + + for suppression in suppressions: + if suppression in source[line]: + return True + + return False + +source = [] +for line in sys.stdin: + line = line[:-1] + + keyword, _, rest = line.partition(':') + + # Source file + if keyword == 'SF': + source = file(rest).readlines() + + # Branch coverage data + elif keyword == 'BRDA': + if check_suppress(branch_suppress, source, rest): + continue + + # Line coverage data + elif keyword == 'DA': + if check_suppress(line_suppress, source, rest): + continue + + print line |