Age | Commit message (Collapse) | Author |
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
This option prevents the runtime from loading AOT artifacts installed
in /data/misc/apexdata/com.android.art.
(cherry picked from commit 971068dcaf5955634679dbfaf7b562ed52aff772)
Bug: 192049377
Test: manually adding option and running odsign_e2e_tests
Test: adding option and looking at proc/maps for system_server and zygote
Merged-In: I56c7ce55b64de72faf39a06238089fe4b6b84b88
Change-Id: Iacce98009c51b936149435cfb70a3f744a122031
|
|
Isolated compilation saves memory but takes much longer,
so enable it only if requested.
Test: adb install
Bug: 190277710
Merged-In: Ia1bffb37ff25f80f7b6173fd42e6bd6ffff68e45
Change-Id: Ia1bffb37ff25f80f7b6173fd42e6bd6ffff68e45
(cherry picked from commit c7ec2ca018f951b2bc65e99b27eab991da200097)
|
|
Make the method be part of the official palette API.
Bug: 186016399
Bug: 185778652
Test: m
Change-Id: I3dc9e879c647fd63f5826091813613fd97e25c0d
Merged-In: I3dc9e879c647fd63f5826091813613fd97e25c0d
(cherry picked from commit 0ebaa9865b0d04f1b7b0ef13b5ed7e271b0ab588)
|
|
Change the compiler filter to verify if we need to compile
speed-profile but we don't get a profile, or the profile is empty.
This will improve the clarity and the precision of the telemetry
data which usually expects speed-profile to outperform verify.
Test: gtest
Bug: 188655918
Change-Id: I215552e0001d56df0e0d676721f0a741ef2573be
(cherry picked from commit 028c7efaf7321a1e253fb4d9dcc5d85e8a9e6d68)
|
|
No longer use `quick_exit(3)` in ART, as it does not play well with
Clang's code coverage instrumentation (see b/187935521 and
b/186576313). Replace all its uses with a new routine,
`art::FastExit`, calling either `exit(3)` when ART is built with
Clang's code coverage instrumentation (in order to dump coverage
profiles when the program terminates) or `_exit(2)` otherwise (to exit
quickly).
Function `art::FastExit` is implemented as part of the
`art_libartbase_headers` header library, so that it can be used easily
in `dalvikvm`.
(cherry picked from commit bdf1737bd17132525bcfdc778663123b61e97fa3)
Test: mmma art
Test: ART tests
Bug: 186576313
Bug: 187935521
Change-Id: I7b4f86f6f0e7b12814684ecea73a2ed0ef994395
Merged-In: I7b4f86f6f0e7b12814684ecea73a2ed0ef994395
|
|
Also avoid crash in GraphChecker for bad instructions that
throw into catch block but do not have an environment. And
DCHECK() that java_lang_Double_doubleToRawLongBits and
java_lang_Float_floatToRawIntBits are intrinsics.
(cherry picked from commit d42902692d1fbb101a3c60ba314df69005da9c83)
Test: New test Dex2oatTest.MissingBootImageTest.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 188684102
Merged-In: I13ec2ee8a7968c0a5652aa67ec6291d07a986c80
Change-Id: I531b87c25e937f8c5f7d471cb7878e086e9662b5
|
|
9b733f884a am: f684ebdddc
Original change: https://android-review.googlesource.com/c/platform/art/+/1701125
Change-Id: Iedfe0f97c67633f21ab099d11de11a1e1763eaa6
|
|
It simplifies the encoding / decoding logic.
Test: 663-odd-dex-size
Bug: 186405713
Change-Id: I26bcf2b6cfa16548a520a501e6e1b38c238eb1df
|
|
Original change: https://android-review.googlesource.com/c/platform/art/+/1697446
Change-Id: Ib56a4c26d46db5798a3451e4e9fe3353a60f944e
|
|
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
|
|
a28c827fdb am: 9391da1069 am: 1c6cb7b23a
Original change: https://android-review.googlesource.com/c/platform/art/+/1692431
Change-Id: I0f3bde81380ea4eafd11026c19d20cf685ef2306
|
|
Replace every occurrence of `_exit` (for cases other than pure error
handling) with `quick_exit`, in order to allow functions registered
with `at_quick_exit` to be called before exiting.
In particular, this change will allow LLVM's code coverage profile
dumping routine to be called before exiting ART processes.
Test: mmma art
Test: ART tests
Bug: 186576313
Change-Id: Ia9b0dbb471e2a26600c8bd23f7567931d050fc9d
|
|
5484914da5 am: 750ad41942
Original change: https://android-review.googlesource.com/c/platform/art/+/1690899
Change-Id: Ie61a6d8e0b2065f7f17df2fe9b83e80ee0607c17
|
|
Ensure we can generate mini-debug-info if it is enabled by default.
The tests don't explicitly generate the info on background thread.
Test: test.py -g
Change-Id: If3cf9a067ce683f728d553394e1407beeadae670
|
|
d17071c1a0
Original change: https://android-review.googlesource.com/c/platform/art/+/1688225
Change-Id: Idce67c864135155bcf5a675fa3081686a16fa066
|
|
Use the versions to know whether we need to recompile.
Test: oat_file_assistant_test
Bug: 182465342
Change-Id: Ic656ed4465d35d325c1823d531f7c4c5bc74598d
|
|
fbded46027
Original change: https://android-review.googlesource.com/c/platform/art/+/1688586
Change-Id: If1aabb8486a8803a0736b809aba746f9fbd5907d
|
|
Unused and obsolete quickened byte-code.
Bug: 170086509
Test: test.py -b --host --64
Change-Id: I1e917c189da7bf64418412522676dc6b081d5c0b
|
|
5e48d4f823 am: 880cbc4400
Original change: https://android-review.googlesource.com/c/platform/art/+/1685633
Change-Id: Id59495fa6abbc4e1f9fb74c9bd76278a4a4eacf9
|
|
The profile loading is currently permissive, so this
does not really matter but we intend to make it more
strict soon.
Also clean up ScratchFile to avoid dex2oat_image_test
error logs related to ScratchFile destruction.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 148067697
Change-Id: I34526ddb0389444d54b9754afbedeb671c7b05a8
|
|
Original change: https://android-review.googlesource.com/c/platform/art/+/1683151
Change-Id: I6d73eed6ab50d6608b972653b3a880ce8fc5320b
|
|
And use it for checks when reading oat file data.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 148412019
Change-Id: I3a2433f94397107a2ce3c198d22e660871c505a8
|
|
Original change: https://android-review.googlesource.com/c/platform/art/+/1679611
Change-Id: I9b60fd3072a22afb17087aac1fb5c514af1dc3ee
|
|
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 148412019
Change-Id: I0709a467c92f38e6886d3936b20c2c7869429956
|
|
am: caec4871c9
Original change: https://android-review.googlesource.com/c/platform/art/+/1677234
Change-Id: Ie40a79ac509034a11a7923d04482b4a85bbdc949
|
|
This reverts commit 640c448bad41c00599f8f8fb056eba679edc891e.
Reason for revert: CL is not the culprit
Change-Id: Ia9a404980601998ade118b0e14008e2bc6317d76
|
|
am: 860c07ea84
Original change: https://android-review.googlesource.com/c/platform/art/+/1677231
Change-Id: I43eaccc4f6e1739265039f5b1d1887b2f3c1f7a5
|
|
Original change: https://android-review.googlesource.com/c/platform/art/+/1675580
Change-Id: I4434ff0a6b4c0a2702ba1b974daa6cfb507ab2ec
|
|
This reverts commit c005ada78df5edebac74739b2c344e1a2a3efcba.
Bug: 112676029
Reason for revert: Fails on asan
Change-Id: Id21b84f1f078d6b1c701559e0cbbd3704d269dfb
|
|
Use TestDexFileBuilder and remove FakeDex. Add a helper
class for shared code between ProfileCompilationInfoTest
and ProfileAssistantTest.
Test: m test-art-host-gtest
Test: run-gtests.sh
Bug: 148067697
Change-Id: I0bf5d3fb7a456dcd717bce694d7f832a654fcccb
|
|
Original change: https://android-review.googlesource.com/c/platform/art/+/1673309
Change-Id: I68efa4e7a1d0a822f4b3ba4de27f117a8ecb63c6
|
|
The table format has been stable for many releases now, so "promote" it
to .vdex, which remains post-OTA.
Test: test.py
Bug: 112676029
Change-Id: Ie1bbb24b4ab9c7864ae7e69e97db5ee5d1fc9ea1
|
|
am: d4e21d1c7f
Original change: https://android-review.googlesource.com/c/platform/art/+/1659540
Change-Id: Ia37029a256cb2fc8db6463c55d66c0cab89d3b5b
|
|
3ddcecd63b
Original change: https://android-review.googlesource.com/c/platform/art/+/1673205
Change-Id: I44981917b87ee5e0688d2189568d9cb6a8d5ada3
|
|
When reproducing compilation failures on the host sometimes the
automatic core-oj noinline will prevent the issue from reproducing.
Add a new --force-allow-oj-inlines to disable this behavior.
Test: ./art/tools/compile-jar.py --profile-file bad_compile.prof --arch arm64 ~/no.nrk.mobil.radio_10922_base_split.apk --compiler-filter=speed-profile --dump-stats -j1 --force-allow-oj-inlines
Change-Id: I76204bfb061635819d55c2459cfea4e4cfebce79
|
|
We have always created them for a while now.
Test: test.py
Change-Id: I6c9293d90c4b8449f7bd9b26ff8f4666c8ceca0a
|
|
bb08a3609c am: 4edd8708c1
Original change: https://android-review.googlesource.com/c/platform/art/+/1664621
Change-Id: I4c90293a29f67656deab901d72adeccb9be7cd80
|
|
If the checksums from the vdex files that comes from the .dm archive
does not match the input dex files, the compilation will fail.
Test: gtest
Bug: 184291791
Change-Id: I10db75b4381946d7f2b695ff317d0b4e897a32b0
|
|
Test: adb logcat -b events
Bug: 178055795
Change-Id: Ifeacba4cccf048e437b1906cf1592b8c2608cce4
|
|
Previously `ClassLinker::EnsureInitialized()` could have
returned with a pending exception even when initializing
fields and parents was not allowed and the CompilerDriver
did not expect it, leading to a crash. Change the behavior
to consistently suppress exceptions when initializing
fields and/or parents is not allowed.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 184094466
Change-Id: I6a8af8c1da792c946f8f52ed4513ab1f0ccf2c9f
|
|
And update VmClassLoader.findLoadedClass implementation in
UnstartedRuntime which has erroneously diverged since
https://android-review.googlesource.com/145075 .
Also prevent transactional interpreter from transfering
control to a catch handler for aborted transactions.
Also clean up Transaction::kAbortExceptionDescriptor naming
and some unused parameters.
Test: TransactionTest.CatchClassForNameAbortClass
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: Ibfc544283f5434efbaab238d11a6152ed2578050
|
|
This is now an unsupported context.
Test: class_loader_context
Bug: 132357300
Change-Id: I21bc6e3529944a57379845e90c7f49759db30d40
|
|
- Remove class loader context and boot classpath checksum sections.
Those are not needed now that VerifierDeps don't depend on them.
- Remove remaining quickening encoding.
- Introduce sections in a vdex file, which can be extended without
requiring a version change.
Test: test.py
Bug: 160294863
Change-Id: I4e3e25f34d242dc4de37f30ba9d78bcffbc1436d
|
|
And assert that class initialization in CompilerDriver
does not leave any local references alive.
Test: m test-art-host-gtest
Change-Id: Icd6a141da340d21d0103308a9e056009eb86f485
|
|
This will simplify creating and populating VerifierDeps at runtime,
which is needed for doing and saving background verifcation of secondary
dex files.
Test: test.py
Bug: 158463186
Change-Id: Ic17913ebd173700e866ba9309bf6ae131fcbc423
|