Commit Graph

19782 Commits

Author SHA1 Message Date
Jiyong Park
abf09b50e4 Add GetPathString am: 1c7e962957
Change-Id: Iada405f160d8178ec90a1634f22a50cb18215938
2020-05-08 02:35:11 +00:00
Paul Duffin
4b99ceccd6 Merge changes I167b47a1,I7ebd3330,Ifc8116e1 am: af6fbcbcca
Change-Id: I880559ccaa54c4d4e32e0389148c0c1e864aeb4f
2020-05-07 22:09:03 +00:00
Paul Duffin
af6fbcbcca Merge changes I167b47a1,I7ebd3330,Ifc8116e1
* changes:
  Fix snapshot of a host/device cc_library with stubs
  Adds support for 'ignored-on-host'
  Detect invalid arch specific properties in snapshot
2020-05-07 21:58:14 +00:00
Treehugger Robot
a7f446af4a Merge "Skip dexpreopting android_test_import modules" am: cf23ab4cd8
Change-Id: Ic9ec152d8c1a28dc9553323ae81058c90c062a3b
2020-05-07 21:48:08 +00:00
Treehugger Robot
cf23ab4cd8 Merge "Skip dexpreopting android_test_import modules" 2020-05-07 21:37:37 +00:00
Treehugger Robot
7cd5ce4e59 Merge "Switch java_sdk_library to use SetDefaultableHook()" am: 3d60daadbc
Change-Id: Id0447311a043f0e46930ab1dfbb300979e109199
2020-05-07 20:48:27 +00:00
Treehugger Robot
3d60daadbc Merge "Switch java_sdk_library to use SetDefaultableHook()" 2020-05-07 20:39:05 +00:00
Colin Cross
c80828d567 Skip dexpreopting android_test_import modules
android_test_import modules should be labelled as tests so they are
not dexpreopted.

Bug: 155778135
Test: m CtsCorruptApkTests_Compressed_Q
Change-Id: I7baa5405d03df03920b01616b030ba77f882a77e
2020-05-07 12:06:14 -07:00
Colin Cross
5ac0b15211 Merge "Add jni_uses_sdk_apis" am: 7500f46b95
Change-Id: I985d088f671e41ae4a216b8cee0af3800aa92606
2020-05-07 18:13:29 +00:00
Colin Cross
7500f46b95 Merge "Add jni_uses_sdk_apis" 2020-05-07 18:09:47 +00:00
Colin Cross
7204cf0e6a Add jni_uses_sdk_apis
NetworkStackTests is using platform APIs for its Java code, but needs
to use portable JNI libraries.  Add a jni_uses_sdk_apis so that it
can select the SDK variants of JNI libraries even though it doesn't
set sdk_version.

(clean cherry-pick from internal branch)
Bug: 154665579
Test: atest NetworkStackTests
Merged-In: I841fb761ec1c1ab8596aac44e01eb7eb91428006
Change-Id: I841fb761ec1c1ab8596aac44e01eb7eb91428006
2020-05-07 18:09:06 +00:00
Ivan Lozano
acdf2ac701 Merge "Add gcov coverage support to Rust modules." am: 6c4e5c05c3
Change-Id: I9f998821818e30e427696cdbcb3121722a2c8f56
2020-05-07 18:07:50 +00:00
Ivan Lozano
6c4e5c05c3 Merge "Add gcov coverage support to Rust modules." 2020-05-07 17:56:43 +00:00
Paul Duffin
2af52380be Fix snapshot of a host/device cc_library with stubs
Adds a test that fails with unknown property android.stubs.versions
and then fixes that by marking the field from which that property is
created with 'ignored-on-host' and implemented the isHostVariant on
*osTypeSpecificInfo.

Bug: 155628860
Test: m nothing
Change-Id: I167b47a1374f541aa09d7e045972d740f1d9009c
2020-05-07 18:35:11 +01:00
Paul Duffin
12f67bcf42 Adds support for 'ignored-on-host'
Adds a filter mechanism that can exclude property values from being
included in the common value extraction. That is needed to prevent the
snapshot mechanism from generating invalid output for properties that
are ignored on host (and have their values cleared) and which are not
tagged with `android:"arch_variant"`.

Changes:
* Updates the documentation of SdkMemberType to explain what effect
  the 'ignored-on-host' tag has.
