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
It looks as though the tests in test-runner/tests have not actually been
run successfully for over 7 years. As a result they have degraded. This
change fixes the tests so that they will pass and provides instructions
on how to run them.
TestCaseUtilTest.testGetTestCaseNamesForTestSuiteWithSuiteMethod
This fails because it expected 2 names to be returned but only
returns 0. The reason for that is although TwoTestsInTestSuite has a
Test suite() method that does create a TestSuite with two tests the
TestCaseUtil method does not actually call suite(). Instead, because
TwoTestsInTestSuite is a TestSuite it just calls the tests() method
on it which returns an empty Enumeration because TwoTestsInTestSuite
is empty.
The support for "static Test suite() {}" is broken but fixing this
will affect the behavior of InstrumentationTestRunner which is used
in thousands of different places both in and outside Google and so
could cause untold problems.
TestSuiteBuilderTest.testIncludeAllPackagesUnderHere
Reformat the list, one per line and then add missing name
"testPublicConstructor".
ErrorTest/FailingTest
These tests are not meant to be run on their own, only as part of a
separate test. The RunAsPartOfSeparateTest annotation was added to
allow these to be excluded using notAnnotation as shown in the
instructions for running the tests.
Bug: 30188076
Test: followed new instructions in test-runner/tests/Android.mk
Change-Id: I60e7bee9cd08a9ab7777a2578fc58da772de5c1f
In preparation for removing junit classes from the Android API
the legacy-test target will be removed from the
TARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit
dependencies on junit and/or legacy-android-test to ensure that
modules will compile properly once it is removed.
(cherry picked from 6387604f9e672ece85e07c4bcbd7be396867f06f)
Bug: 30188076
Test: make checkbuild
Merged-In: I13e88297731253420e4e5f5291d503f13a39a156
Change-Id: I58446eb8c45d8ac2bcdbc9fa40d1321e811bdd4b