diff options
| -rw-r--r-- | build/Android.gtest.mk | 19 | ||||
| -rw-r--r-- | test/Android.bp | 19 | ||||
| -rw-r--r-- | test/art-gtests-target-chroot.xml | 29 | ||||
| -rw-r--r-- | test/art-gtests-target-install-apex.xml (renamed from test/gtests-target.xml) | 5 |
4 files changed, 66 insertions, 6 deletions
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk index 47dc61db27..3eefe1405f 100644 --- a/build/Android.gtest.mk +++ b/build/Android.gtest.mk @@ -66,6 +66,25 @@ my_files := include $(CLEAR_VARS) ################################################################################################### +# Create a phony module that contains data needed for ART chroot-based testing. +include $(CLEAR_VARS) +LOCAL_MODULE := art_chroot +LOCAL_MODULE_TAGS := tests +LOCAL_MODULE_CLASS := NATIVE_TESTS +LOCAL_MODULE_SUFFIX := .txt +LOCAL_COMPATIBILITY_SUITE := general-tests +LOCAL_COMPATIBILITY_SUPPORT_FILES := \ + $(foreach apex,$(TESTING_ART_APEX) $(RUNTIME_APEX) $(CONSCRYPT_APEX) $(I18N_APEX),\ + $(PRODUCT_OUT)/system/apex/$(apex).apex:system/apex/$(apex).apex) +include $(BUILD_SYSTEM)/base_rules.mk + +$(LOCAL_BUILT_MODULE): + @mkdir -p $(dir $@) + echo "This directory contains common data and tools needed for ART target tests" > $@ + +include $(CLEAR_VARS) +################################################################################################### + # The path for which all the dex files are relative, not actually the current directory. LOCAL_PATH := art/test diff --git a/test/Android.bp b/test/Android.bp index 68c51107af..b3889f31b2 100644 --- a/test/Android.bp +++ b/test/Android.bp @@ -977,15 +977,26 @@ java_library { } art_cc_test { - name: "ArtGtestsTarget", + name: "ArtGtestsTargetInstallApex", data: [ // We need the ART testing apex, which contains all gtest binaries. - // Note that due to linker constraints the gtests must be in the apex. + // Note that due to build system and linker constraints the gtests must be in the apex. ":com.android.art.testing", - ":art-gtest-jars", ], + // It seems that only device-tests build can create a valid apex. test_suites: ["device-tests"], - test_config: "gtests-target.xml", + test_config: "art-gtests-target-install-apex.xml", +} + +art_cc_test { + name: "ArtGtestsTargetChroot", + data: [ + // We need the ART testing apex, which contains all gtest binaries. + // Note that due to build system and linker constraints the gtests must be in the apex. + ":com.android.art.testing", + ], + test_suites: ["general-tests"], + test_config: "art-gtests-target-chroot.xml", } filegroup { diff --git a/test/art-gtests-target-chroot.xml b/test/art-gtests-target-chroot.xml new file mode 100644 index 0000000000..647130f8e4 --- /dev/null +++ b/test/art-gtests-target-chroot.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2020 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. +--> +<configuration description="ART gtests for target (using chroot)"> + <option name="test-suite-tag" value="art-target-gtest-chroot" /> + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> + <target_preparer class="com.android.tradefed.targetprep.DisableSELinuxTargetPreparer" /> + <target_preparer class="com.android.tradefed.targetprep.ArtChrootPreparer" /> + <test class="com.android.tradefed.testtype.ArtGTest" > + <!-- TODO(b/147821328): These tests do not work since they need to write to /system --> + <option name="exclude-filter" value="HiddenApiTest.DexDomain_System*:OatFileAssistantTest.SystemFrameworkDir" /> + <!-- TODO(b/167660924): These tests fail during remote execution (but pass locally) --> + <option name="exclude-filter" value="DexAnalyzeTest*:DexDiagTest*:DexDumpTest*:DexLayoutTest*:DexListTest*:OatDumpTest*" /> + <option name="native-test-timeout" value="600000" /> + <option name="native-test-device-path" value="/data/local/tmp/art-test-chroot/apex/com.android.art/bin/art" /> + </test> +</configuration> diff --git a/test/gtests-target.xml b/test/art-gtests-target-install-apex.xml index aa2cefa9ee..7ba0170a93 100644 --- a/test/gtests-target.xml +++ b/test/art-gtests-target-install-apex.xml @@ -13,13 +13,14 @@ See the License for the specific language governing permissions and limitations under the License. --> -<configuration description="ART gtests"> +<configuration description="ART gtests for target (using apex installation)"> <option name="test-suite-tag" value="art" /> + <option name="test-suite-tag" value="art-target-gtest-install-apex" /> <target_preparer class="com.android.tradefed.targetprep.InstallApexModuleTargetPreparer" > <option name="test-file-name" value="com.android.art.testing.apex" /> </target_preparer> <test class="com.android.tradefed.testtype.GTest" > - <!-- TODO: These tests do not work since they need to write to /system --> + <!-- TODO(b/147821328): These tests do not work since they need to write to /system --> <option name="exclude-filter" value="HiddenApiTest.DexDomain_System*:OatFileAssistantTest.SystemFrameworkDir" /> <option name="native-test-timeout" value="600000" /> <!-- 10 min --> <option name="native-test-device-path" value="/apex/com.android.art/bin/art" /> |