summaryrefslogtreecommitdiffstats
path: root/test/Android.run-test.mk
diff options
context:
space:
mode:
authorAlex Light <allight@google.com>2014-08-25 13:25:56 -0700
committerAlex Light <allight@google.com>2014-08-26 17:33:47 -0700
commit03a112d23694afffe9808082e7144b7e8744a4bd (patch)
treeddf08b6c106111ae238b57e6376f39eda2574388 /test/Android.run-test.mk
parent84d7605f93f1e6e86a16e02017e305c90e93117a (diff)
downloadart-03a112d23694afffe9808082e7144b7e8744a4bd.zip
art-03a112d23694afffe9808082e7144b7e8744a4bd.tar.gz
art-03a112d23694afffe9808082e7144b7e8744a4bd.tar.bz2
Add run-test support for running without a working patchoat/dex2oat
Also add it to the test-art target. Bug: 17262039 Change-Id: Id31130194c46df66fc48852d6f8884f14cb08db4
Diffstat (limited to 'test/Android.run-test.mk')
-rw-r--r--test/Android.run-test.mk118
1 files changed, 93 insertions, 25 deletions
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index 2f2d283..214584d 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -65,16 +65,18 @@ TEST_ART_RUN_TEST_BUILD_RULES :=
# General rules to build and run a run-test.
# Test rule names or of the form:
-# test-art-{1: host or target}-run-test-{2: prebuild or no-prebuild}-
-# {3: interpreter default optimizing}-{4: relocate or no-relocate}-{5: trace or no-trace}-
-# {6: gcstress gcverify cms}-{7: forcecopy checkjni jni}-{8: test name}{9: 32 or 64}
+# test-art-{1: host or target}-run-test-{2: prebuild no-prebuild no-dex2oat}-
+# {3: interpreter default optimizing}-{4: relocate no-relocate relocate-no-patchoat}-
+# {5: trace or no-trace}-{6: gcstress gcverify cms}-{7: forcecopy checkjni jni}-
+# {8: no-image or image}-{9: test name}{10: 32 or 64}
TARGET_TYPES := host target
-PREBUILD_TYPES := prebuild no-prebuild
+PREBUILD_TYPES := prebuild no-prebuild no-dex2oat
COMPILER_TYPES := default interpreter optimizing
-RELOCATE_TYPES := relocate no-relocate
+RELOCATE_TYPES := relocate no-relocate relocate-no-patchoat
TRACE_TYPES := trace no-trace
GC_TYPES := gcstress gcverify cms
JNI_TYPES := jni checkjni forcecopy
+IMAGE_TYPES := image no-image
ALL_ADDRESS_SIZES := 64 32
# List all run test names with number arguments agreeing with the comment above.
define all-run-test-names
@@ -85,10 +87,11 @@ define all-run-test-names
$(foreach trace, $(5), \
$(foreach gc, $(6), \
$(foreach jni, $(7), \
- $(foreach test, $(8), \
- $(foreach address_size, $(9), \
- test-art-$(target)-run-test-$(prebuild)-$(compiler)-$(relocate)-$(trace)-$(gc)-$(jni)-$(test)$(address_size) \
- )))))))))
+ $(foreach image, $(8), \
+ $(foreach test, $(9), \
+ $(foreach address_size, $(10), \
+ test-art-$(target)-run-test-$(prebuild)-$(compiler)-$(relocate)-$(trace)-$(gc)-$(jni)-$(image)-$(test)$(address_size) \
+ ))))))))))
endef # all-run-test-names
# To generate a full list or tests:
@@ -111,6 +114,7 @@ ifdef dist_goal
ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(PREBUILD_TYPES), \
$(COMPILER_TYPES), $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
$(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(ALL_ADDRESS_SIZES))
+ $(IMAGE_TYPES), $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(ALL_ADDRESS_SIZES))
endif
# NB 116-nodex2oat is not broken per-se it just doesn't (and isn't meant to) work with --prebuild.
@@ -145,15 +149,36 @@ TEST_ART_BROKEN_TRACE_RUN_TESTS := \
ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(PREBUILD_TYPES), \
$(COMPILER_TYPES), $(RELOCATE_TYPES),trace,$(GC_TYPES),$(JNI_TYPES), \
- $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(ALL_ADDRESS_SIZES))
+ $(IMAGE_TYPES), $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(ALL_ADDRESS_SIZES))
TEST_ART_BROKEN_TRACE_RUN_TESTS :=
# 115-native-bridge setup is complicated. Need to implement it correctly for the target.
ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,target,$(PREBUILD_TYPES),$(COMPILER_TYPES), \
- $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),115-native-bridge, \
+ $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES),115-native-bridge, \
$(ALL_ADDRESS_SIZES))
+# All these tests check that we have sane behavior if we don't have a patchoat or dex2oat.
+# Therefore we shouldn't run them in situations where we actually don't have these since they
+# explicitly test for them. These all also assume we have an image.
+TEST_ART_BROKEN_FALLBACK_RUN_TESTS := \
+ 116-nodex2oat \
+ 117-nopatchoat \
+ 118-noimage-dex2oat \
+ 119-noimage-patchoat
+
+ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),no-dex2oat,$(COMPILER_TYPES), \
+ $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
+ $(TEST_ART_BROKEN_FALLBACK_RUN_TESTS),$(ALL_ADDRESS_SIZES))
+
+ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(PREBUILD_TYPES),$(COMPILER_TYPES), \
+ $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),no-image, \
+ $(TEST_ART_BROKEN_FALLBACK_RUN_TESTS),$(ALL_ADDRESS_SIZES))
+
+ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(PREBUILD_TYPES),$(COMPILER_TYPES), \
+ relocate-no-patchoat,$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
+ $(TEST_ART_BROKEN_FALLBACK_RUN_TESTS),$(ALL_ADDRESS_SIZES))
+
# Clear variables ahead of appending to them when defining tests.
$(foreach target, $(TARGET_TYPES), $(eval ART_RUN_TEST_$(call name-to-var,$(target))_RULES :=))
$(foreach target, $(TARGET_TYPES), \
@@ -175,6 +200,9 @@ $(foreach target, $(TARGET_TYPES), \
$(foreach jni, $(JNI_TYPES), \
$(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(jni))_RULES :=)))
$(foreach target, $(TARGET_TYPES), \
+ $(foreach image, $(IMAGE_TYPES), \
+ $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(image))_RULES :=)))
+$(foreach target, $(TARGET_TYPES), \
$(foreach test, $(TEST_ART_RUN_TESTS), \
$(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(test))_RULES :=)))
$(foreach target, $(TARGET_TYPES), \
@@ -213,9 +241,10 @@ ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \
endif
# Create a rule to build and run a tests following the form:
-# test-art-{1: host or target}-run-test-{2: prebuild or no-prebuild}-
-# {3: interpreter default optimizing}-{4: relocate or no-relocate}-{5: trace or no-trace}-
-# {6: gcstress gcverify cms}-{7: forcecopy checkjni jni}-{8: test name}{9: 32 or 64}
+# test-art-{1: host or target}-run-test-{2: prebuild no-prebuild no-dex2oat}-
+# {3: interpreter default optimizing}-{4: relocate no-relocate relocate-no-patchoat}-
+# {5: trace or no-trace}-{6: gcstress gcverify cms}-{7: forcecopy checkjni jni}-
+# {8: no-image image}-{9: test name}{10: 32 or 64}
define define-test-art-run-test
run_test_options := $(addprefix --runtime-option ,$(DALVIKVM_FLAGS))
prereq_rule :=
@@ -246,7 +275,12 @@ define define-test-art-run-test
test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_PREBUILD_RULES
run_test_options += --no-prebuild
else
- $$(error found $(2) expected $(PREBUILD_TYPES))
+ ifeq ($(2),no-dex2oat)
+ test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_DEX2OAT_RULES
+ run_test_options += --no-prebuild --no-dex2oat
+ else
+ $$(error found $(2) expected $(PREBUILD_TYPES))
+ endif
endif
endif
ifeq ($(3),optimizing)
@@ -272,7 +306,12 @@ define define-test-art-run-test
test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_RELOCATE_RULES
run_test_options += --no-relocate
else
- $$(error found $(4) expected $(RELOCATE_TYPES))
+ ifeq ($(4),relocate-no-patchoat)
+ test_groups += ART_RUN_TEST_$$(uc_host_or_target)_RELOCATE_NO_PATCHOAT_RULES
+ run_test_options += --relocate --no-patchoat
+ else
+ $$(error found $(4) expected $(RELOCATE_TYPES))
+ endif
endif
endif
ifeq ($(5),trace)
@@ -318,19 +357,29 @@ define define-test-art-run-test
endif
endif
endif
- # $(8) is the test name
- test_groups += ART_RUN_TEST_$$(uc_host_or_target)_$(call name-to-var,$(8))_RULES
- ifeq ($(9),64)
+ ifeq ($(8),no-image)
+ test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_IMAGE_RULES
+ run_test_options += --no-image
+ else
+ ifeq ($(8),image)
+ test_groups += ART_RUN_TEST_$$(uc_host_or_target)_IMAGE_RULES
+ else
+ $$(error found $(8) expected $(IMAGE_TYPES))
+ endif
+ endif
+ # $(9) is the test name
+ test_groups += ART_RUN_TEST_$$(uc_host_or_target)_$(call name-to-var,$(9))_RULES
+ ifeq ($(10),64)
test_groups += ART_RUN_TEST_$$(uc_host_or_target)_64_RULES
run_test_options += --64
else
- ifeq ($(9),32)
+ ifeq ($(10),32)
test_groups += ART_RUN_TEST_$$(uc_host_or_target)_32_RULES
else
- $$(error found $(9) expected $(ALL_ADDRESS_SIZES))
+ $$(error found $(10) expected $(ALL_ADDRESS_SIZES))
endif
endif
- run_test_rule_name := test-art-$(1)-run-test-$(2)-$(3)-$(4)-$(5)-$(6)-$(7)-$(8)$(9)
+ run_test_rule_name := test-art-$(1)-run-test-$(2)-$(3)-$(4)-$(5)-$(6)-$(7)-$(8)-$(9)$(10)
run_test_options := --output-path $(ART_HOST_TEST_DIR)/run-test-output/$$(run_test_rule_name) \
$$(run_test_options)
$$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
@@ -338,7 +387,7 @@ $$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
$$(run_test_rule_name): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin $$(prereq_rule)
$(hide) $$(call ART_TEST_SKIP,$$@) && \
DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
- art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(8) \
+ art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(9) \
&& $$(call ART_TEST_PASSED,$$@) || $$(call ART_TEST_FAILED,$$@)
$$(hide) (echo $(MAKECMDGOALS) | grep -q $$@ && \
echo "run-test run as top-level target, removing test directory $(ART_HOST_TEST_DIR)" && \
@@ -358,6 +407,9 @@ test_prebuild_types := prebuild
ifeq ($(ART_TEST_RUN_TEST_NO_PREBUILD),true)
test_prebuild_types += no-prebuild
endif
+ifeq ($(ART_TEST_RUN_TEST_NO_DEX2OAT),true)
+ test_prebuild_types += no-dex2oat
+endif
test_compiler_types :=
ifeq ($(ART_TEST_DEFAULT_COMPILER),true)
test_compiler_types += default
@@ -372,6 +424,9 @@ test_relocate_types := relocate
ifeq ($(ART_TEST_RUN_TEST_NO_RELOCATE),true)
test_relocate_types += no-relocate
endif
+ifeq ($(ART_TEST_RUN_TEST_RELOCATE_NO_PATCHOAT),true)
+ test_relocate_types := relocate-no-patchoat
+endif
test_trace_types := no-trace
ifeq ($(ART_TEST_TRACE),true)
test_trace_types += trace
@@ -387,6 +442,10 @@ test_jni_types := checkjni
ifeq ($(ART_TEST_JNI_FORCECOPY),true)
test_jni_types += forcecopy
endif
+test_image_types := image
+ifeq ($(ART_TEST_RUN_TEST_NO_IMAGE),true)
+ test_image_types += no-image
+endif
ADDRESS_SIZES_TARGET := $(ART_PHONY_TEST_TARGET_SUFFIX) $(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
ADDRESS_SIZES_HOST := $(ART_PHONY_TEST_HOST_SUFFIX) $(2ND_ART_PHONY_TEST_HOST_SUFFIX)
@@ -400,8 +459,9 @@ $(foreach target, $(TARGET_TYPES), \
$(foreach trace, $(test_trace_types), \
$(foreach gc, $(test_gc_types), \
$(foreach jni, $(test_jni_types), \
- $(eval $(call define-test-art-run-test,$(target),$(prebuild),$(compiler),$(relocate),$(trace),$(gc),$(jni),$(test),$(address_size))) \
- )))))))))
+ $(foreach image, $(test_image_types), \
+ $(eval $(call define-test-art-run-test,$(target),$(prebuild),$(compiler),$(relocate),$(trace),$(gc),$(jni),$(image),$(test),$(address_size))) \
+ ))))))))))
define-test-art-run-test :=
test_prebuild_types :=
test_compiler_types :=
@@ -409,6 +469,7 @@ test_relocate_types :=
test_trace_types :=
test_gc_types :=
test_jni_types :=
+test_image_types :=
ART_TEST_HOST_RUN_TEST_DEPENDENCIES :=
ADDRESS_SIZES_TARGET :=
ADDRESS_SIZES_HOST :=
@@ -445,6 +506,9 @@ $(foreach target, $(TARGET_TYPES), \
$(foreach jni, $(JNI_TYPES), $(eval \
$(call define-test-art-run-test-group,test-art-$(target)-run-test-$(jni),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(jni))_RULES)))))
$(foreach target, $(TARGET_TYPES), \
+ $(foreach image, $(IMAGE_TYPES), $(eval \
+ $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(image),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(image))_RULES)))))
+$(foreach target, $(TARGET_TYPES), \
$(foreach test, $(TEST_ART_RUN_TESTS), $(eval \
$(call define-test-art-run-test-group,test-art-$(target)-run-test-$(test),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(test))_RULES)))))
$(foreach target, $(TARGET_TYPES), \
@@ -472,6 +536,9 @@ $(foreach target, $(TARGET_TYPES), \
$(foreach jni, $(JNI_TYPES), \
$(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(jni))_RULES :=)))
$(foreach target, $(TARGET_TYPES), \
+ $(foreach image, $(IMAGE_TYPES), \
+ $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(image))_RULES :=)))
+$(foreach target, $(TARGET_TYPES), \
$(foreach test, $(TEST_ART_RUN_TESTS), \
$(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(test))_RULES :=)))
$(foreach target, $(TARGET_TYPES), \
@@ -485,4 +552,5 @@ RELOCATE_TYPES :=
TRACE_TYPES :=
GC_TYPES :=
JNI_TYPES :=
+IMAGE_TYPES :=
ALL_ADDRESS_SIZES :=