summaryrefslogtreecommitdiff
path: root/runtime/common_runtime_test.h
Commit message (Collapse)AuthorAgeFilesLines
* dex2oat: Expect boot image profiles for boot image.Vladimir Marko2021-04-261-1/+9
| | | | | | | | | | | | | | 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
* Update host tests to point to a dedicated boot image directory.Martin Stjernholm2020-10-201-1/+0
| | | | | | | | | | | | | | | | | | | | 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
* Refactor arm assembly tests.David Srbecky2020-07-091-2/+0
| | | | | | | | Another step in preparation to move to the LLVM toolchain. Bug: 147817558 Test: m test-art-host-gtest Change-Id: Ie5be337165d8f24e04740de0486144fa6a62f063
* Remove core.art imageDavid Srbecky2020-05-301-1/+1
| | | | | | | | | It is no longer used. Test: ./art/test.py -r --optimizing Bug: 147817558 Bug: 147819342 Change-Id: I913d7b78365d028bfcd9d876238882ebfd410682
* Deduplicate interned image strings.Vladimir Marko2020-03-311-1/+17
| | | | | | | | | | | | | | | 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
* Remove MIPS support from runtime/.Vladimir Marko2020-02-141-12/+0
| | | | | | | | Test: aosp_taimen-userdebug boots. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 147346243 Change-Id: If1fc8be94caa69f734438d7a1f4c715addfd8876
* Introduce BaseDexClassLoader.computeClassLoaderContextsNativeDan Zimmerman2020-02-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Device gtests: Use boot.art instead of core.art.David Srbecky2020-02-071-0/+18
| | | | | | | | | | | | | | | | | | | | | 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
* Disable Dex2oatSwapUseTest.CheckSwapUsage for x86_64Evgeny Astigeevich2020-01-291-0/+6
| | | | | | | | | | | | | | | 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
* Disable test cases `AssemblerMIPS{32r6,64}Test.Toolchain` in ART gtest.Roland Levillain2020-01-081-0/+6
| | | | | | | | | | | | | | | 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
* Update Transaction for boot image extension.Vladimir Marko2019-07-291-0/+10
| | | | | | | | | | | 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
* Disable jit_memory_region_test tests on buggy kernels.Nicolas Geoffray2019-07-081-0/+6
| | | | | Test: jit_memory_region_test Change-Id: I5339071ab1fcb9765a91015e33024d05774ac2b1
* Use CommonArtTest for dexlayout, dexdiagDavid Sehr2019-04-081-0/+16
| | | | | | | | | 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
* ObjPtr<>-ify mirror::ObjectArray.Vladimir Marko2019-03-271-6/+0
| | | | | | | Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 31113334 Change-Id: I611b3e49d3feed306f6cd35d2b662a1e727e24c6
* Hide conscrypt package classes for app AOT compilation.Vladimir Marko2019-03-251-2/+2
| | | | | | | | | | | | | | | 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
* Support InMemoryDexClassLoader in ClassLoaderContextDavid Brazdil2019-03-221-0/+1
| | | | | | | | | | | | | | 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
* Make jni_internal_test a CommonRuntimeTest.Vladimir Marko2019-02-201-0/+3
| | | | | | | Also clean up proxy_test and reflection_test. Test: m test-art-host-gtest Change-Id: I7530855a40d7b9f7214ea7a069508ae1361b2b42
* ART: Introduce runtime_globalsAndreas Gampe2019-01-091-1/+1
| | | | | | | | | | | | | | 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
* ART: Move to using locks.h instead of mutex.hAndreas Gampe2018-12-061-1/+1
| | | | | | | | When only annotating lock requirements, use locks.h. Bug: 119869270 Test: mmma art Change-Id: I1608b03254712feff0072ebad012c3af0cc3dda4
* Reduce core image to 6 modules.Vladimir Marko2018-12-041-0/+3
| | | | | | | | | | | | | | | | | | | | 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
* Merge "Revert "Reduce core image to core-{oj,libart,simple}.""Vladimir Marko2018-12-031-3/+0
|\
| * Revert "Reduce core image to core-{oj,libart,simple}."Vladimir Marko2018-12-031-3/+0
| | | | | | | | | | | | | | | | This reverts commit ec91d48cade73c54f7a03c5d53d863bc2490976e. Reason for revert: Breaks libcore tests. Change-Id: I0ea55f74635332177eadd9a69fb831e7f5dc16c7
* | Merge "Reduce core image to core-{oj,libart,simple}."Vladimir Marko2018-12-031-0/+3
|\|
| * Reduce core image to core-{oj,libart,simple}.Vladimir Marko2018-11-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Revert^2 "Support shared libraries in CreateContextFromClassLoader."Nicolas Geoffray2018-11-301-2/+5
|/ | | | | | | | | | | This reverts commit 1717a493a4a0c1c3b69ecfcb58838627b4c75878. bug: 120036590 bug: 120031686 Reason for revert: Fix code to ensure ownership of dex files. Change-Id: I99fffb52b73e0a41d779a41605ddf2e9249c02e0
* Revert "Support shared libraries in CreateContextFromClassLoader."Nicolas Geoffray2018-11-301-5/+2
| | | | | | | | | | | This reverts commit a66d69e884b6f9f41a8da31e6d27b498984c7fa3. bug: 120036590 bug: 120031686 Reason for revert: Fails libcore Change-Id: I6bec17b1e6c0d767c10b44572ca5f8d73c5fc37e
* Support shared libraries in CreateContextFromClassLoader.Nicolas Geoffray2018-11-291-2/+5
| | | | | | | | | 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
* Revert "Disable kAppImageMayContainStrings"Chris Wailes2018-10-241-6/+0
| | | | | | | | | | 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
* ART: Refactor for bugprone-argument-commentAndreas Gampe2018-10-231-2/+2
| | | | | | | | Handles runtime. Bug: 116054210 Test: WITH_TIDY=1 mmma art Change-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0
* Disable kAppImageMayContainStringsMathieu Chartier2018-10-161-0/+6
| | | | | | | | Disabled until UpdateInternStrings is fixed. Bug: 117846779 Test: test-art-host-gtest Change-Id: I78129616ebdba09a695c09967a34395e0d6f4a85
* Remove superfluous 'virtual' specifiers in ART.Roland Levillain2018-08-281-2/+2
| | | | | | | | Remove 'virtual' specifier on methods already bearing the 'override' specifier. Test: mmma art Change-Id: I114930969a5ca048d88de9ecd18e2c6403593e31
* Use 'final' and 'override' specifiers directly in ART.Roland Levillain2018-08-281-2/+2
| | | | | | | | | | | | | | | 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
* ART: Clean up test exec codeAndreas Gampe2018-07-131-0/+18
| | | | | | | | | | | | | 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
* Disable Dex2oatImageTest.TestModesAndFilters for gtest-heap-poisoning.Roland Levillain2018-07-031-0/+7
| | | | | | | | | | | 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 CommonArtTestDavid Sehr2018-05-011-119/+2
| | | | | | | | Add a test framework that does not start up a Runtime object. Bug: 78651010 Test: make -j 40 test-art-host Change-Id: I6c8af384af5fe1289c6cf137635e94934ac3795d
* Clean up include pathsDavid Sehr2018-04-261-1/+1
| | | | | | | | | | 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
* Remove macro definition TEST_DISABLED_FOR_COMPACT_DEX.Roland Levillain2018-03-121-6/+0
| | | | | | | | This macro is no longer used anywhere in ART. Test: mmma art Bug: 63756964 Change-Id: I0806791ccb5969e3df8fb666b027ba3b840ccc96
* Move most of runtime/base to libartbase/baseDavid Sehr2018-03-051-1/+1
| | | | | | | | | | | | | | 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
* Fix unquickening logic for quickened input dexesMathieu Chartier2018-02-221-0/+28
| | | | | | | | | | | | | | | | | | | 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
* Make libdexfile tests independent of runtimeDavid Sehr2018-02-061-2/+0
| | | | | | | | | 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
* Reland: Enable patchoat to write image relocation filesAlex Klyubin2018-01-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Create dex subdirectoryDavid Sehr2018-01-051-1/+1
| | | | | | | | | 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
* Fix cdex bugs to enable ART_DEFAULT_COMPACT_DEX_LEVEL=fast tests passingMathieu Chartier2017-12-151-0/+6
| | | | | | | | | | | | 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
* ART: Remove base/logging from heap-inl.hAndreas Gampe2017-12-071-0/+5
| | | | | | | | Hide the single uncommon VLOG and remove the include. Fix up transitive includes. Test: m Change-Id: I917df597cb62c57040c1fb0e0079df4d95e5a658
* ART: Make InstructionSet an enum class and add kLast.Vladimir Marko2017-11-021-2/+2
| | | | | | | | | | | | | | 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
* Disable dex2oat test TestWatchdogTrigger with Valgrind.Roland Levillain2017-08-141-0/+6
| | | | | | | | | | | | | | | 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
* ART: Move FillHeap to CommonRuntimeTestAndreas Gampe2017-07-211-0/+10
| | | | | | | | 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
* Merge "Allow dex2oat to create a full class loader context"Treehugger Robot2017-07-181-2/+15
|\
| * Allow dex2oat to create a full class loader contextCalin Juravle2017-07-181-2/+15
| | | | | | | | | | | | | | | | | | | | 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
* | Introduce a Marking Register in ARM code generation.Roland Levillain2017-07-131-0/+6
|/ | | | | | | | | | | | | | | 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