#!/usr/bin/env python import pathlib from unittest import mock
import mozunit import pytest
from mozperftest.environment import SYSTEM from mozperftest.system.android import AndroidSetupError, DeviceError from mozperftest.system.android_perf_tuner import PerformanceTuner from mozperftest.tests.support import (
FakeDevice,
get_running_env,
requests_content,
temp_file,
) from mozperftest.utils import silence
def get_android_device_layer(layers): for layer in layers: if layer.__class__.__name__ == "AndroidDevice": return layer returnNone
mach_cmd, metadata, env = get_running_env(**args)
system = env.layers[SYSTEM] with system as android, silence(system): with pytest.raises(AndroidSetupError):
android(metadata)
@mock.patch("mozperftest.system.android.ADBLoggedDevice") def test_android_perf_tuning_rooted(device): # Check to make sure that performance tuning runs # on rooted devices correctly
device._have_su = True
device._have_android_su = True
device._have_root_shell = True
device.is_rooted = True with mock.patch( "mozperftest.system.android_perf_tuner.PerformanceTuner.set_kernel_performance_parameters"
) as mockfunc:
tuner = PerformanceTuner(device)
tuner.tune_performance()
mockfunc.assert_called()
@mock.patch("mozperftest.system.android.ADBLoggedDevice") def test_android_perf_tuning_nonrooted(device): # Check to make sure that performance tuning runs # on non-rooted devices correctly
device._have_su = False
device._have_android_su = False
device._have_root_shell = False
device.is_rooted = False with mock.patch( "mozperftest.system.android_perf_tuner.PerformanceTuner.set_kernel_performance_parameters"
) as mockfunc:
tuner = PerformanceTuner(device)
tuner.tune_performance()
mockfunc.assert_not_called()
class Device: def __init__(self, name, rooted=True):
self.device_name = name
self.is_rooted = rooted
self.call_counts = 0
mach_cmd, metadata, env = get_running_env(**args)
system = env.layers[SYSTEM] with system as android, silence(system):
android(metadata)
# Make sure the tuner was actually called
tuner.tune_performance.assert_called()
def test_android_failure(): # no patching so it'll try for real and fail
args = { "app": "fenix", "flavor": "mobile-browser", "android-install-apk": ["this"], "android": True, "android-timeout": 120, "android-app-name": "org.mozilla.fenix", "android-capture-adb": "stdout",
}
mach_cmd, metadata, env = get_running_env(**args)
system = env.layers[SYSTEM] with system as android, silence(system), pytest.raises(DeviceError):
android(metadata)
mach_cmd, metadata, env = get_running_env(**args)
system = env.layers[SYSTEM] with system as android, silence(system), pytest.raises(DeviceError):
android(metadata) with open(log_adb) as f: assert"DEBUG ADBLoggedDevice"in f.read()
with system as _, silence(system): assert android._custom_apk_path isNone assert android.custom_apk_exists() assert android.custom_apk_path == sample_apk
with system as _, silence(system): # The custom apk should be found immediately, and it # should replace any --android-install-apk settings assert android._custom_apk_path == sample_apk assert env.get_arg("android-install-apk") == [sample_apk]
mozperftest_android_path.assert_called_once()
if __name__ == "__main__":
mozunit.main()
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.