Fix instrumentation test tracking.

Track completed tests, rather than any test that was started.

Bug 5609457

Change-Id: I962779f3200a7464ff58cac3e923efa045caa4ba
diff --git a/src/com/android/tradefed/result/TestRunResult.java b/src/com/android/tradefed/result/TestRunResult.java
index 1c6a04c..ac87eea 100644
--- a/src/com/android/tradefed/result/TestRunResult.java
+++ b/src/com/android/tradefed/result/TestRunResult.java
@@ -22,6 +22,7 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -130,10 +131,16 @@
     }
 
     /**
-     * Gets the set of tests executed.
+     * Gets the set of completed tests.
      */
-    public Set<TestIdentifier> getTests() {
-        return mTestResults.keySet();
+    public Set<TestIdentifier> getCompletedTests() {
+        Set<TestIdentifier> completedTests = new LinkedHashSet<TestIdentifier>();
+        for (Map.Entry<TestIdentifier, TestResult> testEntry : getTestResults().entrySet()) {
+            if (!testEntry.getValue().getStatus().equals(TestStatus.INCOMPLETE)) {
+                completedTests.add(testEntry.getKey());
+            }
+        }
+        return completedTests;
     }
 
     /**
diff --git a/src/com/android/tradefed/testtype/InstrumentationTest.java b/src/com/android/tradefed/testtype/InstrumentationTest.java
index 628ae67..38819c2 100644
--- a/src/com/android/tradefed/testtype/InstrumentationTest.java
+++ b/src/com/android/tradefed/testtype/InstrumentationTest.java
@@ -457,7 +457,7 @@
      */
     private void calculateRemainingTests(Collection<TestIdentifier> expectedTests,
             CollectingTestListener testTracker) {
-        expectedTests.removeAll(testTracker.getCurrentRunResults().getTests());
+        expectedTests.removeAll(testTracker.getCurrentRunResults().getCompletedTests());
     }
 
     /**
@@ -523,7 +523,7 @@
                 return null;
             } else {
                 // success!
-                return runResults.getTests();
+                return runResults.getCompletedTests();
             }
         }
         if (communicationFailure) {
diff --git a/tests/src/com/android/tradefed/result/CollectingTestListenerTest.java b/tests/src/com/android/tradefed/result/CollectingTestListenerTest.java
index 75d200f..cfdfa69 100644
--- a/tests/src/com/android/tradefed/result/CollectingTestListenerTest.java
+++ b/tests/src/com/android/tradefed/result/CollectingTestListenerTest.java
@@ -118,8 +118,8 @@
         assertEquals(1, mCollectingTestListener.getRunResults().size());
         TestRunResult runResult = mCollectingTestListener.getCurrentRunResults();
         assertEquals(2, runResult.getNumPassedTests());
-        assertTrue(runResult.getTests().contains(test1));
-        assertTrue(runResult.getTests().contains(test2));
+        assertTrue(runResult.getCompletedTests().contains(test1));
+        assertTrue(runResult.getCompletedTests().contains(test2));
     }
 
     /**