diff options
Diffstat (limited to 'src/main/java/com/android/vts/servlet/ShowPlanRunServlet.java')
-rw-r--r-- | src/main/java/com/android/vts/servlet/ShowPlanRunServlet.java | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/src/main/java/com/android/vts/servlet/ShowPlanRunServlet.java b/src/main/java/com/android/vts/servlet/ShowPlanRunServlet.java deleted file mode 100644 index 9138a90..0000000 --- a/src/main/java/com/android/vts/servlet/ShowPlanRunServlet.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2017 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You may - * obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.vts.servlet; - -import com.android.vts.entity.DeviceInfoEntity; -import com.android.vts.entity.TestPlanEntity; -import com.android.vts.entity.TestPlanRunEntity; -import com.android.vts.entity.TestRunEntity; -import com.android.vts.proto.VtsReportMessage.TestCaseResult; -import com.android.vts.util.TestRunMetadata; -import com.google.appengine.api.datastore.DatastoreService; -import com.google.appengine.api.datastore.DatastoreServiceFactory; -import com.google.appengine.api.datastore.Entity; -import com.google.appengine.api.datastore.EntityNotFoundException; -import com.google.appengine.api.datastore.Key; -import com.google.appengine.api.datastore.KeyFactory; -import com.google.appengine.api.datastore.Query; -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** Servlet for handling requests to load individual plan runs. */ -public class ShowPlanRunServlet extends BaseServlet { - private static final String PLAN_RUN_JSP = "WEB-INF/jsp/show_plan_run.jsp"; - - @Override - public PageType getNavParentType() { - return PageType.RELEASE; - } - - @Override - public List<Page> getBreadcrumbLinks(HttpServletRequest request) { - List<Page> links = new ArrayList<>(); - String planName = request.getParameter("plan"); - links.add(new Page(PageType.PLAN_RELEASE, planName, "?plan=" + planName)); - - String time = request.getParameter("time"); - links.add(new Page(PageType.PLAN_RUN, "?plan=" + planName + "&time=" + time)); - return links; - } - - @Override - public void doGetHandler(HttpServletRequest request, HttpServletResponse response) - throws IOException { - Long time = null; // time in microseconds - DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); - RequestDispatcher dispatcher = null; - - String plan = request.getParameter("plan"); - - if (request.getParameter("time") != null) { - String timeString = request.getParameter("time"); - try { - time = Long.parseLong(timeString); - time = time > 0 ? time : null; - } catch (NumberFormatException e) { - time = null; - } - } - - // Add result names to list - List<String> resultNames = new ArrayList<>(); - for (TestCaseResult r : TestCaseResult.values()) { - resultNames.add(r.name()); - } - - List<JsonObject> passingTestObjects = new ArrayList<>(); - List<JsonObject> failingTestObjects = new ArrayList<>(); - List<JsonObject> testRunObjects = new ArrayList<>(); - - Key planKey = KeyFactory.createKey(TestPlanEntity.KIND, plan); - Key planRunKey = KeyFactory.createKey(planKey, TestPlanRunEntity.KIND, time); - String testBuildId = ""; - int passCount = 0; - int failCount = 0; - long startTime = 0; - long endTime = 0; - long moduleCount = 0; - long totalApiCount = 0L; - long totalCoveredApiCount = 0L; - try { - Entity testPlanRunEntity = datastore.get(planRunKey); - TestPlanRunEntity testPlanRun = TestPlanRunEntity.fromEntity(testPlanRunEntity); - Map<Key, Entity> testRuns = datastore.get(testPlanRun.getOldTestRuns()); - testBuildId = testPlanRun.getTestBuildId(); - passCount = (int) testPlanRun.getPassCount(); - failCount = (int) testPlanRun.getFailCount(); - totalApiCount = testPlanRun.getTotalApiCount(); - logger.log(Level.INFO, "totalApiCount => " + totalApiCount); - totalCoveredApiCount = testPlanRun.getCoveredApiCount(); - logger.log(Level.INFO, "totalCoveredApiCount => " + totalCoveredApiCount); - startTime = testPlanRun.getStartTimestamp(); - endTime = testPlanRun.getEndTimestamp(); - moduleCount = testPlanRun.getTestRuns().size(); - - for (Key key : testPlanRun.getOldTestRuns()) { - if (!testRuns.containsKey(key)) continue; - TestRunEntity testRunEntity = TestRunEntity.fromEntity(testRuns.get(key)); - if (testRunEntity == null) continue; - Query deviceInfoQuery = new Query(DeviceInfoEntity.KIND).setAncestor(key); - List<DeviceInfoEntity> devices = new ArrayList<>(); - for (Entity device : datastore.prepare(deviceInfoQuery).asIterable()) { - DeviceInfoEntity deviceEntity = DeviceInfoEntity.fromEntity(device); - if (deviceEntity == null) continue; - devices.add(deviceEntity); - } - TestRunMetadata metadata = - new TestRunMetadata(key.getParent().getName(), testRunEntity, devices); - if (metadata.testRun.getFailCount() > 0) { - failingTestObjects.add(metadata.toJson()); - } else { - passingTestObjects.add(metadata.toJson()); - } - } - } catch (EntityNotFoundException e) { - // Invalid parameters - } - testRunObjects.addAll(failingTestObjects); - testRunObjects.addAll(passingTestObjects); - - int[] topBuildResultCounts = new int[TestCaseResult.values().length]; - topBuildResultCounts[TestCaseResult.TEST_CASE_RESULT_PASS.getNumber()] = passCount; - topBuildResultCounts[TestCaseResult.TEST_CASE_RESULT_FAIL.getNumber()] = failCount; - - request.setAttribute("plan", request.getParameter("plan")); - request.setAttribute("time", request.getParameter("time")); - - request.setAttribute("resultNames", resultNames); - request.setAttribute("resultNamesJson", new Gson().toJson(resultNames)); - request.setAttribute("testRuns", new Gson().toJson(testRunObjects)); - request.setAttribute("testBuildId", new Gson().toJson(testBuildId)); - request.setAttribute("startTime", new Gson().toJson(startTime)); - request.setAttribute("endTime", new Gson().toJson(endTime)); - request.setAttribute("moduleCount", new Gson().toJson(moduleCount)); - request.setAttribute("passingTestCaseCount", new Gson().toJson(passCount)); - request.setAttribute("failingTestCaseCount", new Gson().toJson(failCount)); - request.setAttribute("totalApiCount", totalApiCount); - request.setAttribute("totalCoveredApiCount", totalCoveredApiCount); - - // data for pie chart - request.setAttribute("topBuildResultCounts", new Gson().toJson(topBuildResultCounts)); - - dispatcher = request.getRequestDispatcher(PLAN_RUN_JSP); - try { - dispatcher.forward(request, response); - } catch (ServletException e) { - logger.log(Level.SEVERE, "Servlet Exception caught : " + e.toString()); - } - } -} |