|
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/. |
|
4 |
|
5 |
|
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 |
|
15 |
|
16 # include automation-build.mk to get the path to the binary |
|
17 TARGET_DEPTH = $(DEPTH) |
|
18 include $(topsrcdir)/build/binary-location.mk |
|
19 |
|
20 SYMBOLS_PATH := --symbols-path=$(DIST)/crashreporter-symbols |
|
21 |
|
22 # Usage: |make [TEST_PATH=...] [EXTRA_TEST_ARGS=...] mochitest*|. |
|
23 MOCHITESTS := mochitest-plain mochitest-chrome mochitest-devtools mochitest-a11y mochitest-ipcplugins |
|
24 mochitest:: $(MOCHITESTS) |
|
25 |
|
26 ifndef TEST_PACKAGE_NAME |
|
27 TEST_PACKAGE_NAME := $(ANDROID_PACKAGE_NAME) |
|
28 endif |
|
29 |
|
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) |
|
37 |
|
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) |
|
46 |
|
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) |
|
55 |
|
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) |
|
63 |
|
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) |
|
73 |
|
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 |
|
87 |
|
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 |
|
101 |
|
102 mochitest-robotium: mochitest-robocop |
|
103 @echo 'mochitest-robotium is deprecated -- please use mochitest-robocop' |
|
104 |
|
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 |
|
118 |
|
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 |
|
132 |
|
133 mochitest-plain-rerun-failures: |
|
134 $(RERUN_MOCHITEST) |
|
135 $(CHECK_TEST_ERROR_RERUN) |
|
136 |
|
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) |
|
142 |
|
143 mochitest-chrome: |
|
144 $(RUN_MOCHITEST) --chrome |
|
145 $(CHECK_TEST_ERROR) |
|
146 |
|
147 mochitest-devtools: |
|
148 $(RUN_MOCHITEST) --subsuite=devtools |
|
149 $(CHECK_TEST_ERROR) |
|
150 |
|
151 mochitest-a11y: |
|
152 $(RUN_MOCHITEST) --a11y |
|
153 $(CHECK_TEST_ERROR) |
|
154 |
|
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) |
|
170 |
|
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 |
|
180 |
|
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 |
|
189 |
|
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 |
|
194 |
|
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 |
|
200 |
|
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 |
|
206 |
|
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 #} |
|
215 |
|
216 reftest: TEST_PATH?=layout/reftests/reftest.list |
|
217 reftest: |
|
218 $(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)') |
|
219 $(CHECK_TEST_ERROR) |
|
220 |
|
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 |
|
237 |
|
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 |
|
257 |
|
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) |
|
262 |
|
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) |
|
267 |
|
268 crashtest: TEST_PATH?=testing/crashtest/crashtests.list |
|
269 crashtest: |
|
270 $(call RUN_REFTEST,'$(topsrcdir)/$(TEST_PATH)') |
|
271 $(CHECK_TEST_ERROR) |
|
272 |
|
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) |
|
277 |
|
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) |
|
282 |
|
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) |
|
289 |
|
290 GARBAGE += $(addsuffix .log,$(MOCHITESTS) reftest crashtest jstestbrowser) |
|
291 |
|
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 |
|
313 |
|
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) |
|
329 |
|
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 |
|
345 |
|
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 |
|
363 |
|
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) |
|
371 |
|
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 |
|
380 |
|
381 jetpack-tests: |
|
382 $(PYTHON) $(topsrcdir)/addon-sdk/source/bin/cfx -b $(browser_path) --parseable testpkgs |
|
383 |
|
384 # -- -register |
|
385 # -- --trace-malloc malloc.log --shutdown-leaks=sdleak.log |
|
386 leaktest: |
|
387 $(PYTHON) _leaktest/leaktest.py $(LEAKTEST_ARGS) |
|
388 |
|
389 pgo-profile-run: |
|
390 $(PYTHON) $(topsrcdir)/build/pgo/profileserver.py $(EXTRA_TEST_ARGS) |
|
391 |
|
392 # Package up the tests and test harnesses |
|
393 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk |
|
394 |
|
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 |
|
416 |
|
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 |
|
427 |
|
428 ifeq ($(MOZ_WIDGET_TOOLKIT),android) |
|
429 package-tests: stage-android |
|
430 endif |
|
431 |
|
432 ifeq ($(MOZ_WIDGET_TOOLKIT),gonk) |
|
433 package-tests: stage-b2g |
|
434 endif |
|
435 |
|
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 |
|
446 |
|
447 stage-b2g: make-stage-dir |
|
448 $(NSINSTALL) $(topsrcdir)/b2g/test/b2g-unittest-requirements.txt $(PKG_STAGE)/b2g |
|
449 |
|
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 -) |
|
453 |
|
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 |
|
459 |
|
460 stage-reftest: make-stage-dir |
|
461 $(MAKE) -C $(DEPTH)/layout/tools/reftest stage-package |
|
462 |
|
463 stage-xpcshell: make-stage-dir |
|
464 $(MAKE) -C $(DEPTH)/testing/xpcshell stage-package |
|
465 |
|
466 stage-jstests: make-stage-dir |
|
467 $(MAKE) -C $(DEPTH)/js/src/tests stage-package |
|
468 |
|
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 |
|
478 |
|
479 stage-jetpack: make-stage-dir |
|
480 $(MAKE) -C $(DEPTH)/addon-sdk stage-tests-package |
|
481 |
|
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 -) |
|
487 |
|
488 stage-modules: make-stage-dir |
|
489 $(NSINSTALL) -D $(PKG_STAGE)/modules |
|
490 cp -RL $(DEPTH)/_tests/modules $(PKG_STAGE) |
|
491 |
|
492 CPP_UNIT_TEST_BINS=$(wildcard $(DIST)/cppunittests/*) |
|
493 |
|
494 ifdef OBJCOPY |
|
495 ifndef PKG_SKIP_STRIP |
|
496 STRIP_CPP_TESTS := 1 |
|
497 endif |
|
498 endif |
|
499 |
|
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 |
|
515 |
|
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 |
|
523 |
|
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 |
|
529 |
|
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 -) |
|
541 |
|
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) |
|
571 |