651 Commits

Author SHA1 Message Date
Bo Liu
58a57667e4 Add Context.bindService with executor parameter
Allow app to control the thread where ServiceConnection methods are
called on.

Bug: 111434506
Test: Used new bindContext method in chrome and checked callbacks
are on the correct thread.

Change-Id: I480e5bd6773a530fb9e8e73e3a2a2a88b76569ec
2019-03-06 20:21:45 +00:00
Paul Duffin
eec4726e3c Merge "Revert "Revert "Remove legacy-test and legacy-android-test targets""" am: e051b0c95e am: 643318f4d2
am: a8025a851d

Change-Id: Ibe9fce04c43c435764c313f64bf49e03fa826012
2019-02-26 04:16:34 -08:00
Paul Duffin
79d7ba2773 Revert "Revert "Remove legacy-test and legacy-android-test targets""
Fixes up the android.test.legacy target to stop using sources directly
now that the issue with android.test.runner-minus-junit not being able
to be built against the SDK has been resolved.

Also, fixes a couple of comments.

This reverts commit 7d7af10dc9057a49c617c7c97c174e8b4ec5008c.

Reason for revert: When this was originally applied it broke the
pi-dev-plus-aosp branch as it contained references to these targets.
Those references have now been removed.

Bug: 63127064
Change-Id: I619e92faf4cc38f8fd4f053bde832e9a76a2a2bf
Test: make checkbuild
2019-02-25 19:20:10 +00:00
Jakub Gielzak
e00505b90a Merge "Revert "Remove legacy-test and legacy-android-test targets"" am: 049c1589ee am: 7f997d4cfc
am: 95a9dc906f

Change-Id: I1034050336bdf8be84e3b86ae346dc4bfe1737ef
2019-02-18 10:51:09 -08:00
Jakub Gielzak
7d7af10dc9 Revert "Remove legacy-test and legacy-android-test targets"
This reverts commit 3b0be60307cc6063795f8cd32356745ee371e757.

Reason for revert: Broken build

Change-Id: I71270c7b47163ab7147029f2d3961d1848fdd9eb
2019-02-18 18:24:17 +00:00
Paul Duffin
0cc3064ada Merge "Remove legacy-test and legacy-android-test targets" am: 14daedf747 am: 4a83feb18a
am: 9248379c98

Change-Id: Ia409c6c4596269120386f8ae47d7f6379a1073bf
2019-02-18 07:44:41 -08:00
Paul Duffin
3b0be60307 Remove legacy-test and legacy-android-test targets
Fixes up the android.test.legacy target to stop using sources directly
now that the issue with android.test.runner-minus-junit not being able
to be built against the SDK has been resolved.

Also, fixes a couple of comments.

Bug: 63127064
Test: make checkbuild
Change-Id: If38fa0d87b36343896e97efb2269ac070810db84
2019-02-15 10:08:35 +00:00
Sasha Smundak
0f167a214a Merge "Convert Android.mk file to Android.bp" am: 190ff7457c am: 4bb2c54698
am: 8d838a3ced

Change-Id: I2c2c5ccb7da321ee7896e01131f84090797eb6db
2019-02-11 18:05:30 -08:00
Sasha Smundak
31754eb5df Convert Android.mk file to Android.bp
See build/soong/README.md for more information.

Bug: 122332340
Test: treehugger
Change-Id: I52416790e1e4493dd4fe57404095351b8d37ea22
2019-02-11 14:58:20 -08:00
Paul Duffin
2ac4d5cc03 Merge "Add TEST_MAPPING for api specifications" am: 6bb71b0322 am: cd2586709b
am: 17abc1fd96

Change-Id: I76724e470d2de7b34900a5d21b6dd3b24ee6124d
2019-02-08 04:26:35 -08:00
Paul Duffin
507cbc4e58 Add TEST_MAPPING for api specifications
Changes to the various api directories will run the
tests which make use of the API specification in those directories.

Could not include CtsSystemApiSignatureTestCases as it is broken on
git_master because of bug 116632058.

Bug: 123254057
Test: atest
Change-Id: I1fe4ca498cbd0393aba7cf4c1386a6325ace7937
2019-02-06 13:57:42 +00:00
Tor Norbye
68ea0c3c13 Update signature files to the new format
The new format is described in tools/metalava/FORMAT.md.

