Commit Graph

2576 Commits

Author SHA1 Message Date
Martin Stjernholm
c5bc333cf5 Merge "Allow dependencies from platform variants to APEX modules." am: f8c9713fb8 am: 3311c129d4 am: 2e9cf54e07
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1654679

Change-Id: I5a00f0bdcd9cb53e6e8c1f0b7bf21eab7fab3dbf
2021-04-01 09:05:44 +00:00
Treehugger Robot
7349652925 Merge ""current" is implicitly added to stubs.versions" am: 25c47a43a5 am: 4ce23de995 am: cab9b4b25c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1641782

Change-Id: Ibc0b6e3fdd98b59900f9998f5c11c417d5d4a20a
2021-04-01 06:57:10 +00:00
Martin Stjernholm
f8c9713fb8 Merge "Allow dependencies from platform variants to APEX modules." 2021-04-01 06:53:13 +00:00
Treehugger Robot
25c47a43a5 Merge ""current" is implicitly added to stubs.versions" 2021-04-01 04:53:55 +00:00
Jiyong Park
d4a3a137ed "current" is implicitly added to stubs.versions
So far, when a library `libfoo` has `stubs.versions: ["10", "11"]`, then
`shared_libs: ["libfoo"]` is linked to the version 11 of the stub.

This requires the author of `libfoo` to manually update the property
whenever a new version is introduced. Otherwise, clients are not able
to use the newly added APIs because the latest stub is for an old
version.

This change eliminates the need for manual updating. "current" version
is always implicitly added to `stubs.versions`. It is added even when
nothing is set on the property, if `stubs.symbol_file` is set. i.e.

```
cc_library {
    name: "libfoo",
    stubs: {
        symbol_file: "libfoo.map.txt",
	// no versions: [...] needed
    },
}

cc_library {
    name: "a_client",
    shared_libs: ["libfoo"],
    apex_available: ["myapex"],
    min_sdk_version: "29",
}

apex {
    name: "myapex",
    native_shared_libraries: ["a_client"],
    min_sdk_version: "29",
}
```

`a_client` links to the "current" stub of `libfoo` that has all symbols
shown in the map file.

Note that, above doesn't mean that the client has unlimited access to
APIs that are introduced even after the min_sdk_version of the client
(29 in this example). The use of such APIs still has to be guarded with
`__builtin_available` check.

Bug: N/A
Test: m
Change-Id: I70bb1600c18e74d36c6b24c3569d2149f02aaf96
2021-04-01 09:58:53 +09:00
Paul Duffin
c0e22ebaef Merge "Convert testDexpreoptWithApexes to use test fixtures" am: bcaf0fcb55 am: 7eee85fcae am: 0d9785622c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1658076

Change-Id: If889ada1f5b1b572c04a4166c7c17332cf1f894c
2021-04-01 00:10:51 +00:00
Paul Duffin
c31fe63706 Merge "Convert TestApexPermittedPackagesRules to use test fixtures" am: b00c7ed2e8 am: 6f3f57cbd8 am: 7904ca6ceb
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1658075

Change-Id: Ic911814f474cf7ec8d249af4b251bd4a82f9a6f6
2021-04-01 00:10:42 +00:00
Jaewoong Jung
6d15d63556 Add min_sdk_version to java_import.
Fixes: 183695497
Test: apex_test.go
Change-Id: Ie255f74d40432f4bdd0092d618705a7d17235e58
2021-03-31 16:50:42 -07:00
Paul Duffin
5560712323 Convert testDexpreoptWithApexes to use test fixtures
Bug: 181070625
Test: m nothing
Change-Id: Id40064c539c1d4eeb39396f0881a97529f3a3452
2021-03-31 16:16:20 +01:00
Paul Duffin
45338f05e3 Convert TestApexPermittedPackagesRules to use test fixtures
Adds PrepareForTestWithNeverallowRules to make it easy to test
neverallow rules. Avoid exporting any unnecessary neverallow related
methods from the android package.

Bug: 181070625
Test: m nothing
Change-Id: Idfc6955cb23f1a4d1790be7879388154b03f3980
2021-03-31 16:16:18 +01:00
Paul Duffin
4b2ff1652c Merge "Rename OptionalPath.RelativeToPath -> RelativeToTop" am: 32eccae1ac am: 4ac8cd6582 am: d188fa7de2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1658072

Change-Id: I1ad2710e2439861542f01a976b185bb4084b02dd
2021-03-31 10:45:46 +00:00
Paul Duffin
49e0d8b637 Merge "Remove extraneous calls to TestingBuildParams.RelativeToTop()" am: dff50dffbc am: c9ec211cca am: 31638bfb46
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1655209

