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

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

Issue 1288993002: Revert of [Android] Remove android_commands and android_testrunner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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
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 """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 itertools 8 import itertools
9 import logging 9 import logging
10 import os 10 import os
11 import posixpath 11 import posixpath
12 import shlex 12 import shlex
13 import sys 13 import sys
14 import tempfile 14 import tempfile
15 import time 15 import time
16 16
17 from pylib import android_commands
17 from pylib import constants 18 from pylib import constants
18 from pylib import pexpect 19 from pylib import pexpect
19 from pylib.device import device_errors 20 from pylib.device import device_errors
20 from pylib.device import intent 21 from pylib.device import intent
21 from pylib.gtest import gtest_test_instance 22 from pylib.gtest import gtest_test_instance
22 from pylib.gtest import local_device_gtest_run 23 from pylib.gtest import local_device_gtest_run
23 from pylib.gtest.test_package import TestPackage 24 from pylib.gtest.test_package import TestPackage
24 25
25 26
26 class TestPackageApk(TestPackage): 27 class TestPackageApk(TestPackage):
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 64
64 def _WatchFifo(self, device, timeout, logfile=None): 65 def _WatchFifo(self, device, timeout, logfile=None):
65 for i in range(100): 66 for i in range(100):
66 if device.FileExists(self._GetFifo()): 67 if device.FileExists(self._GetFifo()):
67 logging.info('Fifo created. Slept for %f secs' % (i * 0.5)) 68 logging.info('Fifo created. Slept for %f secs' % (i * 0.5))
68 break 69 break
69 time.sleep(0.5) 70 time.sleep(0.5)
70 else: 71 else:
71 raise device_errors.DeviceUnreachableError( 72 raise device_errors.DeviceUnreachableError(
72 'Unable to find fifo on device %s ' % self._GetFifo()) 73 'Unable to find fifo on device %s ' % self._GetFifo())
73 args = ['-s', device.adb.GetDeviceSerial(), 'shell', 'cat', self._GetFifo()] 74 args = shlex.split(device.old_interface.Adb()._target_arg)
75 args += ['shell', 'cat', self._GetFifo()]
74 return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile) 76 return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile)
75 77
76 def _StartActivity(self, device, force_stop=True): 78 def _StartActivity(self, device, force_stop=True):
77 device.StartActivity( 79 device.StartActivity(
78 intent.Intent(package=self._package_info.package, 80 intent.Intent(package=self._package_info.package,
79 activity=self._package_info.activity, 81 activity=self._package_info.activity,
80 action='android.intent.action.MAIN', 82 action='android.intent.action.MAIN',
81 extras=self._extras), 83 extras=self._extras),
82 # No wait since the runner waits for FIFO creation anyway. 84 # No wait since the runner waits for FIFO creation anyway.
83 blocking=False, 85 blocking=False,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 def SpawnTestProcess(self, device): 136 def SpawnTestProcess(self, device):
135 try: 137 try:
136 self.tool.SetupEnvironment() 138 self.tool.SetupEnvironment()
137 self._ClearFifo(device) 139 self._ClearFifo(device)
138 # Doesn't need to stop an Activity because ClearApplicationState() is 140 # Doesn't need to stop an Activity because ClearApplicationState() is
139 # always called before this call and so it is already stopped at this 141 # always called before this call and so it is already stopped at this
140 # point. 142 # point.
141 self._StartActivity(device, force_stop=False) 143 self._StartActivity(device, force_stop=False)
142 finally: 144 finally:
143 self.tool.CleanUpEnvironment() 145 self.tool.CleanUpEnvironment()
144 logfile = self._NewLineNormalizer(sys.stdout) 146 logfile = android_commands.NewLineNormalizer(sys.stdout)
145 return self._WatchFifo(device, timeout=10, logfile=logfile) 147 return self._WatchFifo(device, timeout=10, logfile=logfile)
146 148
147 class _NewLineNormalizer(object):
148 def __init__(self, output):
149 self._output = output
150
151 def write(self, data):
152 data = data.replace('\r\r\n', '\n')
153 self._output.write(data)
154
155 def flush(self):
156 self._output.flush()
157
158 #override 149 #override
159 def Install(self, device): 150 def Install(self, device):
160 self.tool.CopyFiles(device) 151 self.tool.CopyFiles(device)
161 device.Install(self.suite_path) 152 device.Install(self.suite_path)
162 153
163 #override 154 #override
164 def PullAppFiles(self, device, files, directory): 155 def PullAppFiles(self, device, files, directory):
165 local_device_gtest_run.PullAppFilesImpl( 156 local_device_gtest_run.PullAppFilesImpl(
166 device, self._package_info.package, files, directory) 157 device, self._package_info.package, files, directory)
OLDNEW
« no previous file with comments | « build/android/pylib/device/device_utils_test.py ('k') | build/android/pylib/instrumentation/test_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698