summaryrefslogtreecommitdiff
path: root/build/apex/art_apex_test.py
diff options
context:
space:
mode:
author Roland Levillain <rpl@google.com> 2022-05-20 00:05:07 +0100
committer Martin Stjernholm <mast@google.com> 2022-05-27 17:17:47 +0000
commita79a6eba31fdcecccf939e412f64507102bb4f22 (patch)
tree709fe3af2d4591f93770faf0746c5651b5e143b0 /build/apex/art_apex_test.py
parentc4be8811f860d81cb4a62fbabf5a42467a3c6b93 (diff)
Disable symlink optimizations in the Testing ART APEX.
Because the Testing ART APEX (`com.android.art.testing`) is non-updatable, some of its native shared libraries (implicitly added as dependencies) -- shared with the platform (currently, `libbacktrace`, `libbase`, `libc++`, `libcrypto`, `liblz4`, `liblzma`, `libmeminfo`, `libprocinfo`, `libunwindstack`, and `libziparchive`) -- are eligible to the symlink optimization (b/144533348). As we want this APEX to be self-contained (for testing purposes), we want to package these dependencies in this APEX (instead of symbolic links to their counterparts on the `system` partition, which may not even exist, as in the case of `libbacktrace`). Marking this APEX as "future updatable" disables all symlink optimizations for it. Note that the symlink optimization can currently create broken symlinks), in the case where a dependency is no longer installed in the `system` partition (b/233357459) -- this was recently the case of `libbacktrace`. Also add a check to script `build/apex/art_apex_test.py` to prevent any regression. Test: art/build/apex/runtests.sh Test: atest ArtGtestsTargetChroot Bug: 232790938 Change-Id: Ic2ebb133f597b7f3d4d0486d8ead5d9746dae776
Diffstat (limited to 'build/apex/art_apex_test.py')
-rwxr-xr-xbuild/apex/art_apex_test.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index 43fa01c756..5ead8dab49 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -217,6 +217,8 @@ class Checker:
return False, 'Could not find %s'
if fs_object.is_dir:
return False, '%s is a directory'
+ if fs_object.is_symlink:
+ return False, '%s is a symlink'
return True, ''
def is_dir(self, path):