diff options
Diffstat (limited to 'testing/mozbase/mozrunner/mozrunner/runners.py')
-rw-r--r-- | testing/mozbase/mozrunner/mozrunner/runners.py | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/testing/mozbase/mozrunner/mozrunner/runners.py b/testing/mozbase/mozrunner/mozrunner/runners.py new file mode 100644 index 0000000000..75fbf60733 --- /dev/null +++ b/testing/mozbase/mozrunner/mozrunner/runners.py @@ -0,0 +1,144 @@ +# 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/. + + +""" +This module contains a set of shortcut methods that create runners for commonly +used Mozilla applications, such as Firefox, Firefox for Android or Thunderbird. +""" + +from .application import get_app_context +from .base import BlinkRuntimeRunner, FennecRunner, GeckoRuntimeRunner +from .devices import EmulatorAVD + + +def Runner(*args, **kwargs): + """ + Create a generic GeckoRuntime runner. + + :param binary: Path to binary. + :param cmdargs: Arguments to pass into binary. + :param profile: Profile object to use. + :param env: Environment variables to pass into the gecko process. + :param clean_profile: If True, restores profile back to original state. + :param process_class: Class used to launch the binary. + :param process_args: Arguments to pass into process_class. + :param symbols_path: Path to symbol files used for crash analysis. + :param show_crash_reporter: allow the crash reporter window to pop up. + Defaults to False. + :returns: A generic GeckoRuntimeRunner. + """ + return GeckoRuntimeRunner(*args, **kwargs) + + +def FirefoxRunner(*args, **kwargs): + """ + Create a desktop Firefox runner. + + :param binary: Path to Firefox binary. + :param cmdargs: Arguments to pass into binary. + :param profile: Profile object to use. + :param env: Environment variables to pass into the gecko process. + :param clean_profile: If True, restores profile back to original state. + :param process_class: Class used to launch the binary. + :param process_args: Arguments to pass into process_class. + :param symbols_path: Path to symbol files used for crash analysis. + :param show_crash_reporter: allow the crash reporter window to pop up. + Defaults to False. + :returns: A GeckoRuntimeRunner for Firefox. + """ + kwargs["app_ctx"] = get_app_context("firefox")() + return GeckoRuntimeRunner(*args, **kwargs) + + +def ThunderbirdRunner(*args, **kwargs): + """ + Create a desktop Thunderbird runner. + + :param binary: Path to Thunderbird binary. + :param cmdargs: Arguments to pass into binary. + :param profile: Profile object to use. + :param env: Environment variables to pass into the gecko process. + :param clean_profile: If True, restores profile back to original state. + :param process_class: Class used to launch the binary. + :param process_args: Arguments to pass into process_class. + :param symbols_path: Path to symbol files used for crash analysis. + :param show_crash_reporter: allow the crash reporter window to pop up. + Defaults to False. + :returns: A GeckoRuntimeRunner for Thunderbird. + """ + kwargs["app_ctx"] = get_app_context("thunderbird")() + return GeckoRuntimeRunner(*args, **kwargs) + + +def ChromeRunner(*args, **kwargs): + """ + Create a desktop Google Chrome runner. + + :param binary: Path to Chrome binary. + :param cmdargs: Arguments to pass into the binary. + """ + kwargs["app_ctx"] = get_app_context("chrome")() + return BlinkRuntimeRunner(*args, **kwargs) + + +def ChromiumRunner(*args, **kwargs): + """ + Create a desktop Google Chromium runner. + + :param binary: Path to Chromium binary. + :param cmdargs: Arguments to pass into the binary. + """ + kwargs["app_ctx"] = get_app_context("chromium")() + return BlinkRuntimeRunner(*args, **kwargs) + + +def FennecEmulatorRunner( + avd="mozemulator-arm", + adb_path=None, + avd_home=None, + logdir=None, + serial=None, + binary=None, + app="org.mozilla.fennec", + **kwargs +): + """ + Create a Fennec emulator runner. This can either start a new emulator + (which will use an avd), or connect to an already-running emulator. + + :param avd: name of an AVD available in your environment. + Typically obtained via tooltool: either 'mozemulator-4.3' or 'mozemulator-x86'. + Defaults to 'mozemulator-4.3' + :param avd_home: Path to avd parent directory + :param logdir: Path to save logfiles such as qemu output. + :param serial: Serial of emulator to connect to as seen in `adb devices`. + Defaults to the first entry in `adb devices`. + :param binary: Path to emulator binary. + Defaults to None, which causes the device_class to guess based on PATH. + :param app: Name of Fennec app (often org.mozilla.fennec_$USER) + Defaults to 'org.mozilla.fennec' + :param cmdargs: Arguments to pass into binary. + :returns: A DeviceRunner for Android emulators. + """ + kwargs["app_ctx"] = get_app_context("fennec")( + app, adb_path=adb_path, avd_home=avd_home, device_serial=serial + ) + device_args = { + "app_ctx": kwargs["app_ctx"], + "avd": avd, + "binary": binary, + "logdir": logdir, + } + return FennecRunner(device_class=EmulatorAVD, device_args=device_args, **kwargs) + + +runners = { + "chrome": ChromeRunner, + "chromium": ChromiumRunner, + "default": Runner, + "firefox": FirefoxRunner, + "fennec": FennecEmulatorRunner, + "thunderbird": ThunderbirdRunner, +} |