Commit Graph

413 Commits

Author SHA1 Message Date
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 20af1df63f)

Merged-In: I302626abb7e048ef0c3169e9a5209b85f2f87d34
Change-Id: Ie05a17598fcabc1189cacc912c01a25782ebd29c
2018-02-06 13:38:44 +00:00
Paul Duffin
69516f4df7 Separate android.test.mock from test-runner source
Extracts the source for the android.test.mock library from the
frameworks/base/test-runner directory into its own
frameworks/base/test-mock directory. They are already treated separately
at runtime and compile time so this just makes the separation complete.

Bug: 30188076
Test: make checkbuild
Change-Id: I20e5b06ba79677e76117c82e9f9e2ecd15e5fed6
Merged-In: I20e5b06ba79677e76117c82e9f9e2ecd15e5fed6
(cherry picked from commit e254526f0f)
2017-12-12 23:23:31 +00:00
Jeff Sharkey
2337aec921 Deeper sanity checking of emitted types.
When emitting a method or field, verify that we're able to reference
all mentioned types.  This ensures that we don't accidentally
reference undefined classes/interfaces.

Test: manual inspection of API files
Bug: 69791141
Change-Id: I84e0c87fe83daa118661f61dbdf17b58ea5282d4
Merged-In: I84e0c87fe83daa118661f61dbdf17b58ea5282d4
2017-12-07 00:22:25 -07:00
Todd Kennedy
ef86310c44 @hide new API
Change-Id: Ic9cf7ecd80dd99eb8bcfc9810f4a9fddfe8f8fe4
Fixes: 64568898
Test: None. No code change.
2017-08-11 10:42:14 -07:00
Todd Kennedy
9da8b8a7fc Add new API to retrieve app names in a batch
Change-Id: I57e5c132bc58a32d70007a7a105775b526ff7bb9
Fixes: 62805090
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_null
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_empty
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_valid
2017-07-31 11:29:37 -07:00
Paul Duffin
2d6ef69895 Merge "Clean up ClassPathPackageInfoSource" am: 8c7026c5a3 am: 1c6a5ad92e am: 88d54c3080
am: 06620ee22d

Change-Id: I1a4de01fe23a03b42c052f23733d95e07135ab73
2017-06-27 11:09:09 +00:00
Paul Duffin
06620ee22d Merge "Clean up ClassPathPackageInfoSource" am: 8c7026c5a3 am: 1c6a5ad92e
am: 88d54c3080

Change-Id: I3716fc728a6789a33851f4f0ad30a3ad9f421a17
2017-06-27 11:03:11 +00:00
Paul Duffin
1c6a5ad92e Merge "Clean up ClassPathPackageInfoSource"
am: 8c7026c5a3

Change-Id: I503ae16c4d47ce3cecb79987da919c7f579347da
2017-06-27 10:52:39 +00:00
Paul Duffin
aaaba76810 Clean up ClassPathPackageInfoSource
Part of the work of removing JUnit and dependent android.test classes
from the Android API involves providing a static library that developers
can include in their test applications to ease migration. That library
will be built directly from the source (as opposed to android.jar which
is built from stubs) and so developers will be able to see classes and
methods that are not present in the stubs. This change is one of a
number of similar changes that cleanup the existing non-API code in
order to minimize the additional methods and classes exposed externally.
The basic approach is to remove unused classes and methods, use least
visible access modifier possible and generally minimize the amount of
publicly visible code.

PackageInfoSources only provided a static field and accessor method so
they were moved into ClassPathPackageInfoSource and PackageInfoSources
was removed.

ClassPathPackageInfo was only used in ClassPathPackageInfoSource and in
TestGrouping. In the latter it was simply used as an intermediate value
between ClassPathPackageInfoSource.getPackage(String packageName) and
ClassPathPackageInfo.getTopLevelClassesRecursive(String packageName).
Moving that method into ClassPathPackageInfoSource allowed the
ClassPathPackageInfo to become an inner class of
ClassPathPackageInfoSource. As it is an inner class it no longer needed
an explicit reference to the containing ClassPathPackageInfoSource.

