author | Michael Ratcliffe <mratcliffe@mozilla.com> |
Tue, 25 Mar 2014 16:52:53 +0000 | |
changeset 197591 | 52da0fc935cec05dc09f1a9ac05a5259ae977fba |
parent 197590 | 4182ec5042d5ebd501f4d6fe8c5d158e215db2d5 |
child 197592 | df3c1971ecdc39482e8c39e456b0ccdbed9cc314 |
push id | 486 |
push user | asasaki@mozilla.com |
push date | Mon, 14 Jul 2014 18:39:42 +0000 |
treeherder | mozilla-release@d33428174ff1 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jmaher |
bugs | 983948 |
milestone | 31.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/devtools/app-manager/test/browser.ini +++ b/browser/devtools/app-manager/test/browser.ini @@ -1,9 +1,11 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js hosted_app.manifest manifest.webapp [browser_manifest_editor.js] skip-if = os == "linux"
--- a/browser/devtools/canvasdebugger/test/browser.ini +++ b/browser/devtools/canvasdebugger/test/browser.ini @@ -1,9 +1,10 @@ [DEFAULT] +subsuite = devtools support-files = doc_simple-canvas.html doc_simple-canvas-deep-stack.html doc_simple-canvas-transparent.html head.js [browser_canvas-actor-test-01.js] [browser_canvas-actor-test-02.js]
--- a/browser/devtools/commandline/test/browser.ini +++ b/browser/devtools/commandline/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js helpers.js mockCommands.js [browser_cmd_addon.js] [browser_cmd_calllog.js] skip-if = true || e10s # Bug 845831
--- a/browser/devtools/fontinspector/test/browser.ini +++ b/browser/devtools/fontinspector/test/browser.ini @@ -1,8 +1,10 @@ [DEFAULT] +subsuite = devtools + support-files = browser_font.woff browser_fontinspector.html [browser_fontinspector.js] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s
--- a/browser/devtools/framework/test/browser.ini +++ b/browser/devtools/framework/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = browser_toolbox_options_disable_js.html browser_toolbox_options_disable_js_iframe.html browser_toolbox_options_disable_cache.sjs head.js [browser_devtools_api.js] [browser_dynamic_tool_enabling.js]
--- a/browser/devtools/inspector/test/browser.ini +++ b/browser/devtools/inspector/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = browser_inspector_breadcrumbs.html browser_inspector_bug_650804_search.html browser_inspector_bug_831693_search_suggestions.html browser_inspector_cmd_inspect.html browser_inspector_dead_node_exception.html browser_inspector_destroyselection.html browser_inspector_menu.html
--- a/browser/devtools/layoutview/test/browser.ini +++ b/browser/devtools/layoutview/test/browser.ini @@ -1,10 +1,11 @@ [DEFAULT] support-files = head.js +subsuite = devtools [browser_layoutview.js] skip-if = true [browser_editablemodel.js] [browser_editablemodel_allproperties.js] [browser_editablemodel_border.js] [browser_editablemodel_stylerules.js]
--- a/browser/devtools/markupview/test/browser.ini +++ b/browser/devtools/markupview/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = doc_markup_edit.html doc_markup_flashing.html doc_markup_mutation.html doc_markup_navigation.html doc_markup_pagesize_01.html doc_markup_pagesize_02.html doc_markup_search.html
--- a/browser/devtools/netmonitor/test/browser.ini +++ b/browser/devtools/netmonitor/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js html_content-type-test-page.html html_content-type-without-cache-test-page.html html_custom-get-page.html html_single-get-page.html html_cyrillic-test-page.html html_filter-test-page.html
--- a/browser/devtools/profiler/test/browser.ini +++ b/browser/devtools/profiler/test/browser.ini @@ -1,9 +1,11 @@ [DEFAULT] +subsuite = devtools + # Crashes/timeouts on all platforms (bug 973974) skip-if = true support-files = head.js mock_console_api.html mock_profiler_bug_834878_page.html mock_profiler_bug_834878_script.js
--- a/browser/devtools/responsivedesign/test/browser.ini +++ b/browser/devtools/responsivedesign/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js touch.html [browser_responsive_cmd.js] [browser_responsivecomputedview.js] [browser_responsiveruleview.js] [browser_responsiveui.js]
--- a/browser/devtools/scratchpad/test/browser.ini +++ b/browser/devtools/scratchpad/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js [browser_scratchpad_browser_last_window_closing.js] [browser_scratchpad_reset_undo.js] [browser_scratchpad_display_outputs_errors.js] [browser_scratchpad_eval_func.js] [browser_scratchpad_goto_line_ui.js] [browser_scratchpad_reload_and_run.js]
--- a/browser/devtools/shadereditor/test/browser.ini +++ b/browser/devtools/shadereditor/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = doc_blended-geometry.html doc_multiple-contexts.html doc_overlapping-geometry.html doc_shader-order.html doc_simple-canvas.html head.js
--- a/browser/devtools/shared/test/browser.ini +++ b/browser/devtools/shared/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = browser_layoutHelpers.html browser_layoutHelpers_iframe.html browser_templater_basic.html browser_toolbar_basic.html browser_toolbar_webconsole_errors_count.html head.js leakhunt.js
--- a/browser/devtools/sourceeditor/test/browser.ini +++ b/browser/devtools/sourceeditor/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = cm_comment_test.js cm_doc_test.js cm_driver.js cm_emacs_test.js cm_mode_test.css cm_mode_test.js cm_multi_test.js
--- a/browser/devtools/styleeditor/test/browser.ini +++ b/browser/devtools/styleeditor/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = autocomplete.html browser_styleeditor_cmd_edit.html four.html head.js import.css import.html import2.css
--- a/browser/devtools/styleinspector/test/browser.ini +++ b/browser/devtools/styleinspector/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = doc_content_stylesheet.html doc_content_stylesheet.xul doc_content_stylesheet_imported.css doc_content_stylesheet_imported2.css doc_content_stylesheet_linked.css doc_content_stylesheet_script.css doc_content_stylesheet_xul.css
--- a/browser/devtools/tilt/test/browser.ini +++ b/browser/devtools/tilt/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js [browser_tilt_01_lazy_getter.js] [browser_tilt_02_notifications-seq.js] [browser_tilt_02_notifications-tabs.js] [browser_tilt_02_notifications.js] [browser_tilt_03_tab_switch.js] [browser_tilt_04_initialization.js]
--- a/browser/devtools/webaudioeditor/test/browser.ini +++ b/browser/devtools/webaudioeditor/test/browser.ini @@ -1,10 +1,10 @@ [DEFAULT] - +subsuite = devtools support-files = doc_simple-context.html doc_complex-context.html doc_simple-node-creation.html head.js [browser_webaudio-actor-simple.js] [browser_audionode-actor-get-set-param.js]
--- a/browser/devtools/webconsole/test/browser.ini +++ b/browser/devtools/webconsole/test/browser.ini @@ -1,10 +1,12 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools + support-files = head.js test-bug-585956-console-trace.html test-bug-593003-iframe-wrong-hud-iframe.html test-bug-593003-iframe-wrong-hud.html test-bug-595934-canvas-css.html test-bug-595934-canvas-css.js test-bug-595934-css-loader.css
--- a/testing/mach_commands.py +++ b/testing/mach_commands.py @@ -75,16 +75,21 @@ TEST_SUITES = { 'aliases': ('bc', 'BC', 'Bc'), 'mach_command': 'mochitest-browser', 'kwargs': {'test_file': None}, }, 'mochitest-chrome': { 'mach_command': 'mochitest-chrome', 'kwargs': {'test_file': None}, }, + 'mochitest-devtools': { + 'aliases': ('dt', 'DT', 'Dt'), + 'mach_command': 'mochitest-browser --subsuite=devtools', + 'kwargs': {'test_file': None}, + }, 'mochitest-ipcplugins': { 'make_target': 'mochitest-ipcplugins', }, 'mochitest-plain': { 'mach_command': 'mochitest-plain', 'kwargs': {'test_file': None}, }, 'reftest': {
--- a/testing/mochitest/mach_commands.py +++ b/testing/mochitest/mach_commands.py @@ -252,27 +252,31 @@ class MochitestRunner(MozbuildObject): for handler in remove_handlers: logging.getLogger().removeHandler(handler) runner = mochitest.Mochitest() opts = mochitest.MochitestOptions() options, args = opts.parse_args([]) + options.subsuite = '' flavor = suite # Need to set the suite options before verifyOptions below. if suite == 'plain': # Don't need additional options for plain. flavor = 'mochitest' elif suite == 'chrome': options.chrome = True elif suite == 'browser': options.browserChrome = True flavor = 'browser-chrome' + elif suite == 'devtools': + options.browserChrome = True + options.subsuite = 'devtools' elif suite == 'metro': options.immersiveMode = True options.browserChrome = True elif suite == 'a11y': options.a11y = True elif suite == 'webapprt-content': options.webapprtContent = True options.app = self.get_webapp_runtime_path() @@ -586,16 +590,23 @@ class MachCommands(MachCommandBase): @Command('mochitest-browser', category='testing', conditions=[conditions.is_firefox], description='Run a mochitest with browser chrome.') @MochitestCommand def run_mochitest_browser(self, test_paths, **kwargs): return self.run_mochitest(test_paths, 'browser', **kwargs) + @Command('mochitest-devtools', category='testing', + conditions=[conditions.is_firefox], + description='Run a devtools mochitest with browser chrome.') + @MochitestCommand + def run_mochitest_devtools(self, test_paths, **kwargs): + return self.run_mochitest(test_paths, 'devtools', **kwargs) + @Command('mochitest-metro', category='testing', conditions=[conditions.is_firefox], description='Run a mochitest with metro browser chrome.') @MochitestCommand def run_mochitest_metro(self, test_paths, **kwargs): return self.run_mochitest(test_paths, 'metro', **kwargs) @Command('mochitest-a11y', category='testing',
--- a/testing/mochitest/mochitest_options.py +++ b/testing/mochitest/mochitest_options.py @@ -166,16 +166,22 @@ class MochitestOptions(optparse.OptionPa "default": "", }], [["--browser-chrome"], { "action": "store_true", "dest": "browserChrome", "help": "run browser chrome Mochitests", "default": False, }], + [["--subsuite"], + { "action": "store", + "dest": "subsuite", + "help": "subsuite of tests to run", + "default": "", + }], [["--webapprt-content"], { "action": "store_true", "dest": "webapprtContent", "help": "run WebappRT content tests", "default": False, }], [["--webapprt-chrome"], { "action": "store_true",
--- a/testing/mochitest/runtests.py +++ b/testing/mochitest/runtests.py @@ -303,17 +303,20 @@ class MochitestUtilsMixin(object): endAt -- name of test to end at timeout -- per-test timeout in seconds repeat -- How many times to repeat the test, ie: repeat=1 will run the test twice. """ # allow relative paths for logFile if options.logFile: options.logFile = self.getLogFilePath(options.logFile) - if options.browserChrome or options.chrome or options.a11y or options.webapprtChrome: + + # Note that all tests under options.subsuite need to be browser chrome tests. + if options.browserChrome or options.chrome or options.subsuite or \ + options.a11y or options.webapprtChrome: self.makeTestConfig(options) else: if options.autorun: self.urlOpts.append("autorun=1") if options.timeout: self.urlOpts.append("timeout=%d" % options.timeout) if options.closeWhenDone: self.urlOpts.append("closeWhenDone=1") @@ -458,19 +461,20 @@ class MochitestUtilsMixin(object): # rid ourselves of 2.6. info = {} for k, v in mozinfo.info.items(): if isinstance(k, unicode): k = k.encode('ascii') info[k] = v # Bug 883858 - return all tests including disabled tests - tests = manifest.active_tests(disabled=True, **info) + tests = manifest.active_tests(disabled=True, options=options, **info) paths = [] testPath = self.getTestPath(options) + for test in tests: pathAbs = os.path.abspath(test['path']) assert pathAbs.startswith(testRootAbs) tp = pathAbs[len(testRootAbs):].replace('\\', '/').strip('/') # Filter out tests if we are using --test-path if testPath and not tp.startswith(testPath): continue
--- a/testing/mozbase/manifestdestiny/manifestparser/manifestparser.py +++ b/testing/mozbase/manifestdestiny/manifestparser/manifestparser.py @@ -441,16 +441,19 @@ class ManifestParser(object): rootdir = self.rootdir + os.path.sep # read the configuration sections = read_ini(fp=fp, variables=defaults, strict=self.strict) self.manifest_defaults[filename] = defaults # get the tests for section, data in sections: + subsuite = '' + if 'subsuite' in data: + subsuite = data['subsuite'] # a file to include # TODO: keep track of included file structure: # self.manifests = {'manifest.ini': 'relative/path.ini'} if section.startswith('include:'): include_file = section.split('include:', 1)[-1] include_file = normalize_path(include_file) if not os.path.isabs(include_file): @@ -493,16 +496,17 @@ class ManifestParser(object): # When the rootdir is unknown, the relpath needs to be left # unchanged. We use an empty string as rootdir in that case, # which leaves relpath unchanged after slicing. if path.startswith(rootdir): _relpath = path[len(rootdir):] else: _relpath = relpath(path, rootdir) + test['subsuite'] = subsuite test['path'] = path test['relpath'] = _relpath # append the item self.tests.append(test) def read(self, *filenames, **defaults): """ @@ -1075,24 +1079,30 @@ class TestManifest(ManifestParser): test.setdefault('disabled', reason) # mark test as a fail if so indicated if fail_tag in test: condition = test[fail_tag] if parse(condition, **values): test['expected'] = 'fail' - def active_tests(self, exists=True, disabled=True, **values): + def active_tests(self, exists=True, disabled=True, options=None, **values): """ - exists : return only existing tests - disabled : whether to return disabled tests - tags : keys and values to filter on (e.g. `os = linux mac`) """ + tests = [i.copy() for i in self.tests] # shallow copy - tests = [i.copy() for i in self.tests] # shallow copy + # Filter on current subsuite + if options: + if options.subsuite: + tests = [test for test in tests if options.subsuite == test['subsuite']] + else: + tests = [test for test in tests if not test['subsuite']] # mark all tests as passing unless indicated otherwise for test in tests: test['expected'] = test.get('expected', 'pass') # ignore tests that do not exist if exists: tests = [test for test in tests if os.path.exists(test['path'])]
--- a/testing/mozbase/manifestdestiny/tests/test_convert_directory.py +++ b/testing/mozbase/manifestdestiny/tests/test_convert_directory.py @@ -42,22 +42,26 @@ class TestDirectoryConversion(unittest.T try: stub = stub.replace(os.path.sep, "/") self.assertTrue(os.path.exists(stub) and os.path.isdir(stub)) # Make a manifest for it manifest = convert([stub]) self.assertEqual(str(manifest), """[%(stub)s/bar] +subsuite = [%(stub)s/fleem] +subsuite = [%(stub)s/foo] +subsuite = [%(stub)s/subdir/subfile] +subsuite = """ % dict(stub=stub)) except: raise finally: shutil.rmtree(stub) # cleanup def test_convert_directory_manifests_in_place(self):
--- a/testing/mozbase/manifestdestiny/tests/test_manifestparser.py +++ b/testing/mozbase/manifestdestiny/tests/test_manifestparser.py @@ -100,17 +100,17 @@ class TestManifestParser(unittest.TestCa # All of the included tests actually exist: self.assertEqual([i['name'] for i in parser.missing()], []) # Write the output to a manifest: buffer = StringIO() parser.write(fp=buffer, global_kwargs={'foo': 'bar'}) self.assertEqual(buffer.getvalue().strip(), - '[DEFAULT]\nfoo = bar\n\n[fleem]\n\n[include/flowers]\nblue = ocean\nred = roses\nyellow = submarine') + '[DEFAULT]\nfoo = bar\n\n[fleem]\nsubsuite = \n\n[include/flowers]\nblue = ocean\nred = roses\nsubsuite = \nyellow = submarine') def test_copy(self): """Test our ability to copy a set of manifests""" tempdir = tempfile.mkdtemp() include_example = os.path.join(here, 'include-example.ini') manifest = ManifestParser(manifests=(include_example,)) manifest.copy(tempdir)
--- a/testing/testsuite-targets.mk +++ b/testing/testsuite-targets.mk @@ -15,17 +15,17 @@ endif # include automation-build.mk to get the path to the binary TARGET_DEPTH = $(DEPTH) include $(topsrcdir)/build/binary-location.mk SYMBOLS_PATH := --symbols-path=$(DIST)/crashreporter-symbols # Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] mochitest*|. -MOCHITESTS := mochitest-plain mochitest-chrome mochitest-a11y mochitest-ipcplugins +MOCHITESTS := mochitest-plain mochitest-chrome mochitest-devtools mochitest-a11y mochitest-ipcplugins mochitest:: $(MOCHITESTS) ifndef TEST_PACKAGE_NAME TEST_PACKAGE_NAME := $(ANDROID_PACKAGE_NAME) endif RUN_MOCHITEST_B2G_DESKTOP = \ rm -f ./$@.log && \ @@ -140,16 +140,20 @@ mochitest-1 mochitest-2 mochitest-3 moch echo 'mochitest: $* / 5' $(RUN_MOCHITEST) --chunk-by-dir=4 --total-chunks=5 --this-chunk=$* $(CHECK_TEST_ERROR) mochitest-chrome: $(RUN_MOCHITEST) --chrome $(CHECK_TEST_ERROR) +mochitest-devtools: + $(RUN_MOCHITEST) --subsuite=devtools + $(CHECK_TEST_ERROR) + mochitest-a11y: $(RUN_MOCHITEST) --a11y $(CHECK_TEST_ERROR) mochitest-ipcplugins: ifeq (Darwin,$(OS_ARCH)) ifeq (i386,$(TARGET_CPU)) $(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.i386.test.plugin=false $(IPCPLUGINS_PATH_ARG) @@ -533,16 +537,17 @@ stage-marionette: make-stage-dir | (cd $(MARIONETTE_DIR)/tests && tar -xf -) stage-mozbase: make-stage-dir $(MAKE) -C $(DEPTH)/testing/mozbase stage-package .PHONY: \ mochitest \ mochitest-plain \ mochitest-chrome \ + mochitest-devtools \ mochitest-a11y \ mochitest-ipcplugins \ reftest \ crashtest \ xpcshell-tests \ jstestbrowser \ package-tests \ make-stage-dir \
--- a/toolkit/devtools/server/tests/browser/browser.ini +++ b/toolkit/devtools/server/tests/browser/browser.ini @@ -1,10 +1,11 @@ [DEFAULT] skip-if = e10s # Bug ?????? - devtools tests disabled with e10s +subsuite = devtools support-files = head.js storage-dynamic-windows.html storage-listings.html storage-unsecured-iframe.html storage-updates.html storage-secured-iframe.html