summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2021-09-27Better isolate standalone ART gtests on device.Roland Levillain
Standalone ART gtests used to be installed in the same directory on device (`/data/local/tmp/nativetest`), which could be a race condition. In particular, some ART gtests are run as root (e.g. `art_standalone_dexoptanalyzer_tests`) and create the `/data/local/tmp/nativetest` directory with `root` ownership/permissions, preventing any subsequent ART gtest not run as root (e.g. `art_standalone_cmdline_tests`) from installing its artifacts in that directory. To prevent these issues, use a different directory on device (under `/data/local/tmp`) per standalone ART gtest. (cherry picked from commit d8c0ac264f606bf0c69781388ca6048eb0a4b55f) (cherry picked from commit 58a79873e94dbe4a168221fc95b641dbf8cd3e3e) Test: atest art_standalone_dexoptanalyzer_tests \ && atest art_standalone_cmdline_tests Test: atest art_standalone_\*_tests Bug: 194403904 Bug: 162834439 Change-Id: I141c1676382b078c1441e5782b3dc77affafa3fc Merged-In: I141c1676382b078c1441e5782b3dc77affafa3fc
2021-09-24Always check for an exception after a class lookup.Nicolas Geoffray
This means we need to stop the lookup, as an exception is pending. (cherry picked from commit 36d182089a4ced3603c7cdcb61b2d92a5a76a471) Test: 831-unverified-bcp Bug: 195766785 Merged-In: I8aa65f6bbaae83eff0be7ca5d82e0c0a548b5b60 Change-Id: I3e414f75e7081eb93b8cb5af89859d25492edf10
2021-09-14Temporarily disable partial LSE.Nicolas Geoffray
Due to a bug in it. Add a regression test. Bug: 197818595 Test: 828-partial-lse (cherry picked from commit 18074d2b59ae56dcfccea770ceb515215c8eb53f) (cherry picked from commit a38b7355a603772424a8212840849094ce0ddeb3) Merged-In: I65da4f7ef09cd2a1f6c4b21799ecd7a42c1adac2 Change-Id: I3eb52dc091264e617bb711260fb4950d15c7f50b
2021-09-13Partial LSE: handle all kinds of infinite loops.Nicolas Geoffray
A subgraph could also have an infinite loop. Test: 826-inifinite-loop Bug: 196246395 Merged-In: Ifd1e1ae0f42dfe2cc156386fc166101c20748fc9 (cherry picked from commit 96dadefd24331f6808cb287048269ba772423c33) Change-Id: I410ec26aefbc42629ba7dbe5a19a87399cefe396 (cherry picked from commit 1c7eeae26429bf76c47a1eaf6eddf514c000ba71)
2021-09-04Improve suspension timeout diagnostic and fix raceHans Boehm
Fix a data race on state_and_flags. Since the access was volatile and there are system calls in the loop, this is extremely unlikey to have casused the bug here, but ... So, assuming this is still broken, produce more informative output once we time out. Remove unused argument from SuspendThreadByPeer(). It made the logic more complicated and made it harder to reason about correctness. Remove dead code after LOG(FATAL, ...) Bug: 181778559 Test: TreeHugger, temporarily paste log message into hotter path. Merged-In: I6f3455925b3a3f4726a870150aeb54ea60a38d67 (cherry picked from commit 9d27fbc8ced914f4726187920a7794b07eca3e71) Change-Id: Ia3f04153fb0a4f1b899fb0f68a6121728f89cb91 (cherry picked from commit 116203735734738cbfdffc2163b08b1707089f9c)
2021-08-17Add `Sdk31ModuleController` support to more ART run-tests.Roland Levillain
This is in order to run these tests only if the device under test is SDK version 31 (Android 12) or above. Test: m mts && mts-tradefed run commandAndExit mts-art Bug: 195178963 Bug: 184696655 Bug: 181724969 Ignore-AOSP-First: API level 31 not in AOSP yet Change-Id: I5b53270ccccc48ae197510b2a546f4d384c30c0f
2021-08-13Add `Sdk31ModuleController` support to ART run-tests and gtests.Roland Levillain
This in order to run these tests only if the device under test is SDK version 31 (Android 12) or above. Test: m mts && mts-tradefed run commandAndExit mts-art Bug: 195178963 Bug: 184696655 Bug: 181724969 Ignore-AOSP-First: API level 31 not in AOSP yet Change-Id: I4bb6405281809863562e5bbbfc1189f227f2508d
2021-07-28Add OkHttp tests to the generated ART MTS definition.Roland Levillain
Add `MtsLibcoreOkHttpTestCases` to the generated ART MTS definition. Add this test module to the existing ART MTS shard 02. (cherry picked from commit 7d398b070dcbe3d79718b04882aa3989717f6dba) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-02 Bug: 193218514 Bug: 167385698 Change-Id: I7c0abf96a9e2a5b9bab0add638a3b51f51083dd4 Merged-In: I7c0abf96a9e2a5b9bab0add638a3b51f51083dd4
2021-07-26odsign_e2e_tests: do not assume time monotonicity across rebootsOrion Hodson
(cherry picked from commit a0dd228837fbbacb3d29445bdf027649567f94fb) Fix: 194365586 Test: atest --iterations 10 com.android.tests.odsign.OnDeviceSigningHostTest Merged-In: I824da7fb9bfc0c455c852f99d2564e89728170ea Change-Id: I294f96474ac5c9265900f762020f6e65b934a046
2021-07-26Add BouncyCastle tests to the generated ART MTS definition.Roland Levillain
Add `CtsLibcoreWycheproofBCTestCases` to the generated ART MTS definition. Add this test module to the existing ART MTS shard 02. (cherry picked from commit 81c76d8dac3f4c4d50cad21a0b94a155908bc7d1) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-02 Bug: 167385698 Change-Id: Icf2a43b3bf1a765d420eeebf7433b90eb4424a55 Merged-In: Icf2a43b3bf1a765d420eeebf7433b90eb4424a55
2021-07-15odrefresh: add test for samegrade ART APEX installOrion Hodson
Adds a test that a samegrade ART APEX installation triggers recompilation of AOT artifacts. (cherry picked from commit 20b3c57170206febd53a20287bf6b7d5e620b62d) Bug: 192647837 Test: atest odsign_e2e_tests Test: atest art_odrefresh_tests Merged-In: Iefb0fbbca119ed3e47bc17caa2ef8467b241b26c Change-Id: Iadbe30203df626708f2c7408c3eb1ec7cfa971d4
2021-07-14Add standalone ART gtests to `TEST_MAPPING` group `mainline-presubmit`.Roland Levillain
Output of `art/test/utils/regen-test-files`: $ art/test/utils/regen-test-files Generated Blueprint files for 625 ART run-tests out of 928 (67%). Generated TEST_MAPPING entries for 376 ART run-tests out of 928 (40%): 376 ART run-tests (100%) in `mainline-presubmit` test group. 17 ART gtests (100%) in `mainline-presubmit` test group. 376 ART run-tests (100%) in `presubmit` test group. 17 ART gtests (100%) in `presubmit` test group. 0 ART run-tests (0%) in `postsubmit` test group. (cherry picked from commit 1de4428db83a426fd7d0615dc9cdd204de41f6e3) Test: Rely on TreeHugger presubmits Bug: 193218514 Bug: 178703264 Bug: 152379281 Change-Id: I84da85e33c7ac1e44361bbb0b3bfa399ceab9b2f Merged-In: I84da85e33c7ac1e44361bbb0b3bfa399ceab9b2f
2021-07-14Add standalone ART gtests to `TEST_MAPPING` group `presubmit`.Roland Levillain
Output of `art/test/utils/regen-test-files`: $ art/test/utils/regen-test-files Generated Blueprint files for 625 ART run-tests out of 928 (67%). Generated TEST_MAPPING entries for 376 ART run-tests out of 928 (40%): 376 ART run-tests (100%) in `mainline-presubmit` test group. 376 ART run-tests (100%) in `presubmit` test group. 17 ART gtests (100%) in `presubmit` test group. 0 ART run-tests (0%) in `postsubmit` test group. (cherry picked from commit e0386f10d4591afa9823658099e4f2ac7a693255) Test: atest --test-mapping art:presubmit Test: Rely on TreeHugger presubmits Bug: 193218514 Bug: 152379281 Change-Id: Ibfcf212a4bc3094ca74f8f3c0f98469810c6ea19 Merged-In: Ibfcf212a4bc3094ca74f8f3c0f98469810c6ea19
2021-07-13Add standalone ART gtests to the generated ART MTS definition.Roland Levillain
Add these test modules to the existing ART MTS shard 00. (cherry picked from commit 8782f17c8adcf729a535dc4f9c221b9602b71017) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-00 Bug: 193218514 Bug: 167385698 Change-Id: Ie7d291e1c68705a1693b15f019fadeeb502410a9 Merged-In: Ie7d291e1c68705a1693b15f019fadeeb502410a9
2021-07-13Add support for standalone ART gtests to MTS.Roland Levillain
This change: - adds standalone ART gtests to test suite `mts-art`; - adds `MainlineTestModuleController` support to standalone ART gtests. This in order to have these tests run in a Mainline context only when the ART Module (either `com.google.android.art` or `com.android.art`) is installed on the test device. (cherry picked from commit 6a2e6893290eac83f59dac4ec5bc10abf985ae10) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-00 Bug: 193218514 Bug: 167385698 Change-Id: I97d9c00b7c10debff8c63e4ae75f90da02be271c Merged-In: I97d9c00b7c10debff8c63e4ae75f90da02be271c
2021-07-13Add more Libcore tests to the generated ART MTS definition.Roland Levillain
Add `CtsLibcoreApiEvolutionTestCases`, `CtsLibcoreFileIOTestCases`, and `CtsLibcoreLegacy22TestCases` to the generated ART MTS definition. Add these test modules to the existing ART MTS shard 02. (cherry picked from commit 515b0cf805c4ef9168516de814dabe087a037a69) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-02 Bug: 193218514 Bug: 167385698 Change-Id: Icf0e1ff4dae52d95e9ba687010029ae40a6a43a4 Merged-In: Icf0e1ff4dae52d95e9ba687010029ae40a6a43a4
2021-07-12Uncouple ART gtests from the ART APEX.Roland Levillain
Introduce standalone versions of ART gtests on target, not bundled with the ART APEX. So far ART gtests have always been built as debug artifacts (and linked against ART debug libraries). Make some adjustments in some of these tests so that they can also work as non-debug artifacts and be used with the Release ART APEX (which contains only non-debug artifacts). Newly added tests: * `art_standalone_cmdline_tests` * `art_standalone_compiler_tests` * `art_standalone_dex2oat_tests` * `art_standalone_dexdump_tests` * `art_standalone_dexlist_tests` * `art_standalone_dexoptanalyzer_tests` * Note: Requires root access to the device. * `art_standalone_libartbase_tests` * `art_standalone_libartpalette_tests` * `art_standalone_libdexfile_support_tests` * `art_standalone_libdexfile_tests` * `art_standalone_libprofile_tests` * `art_standalone_oatdump_tests` * `art_standalone_odrefresh_tests` * `art_standalone_profman_tests` * Note: Requires root access to the device. * Note: Some tests (2 out of 37) are failing in multi-ABI contexts and have been temporarily disabled. * `art_standalone_runtime_compiler_tests` * `art_standalone_runtime_tests` * Note: Some tests (16 out of 686) are failing and have been temporarily disabled. * Note: Some tests (4 out of 686) are failing in multi-ABI contexts and have been temporarily disabled. * `art_standalone_sigchain_tests` Tests not added: * `art_standalone_dexanalyze_tests` * Reason: ART binary `dexanalyze` is not part of the Release ART APEX. * `art_standalone_dexdiag_tests` * Reason: ART binary `dexdiag` is not part of the Release ART APEX. * `art_standalone_dexlayout_tests` * Reason: ART binary `dexlayout` is not part of the Release ART APEX. * `art_standalone_imgdiag_tests` * Reason: ART binary `imgdiag` is not part of the Release ART APEX. Tests not added (but present in AOSP): * `art_standalone_libartservice_tests` * Reason: Test `art_libartservice_tests` does not exist in this branch. * `art_standalone_libarttools_tests` * Reason: Test `art_libarttools_tests` does not exist in this branch. (cherry picked from commit f040914a122be86e280efe5e31af1168f2b7c72e) Test: atest -a art_standalone_cmdline_tests Test: atest -a art_standalone_compiler_tests Test: atest -a art_standalone_dex2oat_tests Test: atest -a art_standalone_dexdump_tests Test: atest -a art_standalone_dexlist_tests Test: atest -a art_standalone_dexoptanalyzer_tests Test: atest -a art_standalone_libartbase_tests Test: atest -a art_standalone_libartpalette_tests Test: atest -a art_standalone_libdexfile_support_tests Test: atest -a art_standalone_libdexfile_tests Test: atest -a art_standalone_libprofile_tests Test: atest -a art_standalone_oatdump_tests Test: atest -a art_standalone_odrefresh_tests Test: atest -a art_standalone_profman_tests Test: atest -a art_standalone_runtime_compiler_tests Test: atest -a art_standalone_runtime_tests Test: atest -a art_standalone_sigchain_tests Test: atest -a art_standalone_\*_tests Test: m art_chroot && atest ArtGtestsTargetChroot Bug: 193218514 Bug: 162834439 Bug: 162734417 Change-Id: I8beda9159d48c4ca495698357dc3bd95e3ff84d5 Merged-In: I8beda9159d48c4ca495698357dc3bd95e3ff84d5
2021-07-12Rename some ART gtest related Soong modules.Roland Levillain
ART gtests currently link with the debug ("d") versions of ART libraries. The gtests themselves and their libraries are compiled as debug artifacts. For the sake of consistency, perform the following renaming of ART gtest related Soong modules: * `libart-compiler-gtest` -> `libartd-compiler-gtest` * `libart-dex2oat-gtest` -> `libartd-dex2oat-gtest` * `libart-gtest-defaults` -> `libartd-gtest-defaults` * `libart-gtest` -> `libartd-gtest` * `libart-runtime-gtest` -> `libartd-runtime-gtest` * `libartbase-art-gtest` -> `libartbased-art-gtest` As we plan to introduce non-debug ("non-d"), standalone versions of ART gtests in the context of uncoupling ART (target) gtests from the ART APEX (b/162834439), this renaming will help us, as we'll be able to use the old names of a "d" module for the corresponding "non-d" version. (cherry picked from commit 55ffe7fa9ead8b501a756bb53f2571e3e7602f5e) Test: mmma art Test: Run ART gtests on host and target Test: env OVERRIDE_TARGET_FLATTEN_APEX=false art/build/apex/runtests.sh Test: env OVERRIDE_TARGET_FLATTEN_APEX=true art/build/apex/runtests.sh Bug: b/193218514 Bug: b/162834439 Change-Id: I4ca27a7f445a760398f41a9e60a7008d77294505 Merged-In: I4ca27a7f445a760398f41a9e60a7008d77294505
2021-06-29Revert "odrefresh: temporarily disable system_server artifact test"Orion Hodson
This reverts commit 6c30777a278d24e1a4c3226405416a85e6523d3f. (cherry picked from commit 6b0fc9ec4b02543dd182b04bec479ff2679d57cd) Bug: 180949581 Test: atest odsign_e2e_tests Merged-In: Icce47524668dd2a92e7128af8242066741563e95 Change-Id: I37a08176ddd13544b153c13afd2d030efaede312
2021-06-24odrefresh: temporarily disable system_server artifact testOrion Hodson
Needs an update to SELinux policy and zygote initialization. (cherry picked from commit 260ac188e9eded300e5280f218ddc24ec63494ee) Bug: 180949581 Fix: 191830020 Test: atest odsign_e2e_tests Merged-In: Iaa1b017f21d0aa7288c18d3fb464b90d10c2a828 Change-Id: I8c855a7666fe4b0fcbc0f899153e0880496cfffb
2021-06-23Add sampling support in the metrics reporterCalin Juravle
The sample rate percentage can be configured via 2 runtime flags (MetricsReportingMods and MetricsReportingNumMods). A runtime session will report metrics if and only if its session id % MetricsReportingNumMods < MetricsReportingMods. A value of 0 on the mods will effectively disable reporting, while configuring MetricsReportingMods to be equal to the MetricsReportingNumMods will enable reporting in all cases. Test: gtest Bug: 170149255 Merged-In: Ie1353e4fc0ff695fc627696145d95e9ccd3c6a94 Change-Id: Ie1353e4fc0ff695fc627696145d95e9ccd3c6a94 (cherry picked from commit 17e0b652b59b0f7ebc821c3a86036e86079642bb)
2021-06-18Move metric reporting config to flagsCalin Juravle
This will enable us to enable periodic reporting according to the properties set in the device config. As part of this CL, enable cmdline only flags for thing that do not make sense to read from system properties. Test: gtest Bug: 170149255 Merged-In: I99bae25d89cf3a17906b4d3c671e5c63e9a3c180 Change-Id: I99bae25d89cf3a17906b4d3c671e5c63e9a3c180 (cherry picked from commit b568b14fd22d4f65d5b43f146ddd50fb27ded4e9)
2021-06-18Disable compact dex code item deduping.Nicolas Geoffray
It conflicts with thread interpreter cache, where the interpreter expects that once an entry is in the cache, it doesn't need to perform access checks again. Test: 536-checker-needs-access-check Bug: 191252775 Change-Id: I65999abc8afe31e4f4bf2ca403432d6cd8be70ee Merged-In: I65999abc8afe31e4f4bf2ca403432d6cd8be70ee (cherry picked from commit 028cc7e1e87d2ea1cf3f56360343cff8c3334f36)
2021-06-17odrefresh: fix instruction set selection.Orion Hodson
Refactoring led to the instruction-set argument being dropped in odrefresh. This manifested itself as failures in the odsign_e2e_tests as the secondary zygote was running in jit-zygote mode. Re-enables the verifyGeneratedArtifactsLoaded test and enforces a deterministic order for the odsign_e2e_tests. (cherry picked from commit 71b2cb54099218952385c8c295dbff8be81263ce) Fix: 191113888 Test: atest odsign_e2e_tests Merged-In: I5308a6cf9ddf16e2991bfaf9c6f27bd7e8ff0aff Change-Id: Ida2a1e2e11e039fc1324c054889b158664f67bbc
2021-06-16odrefresh: temporarily disable testOrion Hodson
Test is failing on zygote64. (cherry picked from commit 319333f6ea3408b8c99bd9c644f0f34b66fe31b8) Bug: 191113888 Test: atest odsign_e2e_tests Merged-In: Idf06d0a875d4d3daf3699015ceb92832647ad263 Change-Id: I29ab79e1e956003a3f8ffa8f4cbc23aee1092c2a
2021-06-14Revert^2 "odrefresh: compilation backoff"Orion Hodson
Adds backoff logic to limit attempts odrefresh tries to compile. It will always recompile if the APEX is updated or the input JARs change, but if compilation fails for any reason then odrefresh backs off exponentially in days. Relands commit 6859ffca5ffd15128459293046590488008221ff. The odsign_e2e tests required updating to remove the compilation log whose purpose is to backoff compilation attempts in the wild. (cherry picked from commit f761f5887918375b842e4cc62ed9cbe7521c8444) Bug: 160683548 Bug: 187494247 Test: atest art_odrefresh_tests Test: atest odsign_e2e_tests Merged-In: Id41ee875cf1ca376f8e2ae05a43d0f6f74a9995f Change-Id: If01b4ebe1e7c7f72ac51730fed7279ed37a3bed8
2021-06-14odrefresh: enable loading of system_server image filesOrion Hodson
Fix check in ValidateBootImageChecksum() to account for image files with multiple components which exists for boot-framework when compiling on device. Update logic for only_load_system_executable to be only_load_trusted_executable and treat /system and the ART APEX data directory as trusted. Add test to check .art,.odex,.vdex files derived from the system_server classpath are mapped when the ART module updates. Add test to check .art,.oat,.vdex files for the boot class path extensions are present in the zygote processes. (cherry picked from commit 094b1cfc9fa9e1c02238a2352c190be1746f5622) Fix: 180949581 Test: atest com.android.tests.odsign.OnDeviceSigningHostTest#verifyGeneratedArtifactsLoaded Merged-In: I3114fc6393402d8da2eb16ba756ab5fab713dc20 Change-Id: I493b2eaa99d27a865ced77745debdeaff16b7d6a
2021-06-02Rewrite profile file format.Vladimir Marko
The new format contains one mandatory section and several optional sections. This allows extending the profile with new sections that shall be ignored by old versions of ART. We add an "extra descriptors" section to support class references without a `dex::TypeId` in the referencing dex file. Type indexes between the dex file's `NumTypeIds()` and `DexFile::kDexNoIndex16` are used to index these extra descriptors. This prepares for collecting array classes which shall be tied to the element type's dex file even when the array type is not needed by that dex file and has been used only from another dex file. It also allows inline caches to be self-contained, so we can remove the profile index from data structures and serialized data. The creation of the the binary profile from text files is updated to correctly allow array types to be stored as the profiled classes using the "extra descriptors". However, the interface for filling in inline caches remains unchanged for now, so we require a `TypeId` in one of the processed dex files. The data collection by JIT has not been updated. (cherry picked from commit c63d9672264e894d8d409e8d582b4e086b26abca) Test: m test-art-host-gtest Test: testrunner.py --host --optimizing --speed-profile Test: boots. Test: atest BootImageProfileTest Bug: 148067697 Merged-In: Idd5f709bdc0ab4a3c7480d69d1dfac72d6e818fc Change-Id: I99b314c3de4e4bc0c515b86336ecbb283107ee38
2021-06-01Fix lock visiting for synchronized native methods.Vladimir Marko
The `GetGenericJniSynchronizationObject()` function was used in the wrong context. As documented, it can be used only for a method with a GenericJni frame and also on the top of the stack. When visiting locks, we can have a non-GenericJni method frame as well as a method deeper in the stack. Replace the wrong use with specialized code. (cherry picked from commit 654f01cd509ca11eae22177d4e764f1241fb3a53) Test: Added regression test to 178-app-image-native-methods Test: testrunner.py --host --debug --ndebug Bug: 172332525 Bug: 189235039 Merged-In: Ia26f0b980c04a766e31b1588a1c011bcf46c90d8 Change-Id: I48af0e2838cda4774b8129927ea04cee9cf3a9f8
2021-05-27Add `CtsLibcoreJsr166TestCases` to the generated ART MTS definition.Roland Levillain
Add this test module to the existing ART MTS shard 02. (cherry picked from commit 8f8935ce292bec925e8a18719227df9ad06a111d) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-02 Bug: 167385698 Change-Id: Ie80a43e745c8a04f1d43980e25cc7e18a67365f1 Merged-In: Ie80a43e745c8a04f1d43980e25cc7e18a67365f1
2021-05-26Rename setters to conform Android API guidelinesNikita Iashchenko
Bug: 184654804 Test: m droid Merged-In: I6ae5dd363bdb32cea6acd9dab7afbd4579fb0c4c Change-Id: I6ae5dd363bdb32cea6acd9dab7afbd4579fb0c4c
2021-05-25Put 100% of ART run-tests in `TEST_MAPPING` group `mainline-presubmit`.Roland Levillain
Include remaining ART run-tests into the `mainline-presubmit` test group. This progressive rollout is to make sure introducing ART run-tests to this test group won't disturb/break Android presubmits. Output of `art/test/utils/regen-test-files`: $ art/test/utils/regen-test-files Generated Blueprint files for 625 ART run-tests out of 929 (67%). Generated TEST_MAPPING entries for 376 ART run-tests out of 929 (40%): 376 tests (100%) in `mainline-presubmit` test group. 376 tests (100%) in `presubmit` test group. 0 tests (0%) in `postsubmit` test group. (cherry picked from commit 3d05e61a420e499bfc9221445237c964e0a8aa63) Test: Rely on TreeHugger presubmits Bug: 178703264 Bug: 152374989 Change-Id: I58c2ad4669905d2fb22bb55d549f616de2266ba4 Merged-In: I58c2ad4669905d2fb22bb55d549f616de2266ba4
2021-05-24RESTRICT AUTOMERGE: Revert "Initial commit of the test code for ART Service"Chris Wailes
This reverts commit bfd622abc23c77ffc8799f376df7241f15d6550a. Test: m Bug: 184281926 Change-Id: I0e80a0f9286de982169761df8fd01f89cfcd678c
2021-05-21Update registerAppInfo signatures to accomodate more data.Calin Juravle
(cherry picked from commit c1ab56b613cdb99622100aa41c511e4e3c3e272e) Test: m Bug: 182793486 Bug: 185979271 Merged-In: Ib92327e39bad5914d48ae8a37dd4b5092c5e1407 Change-Id: Ib92327e39bad5914d48ae8a37dd4b5092c5e1407
2021-05-21art: unbreak dalvikvm builds on hostOrion Hodson
Adds liblog shared library dependency for host builds in a few places. Bug: 188879721 Bug: 188067586 Test: [master-art-internal] art/tools/buildbot-build.sh --host Change-Id: I102a8c8b5fe134047ac71fb940d063e2b1100630
2021-05-20Disable most ART source modules when ART prebuilts are enabled.Martin Stjernholm
After libdexfile_external was merged into libdexfile, libdexfile is an APEX stub when prebuilts are enabled, and that cannot be used to build libart and all the other internal modules that depend on it. This CL: - Changes art_defaults to disable native modules when building from prebuilts. Some other modules that depends on them, like the art-script sh_binary, also get disabled. - Consolidates the makefile sections that are disabled when building from prebuilts so that only a small bit is still enabled then. - Temporarily removes the prebuilt for libctstiagent and activates its source even when prebuilts are used, to work around sdk_version problem (b/187288515). - Removes explicit "enabled: true" in a couple of places that would override the inherited flag that lets us disable them in builds from prebuilts. - Makes some Soong defaults available to libcore. Cherry-picked from https://r.android.com/1711019. Test: m checkbuild Test: art/build/build-art-module.sh --skip-apex packages/modules/ArtPrebuilt/update-art-module-prebuilts.py \ --local-dist out/dist/ --skip-apex m SOONG_CONFIG_art_module_source_build=false droid m SOONG_CONFIG_art_module_source_build=false checkbuild Bug: 172480615 Change-Id: Ief60b933cd6273fc8b85fe7637b99ba1b78505f6 Merged-In: Ief60b933cd6273fc8b85fe7637b99ba1b78505f6
2021-05-20Regenerate ART test files (2021-05-19).Roland Levillain
Disable new run-test `730-cha-deopt` as it is currently failing when run with the `ArtRunTest` TradeFed test runner. Output of `art/test/utils/regen-test-files`: $ art/test/utils/regen-test-files Generated Blueprint files for 625 ART run-tests out of 929 (67%). Generated TEST_MAPPING entries for 376 ART run-tests out of 929 (40%): 282 tests (75%) in `mainline-presubmit` test group. 376 tests (100%) in `presubmit` test group. 0 tests (0%) in `postsubmit` test group. (cherry picked from commit 56f2444d2e58f453c90b7ba8477da3f6b2c107cf) Test: atest art-run-test-576-polymorphic-inlining Test: atest art-run-test-730-checker-inlining-super Test: atest --test-mapping art:presubmit Bug: 140373913 Change-Id: I587b4df7af3021d800c346cb909e759051027cf1 Merged-In: I587b4df7af3021d800c346cb909e759051027cf1
2021-05-14Ensure verifier deps in the vdex file are 4-byte aligned.Nicolas Geoffray
It simplifies the encoding / decoding logic. Test: 663-odd-dex-size Bug: 186405713 Change-Id: I26bcf2b6cfa16548a520a501e6e1b38c238eb1df
2021-05-14Reland "Devirtualize to HInvokeStaticOrDirect."Nicolas Geoffray
This reverts commit 39d4df62d4e2606073d05cc363370db825ad7b9f. Reason for revert: fix JIT-zygote issue. Test: JIT zygote boots. Change-Id: I895ad8e59e472fb662ca9bc5394c2fd9c6babc74
2021-05-13Add 2001-virtual-structural-multithread to list of failures.Nicolas Geoffray
Bug: 176786675 est: test.py Change-Id: Ib3e1beedbd0c72f7db4daf5339a8b6c1bfd0202a
2021-05-13Drop ro.debuggable restriction for NATIVELOADER_DEFAULT_NAMESPACE_LIBS.Martin Stjernholm
To allow running tests on user builds. The (non)existence of the environment variable itself serves fine as a toggle, and it is hard to inject into the zygote environment on a user build anyway. Also a few other cleanups from comments on https://r.android.com/1689792. Test: art/test/testrunner/testrunner.py --target --64 --optimizing Bug: 130340935 Change-Id: I1843a8bbfb5dadc560919022d1f2123eb652be5a
2021-05-13Drop ANDROID_ADDITIONAL_PUBLIC_LIBRARIES.Martin Stjernholm
It's not needed any more since libarttest(d).so is loaded from the ART linker namespace. Test: art/test/testrunner/testrunner.py --target --64 --optimizing Bug: 130340935 Bug: 167578583 Change-Id: I785133e921277cb25360856e9af20fa681b54a3b
2021-05-13Fix array location aliasing checks in LSE.Vladimir Marko
Test: New tests in load_store_elimination_test. Test: New test in 539-checker-lse. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 187487955 Change-Id: Iff66d5406cf1b36c3bebbce1d48117f83bb50553
2021-05-12odsign_e2e_tests: Add required artifacts to test.Martijn Coenen
Make sure we verify some critical parts of the boot class path actually exist as part of the test. Bug: 187494247 Test: atest od2sign_e2e_tests Change-Id: Ic94bc6dc87d5d3dcd20caeca0f815e71bc629873
2021-05-10Use only one core on fugu by default.David Srbecky
Make the current buildbot setting the default so that we can remove the setting from the buildbot. Test: "testrunner.py --host" and check the concurrency Test: "testrunner.py --target" and check the concurrency Change-Id: I0293d00e7ace1087341a387802a1b2bfeb1cb719
2021-05-10Avoid loading external libraries from ARTs internal linker namespaceMartin Stjernholm
(reland). dlopen() calls in ART will use its own linker namespace (com_android_art). That's appropriate for internal libraries in the APEX, but not when ART loads libraries on behalf of external requests. In those cases we should instead use android_dlopen_ext to load them from the system namespace, i.e. the one that searches /system/lib(64). The linker config has been using allow_all_shared_libs, so any loads from com_android_art fall back to the system namespace, and hence dlopen() usually works regardless which namespace it ought to use. However we want to drop allow_all_shared_libs, so we need to figure out which dlopen's should use which namespace: 1. Several ART libraries are loaded on-demand, e.g. libart-compiler and libart-disassembler. There are also those going through the runtime plugin system, like libperfetto_hprofd and heapprofd_client_api. All these are internal or at least statically known (so we can provide links for them in the linker config), and should continue to use dlopen from the ART namespace. 2. libnativeloader loads the preloadable public libraries from system/etc/public.libraries.txt, and should use the system namespace for that. 3. libnativebridge loads the native bridge implementation specified through the command line (or ultimately the system property ro.dalvik.vm.native.bridge). It's not part of the ART APEX and not known statically, so the system namespace should be used. 4. libnativeloader also loads JNI libraries from classloader namespaces, but has a fallback if no such namespace can be found based on caller location. Fall back to the system namespace to handle libraries loaded during the preload phase in the zygote. 5. JVMTI agents are loaded by dalvik.system.VMDebug.attachAgent(). Treat these too as external libraries - they are loaded in a way similar to JNI libraries through OpenNativeLibrary in libnativeloader, so are covered by #4. They are normally loaded by apps with a classloader, but a special case is adbconnection which loads libjdwp.so in the ART APEX without one and hence falls back to the system namespace. We therefore need to create a link for it (https://r.android.com/1690889, https://r.android.com/1690795). All cases #2-#5 are covered by libnativeloader and libnativebridge. Introduce OpenSystemLibrary, and since libnativeloader depends on libnativebridge, put it in the latter to be usable from both. It's only an internal dependency not exposed in the APEX stubs. (Another possibility could be to put it in the generic toolbox lib libartbase, but it's split into -d and non-d variants, and we don't want to split libnative{loader,bridge} that way.) Since libnativeloader_test no longer needs to mock dlopen we can simplify it to a more regular test that loads the tested libs dynamically. This relands https://r.android.com/1673312 without setting ANDROID_ADDITIONAL_PUBLIC_LIBRARIES in run-test-jar, because that made libnativeloader try to preload internal libraries from the system namespace. Test: mmm art Test: atest art/libnativeloader Test: atest CtsJniTestCases Test: Cuttlefish app compat test that uses NDK translation Test: Manual tests with Android Studio TI agents (http://g/art-module-team/7Jy3Tg7LCh0) Test: art/test/testrunner/testrunner.py --target --64 --optimizing in chroot on cuttlefish Bug: 130340935 Change-Id: I7fb32faacc1c214402b58125d8190e97bbbcfad2
2021-05-10Link libvixl statically.Vladimir Marko
Instead of including shared library libvixl.so in the ART Module, link libvixl statically to all binaries that use it, namely libart-compiler.so and libart-disassembler.so which shall increase in size with the additional libvixl code. The ART Module size with default libvixl symbol visibility: - before: 88460730B - after: 86973943B (-1.42MiB) With hidden libvixl symbol visibility: - before: 88337851B - after: 84962808B (-3.22MiB) (This is with master-art where we do not have a boot profile and therefore compile more code in boot image.) The change from default to hidden visibility is done in https://android-review.googlesource.com/1697237 . Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 186902856 Change-Id: I040b0115b94b8690ee7be53e3ded8610d9f13e99
2021-05-09Revert "Add 2040-huge-native-alloc test"Hans Boehm
This reverts commit be0d891ac881f0dc4a2650014433b0354f9d7593. Reason for revert: b/187531176 . This is likely to start failing as a result of backing out a prior change. Change-Id: I5195bbfb0e251e27a4be03cb2d0ebb185fccdc12
2021-05-07Add 2040-huge-native-alloc testHans Boehm
Check that if we allocate more than a gigabyte of native memory and then repeatedly notify the collector of native allocation, we temporarily block the allocation for a reasonable amount of time to allow the GC to catch up. We previously had some coverage of this, but lost it when BigInteger moved away from using native allocation. Test: Ran locally on host; TreeHugger. Bug: 186592536 Change-Id: Id7d120e00630e26bcdf396a80069c9cca7c00804
2021-05-07Revert "Devirtualize to HInvokeStaticOrDirect."Nicolas Geoffray
This reverts commit 5024ddfd125b5c3b59d7f359ae33cf7f0255b048. Bug: 187408838 Reason for revert: b/187408838 Change-Id: If74f5ddbacc73296f66c55762e2a8d1ec2cd1f19