| Index: build/android/pylib/linker/test_case.py
|
| diff --git a/build/android/pylib/linker/test_case.py b/build/android/pylib/linker/test_case.py
|
| index 6789287058e78f85a92c30aab85fef87108a50a7..0530f5344e6f3dc669a48ba747d67be3ed2fc321 100644
|
| --- a/build/android/pylib/linker/test_case.py
|
| +++ b/build/android/pylib/linker/test_case.py
|
| @@ -41,7 +41,6 @@ import re
|
| import time
|
|
|
| from pylib import constants
|
| -from pylib import android_commands
|
| from pylib.base import base_test_result
|
|
|
|
|
| @@ -109,11 +108,12 @@ def _GetBrowserSharedRelroConfig():
|
| return configs[0]
|
|
|
|
|
| -def _WriteCommandLineFile(adb, command_line, command_line_file):
|
| +def _WriteCommandLineFile(device, command_line, command_line_file):
|
| """Create a command-line file on the device. This does not use FlagChanger
|
| because its implementation assumes the device has 'su', and thus does
|
| not work at all with production devices."""
|
| - adb.RunShellCommand('echo "%s" > %s' % (command_line, command_line_file))
|
| + device.old_interface.RunShellCommand(
|
| + 'echo "%s" > %s' % (command_line, command_line_file))
|
|
|
|
|
| def _CheckLinkerTestStatus(logcat):
|
| @@ -148,24 +148,24 @@ def _CheckLinkerTestStatus(logcat):
|
| return (False, None, None)
|
|
|
|
|
| -def _StartActivityAndWaitForLinkerTestStatus(adb, timeout):
|
| +def _StartActivityAndWaitForLinkerTestStatus(device, timeout):
|
| """Force-start an activity and wait up to |timeout| seconds until the full
|
| - linker test status lines appear in the logcat, recorded through |adb|.
|
| + linker test status lines appear in the logcat, recorded through |device|.
|
| Args:
|
| - adb: An AndroidCommands instance.
|
| + device: A DeviceUtils instance.
|
| timeout: Timeout in seconds
|
| Returns:
|
| A (status, logs) tuple, where status is a ResultType constant, and logs
|
| if the final logcat output as a string.
|
| """
|
| # 1. Start recording logcat with appropriate filters.
|
| - adb.StartRecordingLogcat(clear=True, filters=_LOGCAT_FILTERS)
|
| + device.old_interface.StartRecordingLogcat(
|
| + clear=True, filters=_LOGCAT_FILTERS)
|
|
|
| try:
|
| # 2. Force-start activity.
|
| - adb.StartActivity(package=_PACKAGE_NAME,
|
| - activity=_ACTIVITY_NAME,
|
| - force_stop=True)
|
| + device.old_interface.StartActivity(
|
| + package=_PACKAGE_NAME, activity=_ACTIVITY_NAME, force_stop=True)
|
|
|
| # 3. Wait up to |timeout| seconds until the test status is in the logcat.
|
| num_tries = 0
|
| @@ -175,12 +175,12 @@ def _StartActivityAndWaitForLinkerTestStatus(adb, timeout):
|
| time.sleep(1)
|
| num_tries += 1
|
| found, browser_ok, renderer_ok = _CheckLinkerTestStatus(
|
| - adb.GetCurrentRecordedLogcat())
|
| + device.old_interface.GetCurrentRecordedLogcat())
|
| if found:
|
| break
|
|
|
| finally:
|
| - logs = adb.StopRecordingLogcat()
|
| + logs = device.old_interface.StopRecordingLogcat()
|
|
|
| if num_tries >= max_tries:
|
| return ResultType.TIMEOUT, logs
|
| @@ -295,10 +295,10 @@ class LinkerTestCaseBase(object):
|
| self.qualified_name = '%s.%s' % (class_name, test_suffix)
|
| self.tagged_name = self.qualified_name
|
|
|
| - def _RunTest(self, _adb):
|
| + def _RunTest(self, _device):
|
| """Run the test, must be overriden.
|
| Args:
|
| - _adb: An AndroidCommands instance to the device.
|
| + _device: A DeviceUtils interface.
|
| Returns:
|
| A (status, log) tuple, where <status> is a ResultType constant, and <log>
|
| is the logcat output captured during the test in case of error, or None
|
| @@ -316,16 +316,15 @@ class LinkerTestCaseBase(object):
|
| margin = 8
|
| print '[ %-*s ] %s' % (margin, 'RUN', self.tagged_name)
|
| logging.info('Running linker test: %s', self.tagged_name)
|
| - adb = android_commands.AndroidCommands(device)
|
|
|
| # Create command-line file on device.
|
| command_line_flags = ''
|
| if self.is_low_memory:
|
| command_line_flags = '--low-memory-device'
|
| - _WriteCommandLineFile(adb, command_line_flags, _COMMAND_LINE_FILE)
|
| + _WriteCommandLineFile(device, command_line_flags, _COMMAND_LINE_FILE)
|
|
|
| # Run the test.
|
| - status, logs = self._RunTest(adb)
|
| + status, logs = self._RunTest(device)
|
|
|
| result_text = 'OK'
|
| if status == ResultType.FAIL:
|
| @@ -374,9 +373,9 @@ class LinkerSharedRelroTest(LinkerTestCaseBase):
|
| - The test case passes if the <status> for both the browser and renderer
|
| process are SUCCESS. Otherwise its a fail.
|
| """
|
| - def _RunTest(self, adb):
|
| + def _RunTest(self, device):
|
| # Wait up to 30 seconds until the linker test status is in the logcat.
|
| - return _StartActivityAndWaitForLinkerTestStatus(adb, timeout=30)
|
| + return _StartActivityAndWaitForLinkerTestStatus(device, timeout=30)
|
|
|
|
|
| class LinkerLibraryAddressTest(LinkerTestCaseBase):
|
| @@ -391,8 +390,8 @@ class LinkerLibraryAddressTest(LinkerTestCaseBase):
|
| - For regular devices, the browser process should load libraries above
|
| 0x4000_0000, and renderer ones below it.
|
| """
|
| - def _RunTest(self, adb):
|
| - result, logs = _StartActivityAndWaitForLinkerTestStatus(adb, timeout=30)
|
| + def _RunTest(self, device):
|
| + result, logs = _StartActivityAndWaitForLinkerTestStatus(device, timeout=30)
|
|
|
| # Return immediately in case of timeout.
|
| if result == ResultType.TIMEOUT:
|
| @@ -478,14 +477,15 @@ class LinkerRandomizationTest(LinkerTestCaseBase):
|
| that if there are more than one pair of identical addresses, then the
|
| load addresses are not random enough for this test.
|
| """
|
| - def _RunTest(self, adb):
|
| + def _RunTest(self, device):
|
| max_loops = 5
|
| browser_lib_map_list = []
|
| renderer_lib_map_list = []
|
| logs_list = []
|
| for _ in range(max_loops):
|
| # Start the activity.
|
| - result, logs = _StartActivityAndWaitForLinkerTestStatus(adb, timeout=30)
|
| + result, logs = _StartActivityAndWaitForLinkerTestStatus(
|
| + device, timeout=30)
|
| if result == ResultType.TIMEOUT:
|
| # Something bad happened. Return immediately.
|
| return result, logs
|
|
|