Finish move of jar compilation rules from makefile to soong.
The rules have already been previously ported to soong, but they were
only used for atest. Always use them to simplify the makefile.
This makes the gtest modules in .bp files depend on the needed jars,
which ensures that they will be copied next to the test binary.
This is needed as atest can not access them in the current location.
It also simplifies the tradefed xml since the manual copying
can be removed for the apex-based device testing.
Test: test-art-host-gtest
Test: atest ArtGtestsTarget
Bug: 147819342
Change-Id: I54d92eca88fc04c949209d490e838d0a92ce8f87
diff --git a/build/Android.common_test.mk b/build/Android.common_test.mk
index 102c1a9..3a557b6 100644
--- a/build/Android.common_test.mk
+++ b/build/Android.common_test.mk
@@ -105,49 +105,4 @@
|| $(call ART_TEST_ANNOUNCE_SKIP_BROKEN,$(1)) ) && false))
endef
-# Create a build rule to create the dex file for a test.
-# $(1): module prefix, e.g. art-test-dex
-# $(2): input test directory in art/test, e.g. HelloWorld
-# $(3): target output module path (default module path is used on host)
-# $(4): additional dependencies
-# $(5): a make variable used to collate target dependencies, e.g ART_TEST_TARGET_OAT_HelloWorld_DEX
-# $(6): a make variable used to collate host dependencies, e.g ART_TEST_HOST_OAT_HelloWorld_DEX
-#
-# If the input test directory contains a file called main.list,
-# then a multi-dex file is created passing main.list as the --main-dex-list
-# argument to dx.
-define build-art-test-dex
- ifeq ($(ART_BUILD_TARGET),true)
- include $(CLEAR_VARS)
- LOCAL_MODULE := $(1)-$(2)
- LOCAL_SRC_FILES := $(call all-java-files-under, $(2))
- LOCAL_NO_STANDARD_LIBRARIES := true
- LOCAL_DEX_PREOPT := false
- LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_test.mk $(4)
- LOCAL_MODULE_TAGS := tests
- LOCAL_MODULE_PATH := $(3)
- ifneq ($(wildcard $(LOCAL_PATH)/$(2)/main.list),)
- LOCAL_MIN_SDK_VERSION := 19
- LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(LOCAL_PATH)/$(2)/main.list --minimal-main-dex
- endif
- include $(BUILD_JAVA_LIBRARY)
- $(5) := $$(LOCAL_INSTALLED_MODULE)
- endif
- ifeq ($(ART_BUILD_HOST),true)
- include $(CLEAR_VARS)
- LOCAL_MODULE := $(1)-$(2)
- LOCAL_SRC_FILES := $(call all-java-files-under, $(2))
- LOCAL_NO_STANDARD_LIBRARIES := true
- LOCAL_DEX_PREOPT := false
- LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_test.mk $(4)
- LOCAL_JAVA_LIBRARIES := $(addsuffix -hostdex,$(CORE_IMG_JARS))
- ifneq ($(wildcard $(LOCAL_PATH)/$(2)/main.list),)
- LOCAL_MIN_SDK_VERSION := 19
- LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(LOCAL_PATH)/$(2)/main.list --minimal-main-dex
- endif
- include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
- $(6) := $$(LOCAL_INSTALLED_MODULE)
- endif
-endef
-
endif # ART_ANDROID_COMMON_TEST_MK
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index 2397a09..dc5015f 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -24,239 +24,6 @@
include art/build/Android.common_path.mk
include art/build/Android.common_build.mk
-# Subdirectories in art/test which contain dex files used as inputs for gtests.
-GTEST_DEX_DIRECTORIES := \
- AbstractMethod \
- AllFields \
- DefaultMethods \
- DexToDexDecompiler \
- ErroneousA \
- ErroneousB \
- ErroneousInit \
- Extension1 \
- Extension2 \
- ForClassLoaderA \
- ForClassLoaderB \
- ForClassLoaderC \
- ForClassLoaderD \
- ExceptionHandle \
- GetMethodSignature \
- HiddenApi \
- HiddenApiSignatures \
- HiddenApiStubs \
- ImageLayoutA \
- ImageLayoutB \
- IMTA \
- IMTB \
- Instrumentation \
- Interfaces \
- Lookup \
- Main \
- ManyMethods \
- MethodTypes \
- MultiDex \
- MultiDexModifiedSecondary \
- MyClass \
- MyClassNatives \
- Nested \
- NonStaticLeafMethods \
- Packages \
- ProtoCompare \
- ProtoCompare2 \
- ProfileTestMultiDex \
- StaticLeafMethods \
- Statics \
- StaticsFromCode \
- StringLiterals \
- Transaction \
- XandY
-
-# Create build rules for each dex file recording the dependency.
-$(foreach dir,$(GTEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,art-gtest,$(dir), \
- $(ART_TARGET_NATIVETEST_OUT),art/build/Android.gtest.mk,ART_TEST_TARGET_GTEST_$(dir)_DEX, \
- ART_TEST_HOST_GTEST_$(dir)_DEX)))
-
-# Create rules for MainStripped, a copy of Main with the classes.dex stripped
-# for the oat file assistant tests.
-ART_TEST_HOST_GTEST_MainStripped_DEX := $(basename $(ART_TEST_HOST_GTEST_Main_DEX))Stripped$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_MainStripped_DEX := $(basename $(ART_TEST_TARGET_GTEST_Main_DEX))Stripped$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-
-# Create rules for MainUncompressedAligned, a copy of Main with the classes.dex uncompressed
-# for the dex2oat tests.
-ART_TEST_HOST_GTEST_MainUncompressedAligned_DEX := $(basename $(ART_TEST_HOST_GTEST_Main_DEX))UncompressedAligned$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_MainUncompressedAligned_DEX := $(basename $(ART_TEST_TARGET_GTEST_Main_DEX))UncompressedAligned$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-
-# Create rules for UncompressedEmpty, a classes.dex that is empty and uncompressed
-# for the dex2oat tests.
-ART_TEST_HOST_GTEST_EmptyUncompressed_DEX := $(basename $(ART_TEST_HOST_GTEST_Main_DEX))EmptyUncompressed$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_EmptyUncompressed_DEX := $(basename $(ART_TEST_TARGET_GTEST_Main_DEX))EmptyUncompressed$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-
-# Create rules for UncompressedEmptyAligned, a classes.dex that is empty, uncompressed,
-# and 4 byte aligned for the dex2oat tests.
-ART_TEST_HOST_GTEST_EmptyUncompressedAligned_DEX := $(basename $(ART_TEST_HOST_GTEST_Main_DEX))EmptyUncompressedAligned$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_EmptyUncompressedAligned_DEX := $(basename $(ART_TEST_TARGET_GTEST_Main_DEX))EmptyUncompressedAligned$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-
-# Create rules for MultiDexUncompressedAligned, a copy of MultiDex with the classes.dex uncompressed
-# for the OatFile tests.
-ART_TEST_HOST_GTEST_MultiDexUncompressedAligned_DEX := $(basename $(ART_TEST_HOST_GTEST_MultiDex_DEX))UncompressedAligned$(suffix $(ART_TEST_HOST_GTEST_MultiDex_DEX))
-ART_TEST_TARGET_GTEST_MultiDexUncompressedAligned_DEX := $(basename $(ART_TEST_TARGET_GTEST_MultiDex_DEX))UncompressedAligned$(suffix $(ART_TEST_TARGET_GTEST_MultiDex_DEX))
-
-ifdef ART_TEST_HOST_GTEST_Main_DEX
-$(ART_TEST_HOST_GTEST_MainStripped_DEX): $(ART_TEST_HOST_GTEST_Main_DEX)
- cp $< $@
- $(call dexpreopt-remove-classes.dex,$@)
-endif
-
-ifdef ART_TEST_TARGET_GTEST_Main_DEX
-$(ART_TEST_TARGET_GTEST_MainStripped_DEX): $(ART_TEST_TARGET_GTEST_Main_DEX)
- cp $< $@
- $(call dexpreopt-remove-classes.dex,$@)
-endif
-
-ifdef ART_TEST_HOST_GTEST_Main_DEX
-$(ART_TEST_HOST_GTEST_MainUncompressedAligned_DEX): $(ART_TEST_HOST_GTEST_Main_DEX) $(ZIPALIGN)
- cp $< $@
- $(call uncompress-dexs, $@)
- $(call align-package, $@)
-endif
-
-ifdef ART_TEST_TARGET_GTEST_Main_DEX
-$(ART_TEST_TARGET_GTEST_MainUncompressedAligned_DEX): $(ART_TEST_TARGET_GTEST_Main_DEX) $(ZIPALIGN)
- cp $< $@
- $(call uncompress-dexs, $@)
- $(call align-package, $@)
-endif
-
-ifdef ART_TEST_HOST_GTEST_Main_DEX
-$(ART_TEST_HOST_GTEST_EmptyUncompressed_DEX):
- touch $@_classes.dex
- zip -j -qD -X -0 $@ $@_classes.dex
- rm $@_classes.dex
-endif
-
-ifdef ART_TEST_TARGET_GTEST_Main_DEX
-$(ART_TEST_TARGET_GTEST_EmptyUncompressed_DEX):
- touch $@_classes.dex
- zip -j -qD -X -0 $@ $@_classes.dex
- rm $@_classes.dex
-endif
-
-ifdef ART_TEST_HOST_GTEST_Main_DEX
-$(ART_TEST_HOST_GTEST_EmptyUncompressedAligned_DEX): $(ZIPALIGN)
- touch $@_classes.dex
- zip -j -0 $@_temp.zip $@_classes.dex
- $(ZIPALIGN) -f 4 $@_temp.zip $@
- rm $@_classes.dex
- rm $@_temp.zip
-endif
-
-ifdef ART_TEST_TARGET_GTEST_Main_DEX
-$(ART_TEST_TARGET_GTEST_EmptyUncompressedAligned_DEX): $(ZIPALIGN)
- touch $@_classes.dex
- zip -j -0 $@_temp.zip $@_classes.dex
- $(ZIPALIGN) -f 4 $@_temp.zip $@
- rm $@_classes.dex
- rm $@_temp.zip
-endif
-
-ifdef ART_TEST_HOST_GTEST_MultiDex_DEX
-$(ART_TEST_HOST_GTEST_MultiDexUncompressedAligned_DEX): $(ART_TEST_HOST_GTEST_MultiDex_DEX) $(ZIPALIGN)
- cp $< $@
- $(call uncompress-dexs, $@)
- $(call align-package, $@)
-endif
-
-ifdef ART_TEST_TARGET_GTEST_MultiDex_DEX
-$(ART_TEST_TARGET_GTEST_MultiDexUncompressedAligned_DEX): $(ART_TEST_TARGET_GTEST_MultiDex_DEX) $(ZIPALIGN)
- cp $< $@
- $(call uncompress-dexs, $@)
- $(call align-package, $@)
-endif
-
-ART_TEST_GTEST_VerifierDeps_SRC := $(abspath $(wildcard $(LOCAL_PATH)/VerifierDeps/*.smali))
-ART_TEST_GTEST_VerifierDepsMulti_SRC := $(abspath $(wildcard $(LOCAL_PATH)/VerifierDepsMulti/*.smali))
-ART_TEST_HOST_GTEST_VerifierDeps_DEX := $(dir $(ART_TEST_HOST_GTEST_Main_DEX))$(subst Main,VerifierDeps,$(basename $(notdir $(ART_TEST_HOST_GTEST_Main_DEX))))$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_VerifierDeps_DEX := $(dir $(ART_TEST_TARGET_GTEST_Main_DEX))$(subst Main,VerifierDeps,$(basename $(notdir $(ART_TEST_TARGET_GTEST_Main_DEX))))$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-ART_TEST_HOST_GTEST_VerifierDepsMulti_DEX := $(dir $(ART_TEST_HOST_GTEST_Main_DEX))$(subst Main,VerifierDepsMulti,$(basename $(notdir $(ART_TEST_HOST_GTEST_Main_DEX))))$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_VerifierDepsMulti_DEX := $(dir $(ART_TEST_TARGET_GTEST_Main_DEX))$(subst Main,VerifierDepsMulti,$(basename $(notdir $(ART_TEST_TARGET_GTEST_Main_DEX))))$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-
-$(ART_TEST_HOST_GTEST_VerifierDeps_DEX): $(ART_TEST_GTEST_VerifierDeps_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-$(ART_TEST_TARGET_GTEST_VerifierDeps_DEX): $(ART_TEST_GTEST_VerifierDeps_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-$(ART_TEST_HOST_GTEST_VerifierDepsMulti_DEX): $(ART_TEST_GTEST_VerifierDepsMulti_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-$(ART_TEST_TARGET_GTEST_VerifierDepsMulti_DEX): $(ART_TEST_GTEST_VerifierDepsMulti_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-ART_TEST_GTEST_VerifySoftFailDuringClinit_SRC := $(abspath $(wildcard $(LOCAL_PATH)/VerifySoftFailDuringClinit/*.smali))
-ART_TEST_HOST_GTEST_VerifySoftFailDuringClinit_DEX := $(dir $(ART_TEST_HOST_GTEST_Main_DEX))$(subst Main,VerifySoftFailDuringClinit,$(basename $(notdir $(ART_TEST_HOST_GTEST_Main_DEX))))$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-ART_TEST_TARGET_GTEST_VerifySoftFailDuringClinit_DEX := $(dir $(ART_TEST_TARGET_GTEST_Main_DEX))$(subst Main,VerifySoftFailDuringClinit,$(basename $(notdir $(ART_TEST_TARGET_GTEST_Main_DEX))))$(suffix $(ART_TEST_TARGET_GTEST_Main_DEX))
-
-$(ART_TEST_HOST_GTEST_VerifySoftFailDuringClinit_DEX): $(ART_TEST_GTEST_VerifySoftFailDuringClinit_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-$(ART_TEST_TARGET_GTEST_VerifySoftFailDuringClinit_DEX): $(ART_TEST_GTEST_VerifySoftFailDuringClinit_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-# Linkage test artifacts.
-ART_TEST_GTEST_LinkageTest_SRC := $(abspath $(wildcard $(LOCAL_PATH)/LinkageTest/*.smali))
-ART_TEST_HOST_GTEST_LinkageTest_DEX := $(dir $(ART_TEST_HOST_GTEST_Main_DEX))$(subst Main,LinkageTest,$(basename $(notdir $(ART_TEST_HOST_GTEST_Main_DEX))))$(suffix $(ART_TEST_HOST_GTEST_Main_DEX))
-$(ART_TEST_HOST_GTEST_LinkageTest_DEX): $(ART_TEST_GTEST_LinkageTest_SRC) $(HOST_OUT_EXECUTABLES)/smali
- $(HOST_OUT_EXECUTABLES)/smali assemble --output $@ $(filter %.smali,$^)
-
-# Dex file dependencies for each gtest.
-ART_GTEST_art_dex_file_loader_test_DEX_DEPS := GetMethodSignature Main Nested MultiDex
-ART_GTEST_dex2oat_environment_tests_DEX_DEPS := Main MainStripped MultiDex MultiDexModifiedSecondary MyClassNatives Nested VerifierDeps VerifierDepsMulti LinkageTest
-
-ART_GTEST_atomic_dex_ref_map_test_DEX_DEPS := Interfaces
-ART_GTEST_class_linker_test_DEX_DEPS := AllFields ErroneousA ErroneousB ErroneousInit ForClassLoaderA ForClassLoaderB ForClassLoaderC ForClassLoaderD Interfaces MethodTypes MultiDex MyClass Nested Statics StaticsFromCode
-ART_GTEST_class_loader_context_test_DEX_DEPS := Main MultiDex MyClass ForClassLoaderA ForClassLoaderB ForClassLoaderC ForClassLoaderD
-ART_GTEST_class_table_test_DEX_DEPS := XandY
-ART_GTEST_compiler_driver_test_DEX_DEPS := AbstractMethod StaticLeafMethods ProfileTestMultiDex
-ART_GTEST_dex_cache_test_DEX_DEPS := Main Packages MethodTypes
-ART_GTEST_dexanalyze_test_DEX_DEPS := MultiDex
-ART_GTEST_dexlayout_test_DEX_DEPS := ManyMethods
-ART_GTEST_dex2oat_test_DEX_DEPS := $(ART_GTEST_dex2oat_environment_tests_DEX_DEPS) ManyMethods Statics VerifierDeps MainUncompressedAligned EmptyUncompressed EmptyUncompressedAligned StringLiterals
-ART_GTEST_dex2oat_image_test_DEX_DEPS := $(ART_GTEST_dex2oat_environment_tests_DEX_DEPS) Statics VerifierDeps
-ART_GTEST_exception_test_DEX_DEPS := ExceptionHandle
-ART_GTEST_hiddenapi_test_DEX_DEPS := HiddenApi HiddenApiStubs
-ART_GTEST_hidden_api_test_DEX_DEPS := HiddenApiSignatures Main MultiDex
-ART_GTEST_image_test_DEX_DEPS := ImageLayoutA ImageLayoutB DefaultMethods VerifySoftFailDuringClinit
-ART_GTEST_imtable_test_DEX_DEPS := IMTA IMTB
-ART_GTEST_instrumentation_test_DEX_DEPS := Instrumentation
-ART_GTEST_jni_compiler_test_DEX_DEPS := MyClassNatives
-ART_GTEST_jni_internal_test_DEX_DEPS := AllFields StaticLeafMethods MyClassNatives
-ART_GTEST_oat_file_assistant_test_DEX_DEPS := $(ART_GTEST_dex2oat_environment_tests_DEX_DEPS)
-ART_GTEST_dexoptanalyzer_test_DEX_DEPS := $(ART_GTEST_dex2oat_environment_tests_DEX_DEPS)
-ART_GTEST_image_space_test_DEX_DEPS := $(ART_GTEST_dex2oat_environment_tests_DEX_DEPS) Extension1 Extension2
-ART_GTEST_oat_file_test_DEX_DEPS := Main MultiDex MainUncompressedAligned MultiDexUncompressedAligned MainStripped Nested MultiDexModifiedSecondary
-ART_GTEST_oat_test_DEX_DEPS := Main
-ART_GTEST_oat_writer_test_DEX_DEPS := Main
-# two_runtimes_test build off dex2oat_environment_test, which does sanity checks on the following dex files.
-ART_GTEST_two_runtimes_test_DEX_DEPS := Main MainStripped Nested MultiDex MultiDexModifiedSecondary
-ART_GTEST_object_test_DEX_DEPS := ProtoCompare ProtoCompare2 StaticsFromCode XandY
-ART_GTEST_proxy_test_DEX_DEPS := Interfaces
-ART_GTEST_reflection_test_DEX_DEPS := Main NonStaticLeafMethods StaticLeafMethods
-ART_GTEST_profile_assistant_test_DEX_DEPS := ProfileTestMultiDex
-ART_GTEST_profile_compilation_info_test_DEX_DEPS := ManyMethods ProfileTestMultiDex
-ART_GTEST_profile_boot_info_test_DEX_DEPS := ManyMethods ProfileTestMultiDex MultiDex
-ART_GTEST_profiling_info_test_DEX_DEPS := ProfileTestMultiDex
-ART_GTEST_runtime_callbacks_test_DEX_DEPS := XandY
-ART_GTEST_stub_test_DEX_DEPS := AllFields
-ART_GTEST_transaction_test_DEX_DEPS := Transaction
-ART_GTEST_type_lookup_table_test_DEX_DEPS := Lookup
-ART_GTEST_unstarted_runtime_test_DEX_DEPS := Nested
-ART_GTEST_heap_verification_test_DEX_DEPS := ProtoCompare ProtoCompare2 StaticsFromCode XandY
-ART_GTEST_verifier_deps_test_DEX_DEPS := VerifierDeps VerifierDepsMulti MultiDex
-ART_GTEST_dex_to_dex_decompiler_test_DEX_DEPS := VerifierDeps DexToDexDecompiler
-ART_GTEST_oatdump_app_test_DEX_DEPS := ProfileTestMultiDex
-ART_GTEST_oatdump_test_DEX_DEPS := ProfileTestMultiDex
-ART_GTEST_reg_type_test_DEX_DEPS := Interfaces
-
# Deprecated core.art dependencies.
HOST_CORE_IMAGE_DEFAULT_32 :=
HOST_CORE_IMAGE_DEFAULT_64 :=
@@ -439,26 +206,8 @@
gtest_suffix :=
endef # define-art-gtest-rule-host
-# Global list of all dependencies. All tests depend on all tools.
-# Removal of test_per_src broke the naming convention for dependencies,
-# so the fine-grained dependencies no longer work for now.
-# TODO: Move all dependency tracking to the blueprint file.
-ART_GTEST_ALL_DEX_DEPS := \
- EmptyUncompressed \
- EmptyUncompressedAligned \
- LinkageTest \
- MainStripped \
- MainUncompressedAligned \
- MultiDexUncompressedAligned \
- VerifierDeps \
- VerifierDepsMulti \
- VerifySoftFailDuringClinit \
- $(foreach dir,$(GTEST_DEX_DIRECTORIES),$(dir))
-ART_TEST_HOST_GTEST_DEPENDENCIES += \
- $(foreach file,$(ART_GTEST_ALL_DEX_DEPS),$(ART_TEST_HOST_GTEST_$(file)_DEX))
-ART_TEST_TARGET_GTEST_DEPENDENCIES += \
- $(TESTING_ART_APEX) \
- $(foreach file,$(ART_GTEST_ALL_DEX_DEPS),$(ART_TEST_TARGET_GTEST_$(file)_DEX))
+ART_TEST_HOST_GTEST_DEPENDENCIES :=
+ART_TEST_TARGET_GTEST_DEPENDENCIES := $(TESTING_ART_APEX)
# Add the additional dependencies for the specified test
# $(1): test name
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index 92505b4..7764c7c 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -337,6 +337,14 @@
if not self._provider.get(test_path).is_exec:
self.fail('%s is not executable', test_path)
+ def check_art_test_data(self, filename):
+ dirs = self.arch_dirs_for_path(ART_TEST_DIR)
+ if not dirs:
+ self.fail('ART test data missing: %s', filename)
+ for dir in dirs:
+ if not self.check_file('%s/%s' % (dir, filename)):
+ return
+
def check_single_library(self, filename):
lib_path = 'lib/%s' % filename
lib64_path = 'lib64/%s' % filename
@@ -756,6 +764,59 @@
# Check ART test tools.
self._checker.check_executable('signal_dumper')
+ # Check ART jar files which are needed for gtests.
+ self._checker.check_art_test_data('art-gtest-jars-AbstractMethod.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MyClassNatives.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Main.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ProtoCompare.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Transaction.jar')
+ self._checker.check_art_test_data('art-gtest-jars-VerifierDepsMulti.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Nested.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MyClass.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ManyMethods.jar')
+ self._checker.check_art_test_data('art-gtest-jars-GetMethodSignature.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Lookup.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Instrumentation.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MainUncompressedAligned.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ForClassLoaderD.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ForClassLoaderC.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ErroneousA.jar')
+ self._checker.check_art_test_data('art-gtest-jars-DexToDexDecompiler.jar')
+ self._checker.check_art_test_data('art-gtest-jars-HiddenApiSignatures.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ForClassLoaderB.jar')
+ self._checker.check_art_test_data('art-gtest-jars-LinkageTest.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MethodTypes.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ErroneousInit.jar')
+ self._checker.check_art_test_data('art-gtest-jars-VerifierDeps.jar')
+ self._checker.check_art_test_data('art-gtest-jars-StringLiterals.jar')
+ self._checker.check_art_test_data('art-gtest-jars-XandY.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ExceptionHandle.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ImageLayoutB.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Interfaces.jar')
+ self._checker.check_art_test_data('art-gtest-jars-IMTB.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Extension2.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Extension1.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MainEmptyUncompressedAligned.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ErroneousB.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MultiDexModifiedSecondary.jar')
+ self._checker.check_art_test_data('art-gtest-jars-NonStaticLeafMethods.jar')
+ self._checker.check_art_test_data('art-gtest-jars-DefaultMethods.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MultiDexUncompressedAligned.jar')
+ self._checker.check_art_test_data('art-gtest-jars-StaticsFromCode.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ProfileTestMultiDex.jar')
+ self._checker.check_art_test_data('art-gtest-jars-VerifySoftFailDuringClinit.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MainStripped.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ForClassLoaderA.jar')
+ self._checker.check_art_test_data('art-gtest-jars-StaticLeafMethods.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MultiDex.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Packages.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ProtoCompare2.jar')
+ self._checker.check_art_test_data('art-gtest-jars-Statics.jar')
+ self._checker.check_art_test_data('art-gtest-jars-AllFields.jar')
+ self._checker.check_art_test_data('art-gtest-jars-IMTA.jar')
+ self._checker.check_art_test_data('art-gtest-jars-ImageLayoutA.jar')
+ self._checker.check_art_test_data('art-gtest-jars-MainEmptyUncompressed.jar')
+
class NoSuperfluousBinariesChecker:
def __init__(self, checker):
diff --git a/compiler/Android.bp b/compiler/Android.bp
index c503eab..bd4cfce 100644
--- a/compiler/Android.bp
+++ b/compiler/Android.bp
@@ -365,6 +365,11 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-ExceptionHandle",
+ ":art-gtest-jars-Interfaces",
+ ":art-gtest-jars-MyClassNatives",
+ ],
srcs: [
"debug/dwarf/dwarf_test.cc",
"debug/src_map_elem_test.cc",
diff --git a/dex2oat/Android.bp b/dex2oat/Android.bp
index 7fd1cc2..e3394fc 100644
--- a/dex2oat/Android.bp
+++ b/dex2oat/Android.bp
@@ -423,6 +423,31 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-AbstractMethod",
+ ":art-gtest-jars-DefaultMethods",
+ ":art-gtest-jars-DexToDexDecompiler",
+ ":art-gtest-jars-ImageLayoutA",
+ ":art-gtest-jars-ImageLayoutB",
+ ":art-gtest-jars-LinkageTest",
+ ":art-gtest-jars-Main",
+ ":art-gtest-jars-MainEmptyUncompressed",
+ ":art-gtest-jars-MainEmptyUncompressedAligned",
+ ":art-gtest-jars-MainStripped",
+ ":art-gtest-jars-MainUncompressedAligned",
+ ":art-gtest-jars-ManyMethods",
+ ":art-gtest-jars-MultiDex",
+ ":art-gtest-jars-MultiDexModifiedSecondary",
+ ":art-gtest-jars-MyClassNatives",
+ ":art-gtest-jars-Nested",
+ ":art-gtest-jars-ProfileTestMultiDex",
+ ":art-gtest-jars-StaticLeafMethods",
+ ":art-gtest-jars-Statics",
+ ":art-gtest-jars-StringLiterals",
+ ":art-gtest-jars-VerifierDeps",
+ ":art-gtest-jars-VerifierDepsMulti",
+ ":art-gtest-jars-VerifySoftFailDuringClinit",
+ ],
srcs: [
"dex2oat_test.cc",
"dex2oat_image_test.cc",
diff --git a/dexlayout/Android.bp b/dexlayout/Android.bp
index 82fbf2b..31bee03 100644
--- a/dexlayout/Android.bp
+++ b/dexlayout/Android.bp
@@ -235,6 +235,9 @@
"libprofiled",
"libartd-dexlayout",
],
+ data: [
+ ":art-gtest-jars-ManyMethods",
+ ],
srcs: ["dexlayout_test.cc"],
required: [
"dexlayoutd",
diff --git a/dexoptanalyzer/Android.bp b/dexoptanalyzer/Android.bp
index a5a7cca..f1bb456 100644
--- a/dexoptanalyzer/Android.bp
+++ b/dexoptanalyzer/Android.bp
@@ -70,6 +70,17 @@
shared_libs: [
"libbacktrace",
],
+ data: [
+ ":art-gtest-jars-LinkageTest",
+ ":art-gtest-jars-Main",
+ ":art-gtest-jars-MainStripped",
+ ":art-gtest-jars-MultiDex",
+ ":art-gtest-jars-MultiDexModifiedSecondary",
+ ":art-gtest-jars-MyClassNatives",
+ ":art-gtest-jars-Nested",
+ ":art-gtest-jars-VerifierDeps",
+ ":art-gtest-jars-VerifierDepsMulti",
+ ],
srcs: ["dexoptanalyzer_test.cc"],
required: [
"dex2oatd",
diff --git a/libartbase/base/common_art_test.cc b/libartbase/base/common_art_test.cc
index 9c35dd4..118fc76 100644
--- a/libartbase/base/common_art_test.cc
+++ b/libartbase/base/common_art_test.cc
@@ -16,14 +16,15 @@
#include "common_art_test.h"
+#include <cstdio>
#include <dirent.h>
#include <dlfcn.h>
#include <fcntl.h>
+#include <filesystem>
#include <ftw.h>
+#include <libgen.h>
#include <stdlib.h>
#include <unistd.h>
-#include <cstdio>
-#include <filesystem>
#include "android-base/file.h"
#include "android-base/logging.h"
#include "nativehelper/scoped_local_ref.h"
@@ -493,16 +494,14 @@
std::string CommonArtTestImpl::GetTestDexFileName(const char* name) const {
CHECK(name != nullptr);
- std::string filename;
- if (IsHost()) {
- filename += GetAndroidRoot() + "/framework/";
- } else {
- filename += ART_TARGET_NATIVETEST_DIR_STRING;
- }
- filename += "art-gtest-";
- filename += name;
- filename += ".jar";
- return filename;
+ // The needed jar files for gtest are located next to the gtest binary itself.
+ std::string cmdline;
+ bool result = android::base::ReadFileToString("/proc/self/cmdline", &cmdline);
+ CHECK(result);
+ UniqueCPtr<char[]> executable_path(realpath(cmdline.c_str(), nullptr));
+ CHECK(executable_path != nullptr);
+ std::string executable_dir = dirname(executable_path.get());
+ return executable_dir + "/art-gtest-jars-" + name + ".jar";
}
std::vector<std::unique_ptr<const DexFile>> CommonArtTestImpl::OpenDexFiles(const char* filename) {
diff --git a/libdexfile/Android.bp b/libdexfile/Android.bp
index c73908d..adb2d28 100644
--- a/libdexfile/Android.bp
+++ b/libdexfile/Android.bp
@@ -250,6 +250,13 @@
"dex/type_lookup_table_test.cc",
"dex/utf_test.cc",
],
+ data: [
+ ":art-gtest-jars-GetMethodSignature",
+ ":art-gtest-jars-Lookup",
+ ":art-gtest-jars-Main",
+ ":art-gtest-jars-MultiDex",
+ ":art-gtest-jars-Nested",
+ ],
header_libs: ["jni_headers"],
shared_libs: [
"libbacktrace",
diff --git a/libprofile/Android.bp b/libprofile/Android.bp
index 23f3241..1c484ac 100644
--- a/libprofile/Android.bp
+++ b/libprofile/Android.bp
@@ -186,6 +186,11 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-ManyMethods",
+ ":art-gtest-jars-MultiDex",
+ ":art-gtest-jars-ProfileTestMultiDex",
+ ],
srcs: [
"profile/profile_boot_info_test.cc",
"profile/profile_compilation_info_test.cc",
diff --git a/oatdump/Android.bp b/oatdump/Android.bp
index 2817c1b..643d2e7 100644
--- a/oatdump/Android.bp
+++ b/oatdump/Android.bp
@@ -138,6 +138,9 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-ProfileTestMultiDex",
+ ],
srcs: [
"oatdump_app_test.cc",
"oatdump_test.cc",
@@ -148,6 +151,6 @@
"oatdumpds",
"dexdump",
"dex2oatd",
- "dex2oatds"
+ "dex2oatds",
],
}
diff --git a/profman/Android.bp b/profman/Android.bp
index a493056..806170a 100644
--- a/profman/Android.bp
+++ b/profman/Android.bp
@@ -98,6 +98,9 @@
shared_libs: [
"libprofiled",
],
+ data: [
+ ":art-gtest-jars-ProfileTestMultiDex",
+ ],
srcs: ["profile_assistant_test.cc"],
required: ["profmand"],
}
diff --git a/runtime/Android.bp b/runtime/Android.bp
index 9edd80f..31e92d9 100644
--- a/runtime/Android.bp
+++ b/runtime/Android.bp
@@ -604,6 +604,45 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-AllFields",
+ ":art-gtest-jars-ErroneousA",
+ ":art-gtest-jars-ErroneousB",
+ ":art-gtest-jars-ErroneousInit",
+ ":art-gtest-jars-Extension1",
+ ":art-gtest-jars-Extension2",
+ ":art-gtest-jars-ForClassLoaderA",
+ ":art-gtest-jars-ForClassLoaderB",
+ ":art-gtest-jars-ForClassLoaderC",
+ ":art-gtest-jars-ForClassLoaderD",
+ ":art-gtest-jars-HiddenApiSignatures",
+ ":art-gtest-jars-IMTA",
+ ":art-gtest-jars-IMTB",
+ ":art-gtest-jars-Instrumentation",
+ ":art-gtest-jars-Interfaces",
+ ":art-gtest-jars-LinkageTest",
+ ":art-gtest-jars-Main",
+ ":art-gtest-jars-MainStripped",
+ ":art-gtest-jars-MainUncompressedAligned",
+ ":art-gtest-jars-MethodTypes",
+ ":art-gtest-jars-MultiDex",
+ ":art-gtest-jars-MultiDexModifiedSecondary",
+ ":art-gtest-jars-MultiDexUncompressedAligned",
+ ":art-gtest-jars-MyClass",
+ ":art-gtest-jars-MyClassNatives",
+ ":art-gtest-jars-Nested",
+ ":art-gtest-jars-Packages",
+ ":art-gtest-jars-ProfileTestMultiDex",
+ ":art-gtest-jars-ProtoCompare",
+ ":art-gtest-jars-ProtoCompare2",
+ ":art-gtest-jars-StaticLeafMethods",
+ ":art-gtest-jars-Statics",
+ ":art-gtest-jars-StaticsFromCode",
+ ":art-gtest-jars-Transaction",
+ ":art-gtest-jars-VerifierDeps",
+ ":art-gtest-jars-VerifierDepsMulti",
+ ":art-gtest-jars-XandY",
+ ],
srcs: [
"arch/arch_test.cc",
"arch/instruction_set_features_test.cc",
@@ -698,6 +737,11 @@
"module_exclusion_test.cc",
],
required: ["dex2oatd"],
+ data: [
+ ":art-gtest-jars-Main",
+ ":art-gtest-jars-NonStaticLeafMethods",
+ ":art-gtest-jars-StaticLeafMethods",
+ ],
shared_libs: [
"libartd-compiler",
"libvixld",
diff --git a/runtime/runtime_callbacks_test.cc b/runtime/runtime_callbacks_test.cc
index 4a60c04..7d4f26c 100644
--- a/runtime/runtime_callbacks_test.cc
+++ b/runtime/runtime_callbacks_test.cc
@@ -300,8 +300,8 @@
hs.NewHandle(class_linker_->FindClass(soa.Self(), descriptor_y, class_loader)));
ASSERT_TRUE(h_Y != nullptr);
- bool expect1 = Expect({ "PreDefine:LY; <art-gtest-XandY.jar>",
- "PreDefine:LX; <art-gtest-XandY.jar>",
+ bool expect1 = Expect({ "PreDefine:LY; <art-gtest-jars-XandY.jar>",
+ "PreDefine:LX; <art-gtest-jars-XandY.jar>",
"Load:LX;",
"Prepare:LX;[LX;]",
"Load:LY;",
@@ -312,7 +312,7 @@
ASSERT_TRUE(class_linker_->EnsureInitialized(Thread::Current(), h_Y, true, true));
- bool expect2 = Expect({ "PreDefine:LY$Z; <art-gtest-XandY.jar>",
+ bool expect2 = Expect({ "PreDefine:LY$Z; <art-gtest-jars-XandY.jar>",
"Load:LY$Z;",
"Prepare:LY$Z;[LY$Z;]" });
EXPECT_TRUE(expect2);
diff --git a/test/Android.bp b/test/Android.bp
index b8cf417..49cbf3e 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -1013,6 +1013,7 @@
enabled: false,
},
sdk_version: "core_platform",
+ uncompress_dex: false,
}
// The following modules are just trivial compilations (non-trivial cases are the end).
@@ -1397,3 +1398,10 @@
srcs: ["VerifySoftFailDuringClinit/**/*.smali"],
out: ["art-gtest-jars-VerifySoftFailDuringClinit.jar"],
}
+
+genrule {
+ name: "art-gtest-jars-LinkageTest",
+ defaults: ["art-gtest-jars-smali-defaults"],
+ srcs: ["LinkageTest/*.smali"],
+ out: ["art-gtest-jars-LinkageTest.jar"],
+}
diff --git a/test/gtests-target.xml b/test/gtests-target.xml
index 62aa938..aa2cefa 100644
--- a/test/gtests-target.xml
+++ b/test/gtests-target.xml
@@ -18,333 +18,6 @@
<target_preparer class="com.android.tradefed.targetprep.InstallApexModuleTargetPreparer" >
<option name="test-file-name" value="com.android.art.testing.apex" />
</target_preparer>
- <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
- <option name="cleanup" value="true" />
- <option name="abort-on-push-failure" value="true" />
- <!-- copy jar files to /data/nativetest -->
- <option name="push-file"
- key="art-gtest-jars-AbstractMethod.jar"
- value="/data/nativetest/art/art-gtest-AbstractMethod.jar"/>
- <option name="push-file"
- key="art-gtest-jars-AllFields.jar"
- value="/data/nativetest/art/art-gtest-AllFields.jar"/>
- <option name="push-file"
- key="art-gtest-jars-DefaultMethods.jar"
- value="/data/nativetest/art/art-gtest-DefaultMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-DexToDexDecompiler.jar"
- value="/data/nativetest/art/art-gtest-DexToDexDecompiler.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ErroneousA.jar"
- value="/data/nativetest/art/art-gtest-ErroneousA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ErroneousB.jar"
- value="/data/nativetest/art/art-gtest-ErroneousB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ErroneousInit.jar"
- value="/data/nativetest/art/art-gtest-ErroneousInit.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderA.jar"
- value="/data/nativetest/art/art-gtest-ForClassLoaderA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderB.jar"
- value="/data/nativetest/art/art-gtest-ForClassLoaderB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderC.jar"
- value="/data/nativetest/art/art-gtest-ForClassLoaderC.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderD.jar"
- value="/data/nativetest/art/art-gtest-ForClassLoaderD.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ExceptionHandle.jar"
- value="/data/nativetest/art/art-gtest-ExceptionHandle.jar"/>
- <option name="push-file"
- key="art-gtest-jars-GetMethodSignature.jar"
- value="/data/nativetest/art/art-gtest-GetMethodSignature.jar"/>
- <option name="push-file"
- key="art-gtest-jars-HiddenApi.jar"
- value="/data/nativetest/art/art-gtest-HiddenApi.jar"/>
- <option name="push-file"
- key="art-gtest-jars-HiddenApiSignatures.jar"
- value="/data/nativetest/art/art-gtest-HiddenApiSignatures.jar"/>
- <option name="push-file"
- key="art-gtest-jars-HiddenApiStubs.jar"
- value="/data/nativetest/art/art-gtest-HiddenApiStubs.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ImageLayoutA.jar"
- value="/data/nativetest/art/art-gtest-ImageLayoutA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ImageLayoutB.jar"
- value="/data/nativetest/art/art-gtest-ImageLayoutB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-IMTA.jar"
- value="/data/nativetest/art/art-gtest-IMTA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-IMTB.jar"
- value="/data/nativetest/art/art-gtest-IMTB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Instrumentation.jar"
- value="/data/nativetest/art/art-gtest-Instrumentation.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Interfaces.jar"
- value="/data/nativetest/art/art-gtest-Interfaces.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Lookup.jar"
- value="/data/nativetest/art/art-gtest-Lookup.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Main.jar"
- value="/data/nativetest/art/art-gtest-Main.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ManyMethods.jar"
- value="/data/nativetest/art/art-gtest-ManyMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MethodTypes.jar"
- value="/data/nativetest/art/art-gtest-MethodTypes.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MultiDex.jar"
- value="/data/nativetest/art/art-gtest-MultiDex.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MultiDexModifiedSecondary.jar"
- value="/data/nativetest/art/art-gtest-MultiDexModifiedSecondary.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MyClass.jar"
- value="/data/nativetest/art/art-gtest-MyClass.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MyClassNatives.jar"
- value="/data/nativetest/art/art-gtest-MyClassNatives.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Nested.jar"
- value="/data/nativetest/art/art-gtest-Nested.jar"/>
- <option name="push-file"
- key="art-gtest-jars-NonStaticLeafMethods.jar"
- value="/data/nativetest/art/art-gtest-NonStaticLeafMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Packages.jar"
- value="/data/nativetest/art/art-gtest-Packages.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ProtoCompare.jar"
- value="/data/nativetest/art/art-gtest-ProtoCompare.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ProtoCompare2.jar"
- value="/data/nativetest/art/art-gtest-ProtoCompare2.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ProfileTestMultiDex.jar"
- value="/data/nativetest/art/art-gtest-ProfileTestMultiDex.jar"/>
- <option name="push-file"
- key="art-gtest-jars-StaticLeafMethods.jar"
- value="/data/nativetest/art/art-gtest-StaticLeafMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Statics.jar"
- value="/data/nativetest/art/art-gtest-Statics.jar"/>
- <option name="push-file"
- key="art-gtest-jars-StaticsFromCode.jar"
- value="/data/nativetest/art/art-gtest-StaticsFromCode.jar"/>
- <option name="push-file"
- key="art-gtest-jars-StringLiterals.jar"
- value="/data/nativetest/art/art-gtest-StringLiterals.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Transaction.jar"
- value="/data/nativetest/art/art-gtest-Transaction.jar"/>
- <option name="push-file"
- key="art-gtest-jars-XandY.jar"
- value="/data/nativetest/art/art-gtest-XandY.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainEmptyUncompressed.jar"
- value="/data/nativetest/art/art-gtest-MainEmptyUncompressed.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainEmptyUncompressedAligned.jar"
- value="/data/nativetest/art/art-gtest-MainEmptyUncompressedAligned.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainStripped.jar"
- value="/data/nativetest/art/art-gtest-MainStripped.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainUncompressedAligned.jar"
- value="/data/nativetest/art/art-gtest-MainUncompressedAligned.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MultiDexUncompressedAligned.jar"
- value="/data/nativetest/art/art-gtest-MultiDexUncompressedAligned.jar"/>
- <option name="push-file"
- key="art-gtest-jars-VerifierDeps.jar"
- value="/data/nativetest/art/art-gtest-VerifierDeps.jar"/>
- <option name="push-file"
- key="art-gtest-jars-VerifierDepsMulti.jar"
- value="/data/nativetest/art/art-gtest-VerifierDepsMulti.jar"/>
- <option name="push-file"
- key="art-gtest-jars-VerifySoftFailDuringClinit.jar"
- value="/data/nativetest/art/art-gtest-VerifySoftFailDuringClinit.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Extension1.jar"
- value="/data/nativetest/art/art-gtest-Extension1.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Extension2.jar"
- value="/data/nativetest/art/art-gtest-Extension2.jar"/>
- </target_preparer>
- <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
- <option name="cleanup" value="true" />
- <option name="abort-on-push-failure" value="true" />
- <!-- copy jar files to /data/nativetest64 -->
- <option name="push-file"
- key="art-gtest-jars-AbstractMethod.jar"
- value="/data/nativetest64/art/art-gtest-AbstractMethod.jar"/>
- <option name="push-file"
- key="art-gtest-jars-AllFields.jar"
- value="/data/nativetest64/art/art-gtest-AllFields.jar"/>
- <option name="push-file"
- key="art-gtest-jars-DefaultMethods.jar"
- value="/data/nativetest64/art/art-gtest-DefaultMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-DexToDexDecompiler.jar"
- value="/data/nativetest64/art/art-gtest-DexToDexDecompiler.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ErroneousA.jar"
- value="/data/nativetest64/art/art-gtest-ErroneousA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ErroneousB.jar"
- value="/data/nativetest64/art/art-gtest-ErroneousB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ErroneousInit.jar"
- value="/data/nativetest64/art/art-gtest-ErroneousInit.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderA.jar"
- value="/data/nativetest64/art/art-gtest-ForClassLoaderA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderB.jar"
- value="/data/nativetest64/art/art-gtest-ForClassLoaderB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderC.jar"
- value="/data/nativetest64/art/art-gtest-ForClassLoaderC.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ForClassLoaderD.jar"
- value="/data/nativetest64/art/art-gtest-ForClassLoaderD.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ExceptionHandle.jar"
- value="/data/nativetest64/art/art-gtest-ExceptionHandle.jar"/>
- <option name="push-file"
- key="art-gtest-jars-GetMethodSignature.jar"
- value="/data/nativetest64/art/art-gtest-GetMethodSignature.jar"/>
- <option name="push-file"
- key="art-gtest-jars-HiddenApi.jar"
- value="/data/nativetest64/art/art-gtest-HiddenApi.jar"/>
- <option name="push-file"
- key="art-gtest-jars-HiddenApiSignatures.jar"
- value="/data/nativetest64/art/art-gtest-HiddenApiSignatures.jar"/>
- <option name="push-file"
- key="art-gtest-jars-HiddenApiStubs.jar"
- value="/data/nativetest64/art/art-gtest-HiddenApiStubs.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ImageLayoutA.jar"
- value="/data/nativetest64/art/art-gtest-ImageLayoutA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ImageLayoutB.jar"
- value="/data/nativetest64/art/art-gtest-ImageLayoutB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-IMTA.jar"
- value="/data/nativetest64/art/art-gtest-IMTA.jar"/>
- <option name="push-file"
- key="art-gtest-jars-IMTB.jar"
- value="/data/nativetest64/art/art-gtest-IMTB.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Instrumentation.jar"
- value="/data/nativetest64/art/art-gtest-Instrumentation.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Interfaces.jar"
- value="/data/nativetest64/art/art-gtest-Interfaces.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Lookup.jar"
- value="/data/nativetest64/art/art-gtest-Lookup.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Main.jar"
- value="/data/nativetest64/art/art-gtest-Main.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ManyMethods.jar"
- value="/data/nativetest64/art/art-gtest-ManyMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MethodTypes.jar"
- value="/data/nativetest64/art/art-gtest-MethodTypes.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MultiDex.jar"
- value="/data/nativetest64/art/art-gtest-MultiDex.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MultiDexModifiedSecondary.jar"
- value="/data/nativetest64/art/art-gtest-MultiDexModifiedSecondary.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MyClass.jar"
- value="/data/nativetest64/art/art-gtest-MyClass.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MyClassNatives.jar"
- value="/data/nativetest64/art/art-gtest-MyClassNatives.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Nested.jar"
- value="/data/nativetest64/art/art-gtest-Nested.jar"/>
- <option name="push-file"
- key="art-gtest-jars-NonStaticLeafMethods.jar"
- value="/data/nativetest64/art/art-gtest-NonStaticLeafMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Packages.jar"
- value="/data/nativetest64/art/art-gtest-Packages.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ProtoCompare.jar"
- value="/data/nativetest64/art/art-gtest-ProtoCompare.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ProtoCompare2.jar"
- value="/data/nativetest64/art/art-gtest-ProtoCompare2.jar"/>
- <option name="push-file"
- key="art-gtest-jars-ProfileTestMultiDex.jar"
- value="/data/nativetest64/art/art-gtest-ProfileTestMultiDex.jar"/>
- <option name="push-file"
- key="art-gtest-jars-StaticLeafMethods.jar"
- value="/data/nativetest64/art/art-gtest-StaticLeafMethods.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Statics.jar"
- value="/data/nativetest64/art/art-gtest-Statics.jar"/>
- <option name="push-file"
- key="art-gtest-jars-StaticsFromCode.jar"
- value="/data/nativetest64/art/art-gtest-StaticsFromCode.jar"/>
- <option name="push-file"
- key="art-gtest-jars-StringLiterals.jar"
- value="/data/nativetest64/art/art-gtest-StringLiterals.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Transaction.jar"
- value="/data/nativetest64/art/art-gtest-Transaction.jar"/>
- <option name="push-file"
- key="art-gtest-jars-XandY.jar"
- value="/data/nativetest64/art/art-gtest-XandY.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainEmptyUncompressed.jar"
- value="/data/nativetest64/art/art-gtest-MainEmptyUncompressed.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainEmptyUncompressedAligned.jar"
- value="/data/nativetest64/art/art-gtest-MainEmptyUncompressedAligned.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainStripped.jar"
- value="/data/nativetest64/art/art-gtest-MainStripped.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MainUncompressedAligned.jar"
- value="/data/nativetest64/art/art-gtest-MainUncompressedAligned.jar"/>
- <option name="push-file"
- key="art-gtest-jars-MultiDexUncompressedAligned.jar"
- value="/data/nativetest64/art/art-gtest-MultiDexUncompressedAligned.jar"/>
- <option name="push-file"
- key="art-gtest-jars-VerifierDeps.jar"
- value="/data/nativetest64/art/art-gtest-VerifierDeps.jar"/>
- <option name="push-file"
- key="art-gtest-jars-VerifierDepsMulti.jar"
- value="/data/nativetest64/art/art-gtest-VerifierDepsMulti.jar"/>
- <option name="push-file"
- key="art-gtest-jars-VerifySoftFailDuringClinit.jar"
- value="/data/nativetest64/art/art-gtest-VerifySoftFailDuringClinit.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Extension1.jar"
- value="/data/nativetest64/art/art-gtest-Extension1.jar"/>
- <option name="push-file"
- key="art-gtest-jars-Extension2.jar"
- value="/data/nativetest64/art/art-gtest-Extension2.jar"/>
- </target_preparer>
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <!-- only for debugging purposes -->
- <option name="run-command" value="ls -la /data/nativetest/art" />
- <option name="run-command" value="ls -la /data/nativetest64/art" />
- </target_preparer>
<test class="com.android.tradefed.testtype.GTest" >
<!-- TODO: These tests do not work since they need to write to /system -->
<option name="exclude-filter" value="HiddenApiTest.DexDomain_System*:OatFileAssistantTest.SystemFrameworkDir" />
diff --git a/tools/dexanalyze/Android.bp b/tools/dexanalyze/Android.bp
index e7ae113..909d9b8 100644
--- a/tools/dexanalyze/Android.bp
+++ b/tools/dexanalyze/Android.bp
@@ -49,6 +49,9 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-MultiDex",
+ ],
srcs: [
"dexanalyze_test.cc",
],
diff --git a/tools/hiddenapi/Android.bp b/tools/hiddenapi/Android.bp
index 4e89896..29486a7 100644
--- a/tools/hiddenapi/Android.bp
+++ b/tools/hiddenapi/Android.bp
@@ -71,6 +71,10 @@
defaults: [
"art_gtest_defaults",
],
+ data: [
+ ":art-gtest-jars-HiddenApi",
+ ":art-gtest-jars-HiddenApiStubs",
+ ],
srcs: ["hiddenapi_test.cc"],
required: ["hiddenapid"],
}