4
LOCDIR = $(CURDIR)/$(MOZ_DISTDIR)/.locales
6
ifeq (1,$(MOZ_WANT_UNIT_TESTS))
8
TESTS = check xpcshell-tests jstestbrowser reftest crashtest mochitest
14
run-tests: $(addprefix debian/stamp-,$(TESTS))
16
$(addprefix debian/stamp-,$(TESTS)): debian/stamp-makefile-build
18
# Required for js/src/trace-tests/sunspider/check-date-format-tofte.js
19
$(addprefix debian/stamp-,check jstestbrowser): export TZ = :/usr/share/zoneinfo/posix/US/Pacific
3
MOZ_TEST_LOCALE ?= en_US.UTF-8
5
MOZ_TESTS ?= check xpcshell-tests-build
6
MOZ_TEST_FAILURES_FATAL ?= 1
8
MOZ_TEST_X_WRAPPER ?= xvfb-run -a -s "-screen 0 1024x768x24" dbus-launch --exit-with-session
9
MOZ_TESTS_NEED_X ?= xpcshell-tests xpcshell-tests-build jstestbrowser reftest crashtest mochitest
11
MOZ_TESTS_TZ_ENV ?= TZ=:/usr/share/zoneinfo/posix/US/Pacific
12
MOZ_TESTS_NEED_TZ ?= check jstestbrowser
14
MOZ_TESTS_NEED_LOCALE ?= xpcshell-tests jstestbrowser reftest
16
TEST_LOCALES = $(CURDIR)/$(MOZ_OBJDIR)/_ubuntu_build_test_tmp/locales
17
TEST_HOME = $(CURDIR)/$(MOZ_OBJDIR)/_ubuntu_build_test_tmp/home
19
GET_WRAPPER = $(if $(filter $(1),$(MOZ_TESTS_NEED_X)),$(MOZ_TEST_X_WRAPPER))
20
GET_TZ = $(if $(filter $(1),$(MOZ_TESTS_NEED_TZ)),$(MOZ_TESTS_TZ_ENV))
22
DOIF_NEEDS_LOCALE = $(if $(filter $(1),$(MOZ_TESTS_NEED_LOCALE)),$(call $(2)))
23
MAKE_LOCALE = $(TEST_LOCALES)/$(MOZ_TEST_LOCALE)
24
GET_LOCALE_ENV = LOCPATH=$(TEST_LOCALES) LC_ALL=$(MOZ_TEST_LOCALE)
26
ifneq (1,$(MOZ_TEST_FAILURES_FATAL))
30
ifneq (1,$(MOZ_WANT_UNIT_TESTS))
34
$(TEST_LOCALES) $(TEST_HOME)::
37
$(TEST_LOCALES)/$(MOZ_TEST_LOCALE): $(TEST_LOCALES)
23
38
localedef -f $(shell echo $(notdir $@) | cut -d '.' -f 2) -i $(shell echo $(notdir $@) | cut -d '.' -f 1) $@
25
# Setup locales for tests which need it
26
$(addprefix debian/stamp-,xpcshell-tests jstestbrowser reftest): $(LOCDIR)/$(LOCALE)
27
$(addprefix debian/stamp-,xpcshell-tests jstestbrowser reftest): export LOCPATH=$(LOCDIR)
28
$(addprefix debian/stamp-,xpcshell-tests jstestbrowser reftest): export LC_ALL=$(LOCALE)
30
# Disable tests that are known to fail
31
$(addprefix debian/stamp-,xpcshell-tests): debian/stamp-xpcshell-tests-disable
33
# Tests that need a X server
34
$(addprefix debian/stamp-,xpcshell-tests jstestbrowser reftest crashtest mochitest): WRAPPER = xvfb-run -a -s "-screen 0 1024x768x24" dbus-launch --exit-with-session
37
$(addprefix debian/stamp-,$(TESTS)):
38
HOME="$(CURDIR)/$(MOZ_DISTDIR)" \
39
$(WRAPPER) $(MAKE) -C $(CURDIR)/$(MOZ_OBJDIR) $(subst debian/stamp-,,$@) || true
42
debian/stamp-xpcshell-tests-disable:: debian/stamp-makefile-build
43
# Hangs without network access
44
rm -f $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/toolkit/components/places/tests/unit/test_404630.js
46
# Needs GConf to be running. I guess we need to start with dbus-launch to fix this
47
rm -f $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/browser/components/shell/test/unit/test_421977.js
48
rm -f $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/uriloader/exthandler/tests/unit/test_handlerService.js
40
run-tests: $(MOZ_TESTS)
42
$(MOZ_TESTS):: %: debian/stamp-test-%
44
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: TZ=$(call GET_TZ,$*)
45
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: WRAPPER=$(call GET_WRAPPER,$*)
46
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: $(call DOIF_NEEDS_LOCALE,$*,MAKE_LOCALE)
47
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: LOCALE_ENV=$(call DOIF_NEEDS_LOCALE,$*,GET_LOCALE_ENV)
48
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: $(TEST_HOME)
49
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: TEST_CMD=HOME=$(TEST_HOME) $(LOCALE_ENV) $(TZ) $(WRAPPER) $(if $(findstring -build,$*),debian/rules run-$*,$(MAKE) -C $(CURDIR)/$(MOZ_OBJDIR) $*)
50
$(patsubst %,debian/stamp-test-%,$(MOZ_TESTS)):: debian/stamp-test-%: debian/stamp-makefile-build
51
@echo "\nRunning $(TEST_CMD)\n"
52
$(TEST_CMD) $(CMD_APPEND)
55
$(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/_tests/xpcshell/xpcshell-build.ini:
56
cp $(CURDIR)/debian/testing/xpcshell-build.ini $@
58
run-xpcshell-tests-build: $(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/_tests/xpcshell/xpcshell-build.ini
59
$(MOZ_PYTHON) -u $(CURDIR)/$(MOZ_MOZDIR)/config/pythonpath.py \
60
-I$(CURDIR)/$(MOZ_MOZDIR)/build \
61
-I$(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/_tests/mozbase/mozinfo \
62
$(CURDIR)/$(MOZ_MOZDIR)/testing/xpcshell/runxpcshelltests.py \
63
--manifest=$(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/_tests/xpcshell/xpcshell-build.ini \
64
--build-info-json=$(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/mozinfo.json \
66
--tests-root-dir=$(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/_tests/xpcshell \
67
--testing-modules-dir=$(CURDIR)/$(MOZ_OBJDIR)/$(MOZ_MOZDIR)/_tests/modules \
68
$(CURDIR)/$(MOZ_DISTDIR)/bin/xpcshell
70
.PHONY: run-tests $(MOZ_TESTS) run-xpcshell-tests-build