Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / build / android / buildbot / bb_device_steps.py
index f4e7f8d..84a668d 100755 (executable)
@@ -435,7 +435,7 @@ def RunInstrumentationTests(options):
 
 
 def RunWebkitTests(options):
-  RunTestSuites(options, ['webkit_unit_tests'])
+  RunTestSuites(options, ['webkit_unit_tests', 'blink_heap_unittests'])
   RunWebkitLint(options.target)
 
 
@@ -530,6 +530,23 @@ def LogcatDump(options):
   RunCmd(['cat', logcat_file])
 
 
+def RunStackToolSteps(options):
+  """Run stack tool steps.
+
+  Stack tool is run for logcat dump, optionally for ASAN.
+  """
+  bb_annotations.PrintNamedStep('Run stack tool with logcat dump')
+  logcat_file = os.path.join(CHROME_OUT_DIR, options.target, 'full_log')
+  RunCmd([os.path.join(CHROME_SRC_DIR, 'third_party', 'android_platform',
+          'development', 'scripts', 'stack'),
+          '--more-info', logcat_file])
+  if options.asan_symbolize:
+    bb_annotations.PrintNamedStep('Run stack tool for ASAN')
+    RunCmd([
+        os.path.join(CHROME_SRC_DIR, 'build', 'android', 'asan_symbolize.py'),
+        '-l', logcat_file])
+
+
 def GenerateTestReport(options):
   bb_annotations.PrintNamedStep('test_report')
   for report in glob.glob(
@@ -566,6 +583,8 @@ def MainTestWrapper(options):
   finally:
     # Run all post test steps
     LogcatDump(options)
+    if not options.disable_stack_tool:
+      RunStackToolSteps(options)
     GenerateTestReport(options)
     # KillHostHeartbeat() has logic to check if heartbeat process is running,
     # and kills only if it finds the process is running on the host.
@@ -602,7 +621,10 @@ def GetDeviceStepsOptParser():
   parser.add_option(
       '--logcat-dump-output',
       help='The logcat dump output will be "tee"-ed into this file')
-
+  parser.add_option('--disable-stack-tool',  action='store_true',
+      help='Do not run stack tool.')
+  parser.add_option('--asan-symbolize',  action='store_true',
+      help='Run stack tool for ASAN')
   return parser