コード例 #1
0
    def testPsutil2(self):
        psutil = self.psutil_2_0()
        android_platform_backend.psutil = psutil

        # Mock an empty /proc/pid/stat.
        backend = android_platform_backend.AndroidPlatformBackend(
            android_device.AndroidDevice('1234'), self._options)
        cpu_stats = backend.GetCpuStats('7702')
        self.assertEquals({}, cpu_stats)
        self.assertEquals([[0]], psutil.set_cpu_affinity_args)
コード例 #2
0
def FindAllAvailableBrowsers(finder_options):
    """Finds all the desktop browsers available on this machine."""
    if not CanFindAvailableBrowsers():
        logging.info('No adb command found. ' +
                     'Will not try searching for Android browsers.')
        return []
    if finder_options.android_device:
        devices = [
            android_device.AndroidDevice(
                finder_options.android_device,
                enable_performance_mode=not finder_options.no_performance_mode)
        ]
    else:
        devices = android_device.AndroidDevice.GetAllConnectedDevices()

    if len(devices) == 0:
        logging.info('No android devices found.')
        return []
    elif len(devices) > 1:
        logging.warn(
            'Multiple devices attached. Please specify one of the following:\n'
            + '\n'.join(['  --device=%s' % d.device_id for d in devices]))
        return []

    try:
        android_platform = platform.GetPlatformForDevice(devices[0])
    except exceptions.PlatformError:
        return []

    # Host side workaround for crbug.com/268450 (adb instability).
    # The adb server has a race which is mitigated by binding to a single core.
    if psutil:
        for proc in psutil.process_iter():
            try:
                if 'adb' in proc.name:
                    if 'cpu_affinity' in dir(proc):
                        proc.cpu_affinity([0])  # New versions of psutil.
                    elif 'set_cpu_affinity' in dir(proc):
                        proc.set_cpu_affinity([0])  # Older versions.
                    else:
                        logging.warn(
                            'Cannot set CPU affinity due to stale psutil version: %s',
                            '.'.join(str(x) for x in psutil.version_info))
            except (psutil.NoSuchProcess, psutil.AccessDenied):
                logging.warn('Failed to set adb process CPU affinity')

    possible_browsers = []
    for name, package_info in CHROME_PACKAGE_NAMES.iteritems():
        [package, backend_settings, local_apk] = package_info
        b = PossibleAndroidBrowser(name, finder_options, android_platform,
                                   backend_settings(package), local_apk)
        if b.platform.CanLaunchApplication(package) or b.HaveLocalAPK():
            possible_browsers.append(b)
    return possible_browsers
コード例 #3
0
 def testGetCpuStats(self):
     proc_stat_content = (
         '7702 (.android.chrome) S 167 167 0 0 -1 1077936448 '
         '3247 0 0 0 4 1 0 0 20 0 9 0 5603962 337379328 5867 '
         '4294967295 1074458624 1074463824 3197495984 3197494152 '
         '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
         '1074470376 1074470912 1102155776\n')
     self._stubs.adb_commands.adb_device.mock_content = proc_stat_content
     self._stubs.adb_commands.adb_device.has_root = True
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('12345'), self._options)
     cpu_stats = backend.GetCpuStats('7702')
     self.assertEquals(cpu_stats, {'CpuProcessTime': 0.05})
 def testGetCpuStats(self):
   proc_stat_content = [
       '7702 (.android.chrome) S 167 167 0 0 -1 1077936448 '
       '3247 0 0 0 4 1 0 0 20 0 9 0 5603962 337379328 5867 '
       '4294967295 1074458624 1074463824 3197495984 3197494152 '
       '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
       '1074470376 1074470912 1102155776']
   self._stubs.adb_commands.adb_device.mock_content = proc_stat_content
   old_interface = self._stubs.adb_commands.adb_device.old_interface
   old_interface.can_access_protected_file_contents = True
   backend = android_platform_backend.AndroidPlatformBackend(
       android_device.AndroidDevice('12345'))
   cpu_stats = backend.GetCpuStats('7702')
   self.assertEquals(cpu_stats, {'CpuProcessTime': 5.0})
コード例 #5
0
 def testInstallTestCaSuccess(self):
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     backend.InstallTestCa()
     self.assertTrue(backend.is_test_ca_installed)
コード例 #6
0
 def testInstallTestCaFailure(self):
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('failure'), self._options)
     backend.InstallTestCa()
     self.assertFalse(backend.is_test_ca_installed)
コード例 #7
0
 def testGetCpuStatsInvalidPID(self):
     # Mock an empty /proc/pid/stat.
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('1234'), self._options)
     cpu_stats = backend.GetCpuStats('7702')
     self.assertEquals(cpu_stats, {})
コード例 #8
0
 def testIsScreenOnmInteractiveFalse(self):
     test_input = ['a=b', 'mInteractive=false']
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     self.assertFalse(backend._IsScreenOn(test_input))
コード例 #9
0
 def testIsScreenOnmScreenOnTrue(self):
     test_input = ['a=b', 'mScreenOn=true']
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     self.assertTrue(backend._IsScreenOn(test_input))
コード例 #10
0
 def testIsScreenLockedTrue(self):
     test_input = ['a=b', 'mHasBeenInactive=true']
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     self.assertTrue(backend._IsScreenLocked(test_input))