Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Unified Diff: tools/valgrind/chrome_tests.py

Issue 4054004: Move all Valgrind/TSan/Dr.Memory gtest exclude files to tools/valgrind/gtest_... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/data/valgrind/suppressions.txt ('k') | tools/valgrind/gtest_exclude/app_unittests.gtest-tsan.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/valgrind/chrome_tests.py
===================================================================
--- tools/valgrind/chrome_tests.py (revision 63512)
+++ tools/valgrind/chrome_tests.py (working copy)
@@ -89,20 +89,7 @@
def _DefaultCommand(self, tool, module, exe=None, valgrind_test_args=None):
'''Generates the default command array that most tests will use.'''
- module_dir = os.path.join(self._source_dir, module)
- # We need multiple data dirs, the current script directory and a module
- # specific one. The global suppression file lives in our directory, and the
- # module specific suppression file lives with the module.
- self._data_dirs = [path_utils.ScriptDir()]
-
- if module == "chrome":
- # unfortunately, not all modules have the same directory structure
- self._data_dirs.append(os.path.join(module_dir, "test", "data",
- "valgrind"))
- else:
- self._data_dirs.append(os.path.join(module_dir, "data", "valgrind"))
-
if not self._options.build_dir:
if common.IsWine():
self._options.build_dir = os.path.join(
@@ -119,20 +106,22 @@
self._options.build_dir = FindNewestDir(dirs)
cmd = list(self._command_preamble)
- for directory in self._data_dirs:
- tool_name = tool.ToolName();
- suppression_file = os.path.join(directory,
- "%s/suppressions.txt" % tool_name)
- if os.path.exists(suppression_file):
- cmd.append("--suppressions=%s" % suppression_file)
- # Platform specific suppression
- for suppression_platform in common.PlatformNames():
- suppression_file_platform = \
- os.path.join(directory,
- '%s/suppressions_%s.txt' % (tool_name, suppression_platform))
- if os.path.exists(suppression_file_platform):
- cmd.append("--suppressions=%s" % suppression_file_platform)
+ # Find all suppressions matching the following pattern:
+ # tools/valgrind/TOOL/suppressions[_PLATFORM].txt
+ # and list them with --suppressions= prefix.
+ script_dir = path_utils.ScriptDir()
+ tool_name = tool.ToolName();
+ suppression_file = os.path.join(script_dir, tool_name, "suppressions.txt")
+ if os.path.exists(suppression_file):
+ cmd.append("--suppressions=%s" % suppression_file)
+ # Platform-specific suppression
+ for platform in common.PlatformNames():
+ platform_suppression_file = \
+ os.path.join(script_dir, tool_name, 'suppressions_%s.txt' % platform)
+ if os.path.exists(platform_suppression_file):
+ cmd.append("--suppressions=%s" % platform_suppression_file)
+
if self._options.valgrind_tool_flags:
cmd += self._options.valgrind_tool_flags.split(" ")
if valgrind_test_args != None:
@@ -160,34 +149,36 @@
and append the command-line option to cmd.
'''
filters = []
- for directory in self._data_dirs:
- gtest_filter_files = [
- os.path.join(directory, name + ".gtest.txt"),
- os.path.join(directory, name + ".gtest-%s.txt" % \
- tool.ToolName())]
- for platform_suffix in common.PlatformNames():
- gtest_filter_files += [
- os.path.join(directory, name + ".gtest_%s.txt" % platform_suffix),
- os.path.join(directory, name + ".gtest-%s_%s.txt" % \
- (tool.ToolName(), platform_suffix))]
- for filename in gtest_filter_files:
- if os.path.exists(filename):
- logging.info("reading gtest filters from %s" % filename)
- f = open(filename, 'r')
- for line in f.readlines():
- if line.startswith("#") or line.startswith("//") or line.isspace():
- continue
- line = line.rstrip()
- test_prefixes = ["FLAKY", "FAILS"]
- for p in test_prefixes:
- # Strip prefixes from the test names.
- line = line.replace(".%s_" % p, ".")
- # Exclude the original test name.
- filters.append(line)
- if line[-2:] != ".*":
- # List all possible prefixes if line doesn't end with ".*".
- for p in test_prefixes:
- filters.append(line.replace(".", ".%s_" % p))
+ gtest_files_dir = os.path.join(path_utils.ScriptDir(), "gtest_exclude")
+
+ gtest_filter_files = [
+ os.path.join(gtest_files_dir, name + ".gtest.txt"),
+ os.path.join(gtest_files_dir, name + ".gtest-%s.txt" % tool.ToolName())]
+ for platform_suffix in common.PlatformNames():
+ gtest_filter_files += [
+ os.path.join(gtest_files_dir, name + ".gtest_%s.txt" % platform_suffix),
+ os.path.join(gtest_files_dir, name + ".gtest-%s_%s.txt" % \
+ (tool.ToolName(), platform_suffix))]
+ for filename in gtest_filter_files:
+ if not os.path.exists(filename):
+ logging.info("gtest filter file %s not found - skipping" % filename)
+ continue
+ logging.info("Reading gtest filters from %s" % filename)
+ f = open(filename, 'r')
+ for line in f.readlines():
+ if line.startswith("#") or line.startswith("//") or line.isspace():
+ continue
+ line = line.rstrip()
+ test_prefixes = ["FLAKY", "FAILS"]
+ for p in test_prefixes:
+ # Strip prefixes from the test names.
+ line = line.replace(".%s_" % p, ".")
+ # Exclude the original test name.
+ filters.append(line)
+ if line[-2:] != ".*":
+ # List all possible prefixes if line doesn't end with ".*".
+ for p in test_prefixes:
+ filters.append(line.replace(".", ".%s_" % p))
# Get rid of duplicates.
filters = set(filters)
gtest_filter = self._gtest_filter
« no previous file with comments | « net/data/valgrind/suppressions.txt ('k') | tools/valgrind/gtest_exclude/app_unittests.gtest-tsan.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698