diff options
author | glider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-22 09:12:36 +0000 |
---|---|---|
committer | glider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-22 09:12:36 +0000 |
commit | 41a7fb790a9338e637aa3b3e94861924c60c604f (patch) | |
tree | 64e902364b930339f212848238cb2620dff43670 /tools | |
parent | 4d17c0b23048d8c0ae7dfe81b2b56f1ac7c9fcf9 (diff) | |
download | chromium_src-41a7fb790a9338e637aa3b3e94861924c60c604f.zip chromium_src-41a7fb790a9338e637aa3b3e94861924c60c604f.tar.gz chromium_src-41a7fb790a9338e637aa3b3e94861924c60c604f.tar.bz2 |
Make waterfall.sh recognize TSan suppressions.
TBR=timurrrr
Review URL: http://codereview.chromium.org/7232006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90010 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rw-r--r-- | tools/valgrind/suppressions.py | 35 | ||||
-rw-r--r-- | tools/valgrind/test_suppressions.py | 12 |
2 files changed, 41 insertions, 6 deletions
diff --git a/tools/valgrind/suppressions.py b/tools/valgrind/suppressions.py index b707164..4d4ef41 100644 --- a/tools/valgrind/suppressions.py +++ b/tools/valgrind/suppressions.py @@ -152,14 +152,18 @@ def ReadSuppressions(lines, supp_descriptor): continue elif not cur_type: if (not line.startswith("Memcheck:")) and \ + (not line.startswith("ThreadSanitizer:")) and \ (line != "Heapcheck:Leak"): raise SuppressionError(supp_descriptor, nline, - '"Memcheck:TYPE" or "Heapcheck:Leak is expected, got "%s"' % line) - if not line.split(':')[1] in ["Addr1", "Addr2", "Addr4", "Addr8", + '"Memcheck:TYPE" , "ThreadSanitizer:TYPE" or "Heapcheck:Leak ' + 'is expected, got "%s"' % line) + supp_type = line.split(':')[1] + if not supp_type in ["Addr1", "Addr2", "Addr4", "Addr8", "Cond", "Free", "Jump", "Leak", "Overlap", "Param", - "Value1", "Value2", "Value4", "Value8"]: + "Value1", "Value2", "Value4", "Value8", + "Race", "UnlockNonLocked", "InvalidLock"]: raise SuppressionError(supp_descriptor, nline, - 'Unknown suppression type "%s"' % line[9:]) + 'Unknown suppression type "%s"' % supp_type) cur_type = line continue elif re.match("^fun:.*|^obj:.*|^\.\.\.$", line): @@ -211,6 +215,17 @@ def SelfTest(): fun:expression }""".split("\n") + test_stack3 = """{ + test + ThreadSanitizer:Race + fun:absolutly + fun:brilliant + obj:condition + fun:detection + fun:expression + }""".split("\n") + + positive_memcheck_suppressions = [ "{\nzzz\nMemcheck:Leak\nfun:absolutly\n}", "{\nzzz\nMemcheck:Leak\nfun:ab*ly\n}", @@ -229,6 +244,11 @@ def SelfTest(): "{\nzzz\nHeapcheck:Leak\nfun:absolutly\n}", ] + positive_tsan_suppressions = [ + "{\nzzz\nThreadSanitizer:Race\n...\nobj:condition\n}", + "{\nzzz\nThreadSanitizer:Race\nfun:absolutly\n}", + ] + negative_memcheck_suppressions = [ "{\nzzz\nMemcheck:Leak\nfun:abnormal\n}", "{\nzzz\nMemcheck:Leak\nfun:ab*liant\n}", @@ -242,10 +262,17 @@ def SelfTest(): "{\nzzz\nHeapcheck:Leak\nfun:brilliant\n}", ] + negative_tsan_suppressions = [ + "{\nzzz\nThreadSanitizer:Leak\nfun:absolutly\n}", + "{\nzzz\nThreadSanitizer:Race\nfun:brilliant\n}", + ] + TestStack(test_stack1, positive_memcheck_suppressions, negative_memcheck_suppressions) TestStack(test_stack2, positive_heapcheck_suppressions, negative_heapcheck_suppressions) + TestStack(test_stack3, positive_tsan_suppressions, + negative_tsan_suppressions) if __name__ == '__main__': SelfTest() diff --git a/tools/valgrind/test_suppressions.py b/tools/valgrind/test_suppressions.py index 0efc4bc..e1be2ea 100644 --- a/tools/valgrind/test_suppressions.py +++ b/tools/valgrind/test_suppressions.py @@ -50,11 +50,19 @@ suppressions_root = path_utils.ScriptDir() supp_filename = os.path.join(suppressions_root, "memcheck", "suppressions.txt") -common_suppressions = suppressions.ReadSuppressionsFromFile(supp_filename) +vg_common = suppressions.ReadSuppressionsFromFile(supp_filename) +supp_filename = os.path.join(suppressions_root, + "tsan", "suppressions.txt") +tsan_common = suppressions.ReadSuppressionsFromFile(supp_filename) +common_suppressions = vg_common + tsan_common supp_filename = os.path.join(suppressions_root, "memcheck", "suppressions_mac.txt") -mac_suppressions = suppressions.ReadSuppressionsFromFile(supp_filename) +vg_mac = suppressions.ReadSuppressionsFromFile(supp_filename) +supp_filename = os.path.join(suppressions_root, + "tsan", "suppressions_mac.txt") +tsan_mac = suppressions.ReadSuppressionsFromFile(supp_filename) +mac_suppressions = vg_mac + tsan_mac supp_filename = os.path.join(suppressions_root, "..", "heapcheck", "suppressions.txt") |