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

Side by Side Diff: build/android/pylib/test_package_apk.py

Issue 10804003: Android: fix test runners for non-rooted devices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Uses external storage Created 8 years, 5 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 | Annotate | Revision Log
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 5
6 import os 6 import os
7 import re 7 import re
8 import sys 8 import sys
9 9
10 import cmd_helper 10 import cmd_helper
(...skipping 11 matching lines...) Expand all
22 device: Device to run the tests. 22 device: Device to run the tests.
23 test_suite: A specific test suite to run, empty to run all. 23 test_suite: A specific test suite to run, empty to run all.
24 timeout: Timeout for each test. 24 timeout: Timeout for each test.
25 rebaseline: Whether or not to run tests in isolation and update the filter. 25 rebaseline: Whether or not to run tests in isolation and update the filter.
26 performance_test: Whether or not performance test(s). 26 performance_test: Whether or not performance test(s).
27 cleanup_test_files: Whether or not to cleanup test files on device. 27 cleanup_test_files: Whether or not to cleanup test files on device.
28 tool: Name of the Valgrind tool. 28 tool: Name of the Valgrind tool.
29 dump_debug_info: A debug_info object. 29 dump_debug_info: A debug_info object.
30 """ 30 """
31 31
32 APK_DATA_DIR = '/data/user/0/org.chromium.native_test/files/'
33
34 def __init__(self, adb, device, test_suite, timeout, rebaseline, 32 def __init__(self, adb, device, test_suite, timeout, rebaseline,
35 performance_test, cleanup_test_files, tool, 33 performance_test, cleanup_test_files, tool,
36 dump_debug_info): 34 dump_debug_info):
37 TestPackage.__init__(self, adb, device, test_suite, timeout, 35 TestPackage.__init__(self, adb, device, test_suite, timeout,
38 rebaseline, performance_test, cleanup_test_files, 36 rebaseline, performance_test, cleanup_test_files,
39 tool, dump_debug_info) 37 tool, dump_debug_info)
40 38
41 def _CreateTestRunnerScript(self, options): 39 def _CreateTestRunnerScript(self, options):
42 command_line_file = tempfile.NamedTemporaryFile() 40 command_line_file = tempfile.NamedTemporaryFile()
43 # GTest expects argv[0] to be the executable path. 41 # GTest expects argv[0] to be the executable path.
(...skipping 18 matching lines...) Expand all
62 'am start -n ' 60 'am start -n '
63 'org.chromium.native_test/' 61 'org.chromium.native_test/'
64 'org.chromium.native_test.ChromeNativeTestActivity') 62 'org.chromium.native_test.ChromeNativeTestActivity')
65 # Wait for native test to complete. 63 # Wait for native test to complete.
66 self.adb.WaitForLogMatch(re.compile('<<nativeRunTests'), None) 64 self.adb.WaitForLogMatch(re.compile('<<nativeRunTests'), None)
67 finally: 65 finally:
68 self.tool.CleanUpEnvironment() 66 self.tool.CleanUpEnvironment()
69 # Copy stdout.txt and read contents. 67 # Copy stdout.txt and read contents.
70 stdout_file = tempfile.NamedTemporaryFile() 68 stdout_file = tempfile.NamedTemporaryFile()
71 ret = [] 69 ret = []
72 self.adb.Adb().Pull(TestPackageApk.APK_DATA_DIR + 'stdout.txt', 70 self.adb.Adb().Pull('/sdcard/native_tests/stdout.txt', stdout_file.name)
John Grabowski 2012/07/18 20:40:49 Prefer string const higher in the class (like befo
bulach 2012/07/19 08:14:33 Done.
73 stdout_file.name)
74 # We need to strip the trailing newline. 71 # We need to strip the trailing newline.
75 content = [line.rstrip() for line in open(stdout_file.name)] 72 content = [line.rstrip() for line in open(stdout_file.name)]
76 ret = self._ParseGTestListTests(content) 73 ret = self._ParseGTestListTests(content)
77 return ret 74 return ret
78 75
79 def CreateTestRunnerScript(self, gtest_filter, test_arguments): 76 def CreateTestRunnerScript(self, gtest_filter, test_arguments):
80 self._CreateTestRunnerScript('--gtest_filter=%s %s' % (gtest_filter, 77 self._CreateTestRunnerScript('--gtest_filter=%s %s' % (gtest_filter,
81 test_arguments)) 78 test_arguments))
82 79
83 def RunTestsAndListResults(self): 80 def RunTestsAndListResults(self):
(...skipping 16 matching lines...) Expand all
100 timeout_time=60*5) 97 timeout_time=60*5)
101 logging.info('Installing new apk') 98 logging.info('Installing new apk')
102 self.adb.Adb().SendCommand('install -r ' + self.test_suite_full, 99 self.adb.Adb().SendCommand('install -r ' + self.test_suite_full,
103 timeout_time=60*5) 100 timeout_time=60*5)
104 logging.info('Install has completed.') 101 logging.info('Install has completed.')
105 102
106 def _GetTestSuiteBaseName(self): 103 def _GetTestSuiteBaseName(self):
107 """Returns the base name of the test suite.""" 104 """Returns the base name of the test suite."""
108 # APK test suite names end with '-debug.apk' 105 # APK test suite names end with '-debug.apk'
109 return os.path.basename(self.test_suite).rsplit('-debug', 1)[0] 106 return os.path.basename(self.test_suite).rsplit('-debug', 1)[0]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698