testing/testsuite-targets.mk

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 # This Source Code Form is subject to the terms of the Mozilla Public
     2 # License, v. 2.0. If a copy of the MPL was not distributed with this
     3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6 # Shortcut for mochitest* and xpcshell-tests targets,
     7 # replaces 'EXTRA_TEST_ARGS=--test-path=...'.
     8 ifdef TEST_PATH
     9 TEST_PATH_ARG := --test-path='$(TEST_PATH)'
    10 IPCPLUGINS_PATH_ARG := --test-path='$(TEST_PATH)'
    11 else
    12 TEST_PATH_ARG :=
    13 IPCPLUGINS_PATH_ARG := --test-path=dom/plugins/test
    14 endif
    16 # include automation-build.mk to get the path to the binary
    17 TARGET_DEPTH = $(DEPTH)
    18 include $(topsrcdir)/build/binary-location.mk
    20 SYMBOLS_PATH := --symbols-path=$(DIST)/crashreporter-symbols
    22 # Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] mochitest*|.
    23 MOCHITESTS := mochitest-plain mochitest-chrome mochitest-devtools mochitest-a11y mochitest-ipcplugins
    24 mochitest:: $(MOCHITESTS)
    26 ifndef TEST_PACKAGE_NAME
    27 TEST_PACKAGE_NAME := $(ANDROID_PACKAGE_NAME)
    28 endif
    30 RUN_MOCHITEST_B2G_DESKTOP = \
    31   rm -f ./$@.log && \
    32   $(PYTHON) _tests/testing/mochitest/runtestsb2g.py --autorun --close-when-done \
    33     --console-level=INFO --log-file=./$@.log --file-level=INFO \
    34     --desktop --profile ${GAIA_PROFILE_DIR} \
    35     --failure-file=$(abspath _tests/testing/mochitest/makefailures.json) \
    36     $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
    38 RUN_MOCHITEST = \
    39   rm -f ./$@.log && \
    40   $(PYTHON) _tests/testing/mochitest/runtests.py --autorun --close-when-done \
    41     --console-level=INFO --log-file=./$@.log --file-level=INFO \
    42     --failure-file=$(abspath _tests/testing/mochitest/makefailures.json) \
    43     --testing-modules-dir=$(abspath _tests/modules) \
    44     --extra-profile-file=$(DIST)/plugins \
    45     $(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
    47 RERUN_MOCHITEST = \
    48   rm -f ./$@.log && \
    49   $(PYTHON) _tests/testing/mochitest/runtests.py --autorun --close-when-done \
    50     --console-level=INFO --log-file=./$@.log --file-level=INFO \
    51     --run-only-tests=makefailures.json \
    52     --testing-modules-dir=$(abspath _tests/modules) \
    53     --extra-profile-file=$(DIST)/plugins \
    54     $(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
    56 RUN_MOCHITEST_REMOTE = \
    57   rm -f ./$@.log && \
    58   $(PYTHON) _tests/testing/mochitest/runtestsremote.py --autorun --close-when-done \
    59     --console-level=INFO --log-file=./$@.log --file-level=INFO $(DM_FLAGS) --dm_trans=$(DM_TRANS) \
    60     --app=$(TEST_PACKAGE_NAME) --deviceIP=${TEST_DEVICE} --xre-path=${MOZ_HOST_BIN} \
    61     --testing-modules-dir=$(abspath _tests/modules) \
    62     $(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
    64 RUN_MOCHITEST_ROBOCOP = \
    65   rm -f ./$@.log && \
    66   $(PYTHON) _tests/testing/mochitest/runtestsremote.py \
    67     --robocop-apk=$(DEPTH)/build/mobile/robocop/robocop-debug.apk \
    68     --robocop-ids=$(DEPTH)/mobile/android/base/fennec_ids.txt \
    69     --robocop-ini=$(DEPTH)/build/mobile/robocop/robocop.ini \
    70     --console-level=INFO --log-file=./$@.log --file-level=INFO $(DM_FLAGS) --dm_trans=$(DM_TRANS) \
    71     --app=$(TEST_PACKAGE_NAME) --deviceIP=${TEST_DEVICE} --xre-path=${MOZ_HOST_BIN} \
    72     $(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
    74 ifndef NO_FAIL_ON_TEST_ERRORS
    75 define check_test_error_internal
    76   @errors=`grep 'TEST-UNEXPECTED-' $@.log` ;\
    77   if test "$$errors" ; then \
    78 	  echo '$@ failed:'; \
    79 	  echo "$$errors"; \
    80           $(if $(1),echo $(1);) \
    81 	  exit 1; \
    82   fi
    83 endef
    84 CHECK_TEST_ERROR = $(call check_test_error_internal)
    85 CHECK_TEST_ERROR_RERUN = $(call check_test_error_internal,'To rerun your failures please run "make $@-rerun-failures"')
    86 endif
    88 mochitest-remote: DM_TRANS?=adb
    89 mochitest-remote:
    90 	@if [ '${MOZ_HOST_BIN}' = '' ]; then \
    91         echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell'; \
    92     elif [ ! -d ${MOZ_HOST_BIN} ]; then \
    93         echo 'MOZ_HOST_BIN does not specify a directory'; \
    94     elif [ ! -f ${MOZ_HOST_BIN}/xpcshell ]; then \
    95         echo 'xpcshell not found in MOZ_HOST_BIN'; \
    96     elif [ '${TEST_DEVICE}' = '' -a '$(DM_TRANS)' != 'adb' ]; then \
    97         echo 'please prepare your host with the environment variable TEST_DEVICE'; \
    98     else \
    99         $(RUN_MOCHITEST_REMOTE); \
   100     fi
   102 mochitest-robotium: mochitest-robocop
   103 	@echo 'mochitest-robotium is deprecated -- please use mochitest-robocop'
   105 mochitest-robocop: DM_TRANS?=adb
   106 mochitest-robocop:
   107 	@if [ '${MOZ_HOST_BIN}' = '' ]; then \
   108         echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell'; \
   109     elif [ ! -d ${MOZ_HOST_BIN} ]; then \
   110         echo 'MOZ_HOST_BIN does not specify a directory'; \
   111     elif [ ! -f ${MOZ_HOST_BIN}/xpcshell ]; then \
   112         echo 'xpcshell not found in MOZ_HOST_BIN'; \
   113     elif [ '${TEST_DEVICE}' = '' -a '$(DM_TRANS)' != 'adb' ]; then \
   114         echo 'please prepare your host with the environment variable TEST_DEVICE'; \
   115     else \
   116         $(RUN_MOCHITEST_ROBOCOP); \
   117     fi
   119 ifdef MOZ_B2G
   120 mochitest-plain:
   121 	@if [ '${GAIA_PROFILE_DIR}'  = '' ]; then \
   122         echo 'please specify the GAIA_PROFILE_DIR env variable'; \
   123     else \
   124         $(RUN_MOCHITEST_B2G_DESKTOP); \
   125         $(CHECK_TEST_ERROR_RERUN); \
   126     fi
   127 else
   128 mochitest-plain:
   129 	$(RUN_MOCHITEST)
   130 	$(CHECK_TEST_ERROR_RERUN)
   131 endif
   133 mochitest-plain-rerun-failures:
   134 	$(RERUN_MOCHITEST)
   135 	$(CHECK_TEST_ERROR_RERUN)
   137 # Allow mochitest-1 ... mochitest-5 for developer ease
   138 mochitest-1 mochitest-2 mochitest-3 mochitest-4 mochitest-5: mochitest-%:
   139 	echo 'mochitest: $* / 5'
   140 	$(RUN_MOCHITEST) --chunk-by-dir=4 --total-chunks=5 --this-chunk=$*
   141 	$(CHECK_TEST_ERROR)
   143 mochitest-chrome:
   144 	$(RUN_MOCHITEST) --chrome
   145 	$(CHECK_TEST_ERROR)
   147 mochitest-devtools:
   148 	$(RUN_MOCHITEST) --subsuite=devtools
   149 	$(CHECK_TEST_ERROR)
   151 mochitest-a11y:
   152 	$(RUN_MOCHITEST) --a11y
   153 	$(CHECK_TEST_ERROR)
   155 mochitest-ipcplugins:
   156 ifeq (Darwin,$(OS_ARCH))
   157 ifeq (i386,$(TARGET_CPU))
   158 	$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.i386.test.plugin=false $(IPCPLUGINS_PATH_ARG)
   159 endif
   160 ifeq (x86_64,$(TARGET_CPU))
   161 	$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.x86_64.test.plugin=false $(IPCPLUGINS_PATH_ARG)
   162 endif
   163 ifeq (powerpc,$(TARGET_CPU))
   164 	$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.ppc.test.plugin=false $(IPCPLUGINS_PATH_ARG)
   165 endif
   166 else
   167 	$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled=false --test-path=dom/plugins/test
   168 endif
   169 	$(CHECK_TEST_ERROR)
   171 ifeq ($(OS_ARCH),Darwin)
   172 webapprt_stub_path = $(TARGET_DIST)/$(MOZ_MACBUNDLE_NAME)/Contents/MacOS/webapprt-stub$(BIN_SUFFIX)
   173 endif
   174 ifeq ($(OS_ARCH),WINNT)
   175 webapprt_stub_path = $(TARGET_DIST)/bin/webapprt-stub$(BIN_SUFFIX)
   176 endif
   177 ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
   178 webapprt_stub_path = $(TARGET_DIST)/bin/webapprt-stub$(BIN_SUFFIX)
   179 endif
   181 ifdef webapprt_stub_path
   182 webapprt-test-content:
   183 	$(RUN_MOCHITEST) --webapprt-content --appname $(webapprt_stub_path)
   184 	$(CHECK_TEST_ERROR)
   185 webapprt-test-chrome:
   186 	$(RUN_MOCHITEST) --webapprt-chrome --appname $(webapprt_stub_path) --browser-arg -test-mode
   187 	$(CHECK_TEST_ERROR)
   188 endif
   190 # Usage: |make [EXTRA_TEST_ARGS=...] *test|.
   191 RUN_REFTEST = rm -f ./$@.log && $(PYTHON) _tests/reftest/runreftest.py \
   192   --extra-profile-file=$(DIST)/plugins \
   193   $(SYMBOLS_PATH) $(EXTRA_TEST_ARGS) $(1) | tee ./$@.log
   195 REMOTE_REFTEST = rm -f ./$@.log && $(PYTHON) _tests/reftest/remotereftest.py \
   196   --dm_trans=$(DM_TRANS) --ignore-window-size \
   197   --app=$(TEST_PACKAGE_NAME) --deviceIP=${TEST_DEVICE} --xre-path=${MOZ_HOST_BIN} \
   198   --httpd-path=_tests/reftest/reftest/components \
   199   $(SYMBOLS_PATH) $(EXTRA_TEST_ARGS) '$(1)' | tee ./$@.log
   201 RUN_REFTEST_B2G = rm -f ./$@.log && $(PYTHON) _tests/reftest/runreftestb2g.py \
   202   --remote-webserver=10.0.2.2 --b2gpath=${B2G_PATH} --adbpath=${ADB_PATH} \
   203   --xre-path=${MOZ_HOST_BIN} $(SYMBOLS_PATH) --ignore-window-size \
   204   --httpd-path=_tests/reftest/reftest/components \
   205   $(EXTRA_TEST_ARGS) '$(1)' | tee ./$@.log
   207 ifeq ($(OS_ARCH),WINNT) #{
   208 # GPU-rendered shadow layers are unsupported here
   209 OOP_CONTENT = --setpref=browser.tabs.remote=true --setpref=browser.tabs.remote.autostart=true --setpref=layers.acceleration.disabled=true
   210 GPU_RENDERING =
   211 else
   212 OOP_CONTENT = --setpref=browser.tabs.remote=true --setpref=browser.tabs.remote.autostart=true
   213 GPU_RENDERING = --setpref=layers.acceleration.force-enabled=true
   214 endif #}
   216 reftest: TEST_PATH?=layout/reftests/reftest.list
   217 reftest:
   218 	$(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)')
   219 	$(CHECK_TEST_ERROR)
   221 reftest-remote: TEST_PATH?=layout/reftests/reftest.list
   222 reftest-remote: DM_TRANS?=adb
   223 reftest-remote:
   224 	@if [ '${MOZ_HOST_BIN}' = '' ]; then \
   225         echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell'; \
   226     elif [ ! -d ${MOZ_HOST_BIN} ]; then \
   227         echo 'MOZ_HOST_BIN does not specify a directory'; \
   228     elif [ ! -f ${MOZ_HOST_BIN}/xpcshell ]; then \
   229         echo 'xpcshell not found in MOZ_HOST_BIN'; \
   230     elif [ '${TEST_DEVICE}' = '' -a '$(DM_TRANS)' != 'adb' ]; then \
   231         echo 'please prepare your host with the environment variable TEST_DEVICE'; \
   232     else \
   233         ln -s $(abspath $(topsrcdir)) _tests/reftest/tests; \
   234         $(call REMOTE_REFTEST,tests/$(TEST_PATH)); \
   235         $(CHECK_TEST_ERROR); \
   236     fi
   238 reftest-b2g: TEST_PATH?=layout/reftests/reftest.list
   239 reftest-b2g:
   240 	@if [ '${MOZ_HOST_BIN}' = '' ]; then \
   241 		echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell'; \
   242 	elif [ ! -d ${MOZ_HOST_BIN} ]; then \
   243 		echo 'MOZ_HOST_BIN does not specify a directory'; \
   244 	elif [ ! -f ${MOZ_HOST_BIN}/xpcshell ]; then \
   245 		echo 'xpcshell not found in MOZ_HOST_BIN'; \
   246 	elif [ '${B2G_PATH}' = '' -o '${ADB_PATH}' = '' ]; then \
   247 		echo 'please set the B2G_PATH and ADB_PATH environment variables'; \
   248 	else \
   249         ln -s $(abspath $(topsrcdir)) _tests/reftest/tests; \
   250 		if [ '${REFTEST_PATH}' != '' ]; then \
   251 			$(call RUN_REFTEST_B2G,tests/${REFTEST_PATH}); \
   252 		else \
   253 			$(call RUN_REFTEST_B2G,tests/$(TEST_PATH)); \
   254 		fi; \
   255         $(CHECK_TEST_ERROR); \
   256 	fi
   258 reftest-ipc: TEST_PATH?=layout/reftests/reftest.list
   259 reftest-ipc:
   260 	$(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $(OOP_CONTENT))
   261 	$(CHECK_TEST_ERROR)
   263 reftest-ipc-gpu: TEST_PATH?=layout/reftests/reftest.list
   264 reftest-ipc-gpu:
   265 	$(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $(OOP_CONTENT) $(GPU_RENDERING))
   266 	$(CHECK_TEST_ERROR)
   268 crashtest: TEST_PATH?=testing/crashtest/crashtests.list
   269 crashtest:
   270 	$(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)')
   271 	$(CHECK_TEST_ERROR)
   273 crashtest-ipc: TEST_PATH?=testing/crashtest/crashtests.list
   274 crashtest-ipc:
   275 	$(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $(OOP_CONTENT))
   276 	$(CHECK_TEST_ERROR)
   278 crashtest-ipc-gpu: TEST_PATH?=testing/crashtest/crashtests.list
   279 crashtest-ipc-gpu:
   280 	$(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $(OOP_CONTENT) $(GPU_RENDERING))
   281 	$(CHECK_TEST_ERROR)
   283 jstestbrowser: TESTS_PATH?=test-package-stage/jsreftest/tests/
   284 jstestbrowser:
   285 	$(MAKE) -C $(DEPTH)/config
   286 	$(MAKE) stage-jstests
   287 	$(call RUN_REFTEST,'$(DIST)/$(TESTS_PATH)/jstests.list' --extra-profile-file=$(DIST)/test-package-stage/jsreftest/tests/user.js)
   288 	$(CHECK_TEST_ERROR)
   290 GARBAGE += $(addsuffix .log,$(MOCHITESTS) reftest crashtest jstestbrowser)
   292 # Execute all xpcshell tests in the directories listed in the manifest.
   293 # See also config/rules.mk 'xpcshell-tests' target for local execution.
   294 # Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] xpcshell-tests|.
   295 xpcshell-tests:
   296 	$(info Have you considered running xpcshell tests via |mach xpcshell-test|? mach is easier to use and has more features than make and it will eventually be the only way to run xpcshell tests. Please consider using mach today!)
   297 	$(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
   298 	  -I$(DEPTH)/build \
   299 	  -I$(topsrcdir)/build \
   300 	  -I$(DEPTH)/_tests/mozbase/mozinfo \
   301 	  $(topsrcdir)/testing/xpcshell/runxpcshelltests.py \
   302 	  --manifest=$(DEPTH)/_tests/xpcshell/xpcshell.ini \
   303 	  --build-info-json=$(DEPTH)/mozinfo.json \
   304 	  --no-logfiles \
   305 	  --test-plugin-path='$(DIST)/plugins' \
   306 	  --tests-root-dir=$(abspath _tests/xpcshell) \
   307 	  --testing-modules-dir=$(abspath _tests/modules) \
   308 	  --xunit-file=$(abspath _tests/xpcshell/results.xml) \
   309 	  --xunit-suite-name=xpcshell \
   310           $(SYMBOLS_PATH) \
   311 	  $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS) \
   312 	  $(LIBXUL_DIST)/bin/xpcshell
   314 B2G_XPCSHELL = \
   315 	rm -f ./@.log && \
   316 	$(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
   317 	  -I$(DEPTH)/build \
   318 	  -I$(topsrcdir)/build \
   319 	  $(topsrcdir)/testing/xpcshell/runtestsb2g.py \
   320 	  --manifest=$(DEPTH)/_tests/xpcshell/xpcshell.ini \
   321 	  --build-info-json=$(DEPTH)/mozinfo.json \
   322 	  --no-logfiles \
   323 	  --use-device-libs \
   324 	  --no-clean \
   325 	  --objdir=$(DEPTH) \
   326 	  $$EXTRA_XPCSHELL_ARGS \
   327 	  --b2gpath=${B2G_HOME} \
   328 	  $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
   330 xpcshell-tests-b2g: ADB_PATH?=$(shell which adb)
   331 xpcshell-tests-b2g:
   332 	@if [ '${B2G_HOME}' = '' ]; then \
   333 		echo 'Please set the B2G_HOME variable'; exit 1; \
   334 	elif [ ! -f '${ADB_PATH}' ]; then \
   335 		echo 'Please set the ADB_PATH variable'; exit 1; \
   336 	elif [ '${EMULATOR}' != '' ]; then \
   337 		EXTRA_XPCSHELL_ARGS=--emulator=${EMULATOR}; \
   338 		$(call B2G_XPCSHELL); \
   339 		exit 0; \
   340 	else \
   341 		EXTRA_XPCSHELL_ARGS=--address=localhost:2828; \
   342 		$(call B2G_XPCSHELL); \
   343 		exit 0; \
   344 	fi
   346 xpcshell-tests-remote: DM_TRANS?=adb
   347 xpcshell-tests-remote:
   348 	@if [ '${TEST_DEVICE}' != '' -o '$(DM_TRANS)' = 'adb' ]; \
   349           then $(PYTHON) -u $(topsrcdir)/testing/xpcshell/remotexpcshelltests.py \
   350 	    --manifest=$(DEPTH)/_tests/xpcshell/xpcshell_android.ini \
   351 	    --build-info-json=$(DEPTH)/mozinfo.json \
   352 	    --no-logfiles \
   353 	    --testing-modules-dir=$(abspath _tests/modules) \
   354 	    --dm_trans=$(DM_TRANS) \
   355 	    --deviceIP=${TEST_DEVICE} \
   356 	    --objdir=$(DEPTH) \
   357 	    $(SYMBOLS_PATH) \
   358 	    $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS); \
   359 	    $(CHECK_TEST_ERROR); \
   360         else \
   361           echo 'please prepare your host with environment variables for TEST_DEVICE'; \
   362         fi
   364 REMOTE_CPPUNITTESTS = \
   365 	$(PYTHON) -u $(topsrcdir)/testing/remotecppunittests.py \
   366 	  --xre-path=$(DEPTH)/dist/bin \
   367 	  --localLib=$(DEPTH)/dist/fennec \
   368 	  --dm_trans=$(DM_TRANS) \
   369 	  --deviceIP=${TEST_DEVICE} \
   370 	  $(TEST_PATH) $(EXTRA_TEST_ARGS)
   372 # Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] cppunittests-remote|.
   373 cppunittests-remote: DM_TRANS?=adb
   374 cppunittests-remote:
   375 	@if [ '${TEST_DEVICE}' != '' -o '$(DM_TRANS)' = 'adb' ]; \
   376           then $(call REMOTE_CPPUNITTESTS); \
   377         else \
   378           echo 'please prepare your host with environment variables for TEST_DEVICE'; \
   379         fi
   381 jetpack-tests:
   382 	$(PYTHON) $(topsrcdir)/addon-sdk/source/bin/cfx -b $(browser_path) --parseable testpkgs
   384 # -- -register
   385 # -- --trace-malloc malloc.log --shutdown-leaks=sdleak.log
   386 leaktest:
   387 	$(PYTHON) _leaktest/leaktest.py $(LEAKTEST_ARGS)
   389 pgo-profile-run:
   390 	$(PYTHON) $(topsrcdir)/build/pgo/profileserver.py $(EXTRA_TEST_ARGS)
   392 # Package up the tests and test harnesses
   393 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
   395 ifndef UNIVERSAL_BINARY
   396 PKG_STAGE = $(DIST)/test-package-stage
   397 package-tests: \
   398   stage-config \
   399   stage-mochitest \
   400   stage-reftest \
   401   stage-xpcshell \
   402   stage-jstests \
   403   stage-jetpack \
   404   stage-mozbase \
   405   stage-tps \
   406   stage-modules \
   407   stage-marionette \
   408   stage-cppunittests \
   409   stage-jittest \
   410   stage-steeplechase \
   411   $(NULL)
   412 else
   413 # This staging area has been built for us by universal/flight.mk
   414 PKG_STAGE = $(DIST)/universal/test-package-stage
   415 endif
   417 package-tests:
   418 	@rm -f '$(DIST)/$(PKG_PATH)$(TEST_PACKAGE)'
   419 ifndef UNIVERSAL_BINARY
   420 	$(NSINSTALL) -D $(DIST)/$(PKG_PATH)
   421 endif
   422 	find $(PKG_STAGE) -name '*.pyc' -exec rm {} \;
   423 	$(MKDIR) -p $(abspath $(DIST))/$(PKG_PATH) && \
   424 	cd $(PKG_STAGE) && \
   425 	  zip -rq9D '$(abspath $(DIST))/$(PKG_PATH)$(TEST_PACKAGE)' \
   426 	  * -x \*/.mkdir.done
   428 ifeq ($(MOZ_WIDGET_TOOLKIT),android)
   429 package-tests: stage-android
   430 endif
   432 ifeq ($(MOZ_WIDGET_TOOLKIT),gonk)
   433 package-tests: stage-b2g
   434 endif
   436 make-stage-dir:
   437 	rm -rf $(PKG_STAGE)
   438 	$(NSINSTALL) -D $(PKG_STAGE)
   439 	$(NSINSTALL) -D $(PKG_STAGE)/bin
   440 	$(NSINSTALL) -D $(PKG_STAGE)/bin/components
   441 	$(NSINSTALL) -D $(PKG_STAGE)/certs
   442 	$(NSINSTALL) -D $(PKG_STAGE)/config
   443 	$(NSINSTALL) -D $(PKG_STAGE)/jetpack
   444 	$(NSINSTALL) -D $(PKG_STAGE)/mozbase
   445 	$(NSINSTALL) -D $(PKG_STAGE)/modules
   447 stage-b2g: make-stage-dir
   448 	$(NSINSTALL) $(topsrcdir)/b2g/test/b2g-unittest-requirements.txt $(PKG_STAGE)/b2g
   450 stage-config: make-stage-dir
   451 	$(NSINSTALL) -D $(PKG_STAGE)/config
   452 	@(cd $(topsrcdir)/testing/config && tar $(TAR_CREATE_FLAGS) - *) | (cd $(PKG_STAGE)/config && tar -xf -)
   454 stage-mochitest: make-stage-dir
   455 	$(MAKE) -C $(DEPTH)/testing/mochitest stage-package
   456 ifeq ($(MOZ_BUILD_APP),mobile/android)
   457 	$(NSINSTALL) $(DEPTH)/mobile/android/base/fennec_ids.txt $(PKG_STAGE)/mochitest
   458 endif
   460 stage-reftest: make-stage-dir
   461 	$(MAKE) -C $(DEPTH)/layout/tools/reftest stage-package
   463 stage-xpcshell: make-stage-dir
   464 	$(MAKE) -C $(DEPTH)/testing/xpcshell stage-package
   466 stage-jstests: make-stage-dir
   467 	$(MAKE) -C $(DEPTH)/js/src/tests stage-package
   469 stage-android: make-stage-dir
   470 ifdef MOZ_ENABLE_SZIP
   471 # Tinderbox scripts are not unzipping everything, so the file needs to be in a directory it unzips
   472 	$(NSINSTALL) $(DIST)/host/bin/szip $(PKG_STAGE)/bin/host
   473 endif
   474 	$(NSINSTALL) $(DEPTH)/build/mobile/sutagent/android/sutAgentAndroid.apk $(PKG_STAGE)/bin
   475 	$(NSINSTALL) $(DEPTH)/build/mobile/sutagent/android/watcher/Watcher.apk $(PKG_STAGE)/bin
   476 	$(NSINSTALL) $(DEPTH)/build/mobile/sutagent/android/fencp/FenCP.apk $(PKG_STAGE)/bin
   477 	$(NSINSTALL) $(DEPTH)/build/mobile/sutagent/android/ffxcp/FfxCP.apk $(PKG_STAGE)/bin
   479 stage-jetpack: make-stage-dir
   480 	$(MAKE) -C $(DEPTH)/addon-sdk stage-tests-package
   482 stage-tps: make-stage-dir
   483 	$(NSINSTALL) -D $(PKG_STAGE)/tps/tests
   484 	@(cd $(topsrcdir)/testing/tps && tar $(TAR_CREATE_FLAGS) - *) | (cd $(PKG_STAGE)/tps && tar -xf -)
   485 	@(cd $(topsrcdir)/services/sync/tps && tar $(TAR_CREATE_FLAGS) - *) | (cd $(PKG_STAGE)/tps && tar -xf -)
   486 	(cd $(topsrcdir)/services/sync/tests/tps && tar $(TAR_CREATE_FLAGS) - *) | (cd $(PKG_STAGE)/tps/tests && tar -xf -)
   488 stage-modules: make-stage-dir
   489 	$(NSINSTALL) -D $(PKG_STAGE)/modules
   490 	cp -RL $(DEPTH)/_tests/modules $(PKG_STAGE)
   492 CPP_UNIT_TEST_BINS=$(wildcard $(DIST)/cppunittests/*)
   494 ifdef OBJCOPY
   495 ifndef PKG_SKIP_STRIP
   496 STRIP_CPP_TESTS := 1
   497 endif
   498 endif
   500 stage-cppunittests: make-stage-dir
   501 	$(NSINSTALL) -D $(PKG_STAGE)/cppunittests
   502 ifdef STRIP_CPP_TESTS
   503 	$(foreach bin,$(CPP_UNIT_TEST_BINS),$(OBJCOPY) $(or $(STRIP_FLAGS),--strip-unneeded) $(bin) $(bin:$(DIST)/%=$(PKG_STAGE)/%);)
   504 else
   505 	cp -RL $(DIST)/cppunittests $(PKG_STAGE)
   506 endif
   507 	$(NSINSTALL) $(topsrcdir)/testing/runcppunittests.py $(PKG_STAGE)/cppunittests
   508 	$(NSINSTALL) $(topsrcdir)/testing/remotecppunittests.py $(PKG_STAGE)/cppunittests
   509 ifeq ($(MOZ_WIDGET_TOOLKIT),android)
   510 	$(NSINSTALL) $(topsrcdir)/testing/android_cppunittest_manifest.txt $(PKG_STAGE)/cppunittests
   511 endif
   512 	$(NSINSTALL) $(topsrcdir)/startupcache/test/TestStartupCacheTelemetry.js $(PKG_STAGE)/cppunittests
   513 	$(NSINSTALL) $(topsrcdir)/startupcache/test/TestStartupCacheTelemetry.manifest $(PKG_STAGE)/cppunittests
   514 	cp -RL $(DIST)/bin/jsapi-tests$(BIN_SUFFIX) $(PKG_STAGE)/cppunittests
   516 stage-jittest: make-stage-dir
   517 	$(NSINSTALL) -D $(PKG_STAGE)/jit-test/tests
   518 	cp -RL $(topsrcdir)/js/src/jsapi.h $(PKG_STAGE)/jit-test
   519 	cp -RL $(topsrcdir)/js/src/jit-test $(PKG_STAGE)/jit-test/jit-test
   520 	cp -RL $(topsrcdir)/js/src/tests/ecma_6 $(PKG_STAGE)/jit-test/tests/ecma_6
   521 	cp -RL $(topsrcdir)/js/src/tests/js1_8_5 $(PKG_STAGE)/jit-test/tests/js1_8_5
   522 	cp -RL $(topsrcdir)/js/src/tests/lib $(PKG_STAGE)/jit-test/tests/lib
   524 stage-steeplechase: make-stage-dir
   525 	$(NSINSTALL) -D $(PKG_STAGE)/steeplechase/
   526 	cp -RL $(DEPTH)/_tests/steeplechase $(PKG_STAGE)/steeplechase/tests
   527 	cp -RL $(DIST)/xpi-stage/specialpowers $(PKG_STAGE)/steeplechase
   528 	cp -RL $(topsrcdir)/testing/profiles/prefs_general.js $(PKG_STAGE)/steeplechase
   530 MARIONETTE_DIR=$(PKG_STAGE)/marionette
   531 stage-marionette: make-stage-dir
   532 	$(NSINSTALL) -D $(MARIONETTE_DIR)/tests
   533 	$(NSINSTALL) -D $(MARIONETTE_DIR)/transport
   534 	@(cd $(topsrcdir)/testing/marionette/client && tar --exclude marionette/tests $(TAR_CREATE_FLAGS) - *) | (cd $(MARIONETTE_DIR)/ && tar -xf -)
   535 	@(cd $(topsrcdir)/testing/marionette/transport && tar $(TAR_CREATE_FLAGS) - *) | (cd $(MARIONETTE_DIR)/transport && tar -xf -)
   536 	$(PYTHON) $(topsrcdir)/testing/marionette/client/marionette/tests/print-manifest-dirs.py \
   537           $(topsrcdir) \
   538           $(topsrcdir)/testing/marionette/client/marionette/tests/unit-tests.ini \
   539           | (cd $(topsrcdir) && xargs tar $(TAR_CREATE_FLAGS) -) \
   540           | (cd $(MARIONETTE_DIR)/tests && tar -xf -)
   542 stage-mozbase: make-stage-dir
   543 	$(MAKE) -C $(DEPTH)/testing/mozbase stage-package
   544 .PHONY: \
   545   mochitest \
   546   mochitest-plain \
   547   mochitest-chrome \
   548   mochitest-devtools \
   549   mochitest-a11y \
   550   mochitest-ipcplugins \
   551   reftest \
   552   crashtest \
   553   xpcshell-tests \
   554   jstestbrowser \
   555   package-tests \
   556   make-stage-dir \
   557   stage-b2g \
   558   stage-config \
   559   stage-mochitest \
   560   stage-reftest \
   561   stage-xpcshell \
   562   stage-jstests \
   563   stage-android \
   564   stage-jetpack \
   565   stage-mozbase \
   566   stage-tps \
   567   stage-modules \
   568   stage-marionette \
   569   stage-steeplechase \
   570   $(NULL)

mercurial