Commit 696c1c87 authored by timurrrr@chromium.org's avatar timurrrr@chromium.org

Revert 170387 as it fails presubmit checks locally and on the trybots

Add a tool to look for unused suppressions.

BUG=112065

Review URL: https://chromiumcodereview.appspot.com/11421163

TBR=phajdan.jr@chromium.org
Review URL: https://codereview.chromium.org/11415256

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170727 0039d316-1c4b-4281-b951-d872f2087c98
parent 2df3a626
...@@ -29,45 +29,9 @@ import os ...@@ -29,45 +29,9 @@ import os
import re import re
import sys import sys
import path_utils
ELLIPSIS = '...' ELLIPSIS = '...'
def GetSuppressions():
suppressions_root = path_utils.ScriptDir()
JOIN = os.path.join
result = {}
supp_filename = JOIN(suppressions_root, "memcheck", "suppressions.txt")
vg_common = ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "tsan", "suppressions.txt")
tsan_common = ReadSuppressionsFromFile(supp_filename)
result['common_suppressions'] = vg_common + tsan_common
supp_filename = JOIN(suppressions_root, "memcheck", "suppressions_mac.txt")
vg_mac = ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "tsan", "suppressions_mac.txt")
tsan_mac = ReadSuppressionsFromFile(supp_filename)
result['mac_suppressions'] = vg_mac + tsan_mac
supp_filename = JOIN(suppressions_root, "tsan", "suppressions_win32.txt")
tsan_win = ReadSuppressionsFromFile(supp_filename)
result['win_suppressions'] = tsan_win
supp_filename = JOIN(suppressions_root, "..", "heapcheck", "suppressions.txt")
result['heapcheck_suppressions'] = ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "drmemory", "suppressions.txt")
result['drmem_suppressions'] = ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "drmemory", "suppressions_full.txt")
result['drmem_full_suppressions'] = ReadSuppressionsFromFile(supp_filename)
return result
def GlobToRegex(glob_pattern, ignore_case=False): def GlobToRegex(glob_pattern, ignore_case=False):
"""Translate glob wildcards (*?) into regex syntax. Escape the rest.""" """Translate glob wildcards (*?) into regex syntax. Escape the rest."""
regex = '' regex = ''
......
...@@ -8,6 +8,8 @@ import os ...@@ -8,6 +8,8 @@ import os
import re import re
import sys import sys
import path_utils
import suppressions import suppressions
...@@ -47,7 +49,32 @@ def ReadReportsFromFile(filename): ...@@ -47,7 +49,32 @@ def ReadReportsFromFile(filename):
def main(argv): def main(argv):
supp = suppressions.GetSuppressions() suppressions_root = path_utils.ScriptDir()
JOIN = os.path.join
supp_filename = JOIN(suppressions_root, "memcheck", "suppressions.txt")
vg_common = suppressions.ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "tsan", "suppressions.txt")
tsan_common = suppressions.ReadSuppressionsFromFile(supp_filename)
common_suppressions = vg_common + tsan_common
supp_filename = JOIN(suppressions_root, "memcheck", "suppressions_mac.txt")
vg_mac = suppressions.ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "tsan", "suppressions_mac.txt")
tsan_mac = suppressions.ReadSuppressionsFromFile(supp_filename)
mac_suppressions = vg_mac + tsan_mac
supp_filename = JOIN(suppressions_root, "tsan", "suppressions_win32.txt")
tsan_win = suppressions.ReadSuppressionsFromFile(supp_filename)
win_suppressions = tsan_win
supp_filename = JOIN(suppressions_root, "..", "heapcheck", "suppressions.txt")
heapcheck_suppressions = suppressions.ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "drmemory", "suppressions.txt")
drmem_suppressions = suppressions.ReadSuppressionsFromFile(supp_filename)
supp_filename = JOIN(suppressions_root, "drmemory", "suppressions_full.txt")
drmem_full_suppressions = suppressions.ReadSuppressionsFromFile(supp_filename)
# all_reports is a map {report: list of urls containing this report} # all_reports is a map {report: list of urls containing this report}
all_reports = defaultdict(list) all_reports = defaultdict(list)
...@@ -61,21 +88,21 @@ def main(argv): ...@@ -61,21 +88,21 @@ def main(argv):
reports_count = 0 reports_count = 0
for r in all_reports: for r in all_reports:
cur_supp = supp['common_suppressions'] cur_supp = common_suppressions
if all([re.search("%20Mac%20|mac_valgrind", url) if all([re.search("%20Mac%20|mac_valgrind", url)
for url in all_reports[r]]): for url in all_reports[r]]):
# Include mac suppressions if the report is only present on Mac # Include mac suppressions if the report is only present on Mac
cur_supp += supp['mac_suppressions'] cur_supp += mac_suppressions
elif all([re.search("Windows%20", url) for url in all_reports[r]]): elif all([re.search("Windows%20", url) for url in all_reports[r]]):
# Include win32 suppressions if the report is only present on Windows # Include win32 suppressions if the report is only present on Windows
cur_supp += supp['win_suppressions'] cur_supp += win_suppressions
elif all([re.search("%20Heapcheck", url) elif all([re.search("%20Heapcheck", url)
for url in all_reports[r]]): for url in all_reports[r]]):
cur_supp += supp['heapcheck_suppressions'] cur_supp += heapcheck_suppressions
if all(["DrMemory" in url for url in all_reports[r]]): if all(["DrMemory" in url for url in all_reports[r]]):
cur_supp += supp['drmem_suppressions'] cur_supp += drmem_suppressions
if all(["DrMemory%20full" in url for url in all_reports[r]]): if all(["DrMemory%20full" in url for url in all_reports[r]]):
cur_supp += supp['drmem_full_suppressions'] cur_supp += drmem_full_suppressions
match = False match = False
for s in cur_supp: for s in cur_supp:
......
#!/usr/bin/env python
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
import urllib2
import suppressions
def main():
supp = suppressions.GetSuppressions()
all_supps = []
for supps in supp.values():
all_supps += [s.description for s in supps]
sys.stdout.write(urllib2.urlopen(
'http://chromium-build-logs.appspot.com/unused_suppressions',
'\n'.join(all_supps)).read())
return 0
if __name__ == "__main__":
sys.exit(main())
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment