Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/testing/mozbase/mozscreenshot/mozscreenshot/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  __init__.py   Sprache: Python

 
# 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/.

import os
import subprocess
import tempfile

import mozinfo
from mozlog.formatters.process import strstatus


def printstatus(name, returncode):
    """
    print the status of a command exit code, formatted for tbpl.

    Note that mozlog structured action "process_exit" should be used
    instead of that in new code.
    """
    print("TEST-INFO | %s: %s" % (name, strstatus(returncode)))


def dump_screen(utilityPath, log, prefix="mozilla-test-fail-screenshot_"):
    """dumps a screenshot of the entire screen to a directory specified by
    the MOZ_UPLOAD_DIR environment variable.

    :param utilityPath: Path of utility programs. This is typically a path
        to either the objdir's bin directory or a path to the host utilities.
    :param log: Reference to logger.
    """

    is_structured_log = hasattr(log, "process_exit")

    # Need to figure out which OS-dependent tool to use
    if mozinfo.isLinux:
        utility = [os.path.join(utilityPath, "screentopng")]
        utilityname = "screentopng"
    elif mozinfo.isMac:
        utility = ["/usr/sbin/screencapture""-C""-x""-t""png"]
        utilityname = "screencapture"
    elif mozinfo.isWin:
        utility = [os.path.join(utilityPath, "screenshot.exe")]
        utilityname = "screenshot"

    # Get dir where to write the screenshot file
    parent_dir = os.environ.get("MOZ_UPLOAD_DIR"None)
    if not parent_dir:
        log.info("Failed to retrieve MOZ_UPLOAD_DIR env var")
        return

    # Run the capture
    try:
        tmpfd, imgfilename = tempfile.mkstemp(
            prefix=prefix, suffix=".png", dir=parent_dir
        )
        os.close(tmpfd)
        if is_structured_log:
            log.process_start(utilityname)
        returncode = subprocess.call(utility + [imgfilename])
        if is_structured_log:
            log.process_exit(utilityname, returncode)
        else:
            printstatus(utilityname, returncode)
    except OSError as err:
        log.info("Failed to start %s for screenshot: %s" % (utility[0], err.strerror))


def dump_device_screen(device, log, prefix="mozilla-test-fail-screenshot_"):
    """dumps a screenshot of a real device's entire screen to a directory
    specified by the MOZ_UPLOAD_DIR environment variable. Cloned from
    mozscreenshot.dump_screen.

    :param device: Reference to an ADBDevice object which provides the
        interface to interact with Android devices.
    :param log: Reference to logger.
    """

    utilityname = "screencap"
    is_structured_log = hasattr(log, "process_exit")

    # Get dir where to write the screenshot file
    parent_dir = os.environ.get("MOZ_UPLOAD_DIR"None)
    if not parent_dir:
        log.info("Failed to retrieve MOZ_UPLOAD_DIR env var")
        return

    # Run the capture
    try:
        # Android 6.0 and later support mktemp.  See
        https://android.googlesource.com/platform/system/core/
        # +/master/shell_and_utilities/README.md#android-6_0-marshmallow
        # We can use mktemp on real devices since we do not test on
        # real devices older than Android 6.0. Note we must create the
        # file without an extension due to limitations in mktemp.
        filename = device.shell_output(
            "mktemp -p %s %sXXXXXX" % (device.test_root, prefix)
        )
        pngfilename = filename + ".png"
        device.mv(filename, pngfilename)
        if is_structured_log:
            log.process_start(utilityname)
        device.shell_output("%s -p %s" % (utilityname, pngfilename))
        if is_structured_log:
            log.process_exit(utilityname, 0)
        else:
            printstatus(utilityname, 0)
        device.pull(pngfilename, parent_dir)
        device.rm(pngfilename)
    except Exception as err:
        log.info("Failed to start %s for screenshot: %s" % (utilityname, str(err)))

Messung V0.5
C=88 H=95 G=91

¤ Dauer der Verarbeitung: 0.19 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.