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)
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
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})
def testInstallTestCaSuccess(self): backend = android_platform_backend.AndroidPlatformBackend( android_device.AndroidDevice('success'), self._options) backend.InstallTestCa() self.assertTrue(backend.is_test_ca_installed)
def testInstallTestCaFailure(self): backend = android_platform_backend.AndroidPlatformBackend( android_device.AndroidDevice('failure'), self._options) backend.InstallTestCa() self.assertFalse(backend.is_test_ca_installed)
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, {})
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))
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))
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))