Fixes: 116589402 Switch signature files over to the v2 format
Fixes: 112626813 Drop "synchronized" modifier from the signature format
Fixes: 122358225 Omit overriding methods that only differ in final [...]
Fixes: 73088715 API Review: Need doclava to output nullability
Fixes: 79739773 API Review: Metalava enforcing constants are constant
Exempt-From-Owner-Approval: Large-scale tooling change
Test: make sdk, make update-api, make checkapi
Change-Id: Ia248aece5250e84e47c815c601133b698bf644c2
2019-01-19 12:07:50 -08:00
Tor Norbye
8752dedb76 Update signature files to the new format
The new format is described in tools/metalava/FORMAT.md.

Fixes: 116589402 Switch signature files over to the v2 format
Fixes: 112626813 Drop "synchronized" modifier from the signature format
Fixes: 122358225 Omit overriding methods that only differ in final [...]
Fixes: 73088715 API Review: Need doclava to output nullability
Fixes: 79739773 API Review: Metalava enforcing constants are constant
Exempt-From-Owner-Approval: Large-scale tooling change
Test: make sdk, make update-api, make checkapi
Change-Id: I8314f4e7099fa92e4f8ed7d283ccf836cc9a84a0
Merged-In: Ia248aece5250e84e47c815c601133b698bf644c2
2019-01-19 07:22:55 -08:00
Sundong Ahn
485577cb78 Merge "Switch to metalava" am: f53c398133 am: d1eae3244e
am: 78a6782dbb

Change-Id: If6bd8a784514916f4fd47c186c0b9bbf04329be6
2018-12-12 21:28:08 -08:00
Sundong Ahn
26420f6345 Switch to metalava
android.test.base and android.test.runner libraries are changed to using
metalava instead of docalava

Bug: 119625999
Test: m -j
Change-Id: I589ea59240f8b5d442931a1f1b614221d9eaf221
2018-12-12 18:38:46 +09:00
Dianne Hackborn
27b4d94a07 Implement naming of isolated service bindings.
This allows clients to run multiple instances of the same
manifest service declaration.  It only works for isolated
services, to avoid too much abuse temptation.  This is part
of the "Chrome site isolation" work, to allow chrome to have
many more render processes running and help it manage them.

Bug: 111434506
Test: atest CtsAppTestCases:ServiceTest
Change-Id: I22e65758678a07075ed32ed6463082ddf846d3a4
2018-11-13 16:03:02 -08:00
Sundong Ahn
ccf9672f64 Add the metalava_enabled property
The new property is added for supporting metalava. But some sdk library
cannot use metalava. So "metalava_enabled: false" is added to these
modules.

Test: make -j
Test: checkapi
Bug: 117127012
Merged-In: Ib65f3cd73dac0ac6ed64afeca6546d99739e4424
Change-Id: Ib65f3cd73dac0ac6ed64afeca6546d99739e4424
(cherry picked from commit 558e702be0eb2de76bb45303c99322561d73216c)
2018-10-04 14:27:37 +09:00
Sundong Ahn
558e702be0 Add the metalava_enabled property
The new property is added for supporting metalava. But some sdk library
cannot use metalava. So "metalava_enabled: false" is added to these
modules.

Test: make -j
Test: checkapi
Bug: 117127012
Change-Id: Ib65f3cd73dac0ac6ed64afeca6546d99739e4424
2018-10-02 01:50:09 +00:00
Sundong Ahn
e933cedf83 Build android.test.* with java_sdk_library
android.test.* are built with java_sdk_library and api files are added
by running "make update-api".

android.test.base_static is created for allowing to use
android.test.base as a static library.

Bug:77577799
Test: make -j
Test: make checkapi
Test: make checkapi fails with a random change in the txt file
Test: adb shell cmd package list libraries |\
      grep android.test.*
      And check the android.test.* libraries

Merged-In: Ia27612657532e50b077a9c55dbef59ee3ec04b8a
Change-Id: Ia27612657532e50b077a9c55dbef59ee3ec04b8a
2018-08-29 12:22:59 +09:00
Sundong Ahn
f24779c8c7 Build android.test.* with java_sdk_library
android.test.* are built with java_sdk_library and api files are added
by running "make update-api".

android.test.base_static is created for allowing to use
android.test.base as a static library.

Bug:77577799
Test: make -j
Test: make checkapi
Test: make checkapi fails with a random change in the txt file
Test: adb shell cmd package list libraries |\
      grep android.test.*
      And check the android.test.* libraries

Change-Id: Ia27612657532e50b077a9c55dbef59ee3ec04b8a
2018-08-16 12:16:28 +09:00
David Brazdil
f8d22dec87 resolve merge conflicts of 6e3c86c8ed7a1bcfcbc63bbded0043d4b4efbe10 to stage-aosp-master
BUG: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: Ide3c4e229b47e4242cacafc04b70d8b392712cc8
2018-07-11 11:56:34 +01:00
David Brazdil
6e3c86c8ed Merge "Compile android.test.*.stubs into dex" 2018-07-11 09:18:15 +00:00
Colin Cross
a977a37c85 Merge "Mark installable jars with installable: true" am: 1035f48f61 am: 19609a7993
am: c7f9e053ec

