172 lines
6.1 KiB
Makefile
172 lines
6.1 KiB
Makefile
#
|
|
# Copyright (C) 2015 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
# Debug configuration (development and continuous testing)
|
|
#
|
|
# We run in debug mode to get more error checking and enable JDWP verbose logs
|
|
# to investigate failures during testing.
|
|
|
|
# Target settings
|
|
jdwp_test_classpath_target := /data/jdwp/apache-harmony-jdwp-tests.jar:/data/junit/junit.jar
|
|
jdwp_test_runtime_bin_target := dalvikvm
|
|
|
|
# Host settings
|
|
jdwp_test_classpath_host := $(HOST_OUT_JAVA_LIBRARIES)/apache-harmony-jdwp-tests-hostdex.jar:$(HOST_OUT_JAVA_LIBRARIES)/junit-hostdex.jar
|
|
jdwp_test_runtime_bin_host := $(HOST_OUT_EXECUTABLES)/art
|
|
|
|
# Common runtime settings for runner and debuggee.
|
|
jdwp_test_common_runtime_options := -XXlib:libartd.so -Xcompiler-option --debuggable
|
|
|
|
# Debuggee runtime options
|
|
jdwp_test_runtime_options := -verbose:jdwp
|
|
#jdwp_test_runtime_options += -Xint # interpret-only mode
|
|
#jdwp_test_runtime_options += -Xnoimage-dex2oat # imageless mode
|
|
#jdwp_test_runtime_options += -Xcompiler-option --compiler-backend=Optimizing # optimizing compiler
|
|
#jdwp_test_runtime_options += -verbose:threads
|
|
|
|
# Test suite class name
|
|
jdwp_test_suite_class_name := org.apache.harmony.jpda.tests.share.AllTests
|
|
|
|
# The lists of ABIs supported on host and target.
|
|
jdwp_tests_host_abis :=
|
|
jdwp_tests_target_abis :=
|
|
|
|
ifneq ($(HOST_PREFER_32_BIT),true)
|
|
jdwp_tests_host_abis := 64 32
|
|
else
|
|
jdwp_tests_host_abis := 32
|
|
endif
|
|
|
|
ifdef TARGET_2ND_ARCH
|
|
ifeq ($(TARGET_IS_64_BIT),true)
|
|
jdwp_tests_target_abis := 64 32
|
|
else
|
|
jdwp_tests_target_abis := 32
|
|
$(warning Unsupported multi-target configuration!)
|
|
endif
|
|
else
|
|
ifeq ($(TARGET_IS_64_BIT),true)
|
|
jdwp_tests_target_abis := 64
|
|
else
|
|
jdwp_tests_target_abis := 32
|
|
endif
|
|
endif
|
|
|
|
jdwp_tests_host_dependencies := \
|
|
$(HOST_OUT_EXECUTABLES)/art \
|
|
$(HOST_OUT_JAVA_LIBRARIES)/apache-harmony-jdwp-tests-hostdex.jar \
|
|
$(HOST_OUT_JAVA_LIBRARIES)/junit-hostdex.jar
|
|
|
|
jdwp_tests_target_dependencies := \
|
|
$(TARGET_OUT_DATA)/jdwp/apache-harmony-jdwp-tests.jar \
|
|
$(TARGET_OUT_DATA)/junit/junit.jar
|
|
|
|
# Define a JDWP host rule
|
|
#
|
|
# $(1) ABI (32 or 64)
|
|
# $(2) rule name (ex: run-jdwp-tests-host32)
|
|
# $(3) extra dependency rule (ex: run-jdwp-tests-host-all64)
|
|
define define-jdwp-host-rule
|
|
.PHONY: $(2)
|
|
$(2): jdwp_test_runtime_host := $(jdwp_test_runtime_bin_host) --$(1) $(jdwp_test_common_runtime_options)
|
|
$(2): $(jdwp_tests_host_dependencies) $(3)
|
|
$(hide) echo "Running JDWP $(1)-bit host tests"
|
|
$$(jdwp_test_runtime_host) -cp $(jdwp_test_classpath_host) \
|
|
$(jdwp_test_target_runtime_common_args) \
|
|
-Djpda.settings.debuggeeJavaPath='$$(jdwp_test_runtime_host) $(jdwp_test_runtime_options)' \
|
|
$(jdwp_test_suite_class_name)
|
|
endef
|
|
|
|
# Declare all JDWP host rules
|
|
#
|
|
# $(1) ABI (32 or 64)
|
|
define declare-jdwp-host-rule
|
|
# Declare standalone host rule for the given ABI.
|
|
$(eval $(call define-jdwp-host-rule,$(1),run-jdwp-tests-host$(1),))
|
|
|
|
# Declare variant host rule for run-jdwp-tests-host. It depends on the previous abi rule(s)
|
|
# so all ABIs are tested.
|
|
$(eval $(call define-jdwp-host-rule,$(1),run-jdwp-tests-host-all$(1),$(jdwp_tests_previous_host_rule)))
|
|
jdwp_tests_previous_host_rule := run-jdwp-tests-host-all$(1)
|
|
endef
|
|
|
|
# Waits for device to boot completely.
|
|
define wait-for-boot-complete
|
|
$(hide) echo "Wait for boot complete ..."
|
|
$(hide) while [ `adb wait-for-device shell getprop dev.bootcomplete | grep -c 1` -eq 0 ]; \
|
|
do \
|
|
sleep 1; \
|
|
done
|
|
$(hide) echo "Boot complete"
|
|
endef
|
|
|
|
# Define a JDWP target rule
|
|
#
|
|
# $(1) ABI (32 or 64)
|
|
# $(2) rule name (ex: run-jdwp-tests-target32)
|
|
# $(3) extra dependency rule (ex: run-jdwp-tests-target-all64)
|
|
define define-jdwp-target-rule
|
|
.PHONY: $(2)
|
|
$(2): jdwp_test_runtime_target := $(jdwp_test_runtime_bin_target)$(1) $(jdwp_test_common_runtime_options)
|
|
$(2): $(jdwp_tests_target_dependencies) $(3)
|
|
$(hide) echo "Running JDWP $(1)-bit target tests"
|
|
adb root
|
|
adb wait-for-device shell stop
|
|
adb remount
|
|
adb sync
|
|
adb reboot
|
|
$$(call wait-for-boot-complete)
|
|
adb shell $$(jdwp_test_runtime_target) -cp $(jdwp_test_classpath_target) \
|
|
$(jdwp_test_target_runtime_common_args) \
|
|
-Djpda.settings.debuggeeJavaPath='$$(jdwp_test_runtime_target) $(jdwp_test_runtime_options)' \
|
|
$(jdwp_test_suite_class_name)
|
|
endef
|
|
|
|
# Declare all JDWP target rules
|
|
#
|
|
# $(1) ABI (32 or 64)
|
|
define declare-jdwp-target-rule
|
|
# Declare standalone target rule for the given ABI.
|
|
$(eval $(call define-jdwp-target-rule,$(1),run-jdwp-tests-target$(1),))
|
|
|
|
# Declare variant target rule for run-jdwp-tests-target. It depends on the previous abi rule(s)
|
|
# so all ABIs are tested.
|
|
$(eval $(call define-jdwp-target-rule,$(1),run-jdwp-tests-target-all$(1),$(jdwp_tests_previous_target_rule)))
|
|
jdwp_tests_previous_target_rule := run-jdwp-tests-target-all$(1)
|
|
endef
|
|
|
|
# Declare host and target rules for each ABI
|
|
$(foreach abi,$(jdwp_tests_host_abis),$(eval $(call declare-jdwp-host-rule,$(abi))))
|
|
$(foreach abi,$(jdwp_tests_target_abis),$(eval $(call declare-jdwp-target-rule,$(abi))))
|
|
|
|
# High level host and target rules running tests for each ABI.
|
|
.PHONY: run-jdwp-tests-host
|
|
run-jdwp-tests-host: $(jdwp_tests_previous_host_rule)
|
|
|
|
.PHONY: run-jdwp-tests-target
|
|
run-jdwp-tests-target: $(jdwp_tests_previous_target_rule)
|
|
|
|
jdwp_tests_host_abis :=
|
|
jdwp_tests_target_abis :=
|
|
jdwp_tests_host_dependencies :=
|
|
jdwp_tests_target_dependencies :=
|
|
|
|
.PHONY: run-jdwp-tests-ri
|
|
run-jdwp-tests-ri: $(HOST_OUT_JAVA_LIBRARIES)/apache-harmony-jdwp-tests-host.jar $(HOST_OUT_JAVA_LIBRARIES)/junit.jar
|
|
$(hide) java -cp $(HOST_OUT_JAVA_LIBRARIES)/apache-harmony-jdwp-tests-host.jar:$(HOST_OUT_JAVA_LIBRARIES)/junit.jar \
|
|
-Djpda.settings.verbose=true \
|
|
-Djpda.settings.debuggeeJavaPath=java \
|
|
$(jdwp_test_suite_class_name)
|