Change-Id: I8cac59260ab0d3f5c4ffe4cb6629c76105cf50ca
2021-03-31 00:21:41 +00:00
Paul Duffin
b4c0f11cb7 Automatically call TestingBuildParams.RelativeToTop() am: e8366da1f6 am: fe53b7a2df am: 53325362e9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1655208

Change-Id: I2260f4020c4631310626f77ec7480f106e4c7c3b
2021-03-30 23:14:01 +00:00
Paul Duffin
afdd4061ee Rename OptionalPath.RelativeToPath -> RelativeToTop
Bug: 183650682
Test: m nothing
Change-Id: I95239c2273e715e8c4c15a4a02967e01f6913234
2021-03-30 20:06:22 +01:00
Paul Duffin
a71a67a4f5 Remove extraneous calls to TestingBuildParams.RelativeToTop()
Deprecated the method to try and prevent any other uses being added.

Bug: 183650682
Test: m nothing
Change-Id: Ia6f43851e5a00c9d96af780e3bd21e03175e1a2f
2021-03-30 20:03:22 +01:00
Paul Duffin
e8366da1f6 Automatically call TestingBuildParams.RelativeToTop()
Fixes the few tests that break due to this and which cannot easily be
separated into their own changes.

Bug: 183650682
Test: m nothing
Change-Id: Ia2f31213a1f114a78e66a81d89279ecde9f4c465
2021-03-30 19:35:35 +01:00
Paul Duffin
b19122a9f6 Merge "Add the transitive dependencies of boot_image to apex" am: 58367574a5 am: 023bd16632 am: 9b7d7f45f0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652623

Change-Id: Id3cc4bc9ecaaa4ae789e7d79ebce575f9760bdda
2021-03-30 18:32:11 +00:00
Paul Duffin
3c26d90d66 Merge "Stop JavaSdkLibrary_... tests requiring absolute path" am: da0470d8c7 am: 9542ba405f am: c9e51d0f74
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1654683

Change-Id: I5c5fc95ac48eb887223c5ebee85330b72a261348
2021-03-30 18:32:05 +00:00
Paul Duffin
03802c1edc Merge "Remove buildDir from apex package" am: a33da07343 am: 4ecf1ee4c5 am: d26d5bc45b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1654682

Change-Id: Ia7c2f88892ac2fad12b83fb641655fbee571e404
2021-03-30 18:32:00 +00:00
Paul Duffin
a230ea4687 Merge "Add contents property to boot_image (and prebuilt_boot_image)" am: 8d3c44a986 am: b8f0b4e1bf am: af5736ea92
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652622

Change-Id: Idb92c709d8bf17e3e00905ea54b9ee2bc901bbac
2021-03-30 18:31:51 +00:00
Paul Duffin
58367574a5 Merge "Add the transitive dependencies of boot_image to apex" 2021-03-30 16:42:07 +00:00
Paul Duffin
da0470d8c7 Merge "Stop JavaSdkLibrary_... tests requiring absolute path" 2021-03-30 16:35:23 +00:00
Paul Duffin
a33da07343 Merge "Remove buildDir from apex package" 2021-03-30 16:30:10 +00:00
Paul Duffin
8d3c44a986 Merge "Add contents property to boot_image (and prebuilt_boot_image)" 2021-03-30 16:26:20 +00:00
Martin Stjernholm
2f1e93ef36 Merge changes Iaa6411b5,I2118b8a2,Ibbdd3cbd,I2d1bbda2 am: 38e9f0b82f am: 99f29d244a am: c5c5d80d30
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652620

Change-Id: I09a93351bcae2c27531fd258ddacdd8bc5ddd474
2021-03-30 12:42:38 +00:00
Martin Stjernholm
4d058c8809 Allow dependencies from platform variants to APEX modules.
When `test_for` dependencies are added from libraries to APEX modules,
they can be created from the platform variants of the libraries, since
those are used for building tests. Hence we need an alias from the
platform variant of the APEX module to have a target for those
dependencies.

This is only necessary for libraries that are split by the APEX
mutator, i.e. is a member of some APEX. Normally that's not the case
for test libraries, but there may be exceptions (read
com.android.art.testing).

Test: m nothing
Bug: 183882457
Change-Id: I68affdf69d7ec05c0ee8730e8ec04d7cb9e0e44a
2021-03-30 12:43:45 +01:00
Martin Stjernholm
38e9f0b82f Merge changes Iaa6411b5,I2118b8a2,Ibbdd3cbd,I2d1bbda2
* changes:
  Make test_for arch variant.
  Don't use APEX stubs between internal libs in the same APEX when building test_for modules.
  Add FilterListPred.
  Don't panic on "go test" invocations from the command line.
2021-03-30 09:26:36 +00:00
Paul Duffin
c434921028 Merge "Add dependencies for art boot_image" am: 16e6aeeb51 am: d019752f73 am: 78dd45f054
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652451