* Adds some tests for this new mechanism.

Bug: 155628860
Test: m nothing
Change-Id: I7ebd333079619dba546bc8c4911d567e0287b676
2020-05-07 18:35:11 +01:00
Paul Duffin
ee20962378 Detect invalid arch specific properties in snapshot
Previously, the snapshot code did not know whether a specific property
could be arch specific or not and assumed that they all were which
meant that it could generate snapshots containing arch specific values
for properties that are not arch specific and so would fail when
unpacked.

This change requires arch specific fields in SdkMemberProperties to be
tagged as such using `android:"arch_variant"` (just as in module input
property structures). Any property without that must have properties
that are common across all variants.

Bug: 155628860
Test: m nothing
Change-Id: Ifc8116e11d987cfe7aec2eeaa964f3bbf36b5dc2
2020-05-07 18:35:11 +01:00
Paul Duffin
01d23134f2 Merge "Allow extractCommonProperties to return an error" am: bd7e3295dd
Change-Id: Iab5fbb31db1ce9bdb7d4a4558e051f2b6df7d830
2020-05-07 16:28:41 +00:00
Paul Duffin
bd7e3295dd Merge "Allow extractCommonProperties to return an error" 2020-05-07 16:17:42 +00:00
Paul Duffin
6b178d6f7b Merge changes If673d482,I98b575b8 am: 38e2fbdc90
Change-Id: I0c0d1d5da191d6684f1fc40c57eeb224d8f2588e
2020-05-07 16:00:37 +00:00
Paul Duffin
38e2fbdc90 Merge changes If673d482,I98b575b8
* changes:
  Remove reference to obsolete BuildSnapshot()
  Correct order of parameters to AssertDeepEquals
2020-05-07 15:50:06 +00:00
Treehugger Robot
6bc155429e Merge "Remove implicit Bionic and kernel system includes." am: 4779327cf8
Change-Id: I72a5de7f105d062ca98c3d2d64d62aad2fcbdbb1
2020-05-07 13:44:33 +00:00
Treehugger Robot
4779327cf8 Merge "Remove implicit Bionic and kernel system includes." 2020-05-07 13:35:13 +00:00
Jeongik Cha
253c607f14 Merge "Remove networkstack-aidl-interfaces-unstable-java from the whitelist" am: 9d902cef58
Change-Id: I516d5b52588f7d0653835758f9b6073316eb372a
2020-05-07 11:12:50 +00:00
Jeongik Cha
9d902cef58 Merge "Remove networkstack-aidl-interfaces-unstable-java from the whitelist" 2020-05-07 10:59:05 +00:00
Treehugger Robot
dd80c5f12c Merge "Reduce the number of Soong invocations, and various other minor script fixes." am: d9e4bf9840
Change-Id: I52c67cf6ffe83a0759da97e1fa3fca9c2682c695
2020-05-07 10:48:59 +00:00
Treehugger Robot
d9e4bf9840 Merge "Reduce the number of Soong invocations, and various other minor script fixes." 2020-05-07 10:36:54 +00:00
Treehugger Robot
e04534cd62 Merge "java_sdk_library: Define relationship between api scopes" am: aa71638941
Change-Id: Ia704d3ba4157806f8b901f4b54279f4c5525f675
2020-05-07 09:45:36 +00:00
Treehugger Robot
aa71638941 Merge "java_sdk_library: Define relationship between api scopes" 2020-05-07 09:37:54 +00:00
Paul Duffin
4bfed659d9 Merge changes I13df3115,I825c6df0 am: 955ade6475
Change-Id: Iba825844a68e1bd42bfc1b6cffb072600573d60c
2020-05-07 09:37:30 +00:00
Paul Duffin
f022920bde Switch java_sdk_library to use SetDefaultableHook()
Previously, java_sdk_library used AddLoadHook() to register a hook that
when called would create its child modules. That meant the
java_sdk_library properties that were used to create the child modules,
e.g. sdk_version could not be defaulted because the modules are created
before the defaults are applied.

This change switches java_sdk_library to use the new
SetDefaultableHook() mechanism to register the hook instead of the
AddLoadHook() mechanism.

It also prevents the child modules from being created if the module has
been disabled.

