[test] Add output for investigating win-asan failures
Also fix asan environment for testing on windows. TBR=sergiyb@chromium.org Bug: chromium:726584 Change-Id: Ic9e6afa714f4757ad1b0f2ebfa742e742e1c04b9 Reviewed-on: https://chromium-review.googlesource.com/720811 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#48583}
This commit is contained in:
parent
4b42656dd6
commit
089dd7d244
@ -47,10 +47,10 @@ class CcTestSuite(testsuite.TestSuite):
|
|||||||
shell = os.path.abspath(os.path.join(context.shell_dir, self.shell()))
|
shell = os.path.abspath(os.path.join(context.shell_dir, self.shell()))
|
||||||
if utils.IsWindows():
|
if utils.IsWindows():
|
||||||
shell += ".exe"
|
shell += ".exe"
|
||||||
output = commands.Execute(context.command_prefix +
|
cmd = context.command_prefix + [shell, "--list"] + context.extra_flags
|
||||||
[shell, "--list"] +
|
output = commands.Execute(cmd)
|
||||||
context.extra_flags)
|
|
||||||
if output.exit_code != 0:
|
if output.exit_code != 0:
|
||||||
|
print ' '.join(cmd)
|
||||||
print output.stdout
|
print output.stdout
|
||||||
print output.stderr
|
print output.stderr
|
||||||
return []
|
return []
|
||||||
|
@ -144,6 +144,9 @@ def RunProcess(verbose, timeout, args, additional_env, **rest):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# TODO(machenbach): Instead of passing args around, we should introduce an
|
||||||
|
# immutable Command class (that just represents the command with all flags and
|
||||||
|
# is pretty-printable) and a member method for running such a command.
|
||||||
def Execute(args, verbose=False, timeout=None, env=None):
|
def Execute(args, verbose=False, timeout=None, env=None):
|
||||||
args = [ c for c in args if c != "" ]
|
args = [ c for c in args if c != "" ]
|
||||||
return RunProcess(verbose, timeout, args, env or {})
|
return RunProcess(verbose, timeout, args, env or {})
|
||||||
|
@ -318,12 +318,16 @@ class GoogleTestSuite(TestSuite):
|
|||||||
|
|
||||||
output = None
|
output = None
|
||||||
for i in xrange(3): # Try 3 times in case of errors.
|
for i in xrange(3): # Try 3 times in case of errors.
|
||||||
output = commands.Execute(context.command_prefix +
|
cmd = (
|
||||||
[shell, "--gtest_list_tests"] +
|
context.command_prefix +
|
||||||
context.extra_flags)
|
[shell, "--gtest_list_tests"] +
|
||||||
|
context.extra_flags
|
||||||
|
)
|
||||||
|
output = commands.Execute(cmd)
|
||||||
if output.exit_code == 0:
|
if output.exit_code == 0:
|
||||||
break
|
break
|
||||||
print "Test executable failed to list the tests (try %d).\n\nStdout:" % i
|
print "Test executable failed to list the tests (try %d).\n\nStdout:" % i
|
||||||
|
print ' '.join(cmd)
|
||||||
print output.stdout
|
print output.stdout
|
||||||
print "\nStderr:"
|
print "\nStderr:"
|
||||||
print output.stderr
|
print output.stderr
|
||||||
|
@ -665,8 +665,8 @@ class StandardTestRunner(base_runner.BaseTestRunner):
|
|||||||
|
|
||||||
if options.asan:
|
if options.asan:
|
||||||
asan_options = [symbolizer, "allow_user_segv_handler=1"]
|
asan_options = [symbolizer, "allow_user_segv_handler=1"]
|
||||||
if not utils.GuessOS() == 'macos':
|
if not utils.GuessOS() in ['macos', 'windows']:
|
||||||
# LSAN is not available on mac.
|
# LSAN is not available on mac and windows.
|
||||||
asan_options.append('detect_leaks=1')
|
asan_options.append('detect_leaks=1')
|
||||||
os.environ['ASAN_OPTIONS'] = ":".join(asan_options)
|
os.environ['ASAN_OPTIONS'] = ":".join(asan_options)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user