summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2017-06-20 14:53:48 +0100
committerPaul Duffin <paulduffin@google.com>2017-06-20 15:29:57 +0100
commite2e557976f1d68bf4d6a147ec484e5455f15eeef (patch)
tree22b1af76216a1465201e9a1b91aa9f1e13c4ee49
parent48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22 (diff)
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
-rw-r--r--test-runner/src/android/test/suitebuilder/TestGrouping.java43
-rw-r--r--test-runner/src/android/test/suitebuilder/TestSuiteBuilder.java14
-rw-r--r--test-runner/tests/src/android/test/suitebuilder/TestGroupingTest.java2
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<Class<? extends TestCase>> testCaseClasses;
+ private final SortedSet<Class<? extends TestCase>> testCaseClasses;
- public static final Comparator<Class<? extends TestCase>> SORT_BY_SIMPLE_NAME
+ static final Comparator<Class<? extends TestCase>> SORT_BY_SIMPLE_NAME
= new SortBySimpleName();
- public static final Comparator<Class<? extends TestCase>> SORT_BY_FULLY_QUALIFIED_NAME
+ static final Comparator<Class<? extends TestCase>> SORT_BY_FULLY_QUALIFIED_NAME
= new SortByFullyQualifiedName();
- protected String firstIncludedPackage = null;
- private ClassLoader classLoader;
+ private final ClassLoader classLoader;
- public TestGrouping(Comparator<Class<? extends TestCase>> comparator) {
+ TestGrouping(Comparator<Class<? extends TestCase>> comparator, ClassLoader classLoader) {
testCaseClasses = new TreeSet<Class<? extends TestCase>>(comparator);
+ this.classLoader = classLoader;
}
/**
@@ -77,15 +77,11 @@ public class TestGrouping {
return testMethods;
}
- protected List<Method> getTestMethods(Class<? extends TestCase> testCaseClass) {
+ private List<Method> getTestMethods(Class<? extends TestCase> testCaseClass) {
List<Method> methods = Arrays.asList(testCaseClass.getMethods());
return select(methods, new TestMethodPredicate());
}
- SortedSet<Class<? extends TestCase>> 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<Class<? extends TestCase>> 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<Class<? extends TestCase>> 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<Predicate<TestMethod>> predicates = new HashSet<Predicate<TestMethod>>();
private List<TestCase> 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<TestMethod> 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());
}
/**