OLD | NEW |
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 """Defines TestPackageApk to help run APK-based native tests.""" |
5 | 6 |
6 import logging | 7 import logging |
7 import os | 8 import os |
8 import shlex | 9 import shlex |
9 import sys | 10 import sys |
10 import tempfile | 11 import tempfile |
11 import time | 12 import time |
12 | 13 |
13 from pylib import android_commands | 14 from pylib import android_commands |
14 from pylib import constants | 15 from pylib import constants |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 def GetAllTests(self): | 90 def GetAllTests(self): |
90 """Returns a list of all tests available in the test suite.""" | 91 """Returns a list of all tests available in the test suite.""" |
91 self._CreateTestRunnerScript('--gtest_list_tests') | 92 self._CreateTestRunnerScript('--gtest_list_tests') |
92 try: | 93 try: |
93 self.tool.SetupEnvironment() | 94 self.tool.SetupEnvironment() |
94 # Clear and start monitoring logcat. | 95 # Clear and start monitoring logcat. |
95 self._ClearFifo() | 96 self._ClearFifo() |
96 self._StartActivity() | 97 self._StartActivity() |
97 # Wait for native test to complete. | 98 # Wait for native test to complete. |
98 p = self._WatchFifo(timeout=30 * self.tool.GetTimeoutScale()) | 99 p = self._WatchFifo(timeout=30 * self.tool.GetTimeoutScale()) |
99 p.expect("<<ScopedMainEntryLogger") | 100 p.expect('<<ScopedMainEntryLogger') |
100 p.close() | 101 p.close() |
101 finally: | 102 finally: |
102 self.tool.CleanUpEnvironment() | 103 self.tool.CleanUpEnvironment() |
103 # We need to strip the trailing newline. | 104 # We need to strip the trailing newline. |
104 content = [line.rstrip() for line in p.before.splitlines()] | 105 content = [line.rstrip() for line in p.before.splitlines()] |
105 ret = self._ParseGTestListTests(content) | 106 ret = self._ParseGTestListTests(content) |
106 return ret | 107 return ret |
107 | 108 |
108 def CreateTestRunnerScript(self, gtest_filter, test_arguments): | 109 def CreateTestRunnerScript(self, test_filter, test_arguments): |
109 self._CreateTestRunnerScript('--gtest_filter=%s %s' % (gtest_filter, | 110 self._CreateTestRunnerScript('--gtest_filter=%s %s' % (test_filter, |
110 test_arguments)) | 111 test_arguments)) |
111 | 112 |
112 def RunTestsAndListResults(self): | 113 def RunTestsAndListResults(self): |
113 try: | 114 try: |
114 self.tool.SetupEnvironment() | 115 self.tool.SetupEnvironment() |
115 self._ClearFifo() | 116 self._ClearFifo() |
116 self._StartActivity() | 117 self._StartActivity() |
117 finally: | 118 finally: |
118 self.tool.CleanUpEnvironment() | 119 self.tool.CleanUpEnvironment() |
119 logfile = android_commands.NewLineNormalizer(sys.stdout) | 120 logfile = android_commands.NewLineNormalizer(sys.stdout) |
(...skipping 12 matching lines...) Expand all Loading... |
132 if self._NeedsInstall(): | 133 if self._NeedsInstall(): |
133 # Always uninstall the previous one (by activity name); we don't | 134 # Always uninstall the previous one (by activity name); we don't |
134 # know what was embedded in it. | 135 # know what was embedded in it. |
135 self.adb.ManagedInstall(self.test_suite_full, False, | 136 self.adb.ManagedInstall(self.test_suite_full, False, |
136 package_name=self._apk_package_name) | 137 package_name=self._apk_package_name) |
137 | 138 |
138 def _GetTestSuiteBaseName(self): | 139 def _GetTestSuiteBaseName(self): |
139 """Returns the base name of the test suite.""" | 140 """Returns the base name of the test suite.""" |
140 # APK test suite names end with '-debug.apk' | 141 # APK test suite names end with '-debug.apk' |
141 return os.path.basename(self.test_suite).rsplit('-debug', 1)[0] | 142 return os.path.basename(self.test_suite).rsplit('-debug', 1)[0] |
OLD | NEW |