Change-Id: I5934f14ced4a89fa234d75fde733aae1f102cc7a
2018-07-10 09:45:03 -07:00
Colin Cross
19609a7993 Merge "Mark installable jars with installable: true"
am: 1035f48f61

Change-Id: Ia3176e68ddd7cfdb8351b2a0ea95efc9dd94d922
2018-07-10 09:12:46 -07:00
David Brazdil
89c6432dbf Compile android.test.*.stubs into dex
Adjust the build rules of android.test.*.stubs packages to also
produce a jar with dex files. This will be used by the `hiddenapi`
tool to categorize the boot class path equivalents as public API.

Bug: 79409988
Test: m android.test.base.stubs ; check javalib.jar contains dex
Merged-In: I1d0850b18044c559ea4b9893d929dc45884b32c3
Change-Id: Ief28cd5e6d0cdd58f22fab751e0173ccf8c69a0c
2018-07-10 13:37:05 +00:00
David Brazdil
a2c457fd2a Compile android.test.*.stubs into dex
Adjust the build rules of android.test.*.stubs packages to also
produce a jar with dex files. This will be used by the `hiddenapi`
tool to categorize the boot class path equivalents as public API.

Bug: 79409988
Test: m android.test.base.stubs ; check javalib.jar contains dex
Change-Id: I1d0850b18044c559ea4b9893d929dc45884b32c3
2018-07-10 14:34:52 +01:00
Colin Cross
a12c0f506c Mark installable jars with installable: true
Most jars don't need to be installed on the device.  Instead of
using java_library and java_library_static to distinguish between
them make java_library and java_library_static identical and use
installable: true to identify the few jars that need to be dexed
and installed on the device.

Bug: 110885583
Test: m checkbuild
Change-Id: I579da7c1a712ec4fb49e288e7f3ab369cb75baf4
2018-06-27 11:49:44 -07:00
android-build-prod (mdb)
3561420fe6 Merge "Convert android.test.runner.stubs to Soong" am: 6fa8d06c78
am: c8a0259721

Change-Id: I5c30b9805219d516df9a438b87e28dc775d74557
2018-05-07 18:25:56 -07:00
Nan Zhang
4a139d0406 Convert android.test.runner.stubs to Soong
Test: m clean && m check-android-test-runner-api, and check jar file
content.
Bug: b/70351683

Change-Id: I6ab6bded4bb2432212fcb4f676b27624fe17a397
2018-04-26 14:55:41 -07:00
Jiyong Park
3fb224521a Make android.test.mock.stubs in Android.bp
Stubs libraries android.test.mock.stubs and
android.test.mock.stubs-system are now built in Android.bp.
(Note that API check and update are still done in Android.mk)

As a good side effect, this allows android.test.runner[-minus-junit]
libraries (that are defined in Android.bp) to be built with the
android.test.mock.stubs instead of the runtime library
android.test.mock. This in turn allows us to prevent java:sdk ->
java:platform dependency also in Soong, because the runner libraries
were the only violators.

Bug: 73829976
Test: m -j android.test.mock.stubs android.test.mock.stubs-system
Test: m -j checkapi
Test: m -j update-api
Merged-In: I830a8eb13aa43b9aa4c8394f3c2fd91ee18b1f85
Change-Id: I830a8eb13aa43b9aa4c8394f3c2fd91ee18b1f85
(cherry picked from commit e649b8066c3385ba0b667a79d378402b15ef3127)
2018-04-13 11:21:54 +09:00
Jiyong Park
6964add112 Make android.test.mock.stubs in Android.bp
Stubs libraries android.test.mock.stubs and
android.test.mock.stubs-system are now built in Android.bp.
(Note that API check and update are still done in Android.mk)

As a good side effect, this allows android.test.runner[-minus-junit]
libraries (that are defined in Android.bp) to be built with the
android.test.mock.stubs instead of the runtime library
android.test.mock. This in turn allows us to prevent java:sdk ->
java:platform dependency also in Soong, because the runner libraries
were the only violators.

