2012-05-21 04:12:37 -07:00
# 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/.
2008-07-27 10:18:36 -07:00
2009-04-01 14:53:01 -07:00
2009-04-27 16:37:02 -07:00
# Shortcut for mochitest* and xpcshell-tests targets,
# replaces 'EXTRA_TEST_ARGS=--test-path=...'.
i f d e f T E S T _ P A T H
2013-12-02 13:34:21 -08:00
TEST_PATH_ARG := --test-path= '$(TEST_PATH)'
IPCPLUGINS_PATH_ARG := --test-path= '$(TEST_PATH)'
2009-04-27 16:37:02 -07:00
e l s e
TEST_PATH_ARG :=
2013-02-26 12:10:15 -08:00
IPCPLUGINS_PATH_ARG := --test-path= dom/plugins/test
2009-04-27 16:37:02 -07:00
e n d i f
2011-01-11 08:51:30 -08:00
# include automation-build.mk to get the path to the binary
TARGET_DEPTH = $( DEPTH)
i n c l u d e $( topsrcdir ) / b u i l d / b i n a r y - l o c a t i o n . m k
2009-10-21 11:19:51 -07:00
SYMBOLS_PATH := --symbols-path= $( DIST) /crashreporter-symbols
2009-04-27 16:37:02 -07:00
# Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] mochitest*|.
2014-03-25 09:52:53 -07:00
MOCHITESTS := mochitest-plain mochitest-chrome mochitest-devtools mochitest-a11y mochitest-ipcplugins
2010-04-19 01:28:15 -07:00
mochitest :: $( MOCHITESTS )
2008-07-27 10:18:36 -07:00
2011-11-08 19:58:13 -08:00
i f n d e f T E S T _ P A C K A G E _ N A M E
TEST_PACKAGE_NAME := $( ANDROID_PACKAGE_NAME)
e n d i f
2013-01-23 17:36:59 -08:00
RUN_MOCHITEST_B2G_DESKTOP = \
rm -f ./$@ .log && \
$( PYTHON) _tests/testing/mochitest/runtestsb2g.py --autorun --close-when-done \
--console-level= INFO --log-file= ./$@ .log --file-level= INFO \
--desktop --profile ${ GAIA_PROFILE_DIR } \
2013-10-16 15:55:16 -07:00
--failure-file= $( abspath _tests/testing/mochitest/makefailures.json) \
2013-01-23 17:36:59 -08:00
$( TEST_PATH_ARG) $( EXTRA_TEST_ARGS)
2009-04-27 16:37:02 -07:00
RUN_MOCHITEST = \
2012-08-06 14:22:09 -07:00
rm -f ./$@ .log && \
$( PYTHON) _tests/testing/mochitest/runtests.py --autorun --close-when-done \
--console-level= INFO --log-file= ./$@ .log --file-level= INFO \
2013-10-16 15:55:16 -07:00
--failure-file= $( abspath _tests/testing/mochitest/makefailures.json) \
--testing-modules-dir= $( abspath _tests/modules) \
2012-12-17 10:08:00 -08:00
--extra-profile-file= $( DIST) /plugins \
2012-08-06 14:22:09 -07:00
$( SYMBOLS_PATH) $( TEST_PATH_ARG) $( EXTRA_TEST_ARGS)
2012-02-20 06:59:04 -08:00
RERUN_MOCHITEST = \
2012-08-06 14:22:09 -07:00
rm -f ./$@ .log && \
$( PYTHON) _tests/testing/mochitest/runtests.py --autorun --close-when-done \
--console-level= INFO --log-file= ./$@ .log --file-level= INFO \
--run-only-tests= makefailures.json \
2013-10-16 15:55:16 -07:00
--testing-modules-dir= $( abspath _tests/modules) \
2012-12-17 10:08:00 -08:00
--extra-profile-file= $( DIST) /plugins \
2012-08-06 14:22:09 -07:00
$( SYMBOLS_PATH) $( TEST_PATH_ARG) $( EXTRA_TEST_ARGS)
2008-07-27 10:18:36 -07:00
2011-07-07 12:29:21 -07:00
RUN_MOCHITEST_REMOTE = \
2012-08-06 14:22:09 -07:00
rm -f ./$@ .log && \
$( PYTHON) _tests/testing/mochitest/runtestsremote.py --autorun --close-when-done \
--console-level= INFO --log-file= ./$@ .log --file-level= INFO $( DM_FLAGS) --dm_trans= $( DM_TRANS) \
--app= $( TEST_PACKAGE_NAME) --deviceIP= ${ TEST_DEVICE } --xre-path= ${ MOZ_HOST_BIN } \
2014-04-23 07:42:51 -07:00
--testing-modules-dir= $( abspath _tests/modules) \
2012-08-06 14:22:09 -07:00
$( SYMBOLS_PATH) $( TEST_PATH_ARG) $( EXTRA_TEST_ARGS)
2011-07-07 12:29:21 -07:00
2013-05-20 11:39:50 -07:00
RUN_MOCHITEST_ROBOCOP = \
2011-12-31 07:03:36 -08:00
rm -f ./$@ .log && \
2013-05-20 11:39:49 -07:00
$( PYTHON) _tests/testing/mochitest/runtestsremote.py \
2013-06-20 11:50:28 -07:00
--robocop-apk= $( DEPTH) /build/mobile/robocop/robocop-debug.apk \
2013-05-20 11:39:49 -07:00
--robocop-ids= $( DEPTH) /mobile/android/base/fennec_ids.txt \
2013-05-20 11:39:50 -07:00
--robocop-ini= $( DEPTH) /build/mobile/robocop/robocop.ini \
2012-04-19 15:53:30 -07:00
--console-level= INFO --log-file= ./$@ .log --file-level= INFO $( DM_FLAGS) --dm_trans= $( DM_TRANS) \
2011-12-31 07:03:36 -08:00
--app= $( TEST_PACKAGE_NAME) --deviceIP= ${ TEST_DEVICE } --xre-path= ${ MOZ_HOST_BIN } \
2013-05-20 11:39:49 -07:00
$( SYMBOLS_PATH) $( TEST_PATH_ARG) $( EXTRA_TEST_ARGS)
2011-12-31 07:03:36 -08:00
2008-07-27 10:18:36 -07:00
i f n d e f N O _ F A I L _ O N _ T E S T _ E R R O R S
2012-04-24 09:57:50 -07:00
d e f i n e c h e c k _ t e s t _ e r r o r _ i n t e r n a l
2013-12-02 13:34:21 -08:00
@errors= ` grep 'TEST-UNEXPECTED-' $@ .log` ; \
2013-12-02 13:43:18 -08:00
if test " $$ errors " ; then \
2013-12-02 13:34:21 -08:00
echo '$@ failed:' ; \
2013-12-02 13:43:18 -08:00
echo " $$ errors " ; \
2013-12-03 14:58:14 -08:00
$( if $( 1) ,echo $( 1) ; ) \
2008-07-27 10:18:36 -07:00
exit 1; \
fi
e n d e f
2012-04-24 09:57:50 -07:00
CHECK_TEST_ERROR = $( call check_test_error_internal)
2013-12-02 13:43:18 -08:00
CHECK_TEST_ERROR_RERUN = $( call check_test_error_internal,'To rerun your failures please run "make $@-rerun-failures"' )
2008-07-27 10:18:36 -07:00
e n d i f
2011-07-15 19:01:08 -07:00
mochitest-remote : DM_TRANS ?=adb
2011-07-07 12:29:21 -07:00
mochitest-remote :
2013-12-02 13:34:21 -08:00
@if [ '${MOZ_HOST_BIN}' = '' ] ; then \
echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -d ${ MOZ_HOST_BIN } ] ; then \
2013-12-02 13:34:21 -08:00
echo 'MOZ_HOST_BIN does not specify a directory' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -f ${ MOZ_HOST_BIN } /xpcshell ] ; then \
2013-12-02 13:34:21 -08:00
echo 'xpcshell not found in MOZ_HOST_BIN' ; \
elif [ '${TEST_DEVICE}' = '' -a '$(DM_TRANS)' != 'adb' ] ; then \
echo 'please prepare your host with the environment variable TEST_DEVICE' ; \
2012-02-15 12:40:26 -08:00
else \
$( RUN_MOCHITEST_REMOTE) ; \
fi
2011-07-07 12:29:21 -07:00
2013-05-20 11:39:50 -07:00
mochitest-robotium : mochitest -robocop
2013-12-02 13:34:21 -08:00
@echo 'mochitest-robotium is deprecated -- please use mochitest-robocop'
2013-05-20 11:39:50 -07:00
mochitest-robocop : DM_TRANS ?=adb
mochitest-robocop :
2013-12-02 13:34:21 -08:00
@if [ '${MOZ_HOST_BIN}' = '' ] ; then \
echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -d ${ MOZ_HOST_BIN } ] ; then \
2013-12-02 13:34:21 -08:00
echo 'MOZ_HOST_BIN does not specify a directory' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -f ${ MOZ_HOST_BIN } /xpcshell ] ; then \
2013-12-02 13:34:21 -08:00
echo 'xpcshell not found in MOZ_HOST_BIN' ; \
elif [ '${TEST_DEVICE}' = '' -a '$(DM_TRANS)' != 'adb' ] ; then \
echo 'please prepare your host with the environment variable TEST_DEVICE' ; \
2012-02-15 12:40:26 -08:00
else \
2013-05-20 11:39:50 -07:00
$( RUN_MOCHITEST_ROBOCOP) ; \
2012-02-15 12:40:26 -08:00
fi
2011-12-31 07:03:36 -08:00
2013-01-23 17:36:59 -08:00
i f d e f M O Z _ B 2 G
mochitest-plain :
2013-12-02 13:34:21 -08:00
@if [ '${GAIA_PROFILE_DIR}' = '' ] ; then \
echo 'please specify the GAIA_PROFILE_DIR env variable' ; \
2013-01-23 17:36:59 -08:00
else \
$( RUN_MOCHITEST_B2G_DESKTOP) ; \
$( CHECK_TEST_ERROR_RERUN) ; \
fi
e l s e
2008-07-27 10:18:36 -07:00
mochitest-plain :
2009-03-23 17:09:37 -07:00
$( RUN_MOCHITEST)
2012-04-24 09:57:50 -07:00
$( CHECK_TEST_ERROR_RERUN)
2013-01-23 17:36:59 -08:00
e n d i f
2008-07-27 10:18:36 -07:00
2012-02-20 06:59:04 -08:00
mochitest-plain-rerun-failures :
$( RERUN_MOCHITEST)
2012-04-24 09:57:50 -07:00
$( CHECK_TEST_ERROR_RERUN)
2012-02-20 06:59:04 -08:00
2010-09-25 21:19:27 -07:00
# Allow mochitest-1 ... mochitest-5 for developer ease
mochitest-1 mochitest-2 mochitest-3 mochitest-4 mochitest-5 : mochitest -%:
2013-12-02 13:34:21 -08:00
echo 'mochitest: $* / 5'
2010-09-25 21:19:27 -07:00
$( RUN_MOCHITEST) --chunk-by-dir= 4 --total-chunks= 5 --this-chunk= $*
$( CHECK_TEST_ERROR)
2008-07-27 10:18:36 -07:00
mochitest-chrome :
2009-03-23 17:09:37 -07:00
$( RUN_MOCHITEST) --chrome
2008-07-27 10:18:36 -07:00
$( CHECK_TEST_ERROR)
2014-03-25 09:52:53 -07:00
mochitest-devtools :
$( RUN_MOCHITEST) --subsuite= devtools
$( CHECK_TEST_ERROR)
2008-07-27 10:18:36 -07:00
mochitest-a11y :
2009-03-23 17:09:37 -07:00
$( RUN_MOCHITEST) --a11y
2008-07-27 10:18:36 -07:00
$( CHECK_TEST_ERROR)
2009-10-16 13:53:32 -07:00
mochitest-ipcplugins :
2010-11-05 12:11:36 -07:00
i f e q ( D a r w i n , $( OS_ARCH ) )
i f e q ( i 3 8 6 , $( TARGET_CPU ) )
2013-02-26 12:10:15 -08:00
$( RUN_MOCHITEST) --setpref= dom.ipc.plugins.enabled.i386.test.plugin= false $( IPCPLUGINS_PATH_ARG)
2010-11-05 12:11:36 -07:00
e n d i f
i f e q ( x 8 6 _ 6 4 , $( TARGET_CPU ) )
2013-02-26 12:10:15 -08:00
$( RUN_MOCHITEST) --setpref= dom.ipc.plugins.enabled.x86_64.test.plugin= false $( IPCPLUGINS_PATH_ARG)
2010-11-05 12:11:36 -07:00
e n d i f
i f e q ( p o w e r p c , $( TARGET_CPU ) )
2013-02-26 12:10:15 -08:00
$( RUN_MOCHITEST) --setpref= dom.ipc.plugins.enabled.ppc.test.plugin= false $( IPCPLUGINS_PATH_ARG)
2010-11-05 12:11:36 -07:00
e n d i f
e l s e
2011-05-18 06:05:24 -07:00
$( RUN_MOCHITEST) --setpref= dom.ipc.plugins.enabled= false --test-path= dom/plugins/test
2010-11-05 12:11:36 -07:00
e n d i f
2009-10-14 11:05:14 -07:00
$( CHECK_TEST_ERROR)
2009-04-01 14:53:01 -07:00
2012-06-29 15:52:43 -07:00
i f e q ( $( OS_ARCH ) , D a r w i n )
webapprt_stub_path = $( TARGET_DIST) /$( MOZ_MACBUNDLE_NAME) /Contents/MacOS/webapprt-stub$( BIN_SUFFIX)
2012-07-13 15:49:40 -07:00
e n d i f
i f e q ( $( OS_ARCH ) , W I N N T )
webapprt_stub_path = $( TARGET_DIST) /bin/webapprt-stub$( BIN_SUFFIX)
e n d i f
2012-07-14 16:16:58 -07:00
i f e q ( $( MOZ_WIDGET_TOOLKIT ) , g t k 2 )
webapprt_stub_path = $( TARGET_DIST) /bin/webapprt-stub$( BIN_SUFFIX)
e n d i f
2012-07-13 15:49:40 -07:00
i f d e f w e b a p p r t _ s t u b _ p a t h
2012-06-29 15:52:43 -07:00
webapprt-test-content :
$( RUN_MOCHITEST) --webapprt-content --appname $( webapprt_stub_path)
$( CHECK_TEST_ERROR)
webapprt-test-chrome :
$( RUN_MOCHITEST) --webapprt-chrome --appname $( webapprt_stub_path) --browser-arg -test-mode
$( CHECK_TEST_ERROR)
e n d i f
2009-03-23 17:09:37 -07:00
# Usage: |make [EXTRA_TEST_ARGS=...] *test|.
2009-10-21 11:19:51 -07:00
RUN_REFTEST = rm -f ./$@ .log && $( PYTHON) _tests/reftest/runreftest.py \
2012-12-17 10:08:00 -08:00
--extra-profile-file= $( DIST) /plugins \
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
$( SYMBOLS_PATH) $( EXTRA_TEST_ARGS) $( 1) | tee ./$@ .log
2009-02-12 05:49:53 -08:00
2011-07-17 09:04:40 -07:00
REMOTE_REFTEST = rm -f ./$@ .log && $( PYTHON) _tests/reftest/remotereftest.py \
--dm_trans= $( DM_TRANS) --ignore-window-size \
2011-11-08 19:58:13 -08:00
--app= $( TEST_PACKAGE_NAME) --deviceIP= ${ TEST_DEVICE } --xre-path= ${ MOZ_HOST_BIN } \
2013-06-26 20:42:46 -07:00
--httpd-path= _tests/reftest/reftest/components \
2013-12-02 13:34:21 -08:00
$( SYMBOLS_PATH) $( EXTRA_TEST_ARGS) '$(1)' | tee ./$@ .log
2011-07-17 09:04:40 -07:00
2012-08-10 11:25:20 -07:00
RUN_REFTEST_B2G = rm -f ./$@ .log && $( PYTHON) _tests/reftest/runreftestb2g.py \
--remote-webserver= 10.0.2.2 --b2gpath= ${ B2G_PATH } --adbpath= ${ ADB_PATH } \
--xre-path= ${ MOZ_HOST_BIN } $( SYMBOLS_PATH) --ignore-window-size \
2013-06-26 20:42:46 -07:00
--httpd-path= _tests/reftest/reftest/components \
2013-12-02 13:34:21 -08:00
$( EXTRA_TEST_ARGS) '$(1)' | tee ./$@ .log
2012-08-10 11:25:20 -07:00
2011-02-03 11:54:10 -08:00
i f e q ( $( OS_ARCH ) , W I N N T ) #{
# GPU-rendered shadow layers are unsupported here
2014-02-11 09:01:08 -08:00
OOP_CONTENT = --setpref= browser.tabs.remote= true --setpref= browser.tabs.remote.autostart= true --setpref= layers.acceleration.disabled= true
2011-02-03 11:54:10 -08:00
GPU_RENDERING =
e l s e
2014-02-11 09:01:08 -08:00
OOP_CONTENT = --setpref= browser.tabs.remote= true --setpref= browser.tabs.remote.autostart= true
2011-02-03 11:54:10 -08:00
GPU_RENDERING = --setpref= layers.acceleration.force-enabled= true
e n d i f #}
2010-11-12 15:30:27 -08:00
reftest : TEST_PATH ?=layout /reftests /reftest .list
2009-02-12 05:49:53 -08:00
reftest :
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' )
2009-02-12 05:49:53 -08:00
$( CHECK_TEST_ERROR)
2011-07-17 09:04:40 -07:00
reftest-remote : TEST_PATH ?=layout /reftests /reftest .list
reftest-remote : DM_TRANS ?=adb
reftest-remote :
2013-12-02 13:34:21 -08:00
@if [ '${MOZ_HOST_BIN}' = '' ] ; then \
echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -d ${ MOZ_HOST_BIN } ] ; then \
2013-12-02 13:34:21 -08:00
echo 'MOZ_HOST_BIN does not specify a directory' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -f ${ MOZ_HOST_BIN } /xpcshell ] ; then \
2013-12-02 13:34:21 -08:00
echo 'xpcshell not found in MOZ_HOST_BIN' ; \
elif [ '${TEST_DEVICE}' = '' -a '$(DM_TRANS)' != 'adb' ] ; then \
echo 'please prepare your host with the environment variable TEST_DEVICE' ; \
2012-02-15 12:40:26 -08:00
else \
ln -s $( abspath $( topsrcdir) ) _tests/reftest/tests; \
$( call REMOTE_REFTEST,tests/$( TEST_PATH) ) ; \
$( CHECK_TEST_ERROR) ; \
fi
2011-07-17 09:04:40 -07:00
2012-08-10 11:25:20 -07:00
reftest-b2g : TEST_PATH ?=layout /reftests /reftest .list
reftest-b2g :
2013-12-02 13:34:21 -08:00
@if [ '${MOZ_HOST_BIN}' = '' ] ; then \
echo 'environment variable MOZ_HOST_BIN must be set to a directory containing host xpcshell' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -d ${ MOZ_HOST_BIN } ] ; then \
2013-12-02 13:34:21 -08:00
echo 'MOZ_HOST_BIN does not specify a directory' ; \
2013-11-05 14:27:08 -08:00
elif [ ! -f ${ MOZ_HOST_BIN } /xpcshell ] ; then \
2013-12-02 13:34:21 -08:00
echo 'xpcshell not found in MOZ_HOST_BIN' ; \
elif [ '${B2G_PATH}' = '' -o '${ADB_PATH}' = '' ] ; then \
echo 'please set the B2G_PATH and ADB_PATH environment variables' ; \
2012-08-10 11:25:20 -07:00
else \
ln -s $( abspath $( topsrcdir) ) _tests/reftest/tests; \
2013-12-02 13:34:21 -08:00
if [ '${REFTEST_PATH}' != '' ] ; then \
2012-08-10 11:25:20 -07:00
$( call RUN_REFTEST_B2G,tests/${ REFTEST_PATH } ) ; \
else \
$( call RUN_REFTEST_B2G,tests/$( TEST_PATH) ) ; \
fi ; \
$( CHECK_TEST_ERROR) ; \
fi
2011-02-03 11:54:10 -08:00
reftest-ipc : TEST_PATH ?=layout /reftests /reftest .list
reftest-ipc :
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $( OOP_CONTENT) )
2011-02-03 11:54:10 -08:00
$( CHECK_TEST_ERROR)
reftest-ipc-gpu : TEST_PATH ?=layout /reftests /reftest .list
reftest-ipc-gpu :
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $( OOP_CONTENT) $( GPU_RENDERING) )
2011-02-03 11:54:10 -08:00
$( CHECK_TEST_ERROR)
2010-11-17 08:25:16 -08:00
crashtest : TEST_PATH ?=testing /crashtest /crashtests .list
2009-02-12 05:49:53 -08:00
crashtest :
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' )
2009-02-12 05:49:53 -08:00
$( CHECK_TEST_ERROR)
2011-02-03 11:54:10 -08:00
crashtest-ipc : TEST_PATH ?=testing /crashtest /crashtests .list
crashtest-ipc :
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $( OOP_CONTENT) )
2011-02-03 11:54:10 -08:00
$( CHECK_TEST_ERROR)
crashtest-ipc-gpu : TEST_PATH ?=testing /crashtest /crashtests .list
crashtest-ipc-gpu :
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)' $( OOP_CONTENT) $( GPU_RENDERING) )
2011-02-03 11:54:10 -08:00
$( CHECK_TEST_ERROR)
2012-04-17 11:40:57 -07:00
jstestbrowser : TESTS_PATH ?=test -package -stage /jsreftest /tests /
2009-09-26 15:54:12 -07:00
jstestbrowser :
2012-04-17 11:40:57 -07:00
$( MAKE) -C $( DEPTH) /config
$( MAKE) stage-jstests
2013-12-02 13:34:21 -08:00
$( call RUN_REFTEST,'$(DIST)/$(TESTS_PATH)/jstests.list' --extra-profile-file= $( DIST) /test-package-stage/jsreftest/tests/user.js)
2009-09-26 15:54:12 -07:00
$( CHECK_TEST_ERROR)
2009-04-01 14:53:01 -07:00
2010-04-19 01:28:15 -07:00
GARBAGE += $( addsuffix .log,$( MOCHITESTS) reftest crashtest jstestbrowser)
2009-04-01 14:53:01 -07:00
# Execute all xpcshell tests in the directories listed in the manifest.
2009-04-26 14:32:41 -07:00
# See also config/rules.mk 'xpcshell-tests' target for local execution.
2009-04-27 16:37:02 -07:00
# Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] xpcshell-tests|.
2009-04-01 14:53:01 -07:00
xpcshell-tests :
2013-08-14 17:43:04 -07:00
$( 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!)
2009-05-11 12:54:39 -07:00
$( PYTHON) -u $( topsrcdir) /config/pythonpath.py \
2012-12-20 00:43:19 -08:00
-I$( DEPTH) /build \
-I$( topsrcdir) /build \
-I$( DEPTH) /_tests/mozbase/mozinfo \
2009-04-01 14:53:01 -07:00
$( topsrcdir) /testing/xpcshell/runxpcshelltests.py \
2011-05-20 08:54:01 -07:00
--manifest= $( DEPTH) /_tests/xpcshell/xpcshell.ini \
2011-06-21 05:12:40 -07:00
--build-info-json= $( DEPTH) /mozinfo.json \
2009-09-21 09:19:21 -07:00
--no-logfiles \
2013-12-02 13:34:21 -08:00
--test-plugin-path= '$(DIST)/plugins' \
2013-10-16 15:55:16 -07:00
--tests-root-dir= $( abspath _tests/xpcshell) \
--testing-modules-dir= $( abspath _tests/modules) \
--xunit-file= $( abspath _tests/xpcshell/results.xml) \
2012-03-06 15:03:34 -08:00
--xunit-suite-name= xpcshell \
2009-10-21 11:19:51 -07:00
$( SYMBOLS_PATH) \
2009-04-27 16:37:02 -07:00
$( TEST_PATH_ARG) $( EXTRA_TEST_ARGS) \
2011-05-11 06:13:43 -07:00
$( LIBXUL_DIST) /bin/xpcshell
2009-04-01 14:53:01 -07:00
2012-11-01 14:29:27 -07:00
B2G_XPCSHELL = \
rm -f ./@.log && \
$( PYTHON) -u $( topsrcdir) /config/pythonpath.py \
2012-12-20 00:43:19 -08:00
-I$( DEPTH) /build \
2012-11-01 14:29:27 -07:00
-I$( topsrcdir) /build \
$( topsrcdir) /testing/xpcshell/runtestsb2g.py \
--manifest= $( DEPTH) /_tests/xpcshell/xpcshell.ini \
--build-info-json= $( DEPTH) /mozinfo.json \
--no-logfiles \
--use-device-libs \
--no-clean \
--objdir= $( DEPTH) \
$$ EXTRA_XPCSHELL_ARGS \
--b2gpath= ${ B2G_HOME } \
$( TEST_PATH_ARG) $( EXTRA_TEST_ARGS)
xpcshell-tests-b2g : ADB_PATH ?=$( shell which adb )
xpcshell-tests-b2g :
2013-12-02 13:34:21 -08:00
@if [ '${B2G_HOME}' = '' ] ; then \
echo 'Please set the B2G_HOME variable' ; exit 1; \
elif [ ! -f '${ADB_PATH}' ] ; then \
echo 'Please set the ADB_PATH variable' ; exit 1; \
elif [ '${EMULATOR}' != '' ] ; then \
2012-11-01 14:29:27 -07:00
EXTRA_XPCSHELL_ARGS = --emulator= ${ EMULATOR } ; \
$( call B2G_XPCSHELL) ; \
exit 0; \
else \
EXTRA_XPCSHELL_ARGS = --address= localhost:2828; \
$( call B2G_XPCSHELL) ; \
exit 0; \
fi
2011-08-22 01:00:50 -07:00
xpcshell-tests-remote : DM_TRANS ?=adb
xpcshell-tests-remote :
2013-12-02 13:34:21 -08:00
@if [ '${TEST_DEVICE}' != '' -o '$(DM_TRANS)' = 'adb' ] ; \
2012-12-21 11:44:45 -08:00
then $( PYTHON) -u $( topsrcdir) /testing/xpcshell/remotexpcshelltests.py \
--manifest= $( DEPTH) /_tests/xpcshell/xpcshell_android.ini \
--build-info-json= $( DEPTH) /mozinfo.json \
--no-logfiles \
2013-10-16 15:55:16 -07:00
--testing-modules-dir= $( abspath _tests/modules) \
2012-12-21 11:44:45 -08:00
--dm_trans= $( DM_TRANS) \
--deviceIP= ${ TEST_DEVICE } \
--objdir= $( DEPTH) \
$( SYMBOLS_PATH) \
$( TEST_PATH_ARG) $( EXTRA_TEST_ARGS) ; \
$( CHECK_TEST_ERROR) ; \
2011-08-22 01:00:50 -07:00
else \
2013-12-02 13:34:21 -08:00
echo 'please prepare your host with environment variables for TEST_DEVICE' ; \
2011-08-22 01:00:50 -07:00
fi
2013-01-03 12:01:54 -08:00
REMOTE_CPPUNITTESTS = \
$( PYTHON) -u $( topsrcdir) /testing/remotecppunittests.py \
--xre-path= $( DEPTH) /dist/bin \
--localLib= $( DEPTH) /dist/fennec \
--dm_trans= $( DM_TRANS) \
--deviceIP= ${ TEST_DEVICE } \
$( TEST_PATH) $( EXTRA_TEST_ARGS)
# Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] cppunittests-remote|.
cppunittests-remote : DM_TRANS ?=adb
cppunittests-remote :
2013-12-02 13:34:21 -08:00
@if [ '${TEST_DEVICE}' != '' -o '$(DM_TRANS)' = 'adb' ] ; \
2013-01-03 12:01:54 -08:00
then $( call REMOTE_CPPUNITTESTS) ; \
else \
2013-12-02 13:34:21 -08:00
echo 'please prepare your host with environment variables for TEST_DEVICE' ; \
2013-01-03 12:01:54 -08:00
fi
2013-02-01 11:20:17 -08:00
jetpack-tests :
$( PYTHON) $( topsrcdir) /addon-sdk/source/bin/cfx -b $( browser_path) --parseable testpkgs
2013-02-14 02:22:46 -08:00
# -- -register
# -- --trace-malloc malloc.log --shutdown-leaks=sdleak.log
leaktest :
$( PYTHON) _leaktest/leaktest.py $( LEAKTEST_ARGS)
2013-03-19 10:14:40 -07:00
pgo-profile-run :
2013-05-28 12:33:57 -07:00
$( PYTHON) $( topsrcdir) /build/pgo/profileserver.py $( EXTRA_TEST_ARGS)
2013-02-14 02:22:46 -08:00
2009-02-02 05:53:24 -08:00
# Package up the tests and test harnesses
i n c l u d e $( topsrcdir ) / t o o l k i t / m o z a p p s / i n s t a l l e r / p a c k a g e - n a m e . m k
2009-09-29 05:31:50 -07:00
i f n d e f U N I V E R S A L _ B I N A R Y
2009-02-02 05:53:24 -08:00
PKG_STAGE = $( DIST) /test-package-stage
2012-04-09 15:11:07 -07:00
package-tests : \
2013-05-24 08:01:06 -07:00
stage-config \
2012-04-09 15:11:07 -07:00
stage-mochitest \
stage-reftest \
stage-xpcshell \
stage-jstests \
stage-jetpack \
stage-mozbase \
stage-tps \
2012-05-31 12:54:10 -07:00
stage-modules \
2012-07-24 16:36:46 -07:00
stage-marionette \
2013-06-24 10:45:32 -07:00
stage-cppunittests \
2013-08-21 05:20:24 -07:00
stage-jittest \
2013-09-25 03:57:34 -07:00
stage-steeplechase \
2012-04-09 15:11:07 -07:00
$( NULL)
2009-09-29 05:31:50 -07:00
e l s e
# This staging area has been built for us by universal/flight.mk
PKG_STAGE = $( DIST) /universal/test-package-stage
e n d i f
2009-02-02 05:53:24 -08:00
2009-10-08 03:39:23 -07:00
package-tests :
2013-12-02 13:34:21 -08:00
@rm -f '$(DIST)/$(PKG_PATH)$(TEST_PACKAGE)'
2010-09-30 17:10:19 -07:00
i f n d e f U N I V E R S A L _ B I N A R Y
$( NSINSTALL) -D $( DIST) /$( PKG_PATH)
e n d i f
2013-12-02 13:34:21 -08:00
find $( PKG_STAGE) -name '*.pyc' -exec rm { } \;
2010-04-07 17:43:31 -07:00
cd $( PKG_STAGE) && \
2013-12-02 13:34:21 -08:00
zip -rq9D '$(abspath $(DIST))/$(PKG_PATH)$(TEST_PACKAGE)' \
2012-08-10 08:29:58 -07:00
* -x \* /.mkdir.done
2009-02-02 05:53:24 -08:00
2012-09-13 13:46:02 -07:00
i f e q ( $( MOZ_WIDGET_TOOLKIT ) , a n d r o i d )
2010-07-26 18:43:34 -07:00
package-tests : stage -android
e n d i f
2013-01-16 14:14:10 -08:00
i f e q ( $( MOZ_WIDGET_TOOLKIT ) , g o n k )
package-tests : stage -b 2g
e n d i f
2009-02-02 05:53:24 -08:00
make-stage-dir :
2012-06-29 13:27:06 -07:00
rm -rf $( PKG_STAGE)
$( NSINSTALL) -D $( PKG_STAGE)
$( NSINSTALL) -D $( PKG_STAGE) /bin
$( NSINSTALL) -D $( PKG_STAGE) /bin/components
$( NSINSTALL) -D $( PKG_STAGE) /certs
2013-05-24 08:01:06 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /config
2012-06-29 13:27:06 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /jetpack
$( NSINSTALL) -D $( PKG_STAGE) /mozbase
$( NSINSTALL) -D $( PKG_STAGE) /modules
2009-02-02 05:53:24 -08:00
2013-01-16 14:14:10 -08:00
stage-b2g : make -stage -dir
$( NSINSTALL) $( topsrcdir) /b2g/test/b2g-unittest-requirements.txt $( PKG_STAGE) /b2g
2013-05-24 08:01:06 -07:00
stage-config : make -stage -dir
2013-09-05 17:36:16 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /config
@( cd $( topsrcdir) /testing/config && tar $( TAR_CREATE_FLAGS) - *) | ( cd $( PKG_STAGE) /config && tar -xf -)
2013-05-24 08:01:06 -07:00
2009-02-02 05:53:24 -08:00
stage-mochitest : make -stage -dir
$( MAKE) -C $( DEPTH) /testing/mochitest stage-package
2013-05-10 21:38:52 -07:00
i f e q ( $( MOZ_BUILD_APP ) , m o b i l e / a n d r o i d )
2013-05-20 11:39:49 -07:00
$( NSINSTALL) $( DEPTH) /mobile/android/base/fennec_ids.txt $( PKG_STAGE) /mochitest
2013-05-10 21:38:52 -07:00
e n d i f
2009-02-02 05:53:24 -08:00
2009-03-11 08:56:58 -07:00
stage-reftest : make -stage -dir
$( MAKE) -C $( DEPTH) /layout/tools/reftest stage-package
2009-03-21 08:20:00 -07:00
stage-xpcshell : make -stage -dir
$( MAKE) -C $( DEPTH) /testing/xpcshell stage-package
2009-09-26 15:54:12 -07:00
stage-jstests : make -stage -dir
2014-02-10 17:37:47 -08:00
$( MAKE) -C $( DEPTH) /js/src/tests stage-package
2009-04-01 14:53:01 -07:00
2010-07-26 18:43:34 -07:00
stage-android : make -stage -dir
2013-04-18 00:14:38 -07:00
i f d e f M O Z _ E N A B L E _ S Z I P
# Tinderbox scripts are not unzipping everything, so the file needs to be in a directory it unzips
$( NSINSTALL) $( DIST) /host/bin/szip $( PKG_STAGE) /bin/host
e n d i f
2010-07-26 18:43:34 -07:00
$( NSINSTALL) $( DEPTH) /build/mobile/sutagent/android/sutAgentAndroid.apk $( PKG_STAGE) /bin
2011-04-18 11:55:24 -07:00
$( NSINSTALL) $( DEPTH) /build/mobile/sutagent/android/watcher/Watcher.apk $( PKG_STAGE) /bin
$( NSINSTALL) $( DEPTH) /build/mobile/sutagent/android/fencp/FenCP.apk $( PKG_STAGE) /bin
$( NSINSTALL) $( DEPTH) /build/mobile/sutagent/android/ffxcp/FfxCP.apk $( PKG_STAGE) /bin
2010-07-26 18:43:34 -07:00
2010-09-14 16:27:32 -07:00
stage-jetpack : make -stage -dir
2013-02-01 11:20:17 -08:00
$( MAKE) -C $( DEPTH) /addon-sdk stage-tests-package
2011-02-26 10:19:57 -08:00
2012-04-09 15:11:07 -07:00
stage-tps : make -stage -dir
$( NSINSTALL) -D $( PKG_STAGE) /tps/tests
@( cd $( topsrcdir) /testing/tps && tar $( TAR_CREATE_FLAGS) - *) | ( cd $( PKG_STAGE) /tps && tar -xf -)
@( cd $( topsrcdir) /services/sync/tps && tar $( TAR_CREATE_FLAGS) - *) | ( cd $( PKG_STAGE) /tps && tar -xf -)
2013-07-10 02:55:01 -07:00
( cd $( topsrcdir) /services/sync/tests/tps && tar $( TAR_CREATE_FLAGS) - *) | ( cd $( PKG_STAGE) /tps/tests && tar -xf -)
2012-04-09 15:11:07 -07:00
2012-05-31 12:54:10 -07:00
stage-modules : make -stage -dir
2012-06-29 13:27:06 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /modules
cp -RL $( DEPTH) /_tests/modules $( PKG_STAGE)
2012-05-31 12:54:10 -07:00
2013-07-09 09:54:40 -07:00
CPP_UNIT_TEST_BINS = $( wildcard $( DIST) /cppunittests/*)
2013-09-27 15:48:06 -07:00
i f d e f O B J C O P Y
i f n d e f P K G _ S K I P _ S T R I P
STRIP_CPP_TESTS := 1
e n d i f
e n d i f
2014-03-18 07:06:27 -07:00
stage-cppunittests : make -stage -dir
2013-06-24 10:45:32 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /cppunittests
2013-09-27 15:48:06 -07:00
i f d e f S T R I P _ C P P _ T E S T S
2014-01-24 09:57:23 -08:00
$( foreach bin,$( CPP_UNIT_TEST_BINS) ,$( OBJCOPY) $( or $( STRIP_FLAGS) ,--strip-unneeded) $( bin) $( bin:$( DIST) /%= $( PKG_STAGE) /%) ; )
2013-07-09 09:54:40 -07:00
e l s e
cp -RL $( DIST) /cppunittests $( PKG_STAGE)
e n d i f
2013-06-24 10:45:32 -07:00
$( NSINSTALL) $( topsrcdir) /testing/runcppunittests.py $( PKG_STAGE) /cppunittests
$( NSINSTALL) $( topsrcdir) /testing/remotecppunittests.py $( PKG_STAGE) /cppunittests
2013-09-27 05:26:05 -07:00
i f e q ( $( MOZ_WIDGET_TOOLKIT ) , a n d r o i d )
2013-09-24 04:18:58 -07:00
$( NSINSTALL) $( topsrcdir) /testing/android_cppunittest_manifest.txt $( PKG_STAGE) /cppunittests
2013-09-27 05:26:05 -07:00
e n d i f
2013-10-23 11:28:49 -07:00
$( NSINSTALL) $( topsrcdir) /startupcache/test/TestStartupCacheTelemetry.js $( PKG_STAGE) /cppunittests
$( NSINSTALL) $( topsrcdir) /startupcache/test/TestStartupCacheTelemetry.manifest $( PKG_STAGE) /cppunittests
2014-04-11 05:46:47 -07:00
cp -RL $( DIST) /bin/jsapi-tests$( BIN_SUFFIX) $( PKG_STAGE) /cppunittests
2013-06-24 10:45:32 -07:00
2014-03-18 07:06:27 -07:00
stage-jittest : make -stage -dir
2013-08-21 05:20:24 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /jit-test/tests
cp -RL $( topsrcdir) /js/src/jsapi.h $( PKG_STAGE) /jit-test
cp -RL $( topsrcdir) /js/src/jit-test $( PKG_STAGE) /jit-test/jit-test
2013-09-23 06:41:26 -07:00
cp -RL $( topsrcdir) /js/src/tests/ecma_6 $( PKG_STAGE) /jit-test/tests/ecma_6
2013-11-19 09:52:58 -08:00
cp -RL $( topsrcdir) /js/src/tests/js1_8_5 $( PKG_STAGE) /jit-test/tests/js1_8_5
2013-08-21 05:20:24 -07:00
cp -RL $( topsrcdir) /js/src/tests/lib $( PKG_STAGE) /jit-test/tests/lib
2014-03-18 07:06:27 -07:00
stage-steeplechase : make -stage -dir
2013-09-25 03:57:34 -07:00
$( NSINSTALL) -D $( PKG_STAGE) /steeplechase/
cp -RL $( DEPTH) /_tests/steeplechase $( PKG_STAGE) /steeplechase/tests
cp -RL $( DIST) /xpi-stage/specialpowers $( PKG_STAGE) /steeplechase
cp -RL $( topsrcdir) /testing/profiles/prefs_general.js $( PKG_STAGE) /steeplechase
2012-07-24 16:36:46 -07:00
MARIONETTE_DIR = $( PKG_STAGE) /marionette
stage-marionette : make -stage -dir
$( NSINSTALL) -D $( MARIONETTE_DIR) /tests
2013-10-14 17:58:40 -07:00
$( NSINSTALL) -D $( MARIONETTE_DIR) /transport
@( cd $( topsrcdir) /testing/marionette/client && tar --exclude marionette/tests $( TAR_CREATE_FLAGS) - *) | ( cd $( MARIONETTE_DIR) / && tar -xf -)
@( cd $( topsrcdir) /testing/marionette/transport && tar $( TAR_CREATE_FLAGS) - *) | ( cd $( MARIONETTE_DIR) /transport && tar -xf -)
2012-07-24 16:36:46 -07:00
$( PYTHON) $( topsrcdir) /testing/marionette/client/marionette/tests/print-manifest-dirs.py \
$( topsrcdir) \
$( topsrcdir) /testing/marionette/client/marionette/tests/unit-tests.ini \
2013-07-10 02:55:01 -07:00
| ( cd $( topsrcdir) && xargs tar $( TAR_CREATE_FLAGS) -) \
2012-07-24 16:36:46 -07:00
| ( cd $( MARIONETTE_DIR) /tests && tar -xf -)
2011-11-29 08:43:16 -08:00
stage-mozbase : make -stage -dir
$( MAKE) -C $( DEPTH) /testing/mozbase stage-package
2009-04-01 14:53:01 -07:00
.PHONY : \
2012-04-09 15:11:07 -07:00
mochitest \
mochitest-plain \
mochitest-chrome \
2014-03-25 09:52:53 -07:00
mochitest-devtools \
2012-04-09 15:11:07 -07:00
mochitest-a11y \
mochitest-ipcplugins \
reftest \
crashtest \
2009-04-01 14:53:01 -07:00
xpcshell-tests \
2009-09-26 15:54:12 -07:00
jstestbrowser \
2012-04-09 15:11:07 -07:00
package-tests \
make-stage-dir \
2013-01-16 14:14:10 -08:00
stage-b2g \
2013-05-24 08:01:06 -07:00
stage-config \
2012-04-09 15:11:07 -07:00
stage-mochitest \
stage-reftest \
stage-xpcshell \
stage-jstests \
stage-android \
stage-jetpack \
stage-mozbase \
stage-tps \
2012-05-31 12:54:10 -07:00
stage-modules \
2012-07-24 16:36:46 -07:00
stage-marionette \
2013-09-25 03:57:34 -07:00
stage-steeplechase \
2012-04-09 15:11:07 -07:00
$( NULL)