Bug: 30188076
Test: make checkbuild and ran FrameworkTestRunnerTests
Change-Id: Idb0b6a585030805b9cff8562abb93b7e5920c53a
2017-06-26 17:00:21 +01:00
Paul Duffin
9dbcd93061 Merge "Remove a.t.TestCase" am: 3c5ab7d324 am: 930ab689f0 am: 143f5d652c
am: 8d33b10edb

Change-Id: I372ea1e9456a303903bb57929129cc3f922cb8d9
2017-06-26 14:57:34 +00:00
Paul Duffin
8d33b10edb Merge "Remove a.t.TestCase" am: 3c5ab7d324 am: 930ab689f0
am: 143f5d652c

Change-Id: I1b2212164ab566f3619cdbe307ff9ee600242424
2017-06-26 14:50:38 +00:00
Paul Duffin
143f5d652c Merge "Remove a.t.TestCase" am: 3c5ab7d324
am: 930ab689f0

Change-Id: I0d61b4e26c9551d177b5bb7bbdaab25885976c0d
2017-06-26 14:43:13 +00:00
Paul Duffin
3c5ab7d324 Merge "Remove a.t.TestCase" 2017-06-26 14:24:31 +00:00
Paul Duffin
210a7331aa Merge "Clean up Predicate related code in android.test" into oc-dev-plus-aosp am: 50826c5f2e
am: 4f9d89a380

Change-Id: I24b978bb63875ed7e1af7041f8ecbbfc482e0614
2017-06-26 13:29:23 +00:00
Paul Duffin
4f9d89a380 Merge "Clean up Predicate related code in android.test" into oc-dev-plus-aosp
am: 50826c5f2e

Change-Id: Ica9b9b478b670ec5467732a09cf123dd63780c97
2017-06-26 13:21:28 +00:00
Paul Duffin
50826c5f2e Merge "Clean up Predicate related code in android.test" into oc-dev-plus-aosp 2017-06-26 13:15:09 +00:00
Paul Duffin
99c879f1d3 Merge "Removed a.t.TestRunner and cleanup a.t.TestPrinter" am: 1ed43cafb6 am: 4601ebf945 am: 1fee4dcd5d
am: 88f06cba46

Change-Id: I4c8b5ff724ccb73a681ba5bef86ebe5a502383be
2017-06-26 11:49:54 +00:00
Paul Duffin
88f06cba46 Merge "Removed a.t.TestRunner and cleanup a.t.TestPrinter" am: 1ed43cafb6 am: 4601ebf945
am: 1fee4dcd5d

Change-Id: I6362ff0e8e76efd4d7b8c326f77b282740d01e03
2017-06-26 11:42:54 +00:00
Paul Duffin
1fee4dcd5d Merge "Removed a.t.TestRunner and cleanup a.t.TestPrinter" am: 1ed43cafb6
am: 4601ebf945

Change-Id: Icf7b8d1f5a3e0d18cd9a096a8171d6dab98b5992
2017-06-26 11:35:00 +00:00
Paul Duffin
1ed43cafb6 Merge "Removed a.t.TestRunner and cleanup a.t.TestPrinter" 2017-06-26 11:21:22 +00:00
Paul Duffin
19290e456f Merge "Clean up TestCaseUtil" am: 43851d01d8 am: e38d503394 am: b5b6e7cf45
am: ad654a3af5

Change-Id: Idd36689c3a90728ee543be0ffa7457fe79b66ba3
2017-06-26 09:50:09 +00:00
Paul Duffin
ad654a3af5 Merge "Clean up TestCaseUtil" am: 43851d01d8 am: e38d503394
am: b5b6e7cf45

Change-Id: I98265e973df1bf7ac28b7f79f6ccd0a865762304
2017-06-26 09:41:44 +00:00
Paul Duffin
b5b6e7cf45 Merge "Clean up TestCaseUtil" am: 43851d01d8
am: e38d503394

Change-Id: I62a80b405d05ec7b4da050bd6b01df4c965d6187
2017-06-26 09:33:23 +00:00
Seigo Nonaka
c25c3da8b6 Stop loading other package's font by default.
Since CONTEXT_RESTRICTED is not a default flag of createPackageContext,
we can't rely on it for preventing unexpected font injections.
To protect developers and existing apps from a risk of font injection,
stop loading font from other package's resouce unless the developer
explicitly set CONTEXT_IGNORE_SECURITY.

