コード例 #1
0
    def setup(self, runner):
        """Connect to browser via Marionette."""
        Protocol.setup(self, runner)

        self.logger.debug("Connecting to Marionette on port %i" %
                          self.marionette_port)
        self.marionette = marionette.Marionette(host='localhost',
                                                port=self.marionette_port,
                                                socket_timeout=None)

        # XXX Move this timeout somewhere
        self.logger.debug("Waiting for Marionette connection")
        while True:
            success = self.marionette.wait_for_port(60)
            #When running in a debugger wait indefinitely for firefox to start
            if success or self.executor.debug_info is None:
                break

        session_started = False
        if success:
            try:
                self.logger.debug("Starting Marionette session")
                self.marionette.start_session()
            except Exception as e:
                self.logger.warning("Starting marionette session failed: %s" %
                                    e)
            else:
                self.logger.debug("Marionette session started")
                session_started = True

        if not success or not session_started:
            self.logger.warning("Failed to connect to Marionette")
            self.executor.runner.send_message("init_failed")
        else:
            try:
                self.after_connect()
            except Exception:
                self.logger.warning("Post-connection steps failed")
                self.logger.error(traceback.format_exc())
                self.executor.runner.send_message("init_failed")
            else:
                self.executor.runner.send_message("init_succeeded")
コード例 #2
0
    def setup(self, runner):
        """Connect to browser via Marionette."""
        Protocol.setup(self, runner)

        self.logger.debug("Connecting to Marionette on port %i" %
                          self.marionette_port)
        startup_timeout = marionette.Marionette.DEFAULT_STARTUP_TIMEOUT * self.timeout_multiplier
        self.marionette = marionette.Marionette(
            host='localhost',
            port=self.marionette_port,
            socket_timeout=None,
            startup_timeout=startup_timeout)

        try:
            self.logger.debug("Waiting for Marionette connection")
            while True:
                try:
                    self.marionette.raise_for_port()
                    break
                except IOError:
                    # When running in a debugger wait indefinitely for Firefox to start
                    if self.executor.debug_info is None:
                        raise

            self.logger.debug("Starting Marionette session")
            self.marionette.start_session()
            self.logger.debug("Marionette session started")

        except Exception as e:
            self.logger.warning("Failed to start a Marionette session: %s" % e)
            self.executor.runner.send_message("init_failed")

        else:
            try:
                self.after_connect()
            except Exception:
                self.logger.warning("Post-connection steps failed")
                self.logger.error(traceback.format_exc())
                self.executor.runner.send_message("init_failed")
            else:
                self.executor.runner.send_message("init_succeeded")
コード例 #3
0
    def connect(self):
        self.logger.debug("Connecting to Marionette on port %i" % self.marionette_port)
        startup_timeout = marionette.Marionette.DEFAULT_STARTUP_TIMEOUT * self.timeout_multiplier
        self.marionette = marionette.Marionette(host='127.0.0.1',
                                                port=self.marionette_port,
                                                socket_timeout=None,
                                                startup_timeout=startup_timeout)

        self.logger.debug("Waiting for Marionette connection")
        while True:
            try:
                self.marionette.raise_for_port()
                break
            except IOError:
                # When running in a debugger wait indefinitely for Firefox to start
                if self.executor.debug_info is None:
                    raise

        self.logger.debug("Starting Marionette session")
        self.marionette.start_session(self.capabilities)
        self.logger.debug("Marionette session started")
コード例 #4
0
 def __init__(self, device):
     global _host
     global _port
     self.device = device
     self.marionette = marionette.Marionette(host=_host, port=_port)
コード例 #5
0
    args.url = "http://%s:%d/%s" % (host, port, args.fuzzer)

    # Setup HTTPd
    server = mozhttpd.MozHttpd(port=port, host=host, docroot=args.root)
    server.start()

    # Setup B2G and Firefox preferences
    pref = mozprofile.Preferences()
    pref.add(pref.read_prefs(args.prefs))
    profile = mozprofile.Profile(preferences=pref())  # Bug 908793

    # Setup Marionette
    marionette = marionette.Marionette(
        emulator='arm',
        homedir=args.b2g_dir,
        symbols_path=args.symbols_path,
        gecko_path=None,
        #logcat_dir=args.logcat_dir
    )

    # Setup DeviceManager for ADB
    device = mozdevice.DeviceManagerADB(loglevel=10)

    # Setup B2G with profile and marionette over ADB
    runner = mozrunner.B2GRunner(profile,
                                 device,
                                 marionette,
                                 context_chrome=False)
    runner.start()

    # Setup Gaia
コード例 #6
0
ファイル: cert.py プロジェクト: luser/fxos-certsuite
    except mozdevice.DMError, e:
        print "Error connecting to device via adb (error: %s). Please be " \
            "sure device is connected and 'remote debugging' is enabled." % \
            e.msg
        logger.error("Error connecting to device: %s" % e.msg)
        sys.exit(1)

    # wait here to make sure marionette is running
    logger.debug('Attempting to set up port forwarding for marionette')
    if dm.forward("tcp:2828", "tcp:2828") != 0:
        raise Exception("Can't use localhost:2828 for port forwarding." \
                        "Is something else using port 2828?")
    retries = 0
    while retries < 5:
        try:
            m = marionette.Marionette()
            m.start_session()
            m.delete_session()
            break
        except (IOError, TypeError):
            time.sleep(5)
            retries += 1
    else:
        raise Exception("Couldn't connect to marionette after %d attempts. " \
        "Is the marionette extension installed?" % retries)

    if args.version not in supported_versions:
        print "%s is not a valid version. Please enter one of %s" % \
              (args.version, supported_versions)
        sys.exit(1)