Bug: 73829976
Test: m -j android.test.mock.stubs android.test.mock.stubs-system
Test: m -j checkapi
Test: m -j update-api
Merged-In: I830a8eb13aa43b9aa4c8394f3c2fd91ee18b1f85
Change-Id: I830a8eb13aa43b9aa4c8394f3c2fd91ee18b1f85
(cherry picked from commit e649b8066c3385ba0b667a79d378402b15ef3127)
2018-03-30 14:57:11 +09:00
Anton Hansson
a3e79fbb8c frameworks/base: Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Change-Id: Ibcffec873a693d1c792ca210fb597d2bf37e9068
Merged-In: I4233b9091d9066c4fa69f3d24aaf367ea500f760
2018-02-28 17:15:21 +00:00
Anton Hansson
3ee84990de Merge "frameworks/base: Set LOCAL_SDK_VERSION where possible." 2018-02-28 17:09:04 +00:00
Anton Hansson
ab6ec61251 frameworks/base: Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Change-Id: I4233b9091d9066c4fa69f3d24aaf367ea500f760
2018-02-28 15:13:23 +00:00
Paul Duffin
bedfae9801 Remove repackaged.android.test.mock
The repackaged.android.test.mock uses internal APIs so cannot be built
against the SDK which means that anything that depends on it cannot
guarantee to run if those internal APIs change.

That library was built because the classes in
repackaged.android.test.runner depend on them. However, the
repackaged.android.test.runner library is only used by the
cts-api-signature-test target and it does not use any android.test.mock
classes directly, or indirectly. Therefore, this simply excludes any
classes from repackaged.android.test.runner that depend on
android.test.mock classes so that repackaged.android.test.mock can be
removed altogether.

Bug: 69899800
Bug: 30188076
Test: make checkbuild
Change-Id: If4528e6a4ec2b08faffd6d413672c5004d85e0a9
2018-02-26 11:57:26 +00:00
Treehugger Robot
919ff2268b Merge changes I8e432950,Id325b8cf
* changes:
  Build android.test.base/legacy against SDK
  Fix visibility issues with android.test.mock.stubs
2018-02-22 13:39:10 +00:00
Jiyong Park
029925aa04 Build android.test.runner and its variants with SDK
They are not using any private APIs, thus eligible to be built with SDK.

Test: m -j
Change-Id: I82c7e2a739a40d6d2f1488164b25503a8a454b0d
2018-02-22 14:16:35 +09:00
Paul Duffin
4cdec67417 Build android.test.base/legacy against SDK
android.test.legacy is now build against SDK, thus available to apps
build with SDK.

In doing so, android.test.mock.stubs had to be built with SDK (because
it is used by android.test.legacy). However, this wasn't trivial.

The problem was that some classes in test-mock implemented abstract
methods of platform classes. Even though they are marked as @hide,
doclava automatically emit them to the stub file because otherwise the
class in the stub file does not implement some abstract methods from its
parent class, which in turn makes the stub file non-compilable.

This CL solves the problem by introducing an adapter class in between
the class in test-mock and the class in the framework. The adapter class
implements abstract methods which are @hide and having reference to
types that aren't available to SDK. The abstract methods are removed
from the original class. Then doclava does not emit the abstract
methods.

Also by @hide'ing the adapter classes, they are not compiled when
building the stub library.

Bug: 30188076
Bug: 73339598
Test: m -j android.test.base
Test: m -j android.test.legacy
Test: m -j android.test.mock.stubs
are successful and do not show link-check warning
Merged-In: I8e432950e693ee3c6f0240852e62da6133d31571
Change-Id: I8e432950e693ee3c6f0240852e62da6133d31571
2018-02-21 15:59:56 +00:00
TreeHugger Robot
db69b25f44 Merge "Build android.test.base/legacy against SDK" 2018-02-21 15:56:08 +00:00
Paul Duffin
7fbf7dba6f Merge "Turn on DepAnn for test-base and test-runner" am: 8dbbc3543e am: 38a916fb74
am: 01bdda9de8

Change-Id: I6805f692437719838bef7a4b7e51b3130d6f384e
2018-02-19 16:45:03 +00:00
Paul Duffin
001d87c81f Build android.test.base/legacy against SDK
android.test.legacy is now build against SDK, thus available to apps
build with SDK.

In doing so, android.test.mock.stubs had to be built with SDK (because
it is used by android.test.legacy). However, this wasn't trivial.

The problem was that some classes in test-mock implemented abstract
methods of platform classes. Even though they are marked as @hide,
doclava automatically emit them to the stub file because otherwise the
class in the stub file does not implement some abstract methods from its
parent class, which in turn makes the stub file non-compilable.

This CL solves the problem by introducing an adapter class in between
the class in test-mock and the class in the framework. The adapter class
implements abstract methods which are @hide and having reference to
types that aren't available to SDK. The abstract methods are removed
from the original class. Then doclava does not emit the abstract
methods.

