зеркало из https://github.com/mozilla/gecko-dev.git
Bug 863445 - Part 3: Make build/mobile/robocop/Makefile.in produce robocop-debug-signed.apk. r=jmaher
Also makes the developer-facing `make mochitest-robocop` run robocop-debug-signed.apk, and deprecates `make mochitest-robotium` (since we name this suite robocop on TBPL).
This commit is contained in:
Родитель
0edfd46374
Коммит
672acf8042
|
@ -80,10 +80,9 @@ GARBAGE += \
|
||||||
$(java-tests-dep) \
|
$(java-tests-dep) \
|
||||||
$(_JAVA_HARNESS) \
|
$(_JAVA_HARNESS) \
|
||||||
classes.dex \
|
classes.dex \
|
||||||
robocop.apk \
|
|
||||||
robocop.ap_ \
|
robocop.ap_ \
|
||||||
robocop-unsigned-unaligned.apk \
|
robocop-debug-signed.apk \
|
||||||
robocop-unaligned.apk \
|
robocop-debug-signed-unaligned.apk \
|
||||||
$(robocop-deps) \
|
$(robocop-deps) \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
|
@ -100,7 +99,7 @@ include $(topsrcdir)/config/android-common.mk
|
||||||
|
|
||||||
GENERATED_DIRS_tools = classes $(dir-tests)
|
GENERATED_DIRS_tools = classes $(dir-tests)
|
||||||
|
|
||||||
tools:: $(robocop-deps) robocop.apk
|
libs:: robocop-debug-signed.apk
|
||||||
|
|
||||||
classes.dex: robocop.ap_
|
classes.dex: robocop.ap_
|
||||||
classes.dex: $(robocop-deps)
|
classes.dex: $(robocop-deps)
|
||||||
|
@ -109,10 +108,15 @@ classes.dex: $(java-tests-dep)
|
||||||
$(JAVAC) $(JAVAC_FLAGS) -d classes $(JAVAFILES) $(_JAVA_HARNESS) $(java-tests-dep)
|
$(JAVAC) $(JAVAC_FLAGS) -d classes $(JAVAFILES) $(_JAVA_HARNESS) $(java-tests-dep)
|
||||||
$(DX) --dex --output=$@ classes $(ROBOTIUM_PATH) $(ANDROID_COMPT_LIB)
|
$(DX) --dex --output=$@ classes $(ROBOTIUM_PATH) $(ANDROID_COMPT_LIB)
|
||||||
|
|
||||||
robocop.apk: $(robocop-deps) robocop.ap_ classes.dex
|
|
||||||
robocop.ap_: AndroidManifest.xml $(TESTPATH)/assets/*
|
robocop.ap_: AndroidManifest.xml $(TESTPATH)/assets/*
|
||||||
$(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -I . -S res -A $(TESTPATH)/assets -F $@ -J ./
|
$(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -I . -S res -A $(TESTPATH)/assets -F $@ -J ./
|
||||||
|
|
||||||
|
robocop-debug-signed-unaligned.apk: robocop.ap_ classes.dex
|
||||||
|
$(APKBUILDER) $@ -v $(APKBUILDER_FLAGS) -z robocop.ap_ -f classes.dex
|
||||||
|
|
||||||
|
robocop-debug-signed.apk: robocop-debug-signed-unaligned.apk
|
||||||
|
$(ZIPALIGN) -f -v 4 $^ $@
|
||||||
|
|
||||||
# PP_java-tests not fully usable here
|
# PP_java-tests not fully usable here
|
||||||
# Intermediate step toward a library rule.
|
# Intermediate step toward a library rule.
|
||||||
$(dir-tests)/%.java: $(TESTPATH)/%.java.in $(call mkdir_deps,$(dir-tests))
|
$(dir-tests)/%.java: $(TESTPATH)/%.java.in $(call mkdir_deps,$(dir-tests))
|
||||||
|
|
|
@ -7,3 +7,6 @@ http://code.google.com/p/robotium/
|
||||||
We are including robotium-solo-3.6.jar as a binary and are not modifying it in any way
|
We are including robotium-solo-3.6.jar as a binary and are not modifying it in any way
|
||||||
from the original download found at:
|
from the original download found at:
|
||||||
http://code.google.com/p/robotium/
|
http://code.google.com/p/robotium/
|
||||||
|
|
||||||
|
Firefox for Android developers should read the documentation in
|
||||||
|
mobile/android/base/tests/README.rst.
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
Robocop Mochitest
|
||||||
|
=================
|
||||||
|
|
||||||
|
*Robocop Mochitest* tests run on Native Android builds marked with an
|
||||||
|
'rc' in TBPL. These are Java based tests which run from the mochitest
|
||||||
|
harness and generate similar log files. These are designed for
|
||||||
|
testing the native UI of Android devices by sending events to the
|
||||||
|
front end.
|
||||||
|
|
||||||
|
See the documentation at
|
||||||
|
https://wiki.mozilla.org/Auto-tools/Projects/Robocop/WritingTests for
|
||||||
|
details.
|
||||||
|
|
||||||
|
Development cycle
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
To deploy the robocop APK to your device and start the robocop test
|
||||||
|
suite, use::
|
||||||
|
|
||||||
|
make -C $OBJDIR mochitest-robocop
|
||||||
|
|
||||||
|
The Java files in ``mobile/android/base/tests`` are dependencies of the
|
||||||
|
robocop APK built by ``build/mobile/robocop``. If you modify Java files
|
||||||
|
in ``mobile/android/base/tests``, you need to rebuild the robocop APK
|
||||||
|
with::
|
||||||
|
|
||||||
|
mach build/mobile/robocop
|
||||||
|
|
||||||
|
Changes to ``.html``, ``.css``, ``.sjs``, and ``.js`` files in
|
||||||
|
``mobile/android/base/tests`` do not require rebuilding the robocop
|
||||||
|
APK -- these changes are always 'live', since they are served by the
|
||||||
|
mochitest HTTP server and downloaded each test run by your device.
|
||||||
|
|
||||||
|
``mach package`` does build and sign a robocop APK, but ``make
|
||||||
|
mochitest-robocop`` does not use it. (This signed APK is used to test
|
||||||
|
signed releases on the buildbots).
|
||||||
|
|
||||||
|
As always, changes to ``mobile/android/base``, ``mobile/android/chrome``,
|
||||||
|
``mobile/android/modules``, etc., require::
|
||||||
|
|
||||||
|
mach mobile/android/base && mach package && mach install
|
||||||
|
|
||||||
|
as usual.
|
|
@ -63,12 +63,12 @@ RUN_MOCHITEST_REMOTE = \
|
||||||
--testing-modules-dir=$(call core_abspath,_tests/modules) \
|
--testing-modules-dir=$(call core_abspath,_tests/modules) \
|
||||||
$(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
|
$(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
|
||||||
|
|
||||||
RUN_MOCHITEST_ROBOTIUM = \
|
RUN_MOCHITEST_ROBOCOP = \
|
||||||
rm -f ./$@.log && \
|
rm -f ./$@.log && \
|
||||||
$(PYTHON) _tests/testing/mochitest/runtestsremote.py \
|
$(PYTHON) _tests/testing/mochitest/runtestsremote.py \
|
||||||
--robocop-apk=$(DIST)/robocop.apk \
|
--robocop-apk=$(DEPTH)/build/mobile/robocop/robocop-debug-signed.apk \
|
||||||
--robocop-ids=$(DIST)/fennec_ids.txt \
|
|
||||||
--robocop-ini=$(DEPTH)/build/mobile/robocop/robocop.ini \
|
--robocop-ini=$(DEPTH)/build/mobile/robocop/robocop.ini \
|
||||||
|
--robocop-ids=$(DIST)/fennec_ids.txt \
|
||||||
--console-level=INFO --log-file=./$@.log --file-level=INFO $(DM_FLAGS) --dm_trans=$(DM_TRANS) \
|
--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} \
|
--app=$(TEST_PACKAGE_NAME) --deviceIP=${TEST_DEVICE} --xre-path=${MOZ_HOST_BIN} \
|
||||||
$(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
|
$(SYMBOLS_PATH) $(TEST_PATH_ARG) $(EXTRA_TEST_ARGS)
|
||||||
|
@ -97,14 +97,17 @@ mochitest-remote:
|
||||||
$(RUN_MOCHITEST_REMOTE); \
|
$(RUN_MOCHITEST_REMOTE); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mochitest-robotium: DM_TRANS?=adb
|
mochitest-robotium: mochitest-robocop
|
||||||
mochitest-robotium:
|
@echo "mochitest-robotium is deprecated -- please use mochitest-robocop"
|
||||||
|
|
||||||
|
mochitest-robocop: DM_TRANS?=adb
|
||||||
|
mochitest-robocop:
|
||||||
@if [ ! -f ${MOZ_HOST_BIN}/xpcshell ]; then \
|
@if [ ! -f ${MOZ_HOST_BIN}/xpcshell ]; then \
|
||||||
echo "please prepare your host with the environment variable MOZ_HOST_BIN"; \
|
echo "please prepare your host with the environment variable MOZ_HOST_BIN"; \
|
||||||
elif [ "${TEST_DEVICE}" = "" -a "$(DM_TRANS)" != "adb" ]; then \
|
elif [ "${TEST_DEVICE}" = "" -a "$(DM_TRANS)" != "adb" ]; then \
|
||||||
echo "please prepare your host with the environment variable TEST_DEVICE"; \
|
echo "please prepare your host with the environment variable TEST_DEVICE"; \
|
||||||
else \
|
else \
|
||||||
$(RUN_MOCHITEST_ROBOTIUM); \
|
$(RUN_MOCHITEST_ROBOCOP); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ifdef MOZ_B2G
|
ifdef MOZ_B2G
|
||||||
|
|
|
@ -328,9 +328,9 @@ UPLOAD_EXTRA_FILES += robocop.apk
|
||||||
UPLOAD_EXTRA_FILES += fennec_ids.txt
|
UPLOAD_EXTRA_FILES += fennec_ids.txt
|
||||||
ROBOCOP_PATH = $(call core_abspath,$(_ABS_DIST)/../build/mobile/robocop)
|
ROBOCOP_PATH = $(call core_abspath,$(_ABS_DIST)/../build/mobile/robocop)
|
||||||
INNER_ROBOCOP_PACKAGE= \
|
INNER_ROBOCOP_PACKAGE= \
|
||||||
$(APKBUILDER) $(_ABS_DIST)/robocop-raw.apk -v $(APKBUILDER_FLAGS) -z $(ROBOCOP_PATH)/robocop.ap_ -f $(ROBOCOP_PATH)/classes.dex && \
|
cp $(ROBOCOP_PATH)/robocop-debug-signed-unaligned.apk $(_ABS_DIST)/robocop-unaligned.apk && \
|
||||||
$(JARSIGNER) $(_ABS_DIST)/robocop-raw.apk && \
|
$(JARSIGNER) $(_ABS_DIST)/robocop-unaligned.apk && \
|
||||||
$(ZIPALIGN) -f -v 4 $(_ABS_DIST)/robocop-raw.apk $(_ABS_DIST)/robocop.apk
|
$(ZIPALIGN) -f -v 4 $(_ABS_DIST)/robocop-unaligned.apk $(_ABS_DIST)/robocop.apk
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
INNER_ROBOCOP_PACKAGE=echo 'Testing is disabled - No Robocop for you'
|
INNER_ROBOCOP_PACKAGE=echo 'Testing is disabled - No Robocop for you'
|
||||||
|
|
Загрузка…
Ссылка в новой задаче