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 """Defines TestPackageApk to help run APK-based native tests.""" |
6 # pylint: disable=W0212 | 6 # pylint: disable=W0212 |
7 | 7 |
8 import logging | 8 import logging |
9 import os | 9 import os |
10 import shlex | 10 import shlex |
11 import sys | 11 import sys |
12 import tempfile | 12 import tempfile |
13 import time | 13 import time |
14 | 14 |
15 from pylib import android_commands | 15 from pylib import android_commands |
16 from pylib import constants | 16 from pylib import constants |
17 from pylib import pexpect | 17 from pylib import pexpect |
18 from pylib.device import device_errors | 18 from pylib.device import device_errors |
19 from pylib.device import intent | 19 from pylib.device import intent |
| 20 from pylib.gtest import gtest_test_instance |
20 from pylib.gtest.test_package import TestPackage | 21 from pylib.gtest.test_package import TestPackage |
21 | 22 |
22 | 23 |
23 class TestPackageApk(TestPackage): | 24 class TestPackageApk(TestPackage): |
24 """A helper class for running APK-based native tests.""" | 25 """A helper class for running APK-based native tests.""" |
25 | 26 |
26 def __init__(self, suite_name): | 27 def __init__(self, suite_name): |
27 """ | 28 """ |
28 Args: | 29 Args: |
29 suite_name: Name of the test suite (e.g. base_unittests). | 30 suite_name: Name of the test suite (e.g. base_unittests). |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 self._ClearFifo(device) | 105 self._ClearFifo(device) |
105 self._StartActivity(device) | 106 self._StartActivity(device) |
106 # Wait for native test to complete. | 107 # Wait for native test to complete. |
107 p = self._WatchFifo(device, timeout=30 * self.tool.GetTimeoutScale()) | 108 p = self._WatchFifo(device, timeout=30 * self.tool.GetTimeoutScale()) |
108 p.expect('<<ScopedMainEntryLogger') | 109 p.expect('<<ScopedMainEntryLogger') |
109 p.close() | 110 p.close() |
110 finally: | 111 finally: |
111 self.tool.CleanUpEnvironment() | 112 self.tool.CleanUpEnvironment() |
112 # We need to strip the trailing newline. | 113 # We need to strip the trailing newline. |
113 content = [line.rstrip() for line in p.before.splitlines()] | 114 content = [line.rstrip() for line in p.before.splitlines()] |
114 return self._ParseGTestListTests(content) | 115 return gtest_test_instance.ParseGTestListTests(content) |
115 | 116 |
116 #override | 117 #override |
117 def SpawnTestProcess(self, device): | 118 def SpawnTestProcess(self, device): |
118 try: | 119 try: |
119 self.tool.SetupEnvironment() | 120 self.tool.SetupEnvironment() |
120 self._ClearFifo(device) | 121 self._ClearFifo(device) |
121 self._StartActivity(device) | 122 self._StartActivity(device) |
122 finally: | 123 finally: |
123 self.tool.CleanUpEnvironment() | 124 self.tool.CleanUpEnvironment() |
124 logfile = android_commands.NewLineNormalizer(sys.stdout) | 125 logfile = android_commands.NewLineNormalizer(sys.stdout) |
125 return self._WatchFifo(device, timeout=10, logfile=logfile) | 126 return self._WatchFifo(device, timeout=10, logfile=logfile) |
126 | 127 |
127 #override | 128 #override |
128 def Install(self, device): | 129 def Install(self, device): |
129 self.tool.CopyFiles(device) | 130 self.tool.CopyFiles(device) |
130 device.Install(self.suite_path) | 131 device.Install(self.suite_path) |
OLD | NEW |