From e2e557976f1d68bf4d6a147ec484e5455f15eeef Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Tue, 20 Jun 2017 14:53:48 +0100 Subject: Cleanup a.t.TestGrouping TestGrouping is not part of the API but is used by classes that are and so will need to be included in the static library we ship as part of the SDK. As that library will be built directly from the source (as opposed to android.jar which is built from stubs) developers will be able to see classes and methods that are hidden and so not present in the stubs. This change makes TestGrouping and its members as inaccessible as possible. Unused methods and fields were removed and the TestGrouping class was simplified by passing the ClassLoader into the constructor, initializing the classLoader, making the classLoader field final, and removing the setClassLoader(ClassLoader) method. Bug: 30188076 Test: make checkbuild Change-Id: Ie0545b1a61b74cdbc78667417f360b5197e2e128 --- .../android/test/suitebuilder/TestGrouping.java | 43 +++++----------------- .../test/suitebuilder/TestSuiteBuilder.java | 14 +------ .../test/suitebuilder/TestGroupingTest.java | 2 +- 3 files changed, 13 insertions(+), 46 deletions(-) diff --git a/test-runner/src/android/test/suitebuilder/TestGrouping.java b/test-runner/src/android/test/suitebuilder/TestGrouping.java index a2b94ff45035..307afb55e47a 100644 --- a/test-runner/src/android/test/suitebuilder/TestGrouping.java +++ b/test-runner/src/android/test/suitebuilder/TestGrouping.java @@ -44,23 +44,23 @@ import java.util.TreeSet; * * {@hide} Not needed for 1.0 SDK. */ -public class TestGrouping { +class TestGrouping { private static final String LOG_TAG = "TestGrouping"; - SortedSet> testCaseClasses; + private final SortedSet> testCaseClasses; - public static final Comparator> SORT_BY_SIMPLE_NAME + static final Comparator> SORT_BY_SIMPLE_NAME = new SortBySimpleName(); - public static final Comparator> SORT_BY_FULLY_QUALIFIED_NAME + static final Comparator> SORT_BY_FULLY_QUALIFIED_NAME = new SortByFullyQualifiedName(); - protected String firstIncludedPackage = null; - private ClassLoader classLoader; + private final ClassLoader classLoader; - public TestGrouping(Comparator> comparator) { + TestGrouping(Comparator> comparator, ClassLoader classLoader) { testCaseClasses = new TreeSet>(comparator); + this.classLoader = classLoader; } /** @@ -77,15 +77,11 @@ public class TestGrouping { return testMethods; } - protected List getTestMethods(Class testCaseClass) { + private List getTestMethods(Class testCaseClass) { List methods = Arrays.asList(testCaseClass.getMethods()); return select(methods, new TestMethodPredicate()); } - SortedSet> getTestCaseClasses() { - return testCaseClasses; - } - public boolean equals(Object o) { if (this == o) { return true; @@ -110,9 +106,8 @@ public class TestGrouping { * or in a sub-package. * * @param packageNames Names of packages to add. - * @return The {@link TestGrouping} for method chaining. */ - public TestGrouping addPackagesRecursive(String... packageNames) { + void addPackagesRecursive(String... packageNames) { for (String packageName : packageNames) { List> addedClasses = testCaseClassesInPackage(packageName); if (addedClasses.isEmpty()) { @@ -120,11 +115,7 @@ public class TestGrouping { + "' could not be found or has no tests"); } testCaseClasses.addAll(addedClasses); - if (firstIncludedPackage == null) { - firstIncludedPackage = packageName; - } } - return this; } /** @@ -132,21 +123,11 @@ public class TestGrouping { * specified. * * @param packageNames Names of packages to remove. - * @return The {@link TestGrouping} for method chaining. */ - public TestGrouping removePackagesRecursive(String... packageNames) { + void removePackagesRecursive(String... packageNames) { for (String packageName : packageNames) { testCaseClasses.removeAll(testCaseClassesInPackage(packageName)); } - return this; - } - - /** - * @return The first package name passed to {@link #addPackagesRecursive(String[])}, or null - * if that method was never called. - */ - public String getFirstIncludedPackage() { - return firstIncludedPackage; } private List> testCaseClassesInPackage(String packageName) { @@ -176,10 +157,6 @@ public class TestGrouping { return selectedItems; } - public void setClassLoader(ClassLoader classLoader) { - this.classLoader = classLoader; - } - /** * Sort classes by their simple names (i.e. without the package prefix), using * their packages to sort classes with the same name. diff --git a/test-runner/src/android/test/suitebuilder/TestSuiteBuilder.java b/test-runner/src/android/test/suitebuilder/TestSuiteBuilder.java index cf6936bee643..6158e0cf14f4 100644 --- a/test-runner/src/android/test/suitebuilder/TestSuiteBuilder.java +++ b/test-runner/src/android/test/suitebuilder/TestSuiteBuilder.java @@ -44,8 +44,7 @@ import java.util.Collections; @Deprecated public class TestSuiteBuilder { - private Context context; - private final TestGrouping testGrouping = new TestGrouping(SORT_BY_FULLY_QUALIFIED_NAME); + private final TestGrouping testGrouping; private final Set> predicates = new HashSet>(); private List testCases; private TestSuite rootSuite; @@ -67,7 +66,7 @@ public class TestSuiteBuilder { public TestSuiteBuilder(String name, ClassLoader classLoader) { this.suiteName = name; - this.testGrouping.setClassLoader(classLoader); + this.testGrouping = new TestGrouping(SORT_BY_FULLY_QUALIFIED_NAME, classLoader); this.testCases = new ArrayList<>(); addRequirements(REJECT_SUPPRESSED); } @@ -244,15 +243,6 @@ public class TestSuiteBuilder { } } - /** - * @return the test package that represents the packages that were included for our test suite. - * - * {@hide} Not needed for 1.0 SDK. - */ - protected TestGrouping getTestGrouping() { - return testGrouping; - } - private boolean satisfiesAllPredicates(TestMethod test) { for (Predicate predicate : predicates) { if (!predicate.apply(test)) { diff --git a/test-runner/tests/src/android/test/suitebuilder/TestGroupingTest.java b/test-runner/tests/src/android/test/suitebuilder/TestGroupingTest.java index f4477d1c780e..972bfb49e75f 100644 --- a/test-runner/tests/src/android/test/suitebuilder/TestGroupingTest.java +++ b/test-runner/tests/src/android/test/suitebuilder/TestGroupingTest.java @@ -30,7 +30,7 @@ public class TestGroupingTest extends TestCase { @Override protected void setUp() throws Exception { super.setUp(); - mGrouping = new TestGrouping(TestGrouping.SORT_BY_SIMPLE_NAME); + mGrouping = new TestGrouping(TestGrouping.SORT_BY_SIMPLE_NAME, getClass().getClassLoader()); } /** -- cgit v1.2.3-59-g8ed1b