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());
+        }
+    }
 }