Bug: 62813533
Bug: 62879353
Test: Manually done
Merged-In: I4442ddc48dadb5c968b444be86038b602074d301
Change-Id: I4442ddc48dadb5c968b444be86038b602074d301
(cherry picked from commit 6d6cd68660)
2017-06-23 12:27:23 +00:00
Seigo Nonaka
ba12631bba Merge "Stop loading other package's font by default." into oc-dev
am: 824d75e0e1

Change-Id: I5518dbd8b5d8a4548ea00bbfca0e3aee87880ee7
2017-06-23 04:23:44 +00:00
Seigo Nonaka
80f6a985c3 Stop loading other package's font by default.
Since CONTEXT_RESTRICTED is not a default flag of createPackageContext,
we can't rely on it for preventing unexpected font injections.
To protect developers and existing apps from a risk of font injection,
stop loading font from other package's resouce unless the developer
explicitly set CONTEXT_IGNORE_SECURITY.

This CL contains Iac2a6fb3d82ef23d5ca6ee33f4aaa9ed28455271 by manual
merging to handle repository split.

Bug: 62813533
Bug: 62879353
Test: Manually done
Merged-In: I4442ddc48dadb5c968b444be86038b602074d301
Change-Id: I4442ddc48dadb5c968b444be86038b602074d301
2017-06-22 19:07:17 -07:00
TreeHugger Robot
abc6fd57de Merge "Stop loading other package's font by default." 2017-06-22 22:28:10 +00:00
Seigo Nonaka
6d6cd68660 Stop loading other package's font by default.
Since CONTEXT_RESTRICTED is not a default flag of createPackageContext,
we can't rely on it for preventing unexpected font injections.
To protect developers and existing apps from a risk of font injection,
stop loading font from other package's resouce unless the developer
explicitly set CONTEXT_IGNORE_SECURITY.

Bug: 62813533
Bug: 62879353
Test: Manually done
Change-Id: I4442ddc48dadb5c968b444be86038b602074d301
2017-06-22 08:36:03 -07:00
Paul Duffin
fedb4b7456 Clean up Predicate related code in android.test
Part of the work of removing JUnit and dependent android.test classes
from the Android API involves providing a static library that developers
can include in their test applications to ease migration. That library
will be built directly from the source (as opposed to android.jar which
is built from stubs) and so developers will be able to see classes and
methods that are not present in the stubs. This change is one of a
number of similar changes that cleanup the existing non-API code in
order to minimize the additional methods and classes exposed externally.
The basic approach is to remove unused classes and methods, use least
visible access modifier possible and generally minimize the amount of
publicly visible code.

The HasClassAnnotation and HasMethodAnnotation were never used
separately and only used by HasAnnotation. This merges the functionality
into a single nested class in TestPredicates, hidden behind the new
TestPredicates.hasAnnotation(). The HasAnnotationTest was renamed as
TestPredicatesTest and the HasClassAnnotationTest and
HasMethodAnnotationTest classes were removed as their tests provide no
additional coverage. The removal of the Has*Annotation.java files means
that the test-runner/src/android/test/suitebuilder/annotation/ directory
is empty apart from the package.html file so that was moved to
legacy-test to sit alongside the actual annotation classes.

The Predicates class, while part of the legacy-test module was only
ever used by the test-runner module and only its not() method was
actually used. So, the not() method and associated nested class were
moved to TestPredicates, the tests for not() were moved to
TestPredicatesTest and the Predicates* classes were removed.
That allowed for the removal of the legacy-android-tests as that is now
empty.

TestPredicates has a number of constants that were public. They were
hidden by moving them to the class that actually used them.

A minor generic issue was fixed in AssignableFrom.

