Execute remaining tests in order.
Bug 5513628
Change-Id: I36b85c3ecb5cfaeebdc7538db0bbf917053b4957
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestFilter.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestFilter.java
index 58eee23..053b265 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestFilter.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestFilter.java
@@ -20,7 +20,10 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
/**
@@ -91,10 +94,10 @@
* Filter the list of tests based on rules in this filter
*
* @param tests the list of tests to filter
- * @return a new list of tests that passed the filter
+ * @return a new sorted list of tests that passed the filter
*/
public Collection<TestIdentifier> filter(Collection<TestIdentifier > tests) {
- Collection<TestIdentifier> filteredTests = new ArrayList<TestIdentifier>(tests.size());
+ List<TestIdentifier> filteredTests = new ArrayList<TestIdentifier>(tests.size());
for (TestIdentifier test : tests) {
if (mIncludedClass != null && !test.getClassName().equals(mIncludedClass)) {
// skip
@@ -114,6 +117,7 @@
}
filteredTests.add(test);
}
+ Collections.sort(filteredTests, new TestIdComparator());
return filteredTests;
}
@@ -123,4 +127,16 @@
public boolean hasExclusion() {
return !mExcludedClasses.isEmpty() || !mExcludedTests.isEmpty();
}
+
+ /**
+ * A {@link Comparator} for {@link TestIdentifier} that compares using
+ * {@link TestIdentifier#toString()}
+ */
+ private class TestIdComparator implements Comparator<TestIdentifier> {
+
+ @Override
+ public int compare(TestIdentifier o1, TestIdentifier o2) {
+ return o1.toString().compareTo(o2.toString());
+ }
+ }
}