author | Jeff Hammel <jhammel@mozilla.com> |
Tue, 01 Jun 2010 13:45:01 -0700 | |
changeset 42997 | d0f822ada75fe1ce8ac4e480c92ca1dc50b0c806 |
parent 42996 | 209cc2fb76085dada4150ade29eecb4cd91a73ac |
child 42998 | 7d5c3c3647c32618f8600e259948d292b1f93e6c |
push id | 13564 |
push user | ctalbert@mozilla.com |
push date | Tue, 01 Jun 2010 20:45:54 +0000 |
treeherder | mozilla-central@7d5c3c3647c3 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | ted |
bugs | 516984 |
milestone | 1.9.3a5pre |
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/Makefile.in +++ b/Makefile.in @@ -69,22 +69,16 @@ tier_base_dirs += \ memory \ $(NULL) endif ifdef COMPILE_ENVIRONMENT include $(topsrcdir)/$(MOZ_BUILD_APP)/build.mk endif -TIERS += testharness - -# test harnesses -ifdef ENABLE_TESTS -tier_testharness_dirs += testing/xpcshell -endif include $(topsrcdir)/config/config.mk GARBAGE_DIRS += dist _javagen _profile _tests staticlib DIST_GARBAGE = config.cache config.log config.status config-defs.h \ dependencies.beos config/autoconf.mk \ unallmakefiles mozilla-config.h \ netwerk/necko-config.h xpcom/xpcom-config.h xpcom/xpcom-private.h \
new file mode 100644 --- /dev/null +++ b/testing/mozmill/Makefile.in @@ -0,0 +1,82 @@ +# +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Mozilla.org. +# Portions created by the Initial Developer are Copyright (C) 2010 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Jeff Hammel <jhammel@mozilla.com> (Original author) +# Clint Talbert <ctalbert@mozilla.com> (Original author) +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = testing_mozmill + +include $(topsrcdir)/config/rules.mk + + +# Harness packages from the srcdir; +# python packages to be installed IN INSTALLATION ORDER. +# Packages later in the list can depend only on packages earlier in the list. +# Since jsbridge depends on simplejson and mozrunner, these +# must be installed before jsbridge is installed. Likewise, +# mozmill depends on jsbridge. If the dependencies are not +# found installed, pip will download them from the internet +# which is normally not desirable, +TEST_HARNESS_PACKAGES = \ + simplejson-2.1.1 \ + mozrunner-2.4.2 \ + jsbridge-2.3.5 \ + mozmill-1.4.1 \ + $(NULL) + +TEST_FILES := \ + $(TEST_HARNESS_PACKAGES) \ + virtualenv \ + README.txt \ + installmozmill.py \ + tests \ + $(NULL) + +# Rules for staging the necessary harness bits for a test package +PKG_STAGE = $(DIST)/test-package-stage + +stage-package: + $(NSINSTALL) -D $(PKG_STAGE)/mozmill + echo $(TEST_HARNESS_PACKAGES) > $(PKG_STAGE)/mozmill/PACKAGES + (cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(TEST_FILES)) | (cd $(PKG_STAGE)/mozmill && tar -xf -) +
new file mode 100644 --- /dev/null +++ b/testing/mozmill/README.txt @@ -0,0 +1,5 @@ +Simple mozmill test harness + +See https://developer.mozilla.org/en/Mozmill + +The tests are from http://hg.mozilla.org/qa/mozmill-tests
new file mode 100755 --- /dev/null +++ b/testing/mozmill/installmozmill.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python + +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Mozilla.org. +# Portions created by the Initial Developer are Copyright (C) 2010 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Jeff Hammel <jhammel@mozilla.com> (Original author) +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +""" +install mozmill and its dependencies +""" + +import os +import sys +from subprocess import call + +def main(args=None): + """command line front-end function""" + + args = args or sys.argv[1:] + + # The data is kept in the same directory as the script + source=os.path.abspath(os.path.dirname(__file__)) + + # directory to install to + if not len(args): + destination = source + elif len(args) == 1: + destination = os.path.abspath(args[0]) + else: + print "Usage: %s [destination]" % sys.argv[0] + sys.exit(1) + + os.chdir(source) + + # check for existence of necessary files + required = ('PACKAGES', 'virtualenv') + for f in required: + if not os.path.exists(f): + print "File not found: " + f + sys.exit(1) + + # packages to install in dependency order + PACKAGES=file('PACKAGES').read().split() + assert PACKAGES + + # create the virtualenv and install packages + os.environ.pop('PYTHONHOME', None) + call([sys.executable, 'virtualenv/virtualenv.py', destination]) + pip = os.path.join(destination, 'bin', 'pip') + call([pip, 'install'] + PACKAGES) + +if __name__ == '__main__': + main()
--- a/testing/testsuite-targets.mk +++ b/testing/testsuite-targets.mk @@ -115,23 +115,22 @@ xpcshell-tests: -I$(topsrcdir)/build \ $(topsrcdir)/testing/xpcshell/runxpcshelltests.py \ --manifest=$(DEPTH)/_tests/xpcshell/all-test-dirs.list \ --no-logfiles \ $(SYMBOLS_PATH) \ $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS) \ $(DIST)/bin/xpcshell - # 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-mochitest stage-reftest stage-xpcshell stage-jstests +package-tests: stage-mochitest stage-reftest stage-xpcshell stage-jstests stage-mozmill else # This staging area has been built for us by universal/flight.mk PKG_STAGE = $(DIST)/universal/test-package-stage endif package-tests: $(NSINSTALL) -D $(DIST)/$(PKG_PATH) @rm -f "$(DIST)/$(PKG_PATH)$(TEST_PACKAGE)" @@ -148,14 +147,17 @@ stage-reftest: make-stage-dir $(MAKE) -C $(DEPTH)/layout/tools/reftest stage-package stage-xpcshell: make-stage-dir $(MAKE) -C $(DEPTH)/testing/xpcshell stage-package stage-jstests: make-stage-dir $(MAKE) -C $(DEPTH)/js/src/tests stage-package +stage-mozmill: make-stage-dir + $(MAKE) -C $(DEPTH)/testing/mozmill stage-package + .PHONY: \ mochitest mochitest-plain mochitest-chrome mochitest-a11y mochitest-ipcplugins \ reftest crashtest \ xpcshell-tests \ jstestbrowser \ - package-tests make-stage-dir stage-mochitest stage-reftest stage-xpcshell stage-jstests + package-tests make-stage-dir stage-mochitest stage-reftest stage-xpcshell stage-jstests stage-mozmill
--- a/toolkit/toolkit-tiers.mk +++ b/toolkit/toolkit-tiers.mk @@ -255,11 +255,13 @@ ifdef MOZ_LEAKY tier_platform_dirs += tools/leaky endif ifdef MOZ_MAPINFO tier_platform_dirs += tools/codesighs endif ifdef ENABLE_TESTS -tier_platform_dirs += testing/mochitest +tier_platform_dirs += testing/mochitest +tier_platform_dirs += testing/xpcshell +tier_platform_dirs += testing/mozmill endif