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