Change-Id: If37ae085694aa93924dce1548fad89b05fdfd8b0
2021-03-29 22:07:06 +00:00
Paul Duffin
cf8d7db02b Stop JavaSdkLibrary_... tests requiring absolute path
Bug: 183650682
Test: m nothing
Change-Id: Ia6e5034bbf3920a9e1f8fc319dc722658f6cb1ce
2021-03-29 17:29:30 +01:00
Paul Duffin
37ba344e40 Remove buildDir from apex package
Bug: 182885307
Test: m nothing
Change-Id: I71cbfd79e2fb4b1cbd2914ffab76570548d57c61
2021-03-29 17:29:30 +01:00
Paul Duffin
4d101b60f0 Add the transitive dependencies of boot_image to apex
This avoids having to specify boot libraries in both the boot_image
and separately as java_libs on the apex. Simply add them to the
boot_image (happens automatically ATM when using image_name: "art")
and add the boot_image to the apex.

Bug: 177892522
Test: m nothing
Change-Id: I7e0c41665604b73780cdf0dc555067497b1e6ef0
2021-03-29 17:15:29 +01:00
Paul Duffin
82886d6cbf Add contents property to boot_image (and prebuilt_boot_image)
Allows boot_image modules to be created for any module that contributes
to the boot class path, e.g. core-i18n from the com.android.i18n.

A boot_image module with a contents property cannot specify an
image_name, and vice versa. Only those boot_image modules with an
image_name create .art, .oat and .vdex files, either in their
associated APEX or as part of the framework "boot" image.

Bug: 177892522
Test: m nothing
Change-Id: Idfc2bcf00dd6d3ed36ac4df46fcf18e8aa7e2c92
2021-03-29 17:15:27 +01:00
Paul Duffin
c7ef9892dd Add dependencies for art boot_image
Adds dependencies for the art boot image. The art boot image only
includes modules from the com.android.art APEX and so this change adds
some verification to make sure that the APEX component of the
configuration is compatible with the boot_image's apex_availabilty
settings and then just adds dependencies on the modules. It relies on
the normal APEX processing to cause the com.android.art variant of the
boot_image to depend on the equivalent variant of its contents.

This purposely does not check that the configuration specifies an APEX
of com.android.art and instead relies on the apex_available property
being set.

Bug: 177892522
Test: m nothing
Change-Id: I75a8238546b01e1f166a1d1444215f4afb441780
2021-03-29 17:13:29 +01:00
Paul Duffin
e06a34d148 Merge "Add bootclasspath_fragment as an alias for boot_image" am: 755b10fe53 am: 0c541b7c1d am: 3e56890e1d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1655217

Change-Id: I8e7eea3b7e1b1b0a47e24c800ffce33f9943e107
2021-03-29 15:42:23 +00:00
Paul Duffin
9139488505 Merge "Make apex/boot_image_test.go more realistic" am: 1b3d4923c1 am: 86ce9334bf am: a4749563a0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652448

Change-Id: I8e8c608d4e0215e41ce151271af00a0a58fcb7f5
2021-03-29 14:19:47 +00:00
Paul Duffin
815e678497 Merge "Prune test preparers in apex/boot_image_test.go" am: 0839101430 am: 9d0d498922 am: 74d71d7848
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652447

Change-Id: Ie996b7282450f3b564f9a1eb2e1d501cb094e736
2021-03-29 10:52:47 +00:00
Paul Duffin
8692ee5aec Merge "Prevent apex from using preferred prebuilt_boot_image" am: fed8df3424 am: d1255ed19a am: 53a2dcc01c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1647168

Change-Id: I18db745fe57692c288ae83fed482852f6522803e
2021-03-29 10:52:40 +00:00
Paul Duffin
4b64ba05b6 Add bootclasspath_fragment as an alias for boot_image
This is part of the work to rename boot_image to bootclasspath_fragment
which is being done for two reasons:
1. To avoid clashing with the bootimg module type.
2. To better reflect what this represents.

While a bootclasspath_fragment can create what ART calls a boot image
(which is different to what the bootimg module type represents) it does
not have to do so.

Bug: 177892522
Test: m nothing
Change-Id: Ib45604be7adc790ded9e27a2ac812dd7522ca8db
2021-03-29 11:05:55 +01:00
Paul Duffin
9ea71c0f4f Make apex/boot_image_test.go more realistic
Previously it was unrealistic because the "boot" image cannot be added
to an apex (because it references modules from multiple different
apexes). Only the "art" image can be added to an apex. So, this change
switches to use the "art" image which requires the apex name is changed
to "com.android.art".

This change also adds an equivalent test for prebuilt_boot_image as
well as a check of the module dependencies for the mybootimage module.