Bug: 30188076
Test: make checkbuild and run FrameworkTestRunnerTests
Change-Id: I861da388a4146bb28e1e480d1b7ba9137b7b270e
2017-06-22 15:48:44 +01:00
Paul Duffin
bd96f40808 Clean up TestCaseUtil
Part of the work of removing JUnit and dependent android.test classes
from the Android API involves providing a static library that developers
can include in their test applications to ease migration. That library
will be built directly from the source (as opposed to android.jar which
is built from stubs) and so developers will be able to see classes and
methods that are not present in the stubs. This change is one of a
number of similar changes that cleanup the existing non-API code in
order to minimize the additional methods and classes exposed externally.
The basic approach is to remove unused classes and methods, use least
visible access modifier possible and generally minimize the amount of
publicly visible code.

TestCaseUtil.getTestCaseNames() is only used by tests but its tests did
provide some coverage of the getTests() method so remove the method and
the tests the method was simply moved into TestCaseUtilTest and the
tests renamed to make it clearer that they are testing
TestCaseUtil.getTests().

Similarly, TestCaseUtil.createTestSuite() was only used by tests but its
tests did provide some coverage of the invokeSuiteMethodIfPossible()
method so the tests were modified and renamed to preserve that coverage.

TestCaseUtil.getTestAtIndex() was completely unused so was just removed.

Bug: 30188076
Test: make checkbuild and ran FrameworkTestRunnerTests
Change-Id: I62bbdbab428d7560f0c7df11f313fe60cfd31d13
2017-06-22 15:21:32 +01:00
Paul Duffin
e24e60ecac Remove a.t.TestCase
Part of the work of removing JUnit and dependent android.test classes
from the Android API involves providing a static library that developers
can include in their test applications to ease migration. That library
will be built directly from the source (as opposed to android.jar which
is built from stubs) and so developers will be able to see classes and
methods that are not present in the stubs. This change is one of a
number of similar changes that cleanup the existing non-API code in
order to minimize the additional methods and classes exposed externally.
The basic approach is to remove unused classes and methods, use least
visible access modifier possible and generally minimize the amount of
publicly visible code.

The android.test.TestCase class is only referenced from the
DatabasePerformanceTests class. There do not seem to be any references
to that class either and there is a NewDatabasePerformanceTests.java
file in the same directory that looks to be a JUnit based replacement.

Bug: 30188076
Test: make checkbuild and ran FrameworkTestRunnerTests
Change-Id: Iafb26dc98a40715244f07d1c9e05ada5b1602ebf
2017-06-22 15:21:11 +01:00
Paul Duffin
b3f83ae66b Removed a.t.TestRunner and cleanup a.t.TestPrinter
Part of the work of removing JUnit and dependent android.test classes
from the Android API involves providing a static library that developers
can include in their test applications to ease migration. That library
will be built directly from the source (as opposed to android.jar which
is built from stubs) and so developers will be able to see classes and
methods that are not present in the stubs. This change is one of a
number of similar changes that cleanup the existing non-API code in
order to minimize the additional methods and classes exposed externally.
The basic approach is to remove unused classes and methods, use least
visible access modifier possible and generally minimize the amount of
publicly visible code.

The TestRunner class is not part of the API and is unused anywhere
within Android code (apart from one unused import which is in the
process of being removed) and in TestPrinter.

TestPrinter is not part of the API and its only use of TestRunner is to
implement the TestRunner.TestListener interface. It was safe to stop
TestPrinter from implementing TestRunner.TestListener because the latter
is only called from TestRunner which itself is never used. TestPrinter
was made package private as it is only used from the same package.

One the usages in TestPrinter were removed it was safe to remove
TestRunner.

Bug: 30188076
Test: make checkbuild and ran FrameworkTestRunnerTests
Change-Id: I0f4a6cf1fbec14c4778c6e09b8eabf822802774f
2017-06-22 15:17:26 +01:00
Paul Duffin
00d4d01c3a Merge "Remove android.test dependencies on a.o.PerformanceCollector" 2017-06-21 11:27:01 +00:00
Paul Duffin
d2cc32bcde Merge "Cleanup a.t.TestGrouping" am: 01dcf54e9a am: e6ac3a4efc
am: e2744c2705

