gecko-dev/testing/mozharness/scripts/android_emulator_unittest.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

480 строки
20 KiB
Python
Исходник Обычный вид История

#!/usr/bin/env python
# ***** BEGIN LICENSE BLOCK *****
# 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/.
# ***** END LICENSE BLOCK *****
import copy
import datetime
import json
import os
import re
import sys
import subprocess
# load modules from parent dir
sys.path.insert(1, os.path.dirname(sys.path[0]))
from mozharness.base.log import FATAL
from mozharness.base.script import BaseScript, PreScriptAction
from mozharness.mozilla.automation import TBPL_RETRY
from mozharness.mozilla.mozbase import MozbaseMixin
from mozharness.mozilla.testing.android import AndroidMixin
from mozharness.mozilla.testing.testbase import TestingMixin, testing_config_options
from mozharness.mozilla.testing.codecoverage import (
CodeCoverageMixin,
code_coverage_config_options
)
SUITE_DEFAULT_E10S = ['geckoview-junit', 'mochitest', 'reftest']
SUITE_NO_E10S = ['cppunittest', 'geckoview-junit', 'xpcshell']
class AndroidEmulatorTest(TestingMixin, BaseScript, MozbaseMixin, CodeCoverageMixin,
AndroidMixin):
"""
A mozharness script for Android functional tests (like mochitests and reftests)
run on an Android emulator. This script starts and manages an Android emulator
for the duration of the required tests. This is like desktop_unittest.py, but
for Android emulator test platforms.
"""
config_options = [[
["--test-suite"],
{"action": "store",
"dest": "test_suite",
"default": None
}
], [
["--total-chunk"],
{"action": "store",
"dest": "total_chunks",
"default": None,
"help": "Number of total chunks",
}
], [
["--this-chunk"],
{"action": "store",
"dest": "this_chunk",
"default": None,
"help": "Number of this chunk",
}
], [
["--gpu-required"],
{"action": "store_true",
"dest": "gpu_required",
"default": False,
"help": "Run additional verification on modified tests using gpu instances.",
}
], [
["--log-raw-level"],
{"action": "store",
"dest": "log_raw_level",
"default": "info",
"help": "Set log level (debug|info|warning|error|critical|fatal)",
}
], [
["--log-tbpl-level"],
{"action": "store",
"dest": "log_tbpl_level",
"default": "info",
"help": "Set log level (debug|info|warning|error|critical|fatal)",
}
], [
['--disable-e10s', ],
{"action": "store_false",
"dest": "e10s",
"default": True,
"help": "Run tests without multiple processes (e10s).",
}
], [
['--enable-webrender'],
{"action": "store_true",
"dest": "enable_webrender",
"default": False,
"help": "Run with WebRender enabled.",
}
], [
['--disable-webrender'],
{"action": "store_true",
"dest": "disable_webrender",
"default": False,
"help": "Run with WebRender force-disabled.",
}
]] + copy.deepcopy(testing_config_options) + \
copy.deepcopy(code_coverage_config_options)
def __init__(self, require_config_file=False):
super(AndroidEmulatorTest, self).__init__(
config_options=self.config_options,
all_actions=['clobber',
'setup-avds',
'start-emulator',
'download-and-extract',
'create-virtualenv',
'verify-device',
'install',
'run-tests',
],
require_config_file=require_config_file,
config={
'virtualenv_modules': [],
'virtualenv_requirements': [],
'require_test_zip': True,
}
)
# these are necessary since self.config is read only
c = self.config
abs_dirs = self.query_abs_dirs()
self.installer_url = c.get('installer_url')
self.installer_path = c.get('installer_path')
self.test_url = c.get('test_url')
self.test_packages_url = c.get('test_packages_url')
self.test_manifest = c.get('test_manifest')
self.robocop_path = os.path.join(abs_dirs['abs_work_dir'], "robocop.apk")
self.test_suite = c.get('test_suite')
self.this_chunk = c.get('this_chunk')
self.total_chunks = c.get('total_chunks')
if self.test_suite and self.test_suite not in self.config["suite_definitions"]:
# accept old-style test suite name like "mochitest-3"
m = re.match("(.*)-(\d*)", self.test_suite)
if m:
self.test_suite = m.group(1)
if self.this_chunk is None:
self.this_chunk = m.group(2)
self.xre_path = None
self.device_serial = 'emulator-5554'
self.log_raw_level = c.get('log_raw_level')
self.log_tbpl_level = c.get('log_tbpl_level')
self.e10s = c.get('e10s')
self.enable_webrender = c.get('enable_webrender')
self.disable_webrender = c.get('disable_webrender')
if self.enable_webrender:
# AndroidMixin uses this when launching the emulator. We only want
# GLES3 if we're running WebRender
self.use_gles3 = True
def query_abs_dirs(self):
if self.abs_dirs:
return self.abs_dirs
abs_dirs = super(AndroidEmulatorTest, self).query_abs_dirs()
dirs = {}
dirs['abs_test_install_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'tests')
dirs['abs_test_bin_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'tests', 'bin')
dirs['abs_xre_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'hostutils')
dirs['abs_modules_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'modules')
dirs['abs_blob_upload_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'blobber_upload_dir')
dirs['abs_mochitest_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'mochitest')
dirs['abs_reftest_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'reftest')
dirs['abs_xpcshell_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'xpcshell')
dirs['abs_marionette_dir'] = os.path.join(
Bug 1320073 - Rename marionette-client to marionette-harness and release version 4.0.0. r=gps,maja_zf,mtseng,SingingTree MozReview-Commit-ID: L6V3b5h8RWm --HG-- rename : testing/marionette/harness/marionette/chrome/test.xul => testing/marionette/chrome/test.xul rename : testing/marionette/harness/marionette/chrome/test2.xul => testing/marionette/chrome/test2.xul rename : testing/marionette/harness/marionette/chrome/test_anonymous_content.xul => testing/marionette/chrome/test_anonymous_content.xul rename : testing/marionette/harness/marionette/chrome/test_dialog.xul => testing/marionette/chrome/test_dialog.xul rename : testing/marionette/harness/marionette/chrome/test_nested_iframe.xul => testing/marionette/chrome/test_nested_iframe.xul rename : testing/marionette/harness/marionette/__init__.py => testing/marionette/harness/marionette_harness/__init__.py rename : testing/marionette/harness/marionette/marionette_test/__init__.py => testing/marionette/harness/marionette_harness/marionette_test/__init__.py rename : testing/marionette/harness/marionette/marionette_test/decorators.py => testing/marionette/harness/marionette_harness/marionette_test/decorators.py rename : testing/marionette/harness/marionette/marionette_test/errors.py => testing/marionette/harness/marionette_harness/marionette_test/errors.py rename : testing/marionette/harness/marionette/marionette_test/testcases.py => testing/marionette/harness/marionette_harness/marionette_test/testcases.py rename : testing/marionette/harness/marionette/runner/__init__.py => testing/marionette/harness/marionette_harness/runner/__init__.py rename : testing/marionette/harness/marionette/runner/base.py => testing/marionette/harness/marionette_harness/runner/base.py rename : testing/marionette/harness/marionette/runner/httpd.py => testing/marionette/harness/marionette_harness/runner/httpd.py rename : testing/marionette/harness/marionette/runner/mixins/__init__.py => testing/marionette/harness/marionette_harness/runner/mixins/__init__.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/History.md => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/History.md rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/__init__.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/__init__.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/client.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/client.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/server.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/server.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/webdriver_event_listener.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/webdriver_event_listener.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/Makefile => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/Makefile rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/.buildinfo => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/.buildinfo rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/browsermobproxy.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/browsermobproxy.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/index.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/index.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/client.txt => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/client.txt rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/index.txt => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/index.txt rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/server.txt => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/server.txt rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/basic.css => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/basic.css rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/default.css => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/default.css rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/doctools.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/doctools.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/pygments.css => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/pygments.css rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/searchtools.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/searchtools.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/sidebar.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/sidebar.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/websupport.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/websupport.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/client.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/client.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/genindex.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/genindex.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/index.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/index.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/objects.inv => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/objects.inv rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/py-modindex.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/py-modindex.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/search.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/search.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/searchindex.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/searchindex.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/server.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/server.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/client.rst => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/client.rst rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/conf.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/conf.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/index.rst => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/index.rst rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/make.bat => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/make.bat rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/server.rst => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/server.rst rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/readme.md => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/readme.md rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/setup.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/setup.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_client.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_client.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_remote.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_remote.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_webdriver.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_webdriver.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob.py rename : testing/marionette/harness/marionette/runner/mixins/window_manager.py => testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py rename : testing/marionette/harness/marionette/runner/serve.py => testing/marionette/harness/marionette_harness/runner/serve.py rename : testing/marionette/harness/marionette/runner/test.cert => testing/marionette/harness/marionette_harness/runner/test.cert rename : testing/marionette/harness/marionette/runner/test.key => testing/marionette/harness/marionette_harness/runner/test.key rename : testing/marionette/harness/marionette/runtests.py => testing/marionette/harness/marionette_harness/runtests.py rename : testing/marionette/harness/marionette/tests/harness_unit/conftest.py => testing/marionette/harness/marionette_harness/tests/harness_unit/conftest.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_httpd.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_httpd.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_arguments.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_arguments.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_harness.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_harness.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_runner.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_test_result.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_test_result.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_serve.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_serve.py rename : testing/marionette/harness/marionette/tests/unit-tests.ini => testing/marionette/harness/marionette_harness/tests/unit-tests.ini rename : testing/marionette/harness/marionette/tests/unit/importanotherscript.js => testing/marionette/harness/marionette_harness/tests/unit/importanotherscript.js rename : testing/marionette/harness/marionette/tests/unit/importscript.js => testing/marionette/harness/marionette_harness/tests/unit/importscript.js rename : testing/marionette/harness/marionette/tests/unit/mn-restartless-unsigned.xpi => testing/marionette/harness/marionette_harness/tests/unit/mn-restartless-unsigned.xpi rename : testing/marionette/harness/marionette/tests/unit/single_finger_functions.py => testing/marionette/harness/marionette_harness/tests/unit/single_finger_functions.py rename : testing/marionette/harness/marionette/tests/unit/test_about_pages.py => testing/marionette/harness/marionette_harness/tests/unit/test_about_pages.py rename : testing/marionette/harness/marionette/tests/unit/test_accessibility.py => testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py rename : testing/marionette/harness/marionette/tests/unit/test_addons.py => testing/marionette/harness/marionette_harness/tests/unit/test_addons.py rename : testing/marionette/harness/marionette/tests/unit/test_anonymous_content.py => testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py rename : testing/marionette/harness/marionette/tests/unit/test_browsermobproxy.py => testing/marionette/harness/marionette_harness/tests/unit/test_browsermobproxy.py rename : testing/marionette/harness/marionette/tests/unit/test_capabilities.py => testing/marionette/harness/marionette_harness/tests/unit/test_capabilities.py rename : testing/marionette/harness/marionette/tests/unit/test_certificates.py => testing/marionette/harness/marionette_harness/tests/unit/test_certificates.py rename : testing/marionette/harness/marionette/tests/unit/test_checkbox.py => testing/marionette/harness/marionette_harness/tests/unit/test_checkbox.py rename : testing/marionette/harness/marionette/tests/unit/test_checkbox_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_checkbox_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_chrome_async_finish.js => testing/marionette/harness/marionette_harness/tests/unit/test_chrome_async_finish.js rename : testing/marionette/harness/marionette/tests/unit/test_chrome_element_css.py => testing/marionette/harness/marionette_harness/tests/unit/test_chrome_element_css.py rename : testing/marionette/harness/marionette/tests/unit/test_clearing.py => testing/marionette/harness/marionette_harness/tests/unit/test_clearing.py rename : testing/marionette/harness/marionette/tests/unit/test_click.py => testing/marionette/harness/marionette_harness/tests/unit/test_click.py rename : testing/marionette/harness/marionette/tests/unit/test_click_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_click_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_click_scrolling.py => testing/marionette/harness/marionette_harness/tests/unit/test_click_scrolling.py rename : testing/marionette/harness/marionette/tests/unit/test_cookies.py => testing/marionette/harness/marionette_harness/tests/unit/test_cookies.py rename : testing/marionette/harness/marionette/tests/unit/test_crash.py => testing/marionette/harness/marionette_harness/tests/unit/test_crash.py rename : testing/marionette/harness/marionette/tests/unit/test_data_driven.py => testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py rename : testing/marionette/harness/marionette/tests/unit/test_date_time_value.py => testing/marionette/harness/marionette_harness/tests/unit/test_date_time_value.py rename : testing/marionette/harness/marionette/tests/unit/test_element_retrieval.py => testing/marionette/harness/marionette_harness/tests/unit/test_element_retrieval.py rename : testing/marionette/harness/marionette/tests/unit/test_element_state.py => testing/marionette/harness/marionette_harness/tests/unit/test_element_state.py rename : testing/marionette/harness/marionette/tests/unit/test_element_state_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_element_state_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_elementsize.py => testing/marionette/harness/marionette_harness/tests/unit/test_elementsize.py rename : testing/marionette/harness/marionette/tests/unit/test_elementsize_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_elementsize_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_errors.py => testing/marionette/harness/marionette_harness/tests/unit/test_errors.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_async_script.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_async_script.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_isolate.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_isolate.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_sandboxes.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_sandboxes.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_script.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_script.py rename : testing/marionette/harness/marionette/tests/unit/test_expected.py => testing/marionette/harness/marionette_harness/tests/unit/test_expected.py rename : testing/marionette/harness/marionette/tests/unit/test_expectedfail.py => testing/marionette/harness/marionette_harness/tests/unit/test_expectedfail.py rename : testing/marionette/harness/marionette/tests/unit/test_file_upload.py => testing/marionette/harness/marionette_harness/tests/unit/test_file_upload.py rename : testing/marionette/harness/marionette/tests/unit/test_findelement_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_findelement_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_geckoinstance.py => testing/marionette/harness/marionette_harness/tests/unit/test_geckoinstance.py rename : testing/marionette/harness/marionette/tests/unit/test_getactiveframe_oop.py => testing/marionette/harness/marionette_harness/tests/unit/test_getactiveframe_oop.py rename : testing/marionette/harness/marionette/tests/unit/test_implicit_waits.py => testing/marionette/harness/marionette_harness/tests/unit/test_implicit_waits.py rename : testing/marionette/harness/marionette/tests/unit/test_import_script.py => testing/marionette/harness/marionette_harness/tests/unit/test_import_script.py rename : testing/marionette/harness/marionette/tests/unit/test_key_actions.py => testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py rename : testing/marionette/harness/marionette/tests/unit/test_localization.py => testing/marionette/harness/marionette_harness/tests/unit/test_localization.py rename : testing/marionette/harness/marionette/tests/unit/test_log.py => testing/marionette/harness/marionette_harness/tests/unit/test_log.py rename : testing/marionette/harness/marionette/tests/unit/test_marionette.py => testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py rename : testing/marionette/harness/marionette/tests/unit/test_modal_dialogs.py => testing/marionette/harness/marionette_harness/tests/unit/test_modal_dialogs.py rename : testing/marionette/harness/marionette/tests/unit/test_mouse_action.py => testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py rename : testing/marionette/harness/marionette/tests/unit/test_navigation.py => testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py rename : testing/marionette/harness/marionette/tests/unit/test_pagesource.py => testing/marionette/harness/marionette_harness/tests/unit/test_pagesource.py rename : testing/marionette/harness/marionette/tests/unit/test_pagesource_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_pagesource_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_position.py => testing/marionette/harness/marionette_harness/tests/unit/test_position.py rename : testing/marionette/harness/marionette/tests/unit/test_prefs.py => testing/marionette/harness/marionette_harness/tests/unit/test_prefs.py rename : testing/marionette/harness/marionette/tests/unit/test_profile_management.py => testing/marionette/harness/marionette_harness/tests/unit/test_profile_management.py rename : testing/marionette/harness/marionette/tests/unit/test_proxy.py => testing/marionette/harness/marionette_harness/tests/unit/test_proxy.py rename : testing/marionette/harness/marionette/tests/unit/test_quit_restart.py => testing/marionette/harness/marionette_harness/tests/unit/test_quit_restart.py rename : testing/marionette/harness/marionette/tests/unit/test_rendered_element.py => testing/marionette/harness/marionette_harness/tests/unit/test_rendered_element.py rename : testing/marionette/harness/marionette/tests/unit/test_report.py => testing/marionette/harness/marionette_harness/tests/unit/test_report.py rename : testing/marionette/harness/marionette/tests/unit/test_run_js_test.py => testing/marionette/harness/marionette_harness/tests/unit/test_run_js_test.py rename : testing/marionette/harness/marionette/tests/unit/test_screen_orientation.py => testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py rename : testing/marionette/harness/marionette/tests/unit/test_screenshot.py => testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py rename : testing/marionette/harness/marionette/tests/unit/test_select.py => testing/marionette/harness/marionette_harness/tests/unit/test_select.py rename : testing/marionette/harness/marionette/tests/unit/test_session.py => testing/marionette/harness/marionette_harness/tests/unit/test_session.py rename : testing/marionette/harness/marionette/tests/unit/test_set_window_size.py => testing/marionette/harness/marionette_harness/tests/unit/test_set_window_size.py rename : testing/marionette/harness/marionette/tests/unit/test_shadow_dom.py => testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_chrome.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_chrome.js rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_fail.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_fail.js rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_pass.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_pass.js rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_sanity.py => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_sanity.py rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_timeout.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_timeout.js rename : testing/marionette/harness/marionette/tests/unit/test_single_finger_desktop.py => testing/marionette/harness/marionette_harness/tests/unit/test_single_finger_desktop.py rename : testing/marionette/harness/marionette/tests/unit/test_skip_setup.py => testing/marionette/harness/marionette_harness/tests/unit/test_skip_setup.py rename : testing/marionette/harness/marionette/tests/unit/test_switch_frame.py => testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame.py rename : testing/marionette/harness/marionette/tests/unit/test_switch_frame_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_switch_remote_frame.py => testing/marionette/harness/marionette_harness/tests/unit/test_switch_remote_frame.py rename : testing/marionette/harness/marionette/tests/unit/test_teardown_context_preserved.py => testing/marionette/harness/marionette_harness/tests/unit/test_teardown_context_preserved.py rename : testing/marionette/harness/marionette/tests/unit/test_text.py => testing/marionette/harness/marionette_harness/tests/unit/test_text.py rename : testing/marionette/harness/marionette/tests/unit/test_text_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_text_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_timeouts.py => testing/marionette/harness/marionette_harness/tests/unit/test_timeouts.py rename : testing/marionette/harness/marionette/tests/unit/test_transport.py => testing/marionette/harness/marionette_harness/tests/unit/test_transport.py rename : testing/marionette/harness/marionette/tests/unit/test_typing.py => testing/marionette/harness/marionette_harness/tests/unit/test_typing.py rename : testing/marionette/harness/marionette/tests/unit/test_using_permissions.py => testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py rename : testing/marionette/harness/marionette/tests/unit/test_visibility.py => testing/marionette/harness/marionette_harness/tests/unit/test_visibility.py rename : testing/marionette/harness/marionette/tests/unit/test_wait.py => testing/marionette/harness/marionette_harness/tests/unit/test_wait.py rename : testing/marionette/harness/marionette/tests/unit/test_window_handles.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_handles.py rename : testing/marionette/harness/marionette/tests/unit/test_window_management.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py rename : testing/marionette/harness/marionette/tests/unit/test_window_position.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_position.py rename : testing/marionette/harness/marionette/tests/unit/test_window_switching.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_switching.py rename : testing/marionette/harness/marionette/tests/unit/test_window_title.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_title.py rename : testing/marionette/harness/marionette/tests/unit/test_window_title_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_title_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_window_type.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_type.py rename : testing/marionette/harness/marionette/tests/unit/test_with_using_context.py => testing/marionette/harness/marionette_harness/tests/unit/test_with_using_context.py rename : testing/marionette/harness/marionette/tests/unit/unit-tests.ini => testing/marionette/harness/marionette_harness/tests/unit/unit-tests.ini rename : testing/marionette/harness/marionette/tests/webapi-tests.ini => testing/marionette/harness/marionette_harness/tests/webapi-tests.ini rename : testing/marionette/harness/marionette/www/bug814037.html => testing/marionette/harness/marionette_harness/www/bug814037.html rename : testing/marionette/harness/marionette/www/click_out_of_bounds_overflow.html => testing/marionette/harness/marionette_harness/www/click_out_of_bounds_overflow.html rename : testing/marionette/harness/marionette/www/clicks.html => testing/marionette/harness/marionette_harness/www/clicks.html rename : testing/marionette/harness/marionette/www/cssTransform.html => testing/marionette/harness/marionette_harness/www/cssTransform.html rename : testing/marionette/harness/marionette/www/cssTransform2.html => testing/marionette/harness/marionette_harness/www/cssTransform2.html rename : testing/marionette/harness/marionette/www/datetimePage.html => testing/marionette/harness/marionette_harness/www/datetimePage.html rename : testing/marionette/harness/marionette/www/deletingFrame.html => testing/marionette/harness/marionette_harness/www/deletingFrame.html rename : testing/marionette/harness/marionette/www/double_click.html => testing/marionette/harness/marionette_harness/www/double_click.html rename : testing/marionette/harness/marionette/www/element_bottom.html => testing/marionette/harness/marionette_harness/www/element_bottom.html rename : testing/marionette/harness/marionette/www/element_left.html => testing/marionette/harness/marionette_harness/www/element_left.html rename : testing/marionette/harness/marionette/www/element_outside_viewport.html => testing/marionette/harness/marionette_harness/www/element_outside_viewport.html rename : testing/marionette/harness/marionette/www/element_right.html => testing/marionette/harness/marionette_harness/www/element_right.html rename : testing/marionette/harness/marionette/www/element_top.html => testing/marionette/harness/marionette_harness/www/element_top.html rename : testing/marionette/harness/marionette/www/empty.html => testing/marionette/harness/marionette_harness/www/empty.html rename : testing/marionette/harness/marionette/www/formPage.html => testing/marionette/harness/marionette_harness/www/formPage.html rename : testing/marionette/harness/marionette/www/frameset.html => testing/marionette/harness/marionette_harness/www/frameset.html rename : testing/marionette/harness/marionette/www/framesetPage2.html => testing/marionette/harness/marionette_harness/www/framesetPage2.html rename : testing/marionette/harness/marionette/www/hidden.html => testing/marionette/harness/marionette_harness/www/hidden.html rename : testing/marionette/harness/marionette/www/html5/blue.jpg => testing/marionette/harness/marionette_harness/www/html5/blue.jpg rename : testing/marionette/harness/marionette/www/html5/boolean_attributes.html => testing/marionette/harness/marionette_harness/www/html5/boolean_attributes.html rename : testing/marionette/harness/marionette/www/html5/geolocation.js => testing/marionette/harness/marionette_harness/www/html5/geolocation.js rename : testing/marionette/harness/marionette/www/html5/green.jpg => testing/marionette/harness/marionette_harness/www/html5/green.jpg rename : testing/marionette/harness/marionette/www/html5/offline.html => testing/marionette/harness/marionette_harness/www/html5/offline.html rename : testing/marionette/harness/marionette/www/html5/red.jpg => testing/marionette/harness/marionette_harness/www/html5/red.jpg rename : testing/marionette/harness/marionette/www/html5/status.html => testing/marionette/harness/marionette_harness/www/html5/status.html rename : testing/marionette/harness/marionette/www/html5/test.appcache => testing/marionette/harness/marionette_harness/www/html5/test.appcache rename : testing/marionette/harness/marionette/www/html5/test_html_inputs.html => testing/marionette/harness/marionette_harness/www/html5/test_html_inputs.html rename : testing/marionette/harness/marionette/www/html5/yellow.jpg => testing/marionette/harness/marionette_harness/www/html5/yellow.jpg rename : testing/marionette/harness/marionette/www/html5Page.html => testing/marionette/harness/marionette_harness/www/html5Page.html rename : testing/marionette/harness/marionette/www/javascriptPage.html => testing/marionette/harness/marionette_harness/www/javascriptPage.html rename : testing/marionette/harness/marionette/www/macbeth.html => testing/marionette/harness/marionette_harness/www/macbeth.html rename : testing/marionette/harness/marionette/www/modal_dialogs.html => testing/marionette/harness/marionette_harness/www/modal_dialogs.html rename : testing/marionette/harness/marionette/www/nestedElements.html => testing/marionette/harness/marionette_harness/www/nestedElements.html rename : testing/marionette/harness/marionette/www/rectangles.html => testing/marionette/harness/marionette_harness/www/rectangles.html rename : testing/marionette/harness/marionette/www/resultPage.html => testing/marionette/harness/marionette_harness/www/resultPage.html rename : testing/marionette/harness/marionette/www/scroll.html => testing/marionette/harness/marionette_harness/www/scroll.html rename : testing/marionette/harness/marionette/www/scroll2.html => testing/marionette/harness/marionette_harness/www/scroll2.html rename : testing/marionette/harness/marionette/www/scroll3.html => testing/marionette/harness/marionette_harness/www/scroll3.html rename : testing/marionette/harness/marionette/www/scroll4.html => testing/marionette/harness/marionette_harness/www/scroll4.html rename : testing/marionette/harness/marionette/www/scroll5.html => testing/marionette/harness/marionette_harness/www/scroll5.html rename : testing/marionette/harness/marionette/www/shim.js => testing/marionette/harness/marionette_harness/www/shim.js rename : testing/marionette/harness/marionette/www/test.html => testing/marionette/harness/marionette_harness/www/test.html rename : testing/marionette/harness/marionette/www/testAction.html => testing/marionette/harness/marionette_harness/www/testAction.html rename : testing/marionette/harness/marionette/www/testPageSource.html => testing/marionette/harness/marionette_harness/www/testPageSource.html rename : testing/marionette/harness/marionette/www/testPageSource.xml => testing/marionette/harness/marionette_harness/www/testPageSource.xml rename : testing/marionette/harness/marionette/www/testPageSourceWithUnicodeChars.html => testing/marionette/harness/marionette_harness/www/testPageSourceWithUnicodeChars.html rename : testing/marionette/harness/marionette/www/testSize.html => testing/marionette/harness/marionette_harness/www/testSize.html rename : testing/marionette/harness/marionette/www/test_accessibility.html => testing/marionette/harness/marionette_harness/www/test_accessibility.html rename : testing/marionette/harness/marionette/www/test_carets_columns.html => testing/marionette/harness/marionette_harness/www/test_carets_columns.html rename : testing/marionette/harness/marionette/www/test_carets_cursor.html => testing/marionette/harness/marionette_harness/www/test_carets_cursor.html rename : testing/marionette/harness/marionette/www/test_carets_display_none.html => testing/marionette/harness/marionette_harness/www/test_carets_display_none.html rename : testing/marionette/harness/marionette/www/test_carets_iframe.html => testing/marionette/harness/marionette_harness/www/test_carets_iframe.html rename : testing/marionette/harness/marionette/www/test_carets_longtext.html => testing/marionette/harness/marionette_harness/www/test_carets_longtext.html rename : testing/marionette/harness/marionette/www/test_carets_multipleline.html => testing/marionette/harness/marionette_harness/www/test_carets_multipleline.html rename : testing/marionette/harness/marionette/www/test_carets_multiplerange.html => testing/marionette/harness/marionette_harness/www/test_carets_multiplerange.html rename : testing/marionette/harness/marionette/www/test_carets_selection.html => testing/marionette/harness/marionette_harness/www/test_carets_selection.html rename : testing/marionette/harness/marionette/www/test_clearing.html => testing/marionette/harness/marionette_harness/www/test_clearing.html rename : testing/marionette/harness/marionette/www/test_dynamic.html => testing/marionette/harness/marionette_harness/www/test_dynamic.html rename : testing/marionette/harness/marionette/www/test_iframe.html => testing/marionette/harness/marionette_harness/www/test_iframe.html rename : testing/marionette/harness/marionette/www/test_inner_iframe.html => testing/marionette/harness/marionette_harness/www/test_inner_iframe.html rename : testing/marionette/harness/marionette/www/test_nested_iframe.html => testing/marionette/harness/marionette_harness/www/test_nested_iframe.html rename : testing/marionette/harness/marionette/www/test_oop_1.html => testing/marionette/harness/marionette_harness/www/test_oop_1.html rename : testing/marionette/harness/marionette/www/test_oop_2.html => testing/marionette/harness/marionette_harness/www/test_oop_2.html rename : testing/marionette/harness/marionette/www/test_shadow_dom.html => testing/marionette/harness/marionette_harness/www/test_shadow_dom.html rename : testing/marionette/harness/marionette/www/test_windows.html => testing/marionette/harness/marionette_harness/www/test_windows.html rename : testing/marionette/harness/marionette/www/windowHandles.html => testing/marionette/harness/marionette_harness/www/windowHandles.html rename : testing/marionette/harness/marionette/www/xhtmlTest.html => testing/marionette/harness/marionette_harness/www/xhtmlTest.html extra : rebase_source : 67058d4aaa858732563fda6790c3176071c6bd60
2016-12-12 15:05:34 +03:00
dirs['abs_test_install_dir'], 'marionette', 'harness', 'marionette_harness')
dirs['abs_marionette_tests_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'marionette', 'tests', 'testing',
Bug 1320073 - Rename marionette-client to marionette-harness and release version 4.0.0. r=gps,maja_zf,mtseng,SingingTree MozReview-Commit-ID: L6V3b5h8RWm --HG-- rename : testing/marionette/harness/marionette/chrome/test.xul => testing/marionette/chrome/test.xul rename : testing/marionette/harness/marionette/chrome/test2.xul => testing/marionette/chrome/test2.xul rename : testing/marionette/harness/marionette/chrome/test_anonymous_content.xul => testing/marionette/chrome/test_anonymous_content.xul rename : testing/marionette/harness/marionette/chrome/test_dialog.xul => testing/marionette/chrome/test_dialog.xul rename : testing/marionette/harness/marionette/chrome/test_nested_iframe.xul => testing/marionette/chrome/test_nested_iframe.xul rename : testing/marionette/harness/marionette/__init__.py => testing/marionette/harness/marionette_harness/__init__.py rename : testing/marionette/harness/marionette/marionette_test/__init__.py => testing/marionette/harness/marionette_harness/marionette_test/__init__.py rename : testing/marionette/harness/marionette/marionette_test/decorators.py => testing/marionette/harness/marionette_harness/marionette_test/decorators.py rename : testing/marionette/harness/marionette/marionette_test/errors.py => testing/marionette/harness/marionette_harness/marionette_test/errors.py rename : testing/marionette/harness/marionette/marionette_test/testcases.py => testing/marionette/harness/marionette_harness/marionette_test/testcases.py rename : testing/marionette/harness/marionette/runner/__init__.py => testing/marionette/harness/marionette_harness/runner/__init__.py rename : testing/marionette/harness/marionette/runner/base.py => testing/marionette/harness/marionette_harness/runner/base.py rename : testing/marionette/harness/marionette/runner/httpd.py => testing/marionette/harness/marionette_harness/runner/httpd.py rename : testing/marionette/harness/marionette/runner/mixins/__init__.py => testing/marionette/harness/marionette_harness/runner/mixins/__init__.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/History.md => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/History.md rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/__init__.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/__init__.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/client.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/client.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/server.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/server.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/webdriver_event_listener.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/webdriver_event_listener.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/Makefile => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/Makefile rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/.buildinfo => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/.buildinfo rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/browsermobproxy.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/browsermobproxy.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/index.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/index.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/client.txt => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/client.txt rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/index.txt => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/index.txt rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/server.txt => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/server.txt rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/basic.css => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/basic.css rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/default.css => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/default.css rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/doctools.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/doctools.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/pygments.css => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/pygments.css rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/searchtools.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/searchtools.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/sidebar.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/sidebar.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/websupport.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/websupport.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/client.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/client.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/genindex.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/genindex.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/index.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/index.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/objects.inv => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/objects.inv rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/py-modindex.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/py-modindex.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/search.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/search.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/searchindex.js => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/searchindex.js rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/server.html => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/server.html rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/client.rst => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/client.rst rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/conf.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/conf.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/index.rst => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/index.rst rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/make.bat => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/make.bat rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/server.rst => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/server.rst rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/readme.md => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/readme.md rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/setup.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/setup.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_client.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_client.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_remote.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_remote.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_webdriver.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_webdriver.py rename : testing/marionette/harness/marionette/runner/mixins/browsermob.py => testing/marionette/harness/marionette_harness/runner/mixins/browsermob.py rename : testing/marionette/harness/marionette/runner/mixins/window_manager.py => testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py rename : testing/marionette/harness/marionette/runner/serve.py => testing/marionette/harness/marionette_harness/runner/serve.py rename : testing/marionette/harness/marionette/runner/test.cert => testing/marionette/harness/marionette_harness/runner/test.cert rename : testing/marionette/harness/marionette/runner/test.key => testing/marionette/harness/marionette_harness/runner/test.key rename : testing/marionette/harness/marionette/runtests.py => testing/marionette/harness/marionette_harness/runtests.py rename : testing/marionette/harness/marionette/tests/harness_unit/conftest.py => testing/marionette/harness/marionette_harness/tests/harness_unit/conftest.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_httpd.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_httpd.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_arguments.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_arguments.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_harness.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_harness.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_runner.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_marionette_test_result.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_test_result.py rename : testing/marionette/harness/marionette/tests/harness_unit/test_serve.py => testing/marionette/harness/marionette_harness/tests/harness_unit/test_serve.py rename : testing/marionette/harness/marionette/tests/unit-tests.ini => testing/marionette/harness/marionette_harness/tests/unit-tests.ini rename : testing/marionette/harness/marionette/tests/unit/importanotherscript.js => testing/marionette/harness/marionette_harness/tests/unit/importanotherscript.js rename : testing/marionette/harness/marionette/tests/unit/importscript.js => testing/marionette/harness/marionette_harness/tests/unit/importscript.js rename : testing/marionette/harness/marionette/tests/unit/mn-restartless-unsigned.xpi => testing/marionette/harness/marionette_harness/tests/unit/mn-restartless-unsigned.xpi rename : testing/marionette/harness/marionette/tests/unit/single_finger_functions.py => testing/marionette/harness/marionette_harness/tests/unit/single_finger_functions.py rename : testing/marionette/harness/marionette/tests/unit/test_about_pages.py => testing/marionette/harness/marionette_harness/tests/unit/test_about_pages.py rename : testing/marionette/harness/marionette/tests/unit/test_accessibility.py => testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py rename : testing/marionette/harness/marionette/tests/unit/test_addons.py => testing/marionette/harness/marionette_harness/tests/unit/test_addons.py rename : testing/marionette/harness/marionette/tests/unit/test_anonymous_content.py => testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py rename : testing/marionette/harness/marionette/tests/unit/test_browsermobproxy.py => testing/marionette/harness/marionette_harness/tests/unit/test_browsermobproxy.py rename : testing/marionette/harness/marionette/tests/unit/test_capabilities.py => testing/marionette/harness/marionette_harness/tests/unit/test_capabilities.py rename : testing/marionette/harness/marionette/tests/unit/test_certificates.py => testing/marionette/harness/marionette_harness/tests/unit/test_certificates.py rename : testing/marionette/harness/marionette/tests/unit/test_checkbox.py => testing/marionette/harness/marionette_harness/tests/unit/test_checkbox.py rename : testing/marionette/harness/marionette/tests/unit/test_checkbox_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_checkbox_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_chrome_async_finish.js => testing/marionette/harness/marionette_harness/tests/unit/test_chrome_async_finish.js rename : testing/marionette/harness/marionette/tests/unit/test_chrome_element_css.py => testing/marionette/harness/marionette_harness/tests/unit/test_chrome_element_css.py rename : testing/marionette/harness/marionette/tests/unit/test_clearing.py => testing/marionette/harness/marionette_harness/tests/unit/test_clearing.py rename : testing/marionette/harness/marionette/tests/unit/test_click.py => testing/marionette/harness/marionette_harness/tests/unit/test_click.py rename : testing/marionette/harness/marionette/tests/unit/test_click_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_click_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_click_scrolling.py => testing/marionette/harness/marionette_harness/tests/unit/test_click_scrolling.py rename : testing/marionette/harness/marionette/tests/unit/test_cookies.py => testing/marionette/harness/marionette_harness/tests/unit/test_cookies.py rename : testing/marionette/harness/marionette/tests/unit/test_crash.py => testing/marionette/harness/marionette_harness/tests/unit/test_crash.py rename : testing/marionette/harness/marionette/tests/unit/test_data_driven.py => testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py rename : testing/marionette/harness/marionette/tests/unit/test_date_time_value.py => testing/marionette/harness/marionette_harness/tests/unit/test_date_time_value.py rename : testing/marionette/harness/marionette/tests/unit/test_element_retrieval.py => testing/marionette/harness/marionette_harness/tests/unit/test_element_retrieval.py rename : testing/marionette/harness/marionette/tests/unit/test_element_state.py => testing/marionette/harness/marionette_harness/tests/unit/test_element_state.py rename : testing/marionette/harness/marionette/tests/unit/test_element_state_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_element_state_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_elementsize.py => testing/marionette/harness/marionette_harness/tests/unit/test_elementsize.py rename : testing/marionette/harness/marionette/tests/unit/test_elementsize_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_elementsize_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_errors.py => testing/marionette/harness/marionette_harness/tests/unit/test_errors.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_async_script.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_async_script.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_isolate.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_isolate.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_sandboxes.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_sandboxes.py rename : testing/marionette/harness/marionette/tests/unit/test_execute_script.py => testing/marionette/harness/marionette_harness/tests/unit/test_execute_script.py rename : testing/marionette/harness/marionette/tests/unit/test_expected.py => testing/marionette/harness/marionette_harness/tests/unit/test_expected.py rename : testing/marionette/harness/marionette/tests/unit/test_expectedfail.py => testing/marionette/harness/marionette_harness/tests/unit/test_expectedfail.py rename : testing/marionette/harness/marionette/tests/unit/test_file_upload.py => testing/marionette/harness/marionette_harness/tests/unit/test_file_upload.py rename : testing/marionette/harness/marionette/tests/unit/test_findelement_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_findelement_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_geckoinstance.py => testing/marionette/harness/marionette_harness/tests/unit/test_geckoinstance.py rename : testing/marionette/harness/marionette/tests/unit/test_getactiveframe_oop.py => testing/marionette/harness/marionette_harness/tests/unit/test_getactiveframe_oop.py rename : testing/marionette/harness/marionette/tests/unit/test_implicit_waits.py => testing/marionette/harness/marionette_harness/tests/unit/test_implicit_waits.py rename : testing/marionette/harness/marionette/tests/unit/test_import_script.py => testing/marionette/harness/marionette_harness/tests/unit/test_import_script.py rename : testing/marionette/harness/marionette/tests/unit/test_key_actions.py => testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py rename : testing/marionette/harness/marionette/tests/unit/test_localization.py => testing/marionette/harness/marionette_harness/tests/unit/test_localization.py rename : testing/marionette/harness/marionette/tests/unit/test_log.py => testing/marionette/harness/marionette_harness/tests/unit/test_log.py rename : testing/marionette/harness/marionette/tests/unit/test_marionette.py => testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py rename : testing/marionette/harness/marionette/tests/unit/test_modal_dialogs.py => testing/marionette/harness/marionette_harness/tests/unit/test_modal_dialogs.py rename : testing/marionette/harness/marionette/tests/unit/test_mouse_action.py => testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py rename : testing/marionette/harness/marionette/tests/unit/test_navigation.py => testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py rename : testing/marionette/harness/marionette/tests/unit/test_pagesource.py => testing/marionette/harness/marionette_harness/tests/unit/test_pagesource.py rename : testing/marionette/harness/marionette/tests/unit/test_pagesource_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_pagesource_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_position.py => testing/marionette/harness/marionette_harness/tests/unit/test_position.py rename : testing/marionette/harness/marionette/tests/unit/test_prefs.py => testing/marionette/harness/marionette_harness/tests/unit/test_prefs.py rename : testing/marionette/harness/marionette/tests/unit/test_profile_management.py => testing/marionette/harness/marionette_harness/tests/unit/test_profile_management.py rename : testing/marionette/harness/marionette/tests/unit/test_proxy.py => testing/marionette/harness/marionette_harness/tests/unit/test_proxy.py rename : testing/marionette/harness/marionette/tests/unit/test_quit_restart.py => testing/marionette/harness/marionette_harness/tests/unit/test_quit_restart.py rename : testing/marionette/harness/marionette/tests/unit/test_rendered_element.py => testing/marionette/harness/marionette_harness/tests/unit/test_rendered_element.py rename : testing/marionette/harness/marionette/tests/unit/test_report.py => testing/marionette/harness/marionette_harness/tests/unit/test_report.py rename : testing/marionette/harness/marionette/tests/unit/test_run_js_test.py => testing/marionette/harness/marionette_harness/tests/unit/test_run_js_test.py rename : testing/marionette/harness/marionette/tests/unit/test_screen_orientation.py => testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py rename : testing/marionette/harness/marionette/tests/unit/test_screenshot.py => testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py rename : testing/marionette/harness/marionette/tests/unit/test_select.py => testing/marionette/harness/marionette_harness/tests/unit/test_select.py rename : testing/marionette/harness/marionette/tests/unit/test_session.py => testing/marionette/harness/marionette_harness/tests/unit/test_session.py rename : testing/marionette/harness/marionette/tests/unit/test_set_window_size.py => testing/marionette/harness/marionette_harness/tests/unit/test_set_window_size.py rename : testing/marionette/harness/marionette/tests/unit/test_shadow_dom.py => testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_chrome.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_chrome.js rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_fail.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_fail.js rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_pass.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_pass.js rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_sanity.py => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_sanity.py rename : testing/marionette/harness/marionette/tests/unit/test_simpletest_timeout.js => testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_timeout.js rename : testing/marionette/harness/marionette/tests/unit/test_single_finger_desktop.py => testing/marionette/harness/marionette_harness/tests/unit/test_single_finger_desktop.py rename : testing/marionette/harness/marionette/tests/unit/test_skip_setup.py => testing/marionette/harness/marionette_harness/tests/unit/test_skip_setup.py rename : testing/marionette/harness/marionette/tests/unit/test_switch_frame.py => testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame.py rename : testing/marionette/harness/marionette/tests/unit/test_switch_frame_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_switch_remote_frame.py => testing/marionette/harness/marionette_harness/tests/unit/test_switch_remote_frame.py rename : testing/marionette/harness/marionette/tests/unit/test_teardown_context_preserved.py => testing/marionette/harness/marionette_harness/tests/unit/test_teardown_context_preserved.py rename : testing/marionette/harness/marionette/tests/unit/test_text.py => testing/marionette/harness/marionette_harness/tests/unit/test_text.py rename : testing/marionette/harness/marionette/tests/unit/test_text_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_text_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_timeouts.py => testing/marionette/harness/marionette_harness/tests/unit/test_timeouts.py rename : testing/marionette/harness/marionette/tests/unit/test_transport.py => testing/marionette/harness/marionette_harness/tests/unit/test_transport.py rename : testing/marionette/harness/marionette/tests/unit/test_typing.py => testing/marionette/harness/marionette_harness/tests/unit/test_typing.py rename : testing/marionette/harness/marionette/tests/unit/test_using_permissions.py => testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py rename : testing/marionette/harness/marionette/tests/unit/test_visibility.py => testing/marionette/harness/marionette_harness/tests/unit/test_visibility.py rename : testing/marionette/harness/marionette/tests/unit/test_wait.py => testing/marionette/harness/marionette_harness/tests/unit/test_wait.py rename : testing/marionette/harness/marionette/tests/unit/test_window_handles.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_handles.py rename : testing/marionette/harness/marionette/tests/unit/test_window_management.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py rename : testing/marionette/harness/marionette/tests/unit/test_window_position.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_position.py rename : testing/marionette/harness/marionette/tests/unit/test_window_switching.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_switching.py rename : testing/marionette/harness/marionette/tests/unit/test_window_title.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_title.py rename : testing/marionette/harness/marionette/tests/unit/test_window_title_chrome.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_title_chrome.py rename : testing/marionette/harness/marionette/tests/unit/test_window_type.py => testing/marionette/harness/marionette_harness/tests/unit/test_window_type.py rename : testing/marionette/harness/marionette/tests/unit/test_with_using_context.py => testing/marionette/harness/marionette_harness/tests/unit/test_with_using_context.py rename : testing/marionette/harness/marionette/tests/unit/unit-tests.ini => testing/marionette/harness/marionette_harness/tests/unit/unit-tests.ini rename : testing/marionette/harness/marionette/tests/webapi-tests.ini => testing/marionette/harness/marionette_harness/tests/webapi-tests.ini rename : testing/marionette/harness/marionette/www/bug814037.html => testing/marionette/harness/marionette_harness/www/bug814037.html rename : testing/marionette/harness/marionette/www/click_out_of_bounds_overflow.html => testing/marionette/harness/marionette_harness/www/click_out_of_bounds_overflow.html rename : testing/marionette/harness/marionette/www/clicks.html => testing/marionette/harness/marionette_harness/www/clicks.html rename : testing/marionette/harness/marionette/www/cssTransform.html => testing/marionette/harness/marionette_harness/www/cssTransform.html rename : testing/marionette/harness/marionette/www/cssTransform2.html => testing/marionette/harness/marionette_harness/www/cssTransform2.html rename : testing/marionette/harness/marionette/www/datetimePage.html => testing/marionette/harness/marionette_harness/www/datetimePage.html rename : testing/marionette/harness/marionette/www/deletingFrame.html => testing/marionette/harness/marionette_harness/www/deletingFrame.html rename : testing/marionette/harness/marionette/www/double_click.html => testing/marionette/harness/marionette_harness/www/double_click.html rename : testing/marionette/harness/marionette/www/element_bottom.html => testing/marionette/harness/marionette_harness/www/element_bottom.html rename : testing/marionette/harness/marionette/www/element_left.html => testing/marionette/harness/marionette_harness/www/element_left.html rename : testing/marionette/harness/marionette/www/element_outside_viewport.html => testing/marionette/harness/marionette_harness/www/element_outside_viewport.html rename : testing/marionette/harness/marionette/www/element_right.html => testing/marionette/harness/marionette_harness/www/element_right.html rename : testing/marionette/harness/marionette/www/element_top.html => testing/marionette/harness/marionette_harness/www/element_top.html rename : testing/marionette/harness/marionette/www/empty.html => testing/marionette/harness/marionette_harness/www/empty.html rename : testing/marionette/harness/marionette/www/formPage.html => testing/marionette/harness/marionette_harness/www/formPage.html rename : testing/marionette/harness/marionette/www/frameset.html => testing/marionette/harness/marionette_harness/www/frameset.html rename : testing/marionette/harness/marionette/www/framesetPage2.html => testing/marionette/harness/marionette_harness/www/framesetPage2.html rename : testing/marionette/harness/marionette/www/hidden.html => testing/marionette/harness/marionette_harness/www/hidden.html rename : testing/marionette/harness/marionette/www/html5/blue.jpg => testing/marionette/harness/marionette_harness/www/html5/blue.jpg rename : testing/marionette/harness/marionette/www/html5/boolean_attributes.html => testing/marionette/harness/marionette_harness/www/html5/boolean_attributes.html rename : testing/marionette/harness/marionette/www/html5/geolocation.js => testing/marionette/harness/marionette_harness/www/html5/geolocation.js rename : testing/marionette/harness/marionette/www/html5/green.jpg => testing/marionette/harness/marionette_harness/www/html5/green.jpg rename : testing/marionette/harness/marionette/www/html5/offline.html => testing/marionette/harness/marionette_harness/www/html5/offline.html rename : testing/marionette/harness/marionette/www/html5/red.jpg => testing/marionette/harness/marionette_harness/www/html5/red.jpg rename : testing/marionette/harness/marionette/www/html5/status.html => testing/marionette/harness/marionette_harness/www/html5/status.html rename : testing/marionette/harness/marionette/www/html5/test.appcache => testing/marionette/harness/marionette_harness/www/html5/test.appcache rename : testing/marionette/harness/marionette/www/html5/test_html_inputs.html => testing/marionette/harness/marionette_harness/www/html5/test_html_inputs.html rename : testing/marionette/harness/marionette/www/html5/yellow.jpg => testing/marionette/harness/marionette_harness/www/html5/yellow.jpg rename : testing/marionette/harness/marionette/www/html5Page.html => testing/marionette/harness/marionette_harness/www/html5Page.html rename : testing/marionette/harness/marionette/www/javascriptPage.html => testing/marionette/harness/marionette_harness/www/javascriptPage.html rename : testing/marionette/harness/marionette/www/macbeth.html => testing/marionette/harness/marionette_harness/www/macbeth.html rename : testing/marionette/harness/marionette/www/modal_dialogs.html => testing/marionette/harness/marionette_harness/www/modal_dialogs.html rename : testing/marionette/harness/marionette/www/nestedElements.html => testing/marionette/harness/marionette_harness/www/nestedElements.html rename : testing/marionette/harness/marionette/www/rectangles.html => testing/marionette/harness/marionette_harness/www/rectangles.html rename : testing/marionette/harness/marionette/www/resultPage.html => testing/marionette/harness/marionette_harness/www/resultPage.html rename : testing/marionette/harness/marionette/www/scroll.html => testing/marionette/harness/marionette_harness/www/scroll.html rename : testing/marionette/harness/marionette/www/scroll2.html => testing/marionette/harness/marionette_harness/www/scroll2.html rename : testing/marionette/harness/marionette/www/scroll3.html => testing/marionette/harness/marionette_harness/www/scroll3.html rename : testing/marionette/harness/marionette/www/scroll4.html => testing/marionette/harness/marionette_harness/www/scroll4.html rename : testing/marionette/harness/marionette/www/scroll5.html => testing/marionette/harness/marionette_harness/www/scroll5.html rename : testing/marionette/harness/marionette/www/shim.js => testing/marionette/harness/marionette_harness/www/shim.js rename : testing/marionette/harness/marionette/www/test.html => testing/marionette/harness/marionette_harness/www/test.html rename : testing/marionette/harness/marionette/www/testAction.html => testing/marionette/harness/marionette_harness/www/testAction.html rename : testing/marionette/harness/marionette/www/testPageSource.html => testing/marionette/harness/marionette_harness/www/testPageSource.html rename : testing/marionette/harness/marionette/www/testPageSource.xml => testing/marionette/harness/marionette_harness/www/testPageSource.xml rename : testing/marionette/harness/marionette/www/testPageSourceWithUnicodeChars.html => testing/marionette/harness/marionette_harness/www/testPageSourceWithUnicodeChars.html rename : testing/marionette/harness/marionette/www/testSize.html => testing/marionette/harness/marionette_harness/www/testSize.html rename : testing/marionette/harness/marionette/www/test_accessibility.html => testing/marionette/harness/marionette_harness/www/test_accessibility.html rename : testing/marionette/harness/marionette/www/test_carets_columns.html => testing/marionette/harness/marionette_harness/www/test_carets_columns.html rename : testing/marionette/harness/marionette/www/test_carets_cursor.html => testing/marionette/harness/marionette_harness/www/test_carets_cursor.html rename : testing/marionette/harness/marionette/www/test_carets_display_none.html => testing/marionette/harness/marionette_harness/www/test_carets_display_none.html rename : testing/marionette/harness/marionette/www/test_carets_iframe.html => testing/marionette/harness/marionette_harness/www/test_carets_iframe.html rename : testing/marionette/harness/marionette/www/test_carets_longtext.html => testing/marionette/harness/marionette_harness/www/test_carets_longtext.html rename : testing/marionette/harness/marionette/www/test_carets_multipleline.html => testing/marionette/harness/marionette_harness/www/test_carets_multipleline.html rename : testing/marionette/harness/marionette/www/test_carets_multiplerange.html => testing/marionette/harness/marionette_harness/www/test_carets_multiplerange.html rename : testing/marionette/harness/marionette/www/test_carets_selection.html => testing/marionette/harness/marionette_harness/www/test_carets_selection.html rename : testing/marionette/harness/marionette/www/test_clearing.html => testing/marionette/harness/marionette_harness/www/test_clearing.html rename : testing/marionette/harness/marionette/www/test_dynamic.html => testing/marionette/harness/marionette_harness/www/test_dynamic.html rename : testing/marionette/harness/marionette/www/test_iframe.html => testing/marionette/harness/marionette_harness/www/test_iframe.html rename : testing/marionette/harness/marionette/www/test_inner_iframe.html => testing/marionette/harness/marionette_harness/www/test_inner_iframe.html rename : testing/marionette/harness/marionette/www/test_nested_iframe.html => testing/marionette/harness/marionette_harness/www/test_nested_iframe.html rename : testing/marionette/harness/marionette/www/test_oop_1.html => testing/marionette/harness/marionette_harness/www/test_oop_1.html rename : testing/marionette/harness/marionette/www/test_oop_2.html => testing/marionette/harness/marionette_harness/www/test_oop_2.html rename : testing/marionette/harness/marionette/www/test_shadow_dom.html => testing/marionette/harness/marionette_harness/www/test_shadow_dom.html rename : testing/marionette/harness/marionette/www/test_windows.html => testing/marionette/harness/marionette_harness/www/test_windows.html rename : testing/marionette/harness/marionette/www/windowHandles.html => testing/marionette/harness/marionette_harness/www/windowHandles.html rename : testing/marionette/harness/marionette/www/xhtmlTest.html => testing/marionette/harness/marionette_harness/www/xhtmlTest.html extra : rebase_source : 67058d4aaa858732563fda6790c3176071c6bd60
2016-12-12 15:05:34 +03:00
'marionette', 'harness', 'marionette_harness', 'tests')
dirs['abs_avds_dir'] = self.config.get("avds_dir", "/home/cltbld/.android")
for key in dirs.keys():
if key not in abs_dirs:
abs_dirs[key] = dirs[key]
self.abs_dirs = abs_dirs
return self.abs_dirs
def _query_tests_dir(self, test_suite):
dirs = self.query_abs_dirs()
try:
test_dir = self.config["suite_definitions"][test_suite]["testsdir"]
except Exception:
test_dir = test_suite
return os.path.join(dirs['abs_test_install_dir'], test_dir)
def _get_mozharness_test_paths(self, suite):
test_paths = os.environ.get('MOZHARNESS_TEST_PATHS')
if not test_paths:
return
return json.loads(test_paths).get(suite)
def _build_command(self):
c = self.config
dirs = self.query_abs_dirs()
if self.test_suite not in self.config["suite_definitions"]:
self.fatal("Key '%s' not defined in the config!" % self.test_suite)
cmd = [
self.query_python_path('python'),
'-u',
os.path.join(
self._query_tests_dir(self.test_suite),
self.config["suite_definitions"][self.test_suite]["run_filename"]
),
]
raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
'%s_raw.log' % self.test_suite)
error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
'%s_errorsummary.log' % self.test_suite)
str_format_values = {
'device_serial': self.device_serial,
# IP address of the host as seen from the emulator
'remote_webserver': '10.0.2.2',
'xre_path': self.xre_path,
'utility_path': self.xre_path,
'http_port': '8854', # starting http port to use for the mochitest server
'ssl_port': '4454', # starting ssl port to use for the server
'certs_path': os.path.join(dirs['abs_work_dir'], 'tests/certs'),
# TestingMixin._download_and_extract_symbols() will set
# self.symbols_path when downloading/extracting.
'symbols_path': self.symbols_path,
'modules_dir': dirs['abs_modules_dir'],
'installer_path': self.installer_path,
'raw_log_file': raw_log_file,
'log_tbpl_level': self.log_tbpl_level,
'log_raw_level': self.log_raw_level,
'error_summary_file': error_summary_file,
'gecko_log': '-',
# marionette options
'address': c.get('marionette_address'),
'marionette_extra': c.get('marionette_extra', ''),
'xpcshell_extra': c.get('xpcshell_extra', ''),
'test_manifest': os.path.join(
dirs['abs_marionette_tests_dir'],
self.config.get('marionette_test_manifest', '')
),
'gtest_dir': os.path.join(dirs['abs_test_install_dir'], 'gtest',
'gtest_bin', 'gtest'),
}
user_paths = self._get_mozharness_test_paths(self.test_suite)
for option in self.config["suite_definitions"][self.test_suite]["options"]:
opt = option.split('=')[0]
# override configured chunk options with script args, if specified
if opt in ('--this-chunk', '--total-chunks'):
if user_paths or getattr(self, opt.replace('-', '_').strip('_'), None) is not None:
continue
if '%(app)' in option:
# only query package name if requested
cmd.extend([option % {'app': self.query_package_name()}])
else:
option = option % str_format_values
if option:
cmd.extend([option])
if 'mochitest' in self.test_suite:
category = 'mochitest'
elif 'reftest' in self.test_suite or 'crashtest' in self.test_suite:
category = 'reftest'
else:
category = self.test_suite
if category not in SUITE_NO_E10S:
if category in SUITE_DEFAULT_E10S and not self.e10s:
cmd.extend(['--disable-e10s'])
elif category not in SUITE_DEFAULT_E10S and self.e10s:
cmd.extend(['--e10s'])
if not (self.verify_enabled or self.per_test_coverage):
if user_paths:
cmd.extend(user_paths)
elif not (self.verify_enabled or self.per_test_coverage):
if self.this_chunk is not None:
cmd.extend(['--this-chunk', self.this_chunk])
if self.total_chunks is not None:
cmd.extend(['--total-chunks', self.total_chunks])
if self.disable_webrender:
cmd.extend(['--setenv', 'MOZ_WEBRENDER=0'])
elif self.enable_webrender:
cmd.extend(['--setenv', 'MOZ_WEBRENDER=1'])
try_options, try_tests = self.try_args(self.test_suite)
cmd.extend(try_options)
if not self.verify_enabled and not self.per_test_coverage:
cmd.extend(self.query_tests_args(
self.config["suite_definitions"][self.test_suite].get("tests"),
None,
try_tests))
if self.java_code_coverage_enabled:
cmd.extend(['--enable-coverage',
'--coverage-output-dir', self.java_coverage_output_dir])
return cmd
def _query_suites(self):
if self.test_suite:
return [(self.test_suite, self.test_suite)]
# per-test mode: determine test suites to run
# For each test category, provide a list of supported sub-suites and a mapping
# between the per_test_base suite name and the android suite name.
all = [('mochitest', {'plain': 'mochitest',
'chrome': 'mochitest-chrome',
'mochitest-media': 'mochitest-media',
'plain-clipboard': 'mochitest-plain-clipboard',
'plain-gpu': 'mochitest-plain-gpu'}),
('reftest', {'reftest': 'reftest',
'crashtest': 'crashtest',
'jsreftest': 'jsreftest'}),
('xpcshell', {'xpcshell': 'xpcshell'})]
suites = []
for (category, all_suites) in all:
cat_suites = self.query_per_test_category_suites(category, all_suites)
for k in cat_suites.keys():
suites.append((k, cat_suites[k]))
return suites
def _query_suite_categories(self):
if self.test_suite:
categories = [self.test_suite]
else:
# per-test mode
categories = ['mochitest', 'reftest', 'xpcshell']
return categories
##########################################
# Actions for AndroidEmulatorTest #
##########################################
def preflight_install(self):
# in the base class, this checks for mozinstall, but we don't use it
pass
@PreScriptAction('create-virtualenv')
def pre_create_virtualenv(self, action):
dirs = self.query_abs_dirs()
requirements = None
suites = self._query_suites()
if ('mochitest-media', 'mochitest-media') in suites:
# mochitest-media is the only thing that needs this
requirements = os.path.join(dirs['abs_mochitest_dir'],
'websocketprocessbridge',
'websocketprocessbridge_requirements.txt')
elif ('marionette', 'marionette') in suites:
requirements = os.path.join(dirs['abs_test_install_dir'],
'config', 'marionette_requirements.txt')
if requirements:
self.register_virtualenv_module(requirements=[requirements],
two_pass=True)
def download_and_extract(self):
"""
Download and extract fennec APK, tests.zip, host utils, and robocop (if required).
"""
super(AndroidEmulatorTest, self).download_and_extract(
suite_categories=self._query_suite_categories())
dirs = self.query_abs_dirs()
if self.test_suite and self.test_suite.startswith('robocop'):
robocop_url = self.installer_url[:self.installer_url.rfind('/')] + '/robocop.apk'
self.info("Downloading robocop...")
self.download_file(robocop_url, 'robocop.apk', dirs['abs_work_dir'], error_level=FATAL)
self.xre_path = self.download_hostutils(dirs['abs_xre_dir'])
def install(self):
"""
Install APKs on the device.
"""
install_needed = (not self.test_suite) or \
self.config["suite_definitions"][self.test_suite].get("install")
if install_needed is False:
self.info("Skipping apk installation for %s" % self.test_suite)
return
assert self.installer_path is not None, \
"Either add installer_path to the config or use --installer-path."
self.install_apk(self.installer_path)
# Install Robocop if required
if self.test_suite and self.test_suite.startswith('robocop'):
self.install_apk(self.robocop_path)
self.info("Finished installing apps for %s" % self.device_serial)
def run_tests(self):
"""
Run the tests
"""
self.start_time = datetime.datetime.now()
max_per_test_time = datetime.timedelta(minutes=60)
per_test_args = []
suites = self._query_suites()
minidump = self.query_minidump_stackwalk()
for (per_test_suite, suite) in suites:
self.test_suite = suite
cmd = self._build_command()
try:
cwd = self._query_tests_dir(self.test_suite)
except Exception:
self.fatal("Don't know how to run --test-suite '%s'!" % self.test_suite)
env = self.query_env()
if minidump:
env['MINIDUMP_STACKWALK'] = minidump
env['MOZ_UPLOAD_DIR'] = self.query_abs_dirs()['abs_blob_upload_dir']
env['MINIDUMP_SAVE_PATH'] = self.query_abs_dirs()['abs_blob_upload_dir']
env['RUST_BACKTRACE'] = 'full'
summary = {}
for per_test_args in self.query_args(per_test_suite):
if (datetime.datetime.now() - self.start_time) > max_per_test_time:
# Running tests has run out of time. That is okay! Stop running
# them so that a task timeout is not triggered, and so that
# (partial) results are made available in a timely manner.
self.info("TinderboxPrint: Running tests took too long: "
"Not all tests were executed.<br/>")
# Signal per-test time exceeded, to break out of suites and
# suite categories loops also.
return
final_cmd = copy.copy(cmd)
if len(per_test_args) > 0:
# in per-test mode, remove any chunk arguments from command
for arg in final_cmd:
if 'total-chunk' in arg or 'this-chunk' in arg:
final_cmd.remove(arg)
final_cmd.extend(per_test_args)
self.info("Running the command %s" % subprocess.list2cmdline(final_cmd))
self.info("##### %s log begins" % self.test_suite)
suite_category = self.test_suite
parser = self.get_test_output_parser(
suite_category,
config=self.config,
log_obj=self.log_obj,
error_list=[])
self.run_command(final_cmd, cwd=cwd, env=env, output_parser=parser)
tbpl_status, log_level, summary = parser.evaluate_parser(0,
previous_summary=summary)
parser.append_tinderboxprint_line(self.test_suite)
self.info("##### %s log ends" % self.test_suite)
if len(per_test_args) > 0:
self.record_status(tbpl_status, level=log_level)
self.log_per_test_status(per_test_args[-1], tbpl_status, log_level)
if tbpl_status == TBPL_RETRY:
self.info("Per-test run abandoned due to RETRY status")
return
else:
self.record_status(tbpl_status, level=log_level)
self.log("The %s suite: %s ran with return status: %s" %
(suite_category, suite, tbpl_status), level=log_level)
if __name__ == '__main__':
test = AndroidEmulatorTest()
test.run_and_exit()