| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On device the boot image files are in the APEX, but on host they're
created by the global code in dexpreopt_config.go and installed by make
in the same location irrespective of the ART APEX in use (release or
debug). That location is now moved to
$(ANDROID_HOST_OUT)/apex/art_boot_images to avoid conflict with the
APEX paths (because the release APEX is moving from
com.android.art.release to com.android.art).
Test: art/test/testrunner/run_build_test_target.py art-test
Test: art/build/apex/runtests.sh
Test: art/tools/buildbot-build.sh {--host,--target}
Test: art/tools/run-gtests.sh
Test: m test-art-host-gtest
Test: art/test/testrunner/testrunner.py --target --64 --optimizing
Test: m build-art-target-golem
Bug: 169639321
Change-Id: I932a15539e170d3c6c78515b22dd4b91ce1c57b4
|
| |
|
|
|
|
|
|
| |
Another step in preparation to move to the LLVM toolchain.
Bug: 147817558
Test: m test-art-host-gtest
Change-Id: Ie5be337165d8f24e04740de0486144fa6a62f063
|
| |
|
|
|
|
|
|
|
| |
It is no longer used.
Test: ./art/test.py -r --optimizing
Bug: 147817558
Bug: 147819342
Change-Id: I913d7b78365d028bfcd9d876238882ebfd410682
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also fix a bug in relocation; even for -Xnorelocate we need
to relocate second and later extension if it's not compiled
against all previous boot image components.
Also clean up InternTable includes.
Test: New tests in image_space_test.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Bug: 152037801
Change-Id: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7
|
| |
|
|
|
|
|
|
| |
Test: aosp_taimen-userdebug boots.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 147346243
Change-Id: If1fc8be94caa69f734438d7a1f4c715addfd8876
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will be used to compute the contexts that should be sent over to
the dex load reporter. See associated changes in libcore &
frameworks/base.
Motivation: At the moment of committing there are two classloader
context encoders- one in ART and one in the package manager. The
duplicate logic is susceptible to divergences. For example at the moment
if a package uses shared libraries and has secondary dex files then the
context encoded for secondary dex files will be incorrect[1]. In order to
eliminate this bug and future possible bugs lets centralize where all
classloader context computation is done.
[1]: The context will be incorrect because it doesn't take into account
the shared libraries that are loaded at runtime.
Test: m test-art-host-gtest-class_loader_context_test
Test: m test-art-host-gtest
Test: ./test/testrunner/testrunner.py --host -b
Test: Introduced a set of tests for the new API(s)
Test: See tests in associated libcore & framework/base commits
Bug: 148494302
Change-Id: Id39293a2e1d3d05194f2864f4febb3e652bce075
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They are essentially the same. We can use boot.art to run gtests
since it is already part of the apex, including the jar files.
This will make it easier to run the tests in atest, since we
will not have to worry about copying core.art to the device.
The long-term goal is to avoid generating core.art altogether.
Couple of tests also require "alternate" image which has no
compiled code. The tests now generate it on-demand in code.
The host gtests still use core.art for now (as there is no
boot.art on host). The plan is to add it in future CLs.
Test: m test-art-host-gtest
Test: ./art/tools/run-gtests.sh
Bug: 147817606
Change-Id: I3a750bb8e60eea0b4a7df1491285feffd5a0161c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dex2oatSwapUseTest.CheckSwapUsage disabled for all targets
was changed to be disabled only for x86. However the test
frequently fails on x86_64 as well.
This CL disables the test for x86_64.
Test: test.py --host --gtest
Test: dex2oat_test
Test: run-gtests.sh
Bug: 29259363
Change-Id: I88a8bf735d2702c914ba952bdcc2431a85dbf761
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These test cases rely on `gcc` (used as reference assembler), which is
being removed from Android (b/147240075). This does not affect other
test cases in `assembler_mips32r6_test` and `assembler_mips64_test`,
as verification against the reference assembler had already been
disabled for speed reasons (b/73903608).
Test: m test-art-host-gtest-assembler_mips32r6_test
Test: m test-art-host-gtest-assembler_mips64_test
Bug: 147240075
Bug: 147336214
Bug: 147346243
Change-Id: I99edd834c5e3ca626b36b6cbfecfb551f01e8640
|
| |
|
|
|
|
|
|
|
|
|
| |
And clean up transaction-related code to keep test code
out of the production binaries.
Test: Add TransactionTest#Constraints to transaction_test.
Test: m test-art-host-gtest
Test: testrunner.py --host
Test: aosp_taimen-userdebug boots.
Change-Id: Iefe5f1cfde95f564069249148f9e7d71564d7a10
|
| |
|
|
|
| |
Test: jit_memory_region_test
Change-Id: I5339071ab1fcb9765a91015e33024d05774ac2b1
|
| |
|
|
|
|
|
|
|
| |
Use the non-Runtime CommonArtTest for dexlayout and dexdiag. Also,
move some lines that should have been put in common_runtime test.h.
Bug: None
Test: build test-art-host-gtest
Change-Id: Ie2f7feb1c62de4994ea2eac368d352634e088e74
|
| |
|
|
|
|
|
| |
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 31113334
Change-Id: I611b3e49d3feed306f6cd35d2b662a1e727e24c6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since app AOT compilation is usually done without conscrypt
on the boot class path, classes defined by app class loader
in conscrypt packages could be resolved differently, i.e.
from conscrypt, at runtime. Reject such definitions during
AOT compilation to ensure correct runtime behavior.
Add a test that when compiling the conscrypt module as an
app, we cannot resolve any class defined in its dex files.
Test: module_exclusion_test
Bug: 122937705
Change-Id: I1fcb4c21937f59772206ee50b688a75053231bc0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add new class loader tag IMC to class loader context spec which
represents InMemoryDexClassLoader. A special case is required to not
attempt to open its dex files as the dex location does not correspond
to a real file path. This is achieved by setting load-attempted variable
to 'true' when encountering IMC whilst parsing a spec. Context with IMC
can still have opened dex files if it was created from an existing class
loader.
Bug: 72131483
Test: m test-art-host-gtest-class_loader_context_text
Change-Id: Ic64065819018a1e56dee0f65405d26beb8fd7bbd
|
| |
|
|
|
|
|
| |
Also clean up proxy_test and reflection_test.
Test: m test-art-host-gtest
Change-Id: I7530855a40d7b9f7214ea7a069508ae1361b2b42
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split libartbase's globals.h into actual globals, and runtime-
dependent globals which should live in runtime.
Blanket-convert all runtime/ inclusions.
In future CLs, the number of global constants should be reduced.
For example, GC types are only relevant to GC/alloc functionality.
Bug: 119869270
Test: mmma art
Change-Id: I2d8cd32e0e7ab4084d2f2e96864b5338a78da94e
|
| |
|
|
|
|
|
|
| |
When only annotating lock requirements, use locks.h.
Bug: 119869270
Test: mmma art
Change-Id: I1608b03254712feff0072ebad012c3af0cc3dda4
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was
Revert^2 "Reduce core image to core-{oj,libart,simple}."
but we're now keeping three additional modules, namely
conscrypt, okhttp and bouncycastle. And we fix the boot
class path used by vogar with the companion change
https://android-review.googlesource.com/840810 .
This reverts commit 00fe35e4021e9a8679eca3ffaede48fd89b56258.
Change-Id: I6137edd91c03c17be50de200267eb9adc971e8fb
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Pixel 3 XL boots.
Test: m test-art-target-gtest
Test: testrunner.py --target --optimizing
Test: art/tools/run-libcore-tests.sh --mode=device --variant=X64
Bug: 119868597
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit ec91d48cade73c54f7a03c5d53d863bc2490976e.
Reason for revert: Breaks libcore tests.
Change-Id: I0ea55f74635332177eadd9a69fb831e7f5dc16c7
|
| |\| |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
And pass the -Xbootclasspath: and -Xbootclasspath-locations:
options to tests. This eliminates a discrepancy between the
image and boot class path (BCP). Next CL shall check the
BCP stored in the primary boot image oat file against the
BCP from the runtime.
Use actual *-hostdex.jar/*-testdex.jar files for compiling
the core.art. Since conscrypt, okhttp and bouncycastle have
the dex files actually stripped from their *-testdex.jar,
they are unsuitable for compilation, adding another reason
to not include them in the core image. For consistency, use
the same jars for core image on host.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Pixel 3 XL boots.
Test: m test-art-target-gtest
Test: testrunner.py --target --optimizing
Bug: 119868597
Change-Id: Iccc152ea0d5b3bd9878aa214cc649762f8f4ea9c
|
| |/
|
|
|
|
|
|
|
|
|
| |
This reverts commit 1717a493a4a0c1c3b69ecfcb58838627b4c75878.
bug: 120036590
bug: 120031686
Reason for revert: Fix code to ensure ownership of dex files.
Change-Id: I99fffb52b73e0a41d779a41605ddf2e9249c02e0
|
| |
|
|
|
|
|
|
|
|
|
| |
This reverts commit a66d69e884b6f9f41a8da31e6d27b498984c7fa3.
bug: 120036590
bug: 120031686
Reason for revert: Fails libcore
Change-Id: I6bec17b1e6c0d767c10b44572ca5f8d73c5fc37e
|
| |
|
|
|
|
|
|
|
| |
Missed this method in my previous set of shared libraries support.
bug: 120036590
bug: 120031686
Test: test.py, app startup with speed-profile
Change-Id: I5c1ec567cfa5452a1f510a3279a9e15125f429ba
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit 966b9333703ecae8cc573a96a5f60a0ea7f507e1.
Bug: 117846779
Bug: 117426394
Test: m test-art-host-gtest
Test: art/test/testrunner/testrunner.py -b --host
Change-Id: I9aa705eaff2100fc2fb60db4ddd6269bd5ca182c
|
| |
|
|
|
|
|
|
| |
Handles runtime.
Bug: 116054210
Test: WITH_TIDY=1 mmma art
Change-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0
|
| |
|
|
|
|
|
|
| |
Disabled until UpdateInternStrings is fixed.
Bug: 117846779
Test: test-art-host-gtest
Change-Id: I78129616ebdba09a695c09967a34395e0d6f4a85
|
| |
|
|
|
|
|
|
| |
Remove 'virtual' specifier on methods already bearing the 'override'
specifier.
Test: mmma art
Change-Id: I114930969a5ca048d88de9ecd18e2c6403593e31
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove all uses of macros 'FINAL' and 'OVERRIDE' and replace them with
'final' and 'override' specifiers. Remove all definitions of these
macros as well, which were located in these files:
- libartbase/base/macros.h
- test/913-heaps/heaps.cc
- test/ti-agent/ti_macros.h
ART is now using C++14; the 'final' and 'override' specifiers have
been introduced in C++11.
Test: mmma art
Change-Id: I256c7758155a71a2940ef2574925a44076feeebf
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a helper for fork+exec of another program and collection of
that process' output. Use the helper in other code.
Clean up some tests. Move away from global #ifdef ARCH and
disable tests with the usual-style macros so that it's easier
to see refactoring issues immediately.
Test: mmma
Test: m test-art-host
Change-Id: Ic450e8a3bb24fc6fe423c0e1e007eb0bb34e22b4
|
| |
|
|
|
|
|
|
|
|
|
| |
This test is failing on the gtest-heap-poisoning configuration
(AddressSanitizer + CMS/RosAlloc + heap-poisoning).
Temporarily disable this test on this configuration to keep
our automated build/testing green while we work on a fix.
Test: ART_HEAP_POISONING=true ART_USE_READ_BARRIER=false SANITIZE_HOST=address ASAN_OPTIONS='detect_leaks=0' make test-art-host-gtest-dex2oat_image_test
Bug: 111061592
Change-Id: If1cb300ed19331a203226031a294c204de767f37
|
| |
|
|
|
|
|
|
| |
Add a test framework that does not start up a Runtime object.
Bug: 78651010
Test: make -j 40 test-art-host
Change-Id: I6c8af384af5fe1289c6cf137635e94934ac3795d
|
| |
|
|
|
|
|
|
|
|
| |
Remove runtime/globals.h and make clients point to the right globals.h
(libartbase/base/globals.h). Also make within-libartbase includes
relative rather than using base/, etc.
Bug: 22322814
Test: make -j 40 checkbuild
Change-Id: I99de63fc851d48946ab401e2369de944419041c7
|
| |
|
|
|
|
|
|
| |
This macro is no longer used anywhere in ART.
Test: mmma art
Bug: 63756964
Change-Id: I0806791ccb5969e3df8fb666b027ba3b840ccc96
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enforce the layering that code in runtime/base should not depend on
runtime by separating it into libartbase. Some of the code in
runtime/base depends on the Runtime class, so it cannot be moved yet.
Also, some of the tests depend on CommonRuntimeTest, which itself needs
to be factored (in a subsequent CL).
Bug: 22322814
Test: make -j 50 checkbuild
make -j 50 test-art-host
Change-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the case where an input dex is already quickened (i.e.
obfuscation), do not attempt to unquicken it. This is done by
switching the quicken info table to the compact offset table (used by
cdex debug infos).
Added test.
Posssible to get a bit of extra savings by deleting the quicken info
num entries field.
Quicken filter size regression average on golem: -0.14%.
Bug: 72608794
Bug: 63756964
Test: test-art-host-gtest-dex2oat_test -j64
Change-Id: I5534a7509b4c718a9b959fa43b82bde857e0b59e
|
| |
|
|
|
|
|
|
|
| |
Remove dependencies on common_runtime_test and related so that
libdexfile's tests can be run independently of the runtime directory.
Bug: 22322814
Test: make -j 50 test-art-host-gtest
Change-Id: If306c1995e87cbfc944e11fb13c927bc287014ad
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds an off by default feature to patchoat whereby it can write
image relocation information (i.e., which offsets are patched up by
patchoat) to .rel files. .rel file writing is enabled by specifying
the name of boot.art.rel file using command-line parameter
--output-image-relocation-file=...
The currently intended use case is to make the Android build process
store these files on the system image next to boot*.art files. At boot
time, in follow-up commits, these .rel files will then be used to
verify that all differences between /system boot*.art and
/data/dalvik-cache boot*.art files can be explained by relocation. The
goal is to mitigate /data/dalvik-cache boot*.art being a persistence
vector.
Test: ./art/test/testrunner/run_build_test_target.py art-gtest-debug-gc
Test: make test-art-host-gtest-patchoat_test
Test: ART_HEAP_POISONING=true make test-art-host-gtest-patchoat_test
Test: make test-art-target-gtest-patchoat_test
Test: ANDROID_ROOT=out/target/product/sailfish/system \
ANDROID_DATA=out/target/product/sailfish/dex_bootjars/system/framework/arm64/ \
out/host/linux-x86/bin/patchoat \
--input-image-location=<full path to>/out/target/product/sailfish/dex_bootjars/system/framework/boot.art \
--output-image-file=out/target/product/sailfish/dex_bootjars/system/framework/arm64/boot.art \
--instruction-set=arm64 --base-offset-delta=0x10000000
produces same boot*.art files as prior to this change
Test: ANDROID_ROOT=out/target/product/sailfish/system \
ANDROID_DATA=out/target/product/sailfish/dex_bootjars/system/framework/arm64/ \
out/host/linux-x86/bin/patchoat \
--input-image-location=<full path to>/out/target/product/sailfish/dex_bootjars/system/framework/boot.art \
--output-image-relocation-file=out/target/product/sailfish/dex_bootjars/system/framework/arm64/boot.art.rel \
--instruction-set=arm64 --base-offset-delta=0x10000000
produces no boot*.art files, but produces expected boot.art.rel files
Bug: 66697305
Change-Id: Ia6b548c61429c61a62706d4021f8e6f22c49082e
|
| |
|
|
|
|
|
|
|
| |
Move all the DexFile related source to a common subdirectory dex/ of
runtime.
Bug: 71361973
Test: make -j 50 test-art-host
Change-Id: I59e984ed660b93e0776556308be3d653722f5223
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Compute dex checksum for compact dex generation. Handle input vdex
by not aborting in oat_writer, instead just avoid generating compact
dex for the input vdex case.
Re-enabled some compact dex tests.
Bug: 63756964
Test: ART_DEFAULT_COMPACT_DEX_LEVEL=fast test-art-host
Change-Id: Ic9b4e4e59e6cd22b66ee2fc0d32c9b4a15f13497
|
| |
|
|
|
|
|
|
| |
Hide the single uncommon VLOG and remove the include. Fix up
transitive includes.
Test: m
Change-Id: I917df597cb62c57040c1fb0e0079df4d95e5a658
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding InstructionSet::kLast shall make it easier to encode
the InstructionSet in fewer bits using BitField<>. However,
introducing `kLast` into the `art` namespace is not a good
idea, so we change the InstructionSet to an enum class.
This also uncovered a case of InstructionSet::kNone being
erroneously used instead of vixl32::Condition::None(), so
it's good to remove `kNone` from the `art` namespace.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test sometimes fails an assertion with Valgrind:
art/dex2oat/dex2oat_test.cc:137: Failure
Value of: odex_file.get() == nullptr
Actual: false
Expected: true
Disable it while we investigate.
Test: art/test/testrunner/run_build_test_target.py -j8 art-gtest-valgrind64
Bug: 63052624
Change-Id: I75fdbad6f78377b3f80cd2447fb20fc5792cbdcf
|
| |
|
|
|
|
|
|
| |
Refactor common functionality. Clean up the code.
Test: m test-art-host-gtest-monitor_test
Test: m test-art-host-gtest-reg_type_test
Change-Id: Ia8b678ab0a84ac76ee162dbc202d3363e9e9c02f
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We previously checked that dex2oat sees only a single class loader. This
CL removes the restriction and enables dex2oat to create and compile with
a full class loader context.
Test: m test-art-host
Bug: 38138251
Change-Id: I03e75a75757995ce8ce3addf0bc0a708e18ac050
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When generating code for ARM, maintain the status of
Thread::Current()->GetIsGcMarking() in register R8,
dubbed MR (Marking Register), and check the value of that
register (instead of loading and checking a read barrier
marking entrypoint) in read barriers.
Test: m test-art-target
Test: m test-art-target with tree built with ART_USE_READ_BARRIER=false
Test: m test-art-host-gtest
Test: ARM device boot test
Bug: 37707231
Change-Id: I30b44254460d0bbb9f1b2adc65eca52ca3de3f53
|