зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset ba9d948d404c (bug 1544470) for breaking raptor-chromium a=backout
This commit is contained in:
Родитель
3675e85c1a
Коммит
f5f94453ae
|
@ -35,8 +35,6 @@ treeherder:
|
|||
'Rap-Prof-1proc': 'Raptor performance tests on Firefox with Gecko Profiling and without e10s'
|
||||
'Rap-ChC': 'Raptor performance tests on Google Chrome Canary'
|
||||
'Rap-ChD': 'Raptor performance tests on Google Chrome Dev'
|
||||
'Rap-Cpu': 'Raptor CPU tests on Android'
|
||||
'Rap-CPU-1proc': 'Reaptor CPU tests on Android without e10s'
|
||||
'Rap-Cr': 'Raptor performance tests on Google Chromium'
|
||||
'Rap-P': 'Raptor power tests on Firefox'
|
||||
'Rap-P-1proc': 'Raptor power tests on Firefox without e10s'
|
||||
|
|
|
@ -1026,26 +1026,6 @@ raptor-speedometer-geckoview-power:
|
|||
- --host HOST_IP
|
||||
- --activity=GeckoViewActivity
|
||||
|
||||
raptor-speedometer-geckoview-cpu:
|
||||
description: "Raptor Speedometer CPU on Geckoview"
|
||||
try-name: raptor-speedometer-geckoview-cpu
|
||||
treeherder-symbol: Rap-Cpu(sp)
|
||||
target: geckoview_example.apk
|
||||
run-on-projects:
|
||||
by-test-platform:
|
||||
android-hw.*/pgo: ['try', 'mozilla-central']
|
||||
android-hw-.*-aarch64/opt: ['try', 'mozilla-central']
|
||||
android-hw-.*-api-16/opt: ['try']
|
||||
tier: 2
|
||||
max-run-time: 1800
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-speedometer
|
||||
- --app=geckoview
|
||||
- --binary=org.mozilla.geckoview_example
|
||||
- --cpu-test
|
||||
- --activity=GeckoViewActivity
|
||||
|
||||
raptor-speedometer-fennec:
|
||||
description: "Raptor Speedometer on Fennec"
|
||||
try-name: raptor-speedometer-fennec
|
||||
|
|
|
@ -560,11 +560,9 @@ android-hw-aarch64-raptor:
|
|||
|
||||
android-hw-arm7-raptor-power:
|
||||
- raptor-speedometer-geckoview-power
|
||||
- raptor-speedometer-geckoview-cpu
|
||||
|
||||
android-hw-aarch64-raptor-power:
|
||||
- raptor-speedometer-geckoview-power
|
||||
- raptor-speedometer-geckoview-cpu
|
||||
|
||||
android-hw-arm7-raptor-nightly:
|
||||
- raptor-speedometer-fennec
|
||||
|
|
|
@ -156,12 +156,6 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
|
|||
"default": False,
|
||||
"help": "Use Raptor to measure memory usage.",
|
||||
}],
|
||||
[["--cpu-test"], {
|
||||
"dest": "cpu_test",
|
||||
"action": "store_true",
|
||||
"default": False,
|
||||
"help": "Use Raptor to measure CPU usage"
|
||||
}],
|
||||
[["--debug-mode"], {
|
||||
"dest": "debug_mode",
|
||||
"action": "store_true",
|
||||
|
@ -253,7 +247,6 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
|
|||
self.host = os.environ['HOST_IP']
|
||||
self.power_test = self.config.get('power_test')
|
||||
self.memory_test = self.config.get('memory_test')
|
||||
self.cpu_test = self.config.get('cpu_test')
|
||||
self.is_release_build = self.config.get('is_release_build')
|
||||
self.debug_mode = self.config.get('debug_mode', False)
|
||||
self.firefox_android_browsers = ["fennec", "geckoview", "refbrow", "fenix"]
|
||||
|
@ -389,8 +382,6 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
|
|||
options.extend(['--power-test'])
|
||||
if self.config.get('memory_test', False):
|
||||
options.extend(['--memory-test'])
|
||||
if self.config.get('cpu_test', False):
|
||||
options.extend(['--cpu-test'])
|
||||
for key, value in kw_options.items():
|
||||
options.extend(['--%s' % key, value])
|
||||
|
||||
|
@ -504,8 +495,6 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
|
|||
expected_perfherder += 1
|
||||
if self.config.get('memory_test', None):
|
||||
expected_perfherder += 1
|
||||
if self.config.get('cpu_test', None):
|
||||
expected_perfherder += 1
|
||||
if len(parser.found_perf_data) != expected_perfherder:
|
||||
self.critical("PERFHERDER_DATA was seen %d times, expected %d."
|
||||
% (len(parser.found_perf_data), expected_perfherder))
|
||||
|
@ -645,10 +634,6 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
|
|||
src = os.path.join(self.query_abs_dirs()['abs_work_dir'], 'raptor-memory.json')
|
||||
self._artifact_perf_data(src, dest)
|
||||
|
||||
if self.cpu_test:
|
||||
src = os.path.join(self.query_abs_dirs()['abs_work_dir'], 'raptor-cpu.json')
|
||||
self._artifact_perf_data(src, dest)
|
||||
|
||||
src = os.path.join(self.query_abs_dirs()['abs_work_dir'], 'screenshots.html')
|
||||
if os.path.exists(src):
|
||||
dest = os.path.join(env['MOZ_UPLOAD_DIR'], 'screenshots.html')
|
||||
|
|
|
@ -88,8 +88,6 @@ def create_parser(mach_interface=False):
|
|||
"The host ip address must be specified via the --host command line argument.")
|
||||
add_arg('--memory-test', dest="memory_test", action="store_true",
|
||||
help="Use Raptor to measure memory usage.")
|
||||
add_arg('--cpu-test', dest="cpu_test", action="store_true",
|
||||
help="Use Raptor to measure CPU usage. Currently supported for Android only.")
|
||||
add_arg('--is-release-build', dest="is_release_build", default=False,
|
||||
action='store_true',
|
||||
help="Whether the build is a release build which requires work arounds "
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
from __future__ import absolute_import
|
||||
|
||||
|
||||
def get_app_cpu_usage(raptor):
|
||||
cpu_usage = 0
|
||||
app_name = raptor.config['binary']
|
||||
verbose = raptor.device._verbose
|
||||
raptor.device._verbose = False
|
||||
cpuinfo = raptor.device.shell_output("top -O %CPU -n 1").split("\n")
|
||||
raptor.device._verbose = verbose
|
||||
'''
|
||||
When parsing the output of the shell command, you will
|
||||
get a line that looks like this:
|
||||
|
||||
17504 u0_a83 93.7 93.7 14.2 0:12.12 org.mozilla.geckoview_example
|
||||
|
||||
When you split on whitespace you end up with the
|
||||
name of the process at index 6 and the
|
||||
amount of CPU being used at index 3
|
||||
(Remember that indexes start at 0 because COMPUTERS)
|
||||
'''
|
||||
for line in cpuinfo:
|
||||
data = line.split()
|
||||
if len(data) == 7 and data[6] == app_name:
|
||||
cpu_usage = data[3]
|
||||
return cpu_usage
|
||||
|
||||
|
||||
def generate_android_cpu_profile(raptor, test_name):
|
||||
if not raptor.device or not raptor.config['cpu_test']:
|
||||
return
|
||||
|
||||
result = get_app_cpu_usage(raptor)
|
||||
|
||||
cpuinfo_data = {
|
||||
u'type': u'cpu',
|
||||
u'test': test_name,
|
||||
u'unit': u'%',
|
||||
u'values': {
|
||||
u'browser_cpu_usage': result
|
||||
}
|
||||
}
|
||||
raptor.control_server.submit_supporting_data(cpuinfo_data)
|
|
@ -64,7 +64,6 @@ from mozproxy import get_playback
|
|||
from power import init_android_power_test, finish_android_power_test
|
||||
from results import RaptorResultsHandler
|
||||
from utils import view_gecko_profile
|
||||
from cpu import generate_android_cpu_profile
|
||||
|
||||
|
||||
class SignalHandler:
|
||||
|
@ -86,31 +85,32 @@ class Raptor(object):
|
|||
|
||||
def __init__(self, app, binary, run_local=False, obj_path=None,
|
||||
gecko_profile=False, gecko_profile_interval=None, gecko_profile_entries=None,
|
||||
symbols_path=None, host=None, power_test=False, cpu_test=False, memory_test=False,
|
||||
is_release_build=False, debug_mode=False, post_startup_delay=None, activity=None,
|
||||
interrupt_handler=None, intent=None, **kwargs):
|
||||
symbols_path=None, host=None, power_test=False, memory_test=False,
|
||||
is_release_build=False, debug_mode=False, post_startup_delay=None,
|
||||
interrupt_handler=None, **kwargs):
|
||||
|
||||
# Override the magic --host HOST_IP with the value of the environment variable.
|
||||
if host == 'HOST_IP':
|
||||
host = os.environ['HOST_IP']
|
||||
|
||||
self.config = {}
|
||||
self.config['app'] = app
|
||||
self.config['binary'] = binary
|
||||
self.config['platform'] = mozinfo.os
|
||||
self.config['processor'] = mozinfo.processor
|
||||
self.config['run_local'] = run_local
|
||||
self.config['obj_path'] = obj_path
|
||||
self.config['gecko_profile'] = gecko_profile
|
||||
self.config['gecko_profile_interval'] = gecko_profile_interval
|
||||
self.config['gecko_profile_entries'] = gecko_profile_entries
|
||||
self.config['symbols_path'] = symbols_path
|
||||
self.config['host'] = host
|
||||
self.config['power_test'] = power_test
|
||||
self.config['cpu_test'] = cpu_test
|
||||
self.config['memory_test'] = memory_test
|
||||
self.config['is_release_build'] = is_release_build
|
||||
self.config['enable_control_server_wait'] = memory_test
|
||||
self.config = {
|
||||
'app': app,
|
||||
'binary': binary,
|
||||
'platform': mozinfo.os,
|
||||
'processor': mozinfo.processor,
|
||||
'run_local': run_local,
|
||||
'obj_path': obj_path,
|
||||
'gecko_profile': gecko_profile,
|
||||
'gecko_profile_interval': gecko_profile_interval,
|
||||
'gecko_profile_entries': gecko_profile_entries,
|
||||
'symbols_path': symbols_path,
|
||||
'host': host,
|
||||
'power_test': power_test,
|
||||
'memory_test': memory_test,
|
||||
'is_release_build': is_release_build,
|
||||
'enable_control_server_wait': memory_test,
|
||||
}
|
||||
|
||||
self.raptor_venv = os.path.join(os.getcwd(), 'raptor-venv')
|
||||
self.log = get_default_logger(component='raptor-main')
|
||||
self.control_server = None
|
||||
|
@ -342,7 +342,6 @@ class Raptor(object):
|
|||
timeout += 5 * 60
|
||||
|
||||
elapsed_time = 0
|
||||
|
||||
while not self.control_server._finished:
|
||||
if self.config['enable_control_server_wait']:
|
||||
response = self.control_server_wait_get()
|
||||
|
@ -589,15 +588,6 @@ class RaptorDesktopFirefox(RaptorDesktop):
|
|||
|
||||
|
||||
class RaptorDesktopChrome(RaptorDesktop):
|
||||
def __init__(self, app, binary, run_local=False, obj_path=None,
|
||||
gecko_profile=False, gecko_profile_interval=None, gecko_profile_entries=None,
|
||||
symbols_path=None, host=None, power_test=False, cpu_test=False, memory_test=False,
|
||||
is_release_build=False, debug_mode=False, post_startup_delay=None,
|
||||
activity=None, intent=None):
|
||||
RaptorDesktop.__init__(self, app, binary, run_local, obj_path, gecko_profile,
|
||||
gecko_profile_interval, gecko_profile_entries, symbols_path,
|
||||
host, power_test, cpu_test, memory_test, is_release_build,
|
||||
debug_mode, post_startup_delay)
|
||||
|
||||
def setup_chrome_desktop_for_playback(self):
|
||||
# if running a pageload test on google chrome, add the cmd line options
|
||||
|
@ -629,15 +619,8 @@ class RaptorDesktopChrome(RaptorDesktop):
|
|||
|
||||
|
||||
class RaptorAndroid(Raptor):
|
||||
def __init__(self, app, binary, run_local=False, obj_path=None,
|
||||
gecko_profile=False, gecko_profile_interval=None, gecko_profile_entries=None,
|
||||
symbols_path=None, host=None, power_test=False, cpu_test=False, memory_test=False,
|
||||
is_release_build=False, debug_mode=False, post_startup_delay=None, activity=None,
|
||||
intent=None, interrupt_handler=None):
|
||||
Raptor.__init__(self, app, binary, run_local, obj_path, gecko_profile,
|
||||
gecko_profile_interval, gecko_profile_entries, symbols_path, host,
|
||||
power_test, cpu_test, memory_test, is_release_build, debug_mode,
|
||||
post_startup_delay)
|
||||
def __init__(self, app, binary, activity=None, intent=None, **kwargs):
|
||||
super(RaptorAndroid, self).__init__(app, binary, **kwargs)
|
||||
|
||||
# on android, when creating the browser profile, we want to use a 'firefox' type profile
|
||||
self.profile_class = "firefox"
|
||||
|
@ -911,8 +894,6 @@ class RaptorAndroid(Raptor):
|
|||
self.log.error("Exception: %s %s" % (type(e).__name__, str(e)))
|
||||
if self.config['power_test']:
|
||||
finish_android_power_test(self, test_name)
|
||||
if self.config['cpu_test']:
|
||||
generate_android_cpu_profile(self, test_name)
|
||||
raise
|
||||
|
||||
# give our control server the device and app info
|
||||
|
@ -946,8 +927,7 @@ class RaptorAndroid(Raptor):
|
|||
finally:
|
||||
if self.config['power_test']:
|
||||
finish_android_power_test(self, test['name'])
|
||||
if self.config['cpu_test']:
|
||||
generate_android_cpu_profile(self, test['name'])
|
||||
|
||||
self.run_test_teardown()
|
||||
|
||||
def run_test_cold(self, test, timeout=None):
|
||||
|
@ -980,9 +960,6 @@ class RaptorAndroid(Raptor):
|
|||
if self.config['power_test']:
|
||||
init_android_power_test(self)
|
||||
|
||||
if self.config['cpu_test']:
|
||||
generate_android_cpu_profile(self, test['name'])
|
||||
|
||||
for test['browser_cycle'] in range(1, test['expected_browser_cycles'] + 1):
|
||||
|
||||
self.log.info("begin browser cycle %d of %d for test %s"
|
||||
|
@ -1052,9 +1029,6 @@ class RaptorAndroid(Raptor):
|
|||
if self.config['power_test']:
|
||||
init_android_power_test(self)
|
||||
|
||||
if self.config['cpu_test']:
|
||||
generate_android_cpu_profile(self, test['name'])
|
||||
|
||||
self.run_test_setup(test)
|
||||
self.create_raptor_sdcard_folder()
|
||||
|
||||
|
@ -1156,7 +1130,6 @@ def main(args=sys.argv[1:]):
|
|||
symbols_path=args.symbols_path,
|
||||
host=args.host,
|
||||
power_test=args.power_test,
|
||||
cpu_test=args.cpu_test,
|
||||
memory_test=args.memory_test,
|
||||
is_release_build=args.is_release_build,
|
||||
debug_mode=args.debug_mode,
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
Tasks: 142 total, 1 running, 140 sleeping, 0 stopped, 1 zombie
|
||||
Mem: 1548824k total, 1234756k used, 314068k free, 37080k buffers
|
||||
Swap: 0k total, 0k used, 0k free, 552360k cached
|
||||
200%cpu 122%user 9%nice 50%sys 13%idle 0%iow 0%irq 6%sirq 0%host
|
||||
PID USER [%CPU]%CPU %MEM TIME+ ARGS
|
||||
17504 u0_a83 93.7 93.7 14.2 0:12.12 org.mozilla.geckoview_example
|
||||
17529 u0_a83 43.7 43.7 19.3 0:11.80 org.mozilla.geckoview_example:tab
|
||||
7030 u0_a54 28.1 28.1 5.6 0:05.47 com.google.android.tts
|
||||
1598 root 9.3 9.3 0.1 0:13.73 dhcpclient -i eth0
|
||||
1667 system 6.2 6.2 9.6 16:10.78 system_server
|
||||
1400 system 6.2 6.2 0.2 8:15.20 android.hardware.sensors@1.0-service
|
||||
17729 shell 3.1 3.1 0.1 0:00.02 top -O %CPU -n 1
|
||||
1411 system 3.1 3.1 0.7 23:06.11 surfaceflinger
|
||||
17497 shell 0.0 0.0 0.1 0:00.01 sh -
|
||||
17321 root 0.0 0.0 0.0 0:00.13 [kworker/0:1]
|
||||
17320 root 0.0 0.0 0.0 0:00.15 [kworker/u4:1]
|
||||
17306 root 0.0 0.0 0.0 0:00.21 [kworker/u5:1]
|
||||
16545 root 0.0 0.0 0.0 0:00.17 [kworker/0:0]
|
||||
16543 root 0.0 0.0 0.0 0:00.15 [kworker/u4:2]
|
||||
16411 root 0.0 0.0 0.0 0:00.41 [kworker/u5:2]
|
||||
15827 root 0.0 0.0 0.0 0:00.04 [kworker/1:2]
|
||||
14998 root 0.0 0.0 0.0 0:00.03 [kworker/1:1]
|
||||
14996 root 0.0 0.0 0.0 0:00.38 [kworker/0:2]
|
||||
14790 root 0.0 0.0 0.0 0:01.04 [kworker/u5:0]
|
||||
14167 root 0.0 0.0 0.0 0:01.32 [kworker/u4:0]
|
||||
11922 u0_a50 0.0 0.0 6.9 0:00.80 com.google.android.apps.docs
|
||||
11906 u0_a67 0.0 0.0 5.0 0:00.25 com.google.android.apps.photos
|
||||
11887 u0_a11 0.0 0.0 4.3 0:00.25 com.android.documentsui
|
||||
11864 u0_a6 0.0 0.0 3.3 0:00.19 com.android.defcontainer
|
||||
10866 u0_a15 0.0 0.0 3.3 0:00.04 com.google.android.partnersetup
|
||||
8956 u0_a1 0.0 0.0 3.7 0:00.40 com.android.providers.calendar
|
||||
8070 u0_a10 0.0 0.0 6.7 0:01.21 com.google.android.gms.unstable
|
||||
6638 u0_a10 0.0 0.0 7.4 0:12.89 com.google.android.gms
|
||||
2291 u0_a30 0.0 0.0 9.0 5:45.93 com.google.android.googlequicksearchbox:search
|
||||
2230 u0_a10 0.0 0.0 3.9 0:02.00 com.google.process.gapps
|
||||
2213 u0_a22 0.0 0.0 7.2 4:12.95 com.google.android.apps.nexuslauncher
|
||||
2195 u0_a30 0.0 0.0 4.1 0:00.37 com.google.android.googlequicksearchbox:interactor
|
||||
2163 u0_a10 0.0 0.0 8.2 1:49.32 com.google.android.gms.persistent
|
||||
1882 radio 0.0 0.0 5.1 0:53.61 com.android.phone
|
||||
1875 wifi 0.0 0.0 0.4 0:02.25 wpa_supplicant -Dnl80211 -iwlan0 -c/vendor/etc/wifi/wpa_supplicant.conf -g@android:wpa_wla+
|
||||
1828 webview_zyg+ 0.0 0.0 3.0 0:00.45 webview_zygote32
|
|
@ -9,4 +9,3 @@ skip-if = python == 3
|
|||
[test_playback.py]
|
||||
[test_print_tests.py]
|
||||
[test_raptor.py]
|
||||
[test_cpu.py]
|
||||
|
|
|
@ -17,7 +17,6 @@ def test_verify_options(filedir):
|
|||
page_timeout=60000,
|
||||
debug='True',
|
||||
power_test=False,
|
||||
cpu_test=False,
|
||||
memory_test=False)
|
||||
parser = ArgumentParser()
|
||||
|
||||
|
@ -35,7 +34,6 @@ def test_verify_options(filedir):
|
|||
is_release_build=False,
|
||||
host='sophie',
|
||||
power_test=False,
|
||||
cpu_test=False,
|
||||
memory_test=False)
|
||||
verify_options(parser, args) # assert no exception
|
||||
|
||||
|
@ -47,7 +45,6 @@ def test_verify_options(filedir):
|
|||
is_release_build=False,
|
||||
host='sophie',
|
||||
power_test=False,
|
||||
cpu_test=False,
|
||||
memory_test=False)
|
||||
verify_options(parser, args) # assert no exception
|
||||
|
||||
|
@ -59,19 +56,6 @@ def test_verify_options(filedir):
|
|||
is_release_build=False,
|
||||
host='sophie',
|
||||
power_test=False,
|
||||
cpu_test=False,
|
||||
memory_test=False)
|
||||
verify_options(parser, args) # assert no exception
|
||||
|
||||
args = Namespace(app='geckoview',
|
||||
binary='org.mozilla.geckoview_example',
|
||||
activity='GeckoViewActivity',
|
||||
intent='android.intent.action.MAIN',
|
||||
gecko_profile='False',
|
||||
is_release_build=False,
|
||||
host='sophie',
|
||||
power_test=False,
|
||||
cpu_test=True,
|
||||
memory_test=False)
|
||||
verify_options(parser, args) # assert no exception
|
||||
|
||||
|
@ -83,7 +67,6 @@ def test_verify_options(filedir):
|
|||
is_release_build=False,
|
||||
host='sophie',
|
||||
power_test=False,
|
||||
cpu_test=False,
|
||||
memory_test=False)
|
||||
parser = ArgumentParser()
|
||||
|
||||
|
|
|
@ -1,98 +0,0 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import mozunit
|
||||
import os
|
||||
import mock
|
||||
import sys
|
||||
|
||||
from raptor import cpu
|
||||
from raptor.raptor import Raptor
|
||||
|
||||
# need this so raptor imports work both from /raptor and via mach
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
if os.environ.get('SCRIPTSPATH', None) is not None:
|
||||
# in production it is env SCRIPTS_PATH
|
||||
mozharness_dir = os.environ['SCRIPTSPATH']
|
||||
else:
|
||||
# locally it's in source tree
|
||||
mozharness_dir = os.path.join(here, '../../mozharness')
|
||||
sys.path.insert(0, mozharness_dir)
|
||||
|
||||
|
||||
def test_no_device():
|
||||
raptor = Raptor('geckoview', 'org.mozilla.org.mozilla.geckoview_example', cpu_test=True)
|
||||
raptor.device = None
|
||||
resp = cpu.generate_android_cpu_profile(raptor, 'no_control_server_device')
|
||||
|
||||
assert resp is None
|
||||
|
||||
|
||||
def test_usage_with_invalid_data_returns_zero():
|
||||
with mock.patch('mozdevice.adb.ADBDevice') as device:
|
||||
with mock.patch('raptor.raptor.RaptorControlServer') as control_server:
|
||||
# Create a device that returns invalid data
|
||||
device.shell_output.return_value = 'geckoview'
|
||||
device._verbose = True
|
||||
|
||||
# Create a control server
|
||||
control_server.cpu_test = True
|
||||
control_server.device = device
|
||||
raptor = Raptor('geckoview', 'org.mozilla.geckoview_example', cpu_test=True)
|
||||
raptor.config['cpu_test'] = True
|
||||
raptor.control_server = control_server
|
||||
raptor.device = device
|
||||
|
||||
# Verify the call to submit data was made
|
||||
cpuinfo_data = {
|
||||
'type': 'cpu',
|
||||
'test': 'usage_with_invalid_data_returns_zero',
|
||||
'unit': '%',
|
||||
'values': {
|
||||
'browser_cpu_usage': float(0)
|
||||
}
|
||||
}
|
||||
cpu.generate_android_cpu_profile(
|
||||
raptor,
|
||||
"usage_with_invalid_data_returns_zero")
|
||||
control_server.submit_supporting_data.assert_called_once_with(cpuinfo_data)
|
||||
|
||||
|
||||
def test_usage_with_output():
|
||||
with mock.patch('mozdevice.adb.ADBDevice') as device:
|
||||
with mock.patch('raptor.raptor.RaptorControlServer') as control_server:
|
||||
# Override the shell output with sample CPU usage details
|
||||
filepath = os.path.abspath(os.path.dirname(__file__)) + '/files/'
|
||||
f = open(filepath + 'top-info.txt', 'r')
|
||||
device.shell_output.return_value = f.read()
|
||||
device._verbose = True
|
||||
|
||||
# Create a control server
|
||||
control_server.cpu_test = True
|
||||
control_server.test_name = 'cpuunittest'
|
||||
control_server.device = device
|
||||
control_server.app_name = 'org.mozilla.geckoview_example'
|
||||
raptor = Raptor('geckoview', 'org.mozilla.geckoview_example', cpu_test=True)
|
||||
raptor.device = device
|
||||
raptor.config['cpu_test'] = True
|
||||
raptor.control_server = control_server
|
||||
|
||||
# Verify the response contains our expected CPU % of 93.7
|
||||
cpuinfo_data = {
|
||||
u'type': u'cpu',
|
||||
u'test': u'usage_with_integer_cpu_info_output',
|
||||
u'unit': u'%',
|
||||
u'values': {
|
||||
u'browser_cpu_usage': '93.7'
|
||||
}
|
||||
}
|
||||
cpu.generate_android_cpu_profile(
|
||||
raptor,
|
||||
"usage_with_integer_cpu_info_output")
|
||||
control_server.submit_supporting_data.assert_called_once_with(cpuinfo_data)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
mozunit.main()
|
Загрузка…
Ссылка в новой задаче