summaryrefslogtreecommitdiff
path: root/libartbase/base/file_utils_test.cc
AgeCommit message (Collapse)Author
2024-11-11Consolidate the use of some constants. Jiakai Zhang
Bug: 377474232 Test: atest ArtServiceTests Test: atest art_standalone_artd_tests Test: atest art_standalone_odrefresh_tests Test: atest art_standalone_libartbase_tests Test: atest art_standalone_runtime_tests Test: atest art_standalone_dex2oat_tests Change-Id: I66a29ea85176c6c6d676537fe6e4e64152360acc
2024-10-04Search in /system_ext for apex systemserver dexpreopt files Spandan Das
With https://r.android.com/3288083, the dexpreopt files of apex system server jars will be installed in the same pratition as the parent apex. This CL updates `GetSystemOdexFilenameForApex` to look for these files in /system, followed by /system_ext Since file existence is now checked and unit tests do not set up a mock filesystem, an existing unit test has been updated to expect the filepath to be in /system_ext (There is also a long term discussion of moving them to system_other) Test: Verified that "Could not check odex file" does not appear for service-compos (a system_ext apex systemserver jar) Test: m test-art-host-gtest Bug: 369678122 Bug: 349083274 Change-Id: I2c0f3394a1c5ab4900bd96798ba7ea348d9c9b80
2023-04-05Fix "readability-redundant-string-cstr" clang-tidy issues Stefano Cianciulli
Bug: 264654008 Test: m tidy-art Change-Id: Ic852d58f106187791fa3a0d31829654de41bcb2b
2022-01-07Ignore changes to irrelevant APEXes Alan Stokes
When reading the list of APEXes, ignore any APEXes that do not contain any compilable JARs. Changes to such APEXes now do not and should not trigger recompilation. This is helpful for the CompOS use case, since it doesn't even see these APEXes. As part of this, extract existing code to determine APEX name from location and make it resuable. Bug: 210473615 Test: atest art_standalone_libartbase_tests Test: Presubmits Change-Id: I3f64e6228f091cabce33a292058f960787780f62
2021-12-02Respect ART_APEX_DATA for default artifact dir Victor Hsieh
This change does not change the default artifact directory. It just makes odrefresh not define the default directory by itself, but relies on GetArtApexData from libartbase instead (which has the same default). Bug: 206468124 Test: Run odrefresh in the VM. No longer seeing files in the hard-coded directory. Test: atest art_standalone_odrefresh_tests Test: atest art_standalone_libartbase_tests Change-Id: I45bcc145dbccb3b953f359f6c10fa186f251600c
2021-10-15Allow odrefresh to write elsewhere than dalvik-cache Alan Stokes
For CompOS we want to be able to generate artifacts in different subdirectories, e.g. /data/misc/apexdata/com.android.art/pending rather than /data/misc/apexdata/com.android.art/dalvik-cache. Add a command line flag to enable this. Bug: 200020887 Test: atest art_standalone_libartbase_tests Test: manual: odrefresh --dalvik-cache=foo --force-compile Change-Id: Id10c9bcc8cb9f810c48727abc1858f5b16b360d2
2021-09-22Update ART runtime to recognize artifacts on /system for APEX. Jiakai Zhang
Context: go/location-for-compilation-artifacts-of-apex-jars This change enables ART runtime to use the artifacts generated by aosp/1821984. Bug: 194150908 Test: atest art_standalone_libartbase_tests Test: manual - 1. Patch aosp/1828115. 2. Build a system image and flash it into a device. 3. adb root && adb shell grep "/system/framework/oat" /proc/`adb shell pidof system_server`/maps 4. See "/system/framework/oat/x86_64/apex@..." in the output. Change-Id: I74cb21433d63b1f3ed4d096ab0c86f09bced4b97
2021-07-14Trigger on-device AOT compilation for system_server on mainline update. Jiakai Zhang
Before this change, AOT compilation for system_server are triggered only on ART mainline update, and only the system_server components in /system are compiled. After this change, AOT compilation for system_server are triggered on any mainline update that touches $BOOTCLASSPATH or $SYSTEMSERVERCLASSPATH, and the system_server components in mainline modules are also compiled. Test: manual - 1. Modify a mainline module (such as com.android.wifi). 2. Install the modified module on a device and reboot the device. 3. See if system_server components are recompiled (while boot classpath components are not). Test: atest odsign_e2e_tests Test: art/tools/run-gtests.sh -j8 apex/com.android.art/bin/art/x86_64/art_libartbase_tests Test: atest art_odrefresh_tests Bug: 189467174 Change-Id: Icaba5471e9f62fd035f0a24d662ecfaf2e064cab
2021-02-25odrefresh: regenerate artifacts after ART APEX update Orion Hodson
Replaces compile_bcp.sh to check and compile boot class path extensions and system server jars. Enable ART to load those artifacts when present in the ART APEX data directory. Bug: 160683548 Test: art_libartbase_tests Test: adb root && adb odrefresh {--force-check,--force-compile} Test: adb install com.android.art && adb reboot && adb root && \ adb shell odrefresh {--check,--compile} && adb reboot && \ adb shell cat /proc/<zygote>/maps | grep apexdata Change-Id: I81bf520d38f9dc0109c91f192bc6e728099049fd
2021-02-17libartbase: add utilities for on-device signing files Orion Hodson
Bug: 160683548 Test: art_file_utils_test.cc Change-Id: I17967eebda0a565c033b095fb1deb6ceeaa3760d
2020-07-15Fixes for gtests in eng-prod David Srbecky
Bug: 147817558 Test: art/art-host-gtest on forrest Change-Id: I0ecfbc81fe6998d4c8c69ce6fbeb35bdd5908b55
2019-09-24Various renames following the name change from "Runtime APEX" to "ART APEX". Martin Stjernholm
In particular ANDROID_RUNTIME_ROOT is now ANDROID_ART_ROOT. Test: Build & boot Test: art/tools/run-gtests.sh in chroot Test: art/test/testrunner/testrunner.py --target --64 in chroot Test: art/tools/run-libcore-tests.sh --mode=device --variant=X64 in chroot Test: art/tools/run-jdwp-tests.sh --mode=device --variant=X64 in chroot Test: m test-art-host-gtest Test: art/test/testrunner/testrunner.py --host --64 Test: art/tools/run-jdwp-tests.sh --mode=host Bug: 135753770 Change-Id: Ia74da964e54cf396d66e9e12ea56da4e9483662a
2019-08-08Remove icu .dat file from Runtime module Victor Chang
Bug: 137009149 Bug: 130295968 Test: device boots Test: m out/target/common/obj/JAVA_LIBRARIES/ahat-test-dump_intermediates/test-dump.hprof Test: art/build/apex/runtests.sh fails due to bug 138103882 Test: art/tools/buildbot-build.sh Test: m test-art-host-gtest Change-Id: I0501fd6dd02dac3cf9780f5f1c0103e4b0475e1f
2019-04-12Adjust the dladdr-based introspection logic used in art::GetAndroidRootSafe. Roland Levillain
This logic originally assumed that the libartbase library linked into the current binary was always located in a directory within the Android Root. This is no longer true on target since libartbase moved to the Runtime APEX; therefore we now only use that logic on host in art::GetAndroidRootSafe. Eventually we should be able to use this logic on target to find the Android Runtime Root (in art::GetAndroidRuntimeRootSafe), as libartbase is installed in the Runtime APEX. However, this is not always true at the moment, as ART gtests still install another copy of libartbase in /system/lib(64) (the Android Root) on target. Also improve the documentation of methods `art::GetAndroidRoot(Safe)` and `art::GetAndroidRuntimeRoot(Safe)`. Test: m test-art-host-gtest-file_utils_test Bug: 121117762 Bug: 129534335 Change-Id: I835207110dae0a550c06ac98ed4915241cc61c6f
2019-04-08Add art::GetAndroidRuntimeRootSafe and art::GetAndroidRuntimeRoot. Roland Levillain
Test: m test-art-host-gtest-file_utils_test Change-Id: Ib1f188e448b46891ae6fea713a5e92f5e160f060
2018-11-06Enable building art and tests with linux_bionic Alex Light
A linux_bionic built runtime can be created by modifying the $OUT_DIR/soong/soong.config json file to add a '"Host_bionic": true' entry and then running the following command: % m --skip-make $OUT_DIR/soong/host/linux_bionic-x86/<target-file> A script 'tools/build_linux_bionic_tests.sh' was also added that will build linux-bionic versions of host-test related files. Also modify tests so they can be run. Currently all run-tests pass when run on a linux_bionic host build. All gtests pass except for the following 9 tests: ArmVIXLAssemblerTest.VixlJniHelpers ArmVIXLAssemblerTest.VixlLoadFromOffset ArmVIXLAssemblerTest.VixlStoreToOffset DwarfTest.DebugFrame DwarfTest.DebugFrame64 DwarfTest.x86_64_RegisterMapping DwarfTest.DebugLine DwarfTest.DebugLineSpecialOpcodes DwarfTest.DebugInfo Since these tests must be run manually without the standard (makefile-based) testrunner it's not clear yet whether these failures are important or what must be done to fix them. Several tests had dependencies on the actual location of the libart library that needed to be fixed, these tests might as well. Test: ./tools/build_linux_bionic_tests.sh Test: ./test/testrunner/testrunner.py --no-build --host --64 --run-test-option=--bionic Test: find $OUT_DIR/soong/host/linux_bionic-x86/nativetest64 -mindepth 2 -type f | while read abc; do $abc; done | tee all-tests.txt Test: tail -n +0 -f all-tests.txt | grep FAILED Bug: 31559095 Bug: 118778408 Change-Id: I5fae4e54371e7410678619f18fcb54a3bd34e9b0
2018-10-17ART: Refactor for bugprone-argument-comment Andreas Gampe
Handles libartbase, libdexfile and libprofile. Bug: 116054210 Test: WITH_TIDY=1 mmma art Change-Id: Ibeee2446e2978af45402d9ca47c75ffc438de316
2018-06-19ART: Fix clang-analyzer leak/memory warnings Andreas Gampe
Fix warnings, or make code more obvious to the analyzer. (The analysis itself is too expensive to force it on for all local builds.) Test: mmma art (with clang-analyzer-cplusplus.NewDeleteLeaks) Change-Id: Id3687eb6f3af3a0b4f2df1422bc6d83650517623
2018-05-25Move more test code to CommonArtTest David Sehr
Complete migration of libdexfile and libartbase to CommonArtTest. (libprofile and clients remain on CommonRuntimeTest because of required refactorings.) Bug: 78651010 Bug: 72216369 Test: make -j 40 test-art-host-gtest make -j 2 test-art-target-gtest Change-Id: Id10d8fc9002e0ad9451730627dfd848f5761c90c
2018-05-11Prepare to move ArtDexFileLoader to libdexfile David Sehr
Move file_utils and friends to libartbase so that ArtDexFileLoader can be moved to libdexfile. This will clean up duplication and complexity with zip file handling. Bug: 78652467 Test: make -j 40 test-art-host-gtest Change-Id: Ia5eac1f93caf3fa918b4b48803cbfd842035e29e