Also by @hide'ing the adapter classes, they are not compiled when
building the stub library.

Bug: 30188076
Bug: 73339598
Test: m -j android.test.base
Test: m -j android.test.legacy
Test: m -j android.test.mock.stubs
are successful and do not show link-check warning
Change-Id: I8e432950e693ee3c6f0240852e62da6133d31571
2018-02-18 21:47:42 +09:00
Paul Duffin
2d86c7a4c7 Turn on DepAnn for test-base and test-runner
Bug: 30188076
Test: m -j20 RUN_ERROR_PRONE=true android.test.base android.test.runner
Change-Id: I735e3fbfcc710f1dc1b96e04f91b9feda8727b6c
2018-02-16 15:40:24 +00:00
Tobias Thierer
12afc7fd7e Merge "Pin jarjar targets to java_version 1.8." am: 2bbf12aa78 am: 3f48e86917
am: be3a10993f

Change-Id: Ib098b09674edb62f5a27be70f4c3be911a7e0cf6
2018-02-07 03:34:16 +00:00
Tobias Thierer
2bbf12aa78 Merge "Pin jarjar targets to java_version 1.8." 2018-02-07 00:16:04 +00:00
Paul Duffin
c1de91c109 Merge "Correct inaccurate comments in build files" am: f55f221805 am: 654f09c3dd
am: 0c0d7091e6

Change-Id: I3c126807e8dc354e603baa439e05ac1e5a9c8676
2018-02-06 15:48:24 +00:00
Paul Duffin
4ea70a23ea Modify android.test.runner to use new mock APIs
Previous change added some new public APIs to allow the
android.test.runner classes to be built against the public API stubs
rather than the internal classes. This change updates the
android.test.runner classes to use that new API.

This in turn is preparation for building an android.test.legacy library
that can be safely statically included in APKs.

Bug: 30188076
Test: make checkbuild

(cherry picked from commit 20af1df63f77f6b3ab12fd6221f581fe84182091)

Merged-In: I302626abb7e048ef0c3169e9a5209b85f2f87d34
Change-Id: Ie05a17598fcabc1189cacc912c01a25782ebd29c
2018-02-06 13:38:44 +00:00
Paul Duffin
f24612b176 Correct inaccurate comments in build files
Bug: 30188076
Test: make checkbuild
Change-Id: I3881e66a949bfc5fbc34db0a104ef7a6995abe35
2018-02-06 13:38:44 +00:00
Tobias Thierer
d65595a94e Pin jarjar targets to java_version 1.8.
This CL pins the following make targets to java_version 1.8,
which is currently the default:
  framework-protos
  repackaged.android.test.base
  repackaged.android.test.mock
  repackaged.android.test.runner

For consistency, their dependencies,
  android.test.base
  android.test.mock
  android.test.runner
which contain .java source files, are also pinned to 1.8.

This is so that the two steps:
 a) update jarjar to support v53 class files
 b) support -target 1.9 in the rest of the toolchain
can be completed in any order, in future CLs. Before this CL,
they would have needed to be completed in order a), b).

Bug: 72703434
Test: EXPERIMENTAL_USE_OPENJDK9=true USE_R8=true make checkbuild docs
      (in a client where CL http://r.android.com/596874 was reverted)

Change-Id: If78067294ae7ab78997aa109b0e08be427bdf0b8
2018-02-05 21:14:24 +00:00
Paul Duffin
3212bdbb3e Create test-legacy/ for android.test.legacy target
The android.test.legacy (and legacy-android-test) target depends on
code from both test-base/ and test-runner/ and do not really belong
in either folder.

Having a separate folder will also provide a convenient place for
the artifacts needed to publish android.test.legacy to
maven.google.com.

Bug: 30188076
Test: make checkbuild

(cherry picked from commit 898e7de6c71e00e11f299b67bd62d4af5fd12ca2)

Change-Id: I0538281980a55178dd72e5fae16d817cd31aa104
2018-01-31 11:21:22 +00:00
Paul Duffin
cc600d6d47 Build test-runner/tests
Previous change e254526f0fe5d22681555bd4a00b7ee96fee1dc1 inadvertently
removed the line to include the tests/Android.mk file.

(cherry picked from commit 006b7a2b760b89211b9530804118a8333cee314b)

Bug: 30188076
Test: make checkbuild
Change-Id: I59bd6ec5d317eb6306642974902e4c061e594aa8
Merged-In: Ia0ba14a70d2232d464420265a7a5f9c4dde3661b
2018-01-30 12:39:09 +00:00