Bug: 155295806
Test: m checkapi
Change-Id: Ic6f90eb4449338e549878f64e8119e286b9aa549
2020-05-07 10:24:00 +01:00
Paul Duffin
955ade6475 Merge changes I13df3115,I825c6df0
* changes:
  Add hook to be called after defaults have been applied
  Move prebuilts mutators after defaults have been applied
2020-05-07 09:18:26 +00:00
Jiyong Park
1c7e962957 Add GetPathString
The method is a thin wrapper around GetWalkPath and GetTagPath to make
it easy to construct a string representation of the current path.

It was originally inlined in the apex package. This change makes it a
function and moves it to the android package so make it more useful.

Bug: N/A
Test: m
Change-Id: I7e2bc2074baed759d67d9097151c9ac10e34ed31
2020-05-07 16:12:13 +09:00
Yo Chiang
f8ae216e9c Merge "APEX should require base module of stub libraries" am: 6345dfde49
Change-Id: Ia137c47464b8bb4ea13ee517c554d75081488f6e
2020-05-07 06:35:22 +00:00
Yo Chiang
6345dfde49 Merge "APEX should require base module of stub libraries" 2020-05-07 06:13:49 +00:00
Martin Stjernholm
691503ea0b Reduce the number of Soong invocations, and various other minor script fixes.
-  We can pass all targets at once to build-aml-prebuilts.sh.
-  Less noise from build-mainline-modules.sh.
-  Default to the same out directory in both build scripts.
-  Addressed post-submit comments on https://r.android.com/1170907.
-  Various minor cleanups.

Test: build/soong/scripts/build-mainline-modules.sh
Change-Id: Id21ef80c2334462836e217032fc5bf63b7cd04e1
2020-05-06 22:51:15 +01:00
Paul Duffin
bb59252cb2 Merge "Encapsulate getter into an extractorProperty structure" am: 97486dbb4b
Change-Id: I32720b04f935a260dd8a11698569c0aede95d8d1
2020-05-06 20:28:52 +00:00
Paul Duffin
77a36cdc8a Merge "Encapsulate properties to be optimized in a container" am: 11c91dc141
Change-Id: If8a586aa4bced69542ff99cfc5a8dd437645351c
2020-05-06 20:28:44 +00:00
Paul Duffin
97486dbb4b Merge "Encapsulate getter into an extractorProperty structure" 2020-05-06 20:18:39 +00:00
Paul Duffin
11c91dc141 Merge "Encapsulate properties to be optimized in a container" 2020-05-06 20:18:22 +00:00
Makoto Onuki
308b257151 Merge "Merge the "big 3" metalava invocations into one" am: 574cc84a33
Change-Id: I11ae24ed9c5c17c5842ccf71e571ee722ab7d8aa
2020-05-06 19:39:34 +00:00
Makoto Onuki
574cc84a33 Merge "Merge the "big 3" metalava invocations into one" 2020-05-06 19:18:12 +00:00
Martin Stjernholm
41ab2519b4 Remove implicit Bionic and kernel system includes.
They are now explicit in the Bionic blueprints, and brought in through
dependencies on libc (which in turn is usually implicit through the
default system_shared_libs value). Modules that may break are cc_object
which don't depend on system_shared_libs, and those that explicitly set
system_shared_libs:[] but still assumes libc headers. In either case
the fix should be to add header_libs:["libc_headers"].

Test: Build and boot
Test: m checkbuild (on aosp_taimen and aosp_x86_64)
Bug: 153590472
Change-Id: I3217d8f36e49a987f5377866c8647f9dcccc37ce
2020-05-06 19:45:03 +01:00
Paul Duffin
4b8b79394f Allow extractCommonProperties to return an error
Refactoring in preparation for follow up changes.

Also:
* Adds a new AssertErrorMessageEquals() helper method.
* Improved error reporting in the accessor and added name to
  extractorProperty to ensure meaningful errors are reported.
* Added String() string method to propertiesContainer.
* Reports errors using the field name as the errors are not really
  fixable by developers and it is more meaningful to the build team.

Bug: 155628860
Test: m nothing
Change-Id: I5c5b8436bcbc39e4e7cd35df2577b2dac53e702a
2020-05-06 18:40:41 +01:00
Paul Duffin
425b0eacaa Remove reference to obsolete BuildSnapshot()
Bug: 155628860
Test: m nothing
Change-Id: If673d482e8318b5fbb86780236123b0bd59eb5d3
2020-05-06 18:40:41 +01:00
Paul Duffin
b28369a982 Encapsulate getter into an extractorProperty structure
Refactors the existing code to wrap a getter with a structure in order
to simplify adding additional per-property information. Adds an
emptyValue field to contain the empty value appropriate for the field
type.

