Add annotator tags for better debugging. More suppressions and other tweaks.
BUG=None TEST= Review URL: http://codereview.chromium.org/9104002 git-svn-id: http://src.chromium.org/svn/trunk/src/build@117583 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
Родитель
850539653c
Коммит
6a48d3983a
|
@ -6,3 +6,10 @@ ReadOnlyFileUtilTest.ContentsEqual
|
|||
ReadOnlyFileUtilTest.TextContentsEqual
|
||||
SharedMemoryTest.OpenExclusive
|
||||
StackTrace.DebugPrintBacktrace
|
||||
VerifyPathControlledByUserTest.Symlinks
|
||||
PathServiceTest.Get
|
||||
SharedMemoryTest.OpenClose
|
||||
StringPrintfTest.StringPrintfMisc
|
||||
StringPrintfTest.StringAppendfString
|
||||
StringPrintfTest.StringAppendfInt
|
||||
StringPrintfTest.StringPrintfBounds
|
||||
|
|
|
@ -49,4 +49,7 @@ WebSocketJobTest.ThrottlingSpdySpdyEnabled
|
|||
X509CertificateWeakDigestTest.*
|
||||
FtpDirectoryListingParserTest.*
|
||||
*/X509CertificateWeakDigestTest.*
|
||||
|
||||
TransportSecurityStateTest.BogusPinsHeaders
|
||||
TransportSecurityStateTest.ValidPinsHeaders
|
||||
HTTPSRequestTest.ResumeTest
|
||||
HTTPSRequestTest.SSLSessionCacheShardTest
|
||||
|
|
|
@ -140,7 +140,7 @@ class Xvfb(object):
|
|||
|
||||
def RunTests(device, test_suite, gtest_filter, test_arguments, rebaseline,
|
||||
timeout, performance_test, cleanup_test_files, tool,
|
||||
log_dump_name, fast_and_loose=False):
|
||||
log_dump_name, fast_and_loose=False, annotate=False):
|
||||
"""Runs the tests.
|
||||
|
||||
Args:
|
||||
|
@ -156,6 +156,7 @@ def RunTests(device, test_suite, gtest_filter, test_arguments, rebaseline,
|
|||
log_dump_name: Name of log dump file.
|
||||
fast_and_loose: should we go extra-fast but sacrifice stability
|
||||
and/or correctness? Intended for quick cycle testing; not for bots!
|
||||
annotate: should we print buildbot-style annotations?
|
||||
|
||||
Returns:
|
||||
A TestResults object.
|
||||
|
@ -178,27 +179,38 @@ def RunTests(device, test_suite, gtest_filter, test_arguments, rebaseline,
|
|||
print 'Known suites: ' + str(_TEST_SUITES)
|
||||
print 'Running these: ' + str(fully_qualified_test_suites)
|
||||
for t in fully_qualified_test_suites:
|
||||
if annotate:
|
||||
print '@@@BUILD_STEP Test suite %s@@@' % os.path.basename(t)
|
||||
test = SingleTestRunner(device, t, gtest_filter, test_arguments,
|
||||
timeout, rebaseline, performance_test,
|
||||
cleanup_test_files, tool, not not log_dump_name,
|
||||
fast_and_loose=fast_and_loose)
|
||||
test.RunTests()
|
||||
|
||||
results += [test.test_results]
|
||||
# Collect debug info.
|
||||
debug_info_list += [test.dump_debug_info]
|
||||
if rebaseline:
|
||||
test.UpdateFilter(test.test_results.failed)
|
||||
elif test.test_results.failed:
|
||||
# Stop running test if encountering failed test.
|
||||
test.test_results.LogFull()
|
||||
break
|
||||
# Zip all debug info outputs into a file named by log_dump_name.
|
||||
debug_info.GTestDebugInfo.ZipAndCleanResults(
|
||||
os.path.join(run_tests_helper.CHROME_DIR, 'out', 'Release',
|
||||
'debug_info_dumps'),
|
||||
log_dump_name, [d for d in debug_info_list if d])
|
||||
|
||||
if annotate:
|
||||
if test.test_results.timed_out:
|
||||
print '@@@STEP_WARNINGS@@@'
|
||||
elif test.test_results.failed:
|
||||
print '@@@STEP_FAILURE@@@'
|
||||
else:
|
||||
print 'Step success!' # No annotation needed
|
||||
|
||||
return TestResults.FromTestResults(results)
|
||||
|
||||
|
||||
def _RunATestSuite(options):
|
||||
"""Run a single test suite.
|
||||
|
||||
|
@ -213,6 +225,8 @@ def _RunATestSuite(options):
|
|||
0 if successful, number of failing tests otherwise.
|
||||
"""
|
||||
attached_devices = []
|
||||
buildbot_emulator = None
|
||||
|
||||
if options.use_emulator:
|
||||
t = TimeProfile('Emulator launch')
|
||||
buildbot_emulator = emulator.Emulator(options.fast_and_loose)
|
||||
|
@ -232,7 +246,8 @@ def _RunATestSuite(options):
|
|||
options.performance_test,
|
||||
options.cleanup_test_files, options.tool,
|
||||
options.log_dump,
|
||||
fast_and_loose=options.fast_and_loose)
|
||||
fast_and_loose=options.fast_and_loose,
|
||||
annotate=options.annotate)
|
||||
|
||||
if buildbot_emulator:
|
||||
buildbot_emulator.Shutdown()
|
||||
|
@ -264,19 +279,18 @@ def Dispatch(options):
|
|||
if options.test_suite == 'help':
|
||||
ListTestSuites()
|
||||
return 0
|
||||
buildbot_emulator = None
|
||||
|
||||
if options.use_xvfb:
|
||||
xvfb = Xvfb()
|
||||
xvfb.Start()
|
||||
|
||||
all_test_suites = [options.test_suite] or FullyQualifiedTestSuites()
|
||||
failures = 0
|
||||
if options.use_emulator and options.restart_emulator_each_test:
|
||||
for suite in all_test_suites:
|
||||
options.test_suite = suite
|
||||
failures += _RunATestSuite(options)
|
||||
if options.test_suite:
|
||||
all_test_suites = [options.test_suite]
|
||||
else:
|
||||
all_test_suites = FullyQualifiedTestSuites()
|
||||
failures = 0
|
||||
for suite in all_test_suites:
|
||||
options.test_suite = suite
|
||||
failures += _RunATestSuite(options)
|
||||
|
||||
if options.use_xvfb:
|
||||
|
@ -332,9 +346,9 @@ def main(argv):
|
|||
option_parser.add_option('--repeat', dest='repeat', type='int',
|
||||
default=2,
|
||||
help='Repeat count on test timeout')
|
||||
option_parser.add_option('--restart_emulator_each_test',
|
||||
default='True',
|
||||
help='Restart the emulator for each test?')
|
||||
option_parser.add_option('--annotate', default=True,
|
||||
help='Print buildbot-style annotate messages '
|
||||
'for each test suite. Default=True')
|
||||
options, args = option_parser.parse_args(argv)
|
||||
if len(args) > 1:
|
||||
print 'Unknown argument:', args[1:]
|
||||
|
|
Загрузка…
Ссылка в новой задаче