Add runtimes when parsing results in ResultHandler

Test: cts-tradefed run cts -r 0, verify test_result.xml
Bug:32810372
Change-Id: I7c722dfbec9d1da82b4e1c414d59df98a2e6792e
diff --git a/common/util/src/com/android/compatibility/common/util/ResultHandler.java b/common/util/src/com/android/compatibility/common/util/ResultHandler.java
index b883eda..435f515 100644
--- a/common/util/src/com/android/compatibility/common/util/ResultHandler.java
+++ b/common/util/src/com/android/compatibility/common/util/ResultHandler.java
@@ -155,6 +155,8 @@
                     int notExecuted =
                             Integer.parseInt(parser.getAttributeValue(NS, NOT_EXECUTED_ATTR));
                     module.setNotExecuted(notExecuted);
+                    int runtime = Integer.parseInt(parser.getAttributeValue(NS, RUNTIME_ATTR));
+                    module.addRuntime(runtime);
                     while (parser.nextTag() == XmlPullParser.START_TAG) {
                         parser.require(XmlPullParser.START_TAG, NS, CASE_TAG);
                         String caseName = parser.getAttributeValue(NS, NAME_ATTR);
diff --git a/common/util/tests/src/com/android/compatibility/common/util/ResultHandlerTest.java b/common/util/tests/src/com/android/compatibility/common/util/ResultHandlerTest.java
index b9e428f..0dfe3f3 100644
--- a/common/util/tests/src/com/android/compatibility/common/util/ResultHandlerTest.java
+++ b/common/util/tests/src/com/android/compatibility/common/util/ResultHandlerTest.java
@@ -49,6 +49,8 @@
     private static final String DONE_B = "true";
     private static final String NOT_EXECUTED_A = "1";
     private static final String NOT_EXECUTED_B = "0";
+    private static final String RUNTIME_A = "100";
+    private static final String RUNTIME_B = "200";
     private static final String ABI = "mips64";
     private static final String ID_A = AbiUtils.createId(ABI, NAME_A);
     private static final String ID_B = AbiUtils.createId(ABI, NAME_B);
@@ -106,7 +108,7 @@
             "  <Summary pass=\"%d\" failed=\"%d\" not_executed=\"%d\" " +
             "modules_done=\"1\" modules_total=\"1\" />\n";
     private static final String XML_MODULE =
-            "  <Module name=\"%s\" abi=\"%s\" device=\"%s\" done=\"%s\" not_executed=\"%s\">\n" +
+            "  <Module name=\"%s\" abi=\"%s\" device=\"%s\" runtime=\"%s\" done=\"%s\" not_executed=\"%s\">\n" +
             "%s" +
             "  </Module>\n";
     private static final String XML_CASE =
@@ -157,6 +159,7 @@
         result.addInvocationInfo(BUILD_PRODUCT, EXAMPLE_BUILD_PRODUCT);
         IModuleResult moduleA = result.getOrCreateModule(ID_A);
         moduleA.setDone(false);
+        moduleA.addRuntime(Integer.parseInt(RUNTIME_A));
         ICaseResult moduleACase = moduleA.getOrCreateResult(CLASS_A);
         ITestResult moduleATest1 = moduleACase.getOrCreateResult(METHOD_1);
         moduleATest1.setResultStatus(TestStatus.PASS);
@@ -166,6 +169,7 @@
 
         IModuleResult moduleB = result.getOrCreateModule(ID_B);
         moduleB.setDone(true);
+        moduleB.addRuntime(Integer.parseInt(RUNTIME_B));
         ICaseResult moduleBCase = moduleB.getOrCreateResult(CLASS_B);
         ITestResult moduleBTest3 = moduleBCase.getOrCreateResult(METHOD_3);
         moduleBTest3.setResultStatus(TestStatus.FAIL);
@@ -202,7 +206,7 @@
             String summary = String.format(XML_SUMMARY, 2, 1, 1);
             String moduleATest = String.format(XML_TEST_PASS, METHOD_1);
             String moduleACases = String.format(XML_CASE, CLASS_A, moduleATest);
-            String moduleA = String.format(XML_MODULE, NAME_A, ABI, DEVICE_A, DONE_A,
+            String moduleA = String.format(XML_MODULE, NAME_A, ABI, DEVICE_A, RUNTIME_A, DONE_A,
                     NOT_EXECUTED_A, moduleACases);
             String moduleBTest3 = String.format(XML_TEST_FAIL, METHOD_3, MESSAGE, STACK_TRACE);
             String moduleBTest4 = String.format(XML_TEST_RESULT, METHOD_4,
@@ -213,7 +217,7 @@
                     Double.toString(DETAILS_VALUE_2), Double.toString(DETAILS_VALUE_3));
             String moduleBTests = String.format(JOIN, moduleBTest3, moduleBTest4);
             String moduleBCases = String.format(XML_CASE, CLASS_B, moduleBTests);
-            String moduleB = String.format(XML_MODULE, NAME_B, ABI, DEVICE_B, DONE_B,
+            String moduleB = String.format(XML_MODULE, NAME_B, ABI, DEVICE_B, RUNTIME_B, DONE_B,
                     NOT_EXECUTED_B, moduleBCases);
             String modules = String.format(JOIN, moduleA, moduleB);
             String hostName = "";
@@ -266,6 +270,7 @@
         assertEquals("Incorrect ABI", ABI, moduleA.getAbi());
         assertEquals("Incorrect name", NAME_A, moduleA.getName());
         assertEquals("Incorrect ID", ID_A, moduleA.getId());
+        assertEquals("Incorrect runtime", Integer.parseInt(RUNTIME_A), moduleA.getRuntime());
         List<ICaseResult> moduleACases = moduleA.getResults();
         assertEquals("Expected 1 test case", 1, moduleACases.size());
         ICaseResult moduleACase = moduleACases.get(0);
@@ -288,6 +293,7 @@
         assertEquals("Incorrect ABI", ABI, moduleB.getAbi());
         assertEquals("Incorrect name", NAME_B, moduleB.getName());
         assertEquals("Incorrect ID", ID_B, moduleB.getId());
+        assertEquals("Incorrect runtime", Integer.parseInt(RUNTIME_B), moduleB.getRuntime());
         List<ICaseResult> moduleBCases = moduleB.getResults();
         assertEquals("Expected 1 test case", 1, moduleBCases.size());
         ICaseResult moduleBCase = moduleBCases.get(0);