Bug: 155628860
Test: m nothing
Change-Id: I7e169bd9b6e51b88e35bdf8673a5056337f778c1
2020-05-06 18:40:41 +01:00
Paul Duffin
f34f6d8538 Encapsulate properties to be optimized in a container
This allows additional metadata to be associated with a set of
properties that will be used in a follow up change to filter
properties that are ignored in some variants (e.g. host variants).

Bug: 155628860
Test: m nothing
Change-Id: Ie83c1ffbb71fd5d7a08d350571dad3e3209b1431
2020-05-06 18:40:41 +01:00
Paul Duffin
1d6c0df597 Correct order of parameters to AssertDeepEquals
The expected/actual were around the wrong way.

Bug: 155628860
Test: m nothing
Change-Id: I98b575b8b85dcbfd2075e77689f0329aa2eadbf0
2020-05-06 18:40:41 +01:00
Paul Duffin
97b53b83e4 java_sdk_library: Define relationship between api scopes
Needed for follow up changes.

Test: m checkapi
Bug: 155164730
Change-Id: I163223caed38161ce1fa7b96dc3772194c32c3e2
2020-05-06 18:40:35 +01:00
Kris Alder
e2967d8f4e add researcher_submitted field to cc_fuzz am: e051d0d324
Change-Id: Id14ad01406da3750d99dfb33856081287a30593f
2020-05-06 16:48:43 +00:00
Makoto Onuki
88b9905d74 Merge the "big 3" metalava invocations into one
This CL merges the biggest three metalava invocations --
stub and signature file generation, api lint, and "check released" --
into one call.

For each of the existing separate rules for api lint and check released this change:
1) Stopped creating a separate rule containing its own metalava invocation.
2) Moved the code for creating the rule earlier so it can add extra flags to the combined metalava command.
3) Moved the message handling into metalava, allowing the message to be passed in.
4) Added a flag to record whether the specific check was needed so that you can separate the timestamp file creation out to run after the merged metalava command.

A couple of minor bug fixes and clarifications.

Bug: 151160048
Test:  "m" and treehugger

Test: Apply https://android-review.googlesource.com/c/platform/frameworks/base/+/1295541 and run `NINJA_ARGS="-k 999" m checkapi`
-> Make sure there are 4 kinds of lint failures ("AddedFinal" and "VisiblySynchronized") with the valid error messages, from:
- api-stubs-docs
- system-api-stubs-docs
- test-api-stubs-docs
- module-lib-api-

Test: Run the 4 cp commands shown by lint
-> Make sure the following 4 baseline files are updated:
frameworks/base/api/lint-baseline.txt
frameworks/base/api/module-lib-lint-baseline.txt
frameworks/base/api/system-lint-baseline.txt
frameworks/base/api/test-lint-baseline.txt

Test: Then run `NINJA_ARGS="-k 999" m checkapi` again.
-> Make sure the API lint errors are gone
-> Make sure "api-stubs-docs" shows the "You have tried to change the API from what has been
previously released in ..." error. (because of "AddedFinal")
-> Make sure it the other 3 API surfaces show the "You have tried to change the API from
what has been previously approved" error.

Test: Remove "final" from Intent.java and run "NINJA_ARGS="-k 999" m checkapi" again.
-> This time, all the 4 API surfaces say "You have tried to change the API from
what has been previously approved" error."

Test: Run the 4 "make *-update-current-api" commands shown in the above errors and "NINJA_ARGS="-k 999" m checkapi"
-> The exact command is:
$ make \
  module-lib-api-update-current-api \
  api-stubs-docs-update-current-api \
  test-api-stubs-docs-update-current-api \
  system-api-stubs-docs-update-current-api

-> Make sure frameworks/base/api/*-current.txt are properly updated.

Test: Run "m update-api"
-> Make sure no text signature files get updated.

Test: Run "m droid".
-> Make sure everything builds fine.

Change-Id: Ia1a5510b57d58748b4655473d4585636deb7f45e
Merged-In: Ia1a5510b57d58748b4655473d4585636deb7f45e
2020-05-06 13:00:01 +01:00