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

Side by Side Diff: tools/valgrind/valgrind_test.py

Issue 624533003: Check that the user doesn't try to run ASan-built binaries under Valgrind etc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Try Created 6 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 unified diff | Download patch
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Runs an exe through Valgrind and puts the intermediate files in a 5 """Runs an exe through Valgrind and puts the intermediate files in a
6 directory. 6 directory.
7 """ 7 """
8 8
9 import datetime 9 import datetime
10 import glob 10 import glob
(...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 else: 1158 else:
1159 logging.info("No reports, skipping RaceVerifier second pass") 1159 logging.info("No reports, skipping RaceVerifier second pass")
1160 logging.info("Please see " + self.MORE_INFO_URL + " for more information " + 1160 logging.info("Please see " + self.MORE_INFO_URL + " for more information " +
1161 "on RaceVerifier") 1161 "on RaceVerifier")
1162 return ret 1162 return ret
1163 1163
1164 def Run(self, args, module, min_runtime_in_seconds=0): 1164 def Run(self, args, module, min_runtime_in_seconds=0):
1165 return self.Main(args, False, min_runtime_in_seconds) 1165 return self.Main(args, False, min_runtime_in_seconds)
1166 1166
1167 1167
1168 class EmbeddedTool(BaseTool):
1169 """Abstract class for tools embedded directly into the test binary.
1170 """
1171 # TODO(glider): need to override Execute() and support process chaining here.
1172
1173 def ToolCommand(self):
1174 # In the simplest case just the args of the script.
1175 return self._args
1176
1177
1178 class Asan(EmbeddedTool):
1179 """AddressSanitizer, a memory error detector.
1180
1181 More information at
1182 http://dev.chromium.org/developers/testing/addresssanitizer
1183 """
1184 def __init__(self):
1185 super(Asan, self).__init__()
1186 self._timeout = 1200
1187 if common.IsMac():
1188 self._env["DYLD_NO_PIE"] = "1"
1189
1190
1191 def ToolName(self):
1192 return "asan"
1193
1194 def ToolCommand(self):
1195 # TODO(glider): use pipes instead of the ugly wrapper here once they
1196 # are supported.
1197 procs = [os.path.join(self._source_dir, "tools", "valgrind",
1198 "asan", "asan_wrapper.sh")]
1199 procs.extend(self._args)
1200 return procs
1201
1202 def Analyze(sels, unused_check_sanity):
1203 return 0
1204
1205
1206 class ToolFactory: 1168 class ToolFactory:
1207 def Create(self, tool_name): 1169 def Create(self, tool_name):
1208 if tool_name == "memcheck": 1170 if tool_name == "memcheck":
1209 return Memcheck() 1171 return Memcheck()
1210 if tool_name == "tsan": 1172 if tool_name == "tsan":
1211 if common.IsWindows(): 1173 if common.IsWindows():
1212 return ThreadSanitizerWindows() 1174 return ThreadSanitizerWindows()
1213 else: 1175 else:
1214 return ThreadSanitizerPosix() 1176 return ThreadSanitizerPosix()
1215 if tool_name == "drmemory" or tool_name == "drmemory_light": 1177 if tool_name == "drmemory" or tool_name == "drmemory_light":
1216 # TODO(timurrrr): remove support for "drmemory" when buildbots are 1178 # TODO(timurrrr): remove support for "drmemory" when buildbots are
1217 # switched to drmemory_light OR make drmemory==drmemory_full the default 1179 # switched to drmemory_light OR make drmemory==drmemory_full the default
1218 # mode when the tool is mature enough. 1180 # mode when the tool is mature enough.
1219 return DrMemory(False, False) 1181 return DrMemory(False, False)
1220 if tool_name == "drmemory_full": 1182 if tool_name == "drmemory_full":
1221 return DrMemory(True, False) 1183 return DrMemory(True, False)
1222 if tool_name == "drmemory_pattern": 1184 if tool_name == "drmemory_pattern":
1223 return DrMemory(False, True) 1185 return DrMemory(False, True)
1224 if tool_name == "tsan_rv": 1186 if tool_name == "tsan_rv":
1225 return RaceVerifier() 1187 return RaceVerifier()
1226 if tool_name == "asan":
1227 return Asan()
1228 try: 1188 try:
1229 platform_name = common.PlatformNames()[0] 1189 platform_name = common.PlatformNames()[0]
1230 except common.NotImplementedError: 1190 except common.NotImplementedError:
1231 platform_name = sys.platform + "(Unknown)" 1191 platform_name = sys.platform + "(Unknown)"
1232 raise RuntimeError, "Unknown tool (tool=%s, platform=%s)" % (tool_name, 1192 raise RuntimeError, "Unknown tool (tool=%s, platform=%s)" % (tool_name,
1233 platform_name) 1193 platform_name)
1234 1194
1235 def CreateTool(tool): 1195 def CreateTool(tool):
1236 return ToolFactory().Create(tool) 1196 return ToolFactory().Create(tool)
OLDNEW
« tools/valgrind/chrome_tests.py ('K') | « tools/valgrind/chrome_tests.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698