Bug: 177892522
Test: m nothing
Change-Id: I20089b02c80bedc072dbb950dce09bc4e8397f3a
2021-03-29 11:05:55 +01:00
Paul Duffin
52bfaa43f9 Prune test preparers in apex/boot_image_test.go
Cut down the preparers to only those needed by these tests.

Bug: 177892522
Test: m nothing
Change-Id: I811977b0331dd38c25623aa96e09e85ba5cf7c57
2021-03-28 23:02:18 +01:00
Paul Duffin
396229f7cf Prevent apex from using preferred prebuilt_boot_image
Bug: 177892522
Test: m nothing
Change-Id: I8530ffa4c5123f6055a6ca25421c17bb6fc037f0
2021-03-28 23:02:18 +01:00
Martin Stjernholm
4e6c269de5 Don't use APEX stubs between internal libs in the same APEX when
building test_for modules.

This extends the current approach where test modules always depend on
the platform variants of the APEX libs, and only skips the stubs on
them. It still has the limitation that the internal libs must have the
exact same apex_available lists.

Also some improvement of the test accuracy in TestTestFor.

Test: m libartagent-target
  with http://r.android.com/q/topic:libdexfile-noext applied
Bug: 183217299
Change-Id: I2118b8a22c887077867a3ddbbe73437b4a29a6ad
2021-03-28 22:06:34 +01:00
Paul Duffin
c5296cd586 Merge "Disallow non-existent paths in sdk package" am: 863ecfb7ba am: a48aed59ee am: 146b43cc63
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1647171

Change-Id: Ic3aa5af880a293457d5303b362c38421591f55e2
2021-03-25 19:47:49 +00:00
Paul Duffin
db462dd987 Disallow non-existent paths in sdk package
Test behavior was changed a while ago so that tests by default ignore
non-existent source paths (unless they explicitly check for/rely on
them). Prior to that CheckSnapshot() could detect when files were
missing from the snapshot but it no longer can.

This change disallows non-existent source files in all the sdk tests
which means that they are disallowed when processing the snapshots as
they use the same preparers as were used to process the sources.

This caused a test failure which has been temporarily ignored and has
a TODO and bug associated with it.

Bug: 183184375
Test: m nothing
Change-Id: I969d8515d20ef5ae515f2b5f93d8ed4e4f8ede75
2021-03-25 12:53:22 +00:00
Paul Duffin
c80f01ee04 Merge "Convert test that disallows non existent paths to use fixtures" am: e742ee14f8 am: 4a08263f48 am: cd3cc29952
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1647169

Change-Id: I2e08b61169a01a256e87da0d5ff338c83751814f
2021-03-25 10:52:55 +00:00
Paul Duffin
49ed211c7a Merge "Cleanup usages of Dex2oatDepTag" am: 958408d921 am: 15204cf1ea am: 6a8ac75e6a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652452

Change-Id: If6f759f545421848c466659e1cd8ccc80ef50e4b
2021-03-24 23:51:28 +00:00
Paul Duffin
76e5c8a37f Convert test that disallows non existent paths to use fixtures
This change needed to add some additional files to the registered
files for PrepareForTestWithJavaDefaultModules because otherwise they
would fail when "TestAllowNonExistentPaths = false". Those files were
being added by the TestJavaLintRequiresCustomLintFileToExist (albeit in
some cases in different locations to that required by the default
modules but as the files are needed by the modules defined in
PrepareForTestWithJavaDefaultModules they should be defined in it.

A couple of other places also provided some files so moving them into
PrepareForTestWithJavaDefaultModules caused some conflicts which needed
to be resolved.

Bug: 183184375
Test: m nothing
Change-Id: I76ce9f1673c1c1c4000635b76b8377d582224bf1
2021-03-24 22:08:05 +00:00
Paul Duffin
b506c9dc11 Cleanup usages of Dex2oatDepTag
Creates a new deptag type for it so that it can implement the marker
interfaces that will exclude it from being added to the APEX and from
visibility enforcement. The latter is probably not an issue ATM because
the dependencies are added after visibility checks are enforced but
this code is undergoing lots of refactoring so that may change.

Bug: 177892522
Test: m nothing
Change-Id: Ibd167d557adec761a2e3eed78f4d334c40a04fb9
2021-03-24 14:34:40 +00:00
Paul Duffin
9a7e792892 Remove emptyFixtureFactory from apex and java am: 70d3bee3e0 am: 752a5a2122 am: 231efa2172
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1647204

Change-Id: Ie33180b91d67f4b178c44fd9ad526e00f74e263a
2021-03-23 00:01:31 +00:00
Paul Duffin
c08e88340b Merge "Ensure that DepIsInSameApex is not called for ExcludeFromApexContentsTag" am: 6bef6fee3c am: abe8504ce1 am: 38a15cd52c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1645680

Change-Id: I9f42df334b69ce45f16ad610ee322230985a02d7
2021-03-22 20:38:29 +00:00