Change-Id: I3493057c8362733f117dbc25f654497b9f22f219
2017-06-21 09:24:58 +00:00
Paul Duffin
e2744c2705 Merge "Cleanup a.t.TestGrouping" am: 01dcf54e9a
am: e6ac3a4efc

Change-Id: Id41ba23de38e5131460cad283fd5d7bea66d2156
2017-06-21 09:18:01 +00:00
Treehugger Robot
01dcf54e9a Merge "Cleanup a.t.TestGrouping" 2017-06-21 09:03:29 +00:00
Paul Duffin
37bd29af88 Merge "Remove unused a.t.InstrumentationUtils" am: 0e4f1358d6 am: 08c12d21f5
am: b4621a4072

Change-Id: I76b035a84dd184b2ff92fc175df383bc9983f616
2017-06-21 08:32:18 +00:00
Paul Duffin
e1b439a06d Merge "Cleanup a.t.InstrumentationTestRunner" am: 9d5576e081 am: 66b8ef6615
am: 4d7e8fb79e

Change-Id: I6d1de1dcb677e6c2c85c75fe8c5166b07cf713dd
2017-06-21 08:29:30 +00:00
Paul Duffin
d1d3d0fcfc Merge "Remove unused a.t.s.InstrumentationTestSuiteBuilder" am: 1935dce8eb am: a4d2464189
am: 28600f2cae

Change-Id: I9004d50829d18736f6d50f6bd48cb6d7c3b6e605
2017-06-21 08:20:29 +00:00
Paul Duffin
b4621a4072 Merge "Remove unused a.t.InstrumentationUtils" am: 0e4f1358d6
am: 08c12d21f5

Change-Id: I46ab06228623aa4e350b1285761e062e1d7393c0
2017-06-21 08:16:42 +00:00
Paul Duffin
4d7e8fb79e Merge "Cleanup a.t.InstrumentationTestRunner" am: 9d5576e081
am: 66b8ef6615

Change-Id: I3ca3f23c2f8a741daf867aad08f57bac373e5d91
2017-06-21 08:13:05 +00:00
Paul Duffin
4aef87575c Merge "Remove unused android.test.DatabaseTestUtils" am: 3724e7e5e9 am: e6e0601862
am: f18dd720d3

Change-Id: I06d4ce8bf1b5ea985c5deda2e2d0fe5b1e7d79e5
2017-06-21 08:12:05 +00:00
Paul Duffin
28600f2cae Merge "Remove unused a.t.s.InstrumentationTestSuiteBuilder" am: 1935dce8eb
am: a4d2464189

Change-Id: I88278d5cfd8fc3466cce39de3de54e34d67cbe0f
2017-06-21 08:07:14 +00:00
Paul Duffin
f18dd720d3 Merge "Remove unused android.test.DatabaseTestUtils" am: 3724e7e5e9
am: e6e0601862

Change-Id: I2c5e4c7af30893d9183ee35326814fcb4506d0e8
2017-06-21 08:03:56 +00:00
Paul Duffin
0e4f1358d6 Merge "Remove unused a.t.InstrumentationUtils" 2017-06-21 07:46:41 +00:00
Paul Duffin
9d5576e081 Merge "Cleanup a.t.InstrumentationTestRunner" 2017-06-21 07:46:05 +00:00
Paul Duffin
1935dce8eb Merge "Remove unused a.t.s.InstrumentationTestSuiteBuilder" 2017-06-21 07:46:03 +00:00
Paul Duffin
3724e7e5e9 Merge "Remove unused android.test.DatabaseTestUtils" 2017-06-21 07:46:00 +00:00
Paul Duffin
c66966d750 Merge "Remove unused a.t.InstrumentationCoreTestRunner" am: 1bfccadc81 am: dfc6939ed5
am: b3be07bc77

Change-Id: I12a6133de7ec7101327424854cf7a46debe3362d
2017-06-20 15:14:22 +00:00
Paul Duffin
b3be07bc77 Merge "Remove unused a.t.InstrumentationCoreTestRunner" am: 1bfccadc81
am: dfc6939ed5

Change-Id: I5ccdb58bbcde73a33bdce9b65d95aad2bf7b931f
2017-06-20 15:05:46 +00:00