Bug 872164 - Create in-tree mozharness config, r=jgriffin
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Fri, 24 May 2013 11:01:06 -0400
changeset 144398 f13114e409164f74f44ab3176d956d5e6b0b1cd8
parent 144397 ff21928b1975ba625e036ba274c205e1791e5523
child 144399 a5e238c116d6817ce1e58d042d0eca675ea8b991
push id2697
push userbbajaj@mozilla.com
push dateMon, 05 Aug 2013 18:49:53 +0000
treeherdermozilla-beta@dfec938c7b63 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgriffin
bugs872164
milestone24.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
Bug 872164 - Create in-tree mozharness config, r=jgriffin
testing/config/Makefile.in
testing/config/moz.build
testing/config/mozharness_config.py
testing/testsuite-targets.mk
toolkit/toolkit.mozbuild
new file mode 100644
--- /dev/null
+++ b/testing/config/Makefile.in
@@ -0,0 +1,24 @@
+# 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/.
+
+DEPTH = @DEPTH@
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(DEPTH)/config/autoconf.mk
+include $(topsrcdir)/config/rules.mk
+
+CONFIG_FILES = \
+  mozharness_config.py \
+  $(NULL)
+
+_DEST_DIR = $(DEPTH)/_tests/config
+libs:: $(CONFIG_FILES)
+	$(PYTHON) $(topsrcdir)/config/nsinstall.py $^ $(_DEST_DIR)
+
+stage-package: PKG_STAGE = $(DIST)/test-package-stage
+stage-package:
+	$(NSINSTALL) -D $(PKG_STAGE)/config
+	@(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(CONFIG_FILES)) | (cd $(PKG_STAGE)/config && tar -xf -)
new file mode 100644
--- /dev/null
+++ b/testing/config/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/testing/config/mozharness_config.py
@@ -0,0 +1,28 @@
+# 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/.
+
+"""The config defined in this module is read by mozharness, which is a
+tool used to run many of the tests reporting to TBPL. This file is
+primarily useful for pushing custom test harness configurations to try.
+
+For example you can define a custom mochitest configuration by adding:
+    "mochitest_options": [
+        "--appname=%(binary_path)s", "--utility-path=tests/bin",
+        "--extra-profile-file=tests/bin/plugins", "--symbols-path=%(symbols_path)s",
+        "--certificate-path=tests/certs", "--autorun", "--close-when-done",
+        "--console-level=INFO", "--setpref=webgl.force-enabled=true"
+    ],
+
+Be warned that these values will be picked up by all platforms and changing them
+may result in unexpected behaviour. For example, the above will break B2G
+mochitests.
+
+You must also provide the complete command line to avoid errors. The official
+configuration files containing the default values live in:
+    https://hg.mozilla.org/build/mozharness/configs
+"""
+
+config = {
+    # Add custom mozharness config options here
+}
--- a/testing/testsuite-targets.mk
+++ b/testing/testsuite-targets.mk
@@ -383,16 +383,17 @@ pgo-profile-run:
 	$(PYTHON) $(DEPTH)/_profile/pgo/profileserver.py $(EXTRA_TEST_ARGS)
 
 # Package up the tests and test harnesses
 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
 
 ifndef UNIVERSAL_BINARY
 PKG_STAGE = $(DIST)/test-package-stage
 package-tests: \
+  stage-config \
   stage-mochitest \
   stage-reftest \
   stage-xpcshell \
   stage-jstests \
   stage-jetpack \
   stage-peptest \
   stage-mozbase \
   stage-tps \
@@ -426,24 +427,28 @@ package-tests: stage-b2g
 endif
 
 make-stage-dir:
 	rm -rf $(PKG_STAGE)
 	$(NSINSTALL) -D $(PKG_STAGE)
 	$(NSINSTALL) -D $(PKG_STAGE)/bin
 	$(NSINSTALL) -D $(PKG_STAGE)/bin/components
 	$(NSINSTALL) -D $(PKG_STAGE)/certs
+	$(NSINSTALL) -D $(PKG_STAGE)/config
 	$(NSINSTALL) -D $(PKG_STAGE)/jetpack
 	$(NSINSTALL) -D $(PKG_STAGE)/peptest
 	$(NSINSTALL) -D $(PKG_STAGE)/mozbase
 	$(NSINSTALL) -D $(PKG_STAGE)/modules
 
 stage-b2g: make-stage-dir
 	$(NSINSTALL) $(topsrcdir)/b2g/test/b2g-unittest-requirements.txt $(PKG_STAGE)/b2g
 
+stage-config: make-stage-dir
+	$(MAKE) -C $(DEPTH)/testing/config stage-package
+
 stage-mochitest: make-stage-dir
 	$(MAKE) -C $(DEPTH)/testing/mochitest stage-package
 ifeq ($(MOZ_BUILD_APP),mobile/android)
 	$(NSINSTALL) $(DEPTH)/mobile/android/base/fennec_ids.txt $(PKG_STAGE)/mochitest
 endif
 
 stage-reftest: make-stage-dir
 	$(MAKE) -C $(DEPTH)/layout/tools/reftest stage-package
@@ -502,16 +507,17 @@ stage-mozbase: make-stage-dir
   reftest \
   crashtest \
   xpcshell-tests \
   jstestbrowser \
   peptest \
   package-tests \
   make-stage-dir \
   stage-b2g \
+  stage-config \
   stage-mochitest \
   stage-reftest \
   stage-xpcshell \
   stage-jstests \
   stage-android \
   stage-jetpack \
   stage-peptest \
   stage-mozbase \
--- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild
@@ -228,16 +228,17 @@ add_tier_dir('platform', 'addon-sdk')
 if CONFIG['MOZ_MAPINFO']:
     add_tier_dir('platform', 'tools/codesighs')
 
 if CONFIG['ENABLE_MARIONETTE']:
     add_tier_dir('platform', 'testing/marionette')
 
 if CONFIG['ENABLE_TESTS']:
     add_tier_dir('platform', [
+        'testing/config',
         'testing/mochitest',
         'testing/xpcshell',
         'testing/tools/screenshot',
         'testing/peptest',
         'testing/profiles',
         'testing/mozbase',
         'testing/modules',
     ])