summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/api/CoverageRestServlet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/vts/api/CoverageRestServlet.java')
-rw-r--r--src/main/java/com/android/vts/api/CoverageRestServlet.java182
1 files changed, 0 insertions, 182 deletions
diff --git a/src/main/java/com/android/vts/api/CoverageRestServlet.java b/src/main/java/com/android/vts/api/CoverageRestServlet.java
deleted file mode 100644
index aebd3e5..0000000
--- a/src/main/java/com/android/vts/api/CoverageRestServlet.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 2018 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.api;
-
-import com.android.vts.entity.ApiCoverageEntity;
-import com.android.vts.entity.CoverageEntity;
-import com.android.vts.entity.TestCoverageStatusEntity;
-import com.android.vts.entity.TestPlanRunEntity;
-import com.android.vts.entity.TestRunEntity;
-import com.google.gson.Gson;
-import com.googlecode.objectify.Key;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import static com.googlecode.objectify.ObjectifyService.ofy;
-
-/** REST endpoint for posting test suite data to the Dashboard. */
-public class CoverageRestServlet extends BaseApiServlet {
-
- private static final Logger logger = Logger.getLogger(CoverageRestServlet.class.getName());
-
- @Override
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- String pathInfo = request.getPathInfo();
- String json = "";
- if (Objects.nonNull(pathInfo)) {
- if (pathInfo.equalsIgnoreCase("/api/data")) {
- String key = request.getParameter("key");
- json = apiCoverageData(key);
- } else {
- json = "{error: 'true', message: 'unexpected path!!!'}";
- logger.log(Level.INFO, "Path Info => " + pathInfo);
- logger.log(Level.WARNING, "Unknown path access!");
- }
- } else {
- json = "{error: 'true', message: 'the path info is not existed!!!'}";
- }
-
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType("application/json");
- response.setCharacterEncoding("UTF-8");
- response.getWriter().write(json);
- }
-
- private String apiCoverageData(String key) {
- ApiCoverageEntity apiCoverageEntity = ApiCoverageEntity.getByUrlSafeKey(key);
- String apiCoverageEntityJson = new Gson().toJson(apiCoverageEntity);
- return apiCoverageEntityJson;
- }
-
- @Override
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws IOException {
-
- String pathInfo = request.getPathInfo();
- String json = "";
- if (Objects.nonNull(pathInfo)) {
- if (pathInfo.equalsIgnoreCase("/api/data")) {
- String cmd = request.getParameter("cmd");
- String coverageId = request.getParameter("coverageId");
- String testName = request.getParameter("testName");
- String testRunId = request.getParameter("testRunId");
- json = postCoverageData(cmd, coverageId, testName, testRunId);
- } else if (pathInfo.equalsIgnoreCase("/api/sum")) {
- String urlSafeKey = request.getParameter("urlSafeKey");
- json = postCoverageDataSum(urlSafeKey);
- } else {
- json = "{error: 'true', message: 'unexpected path!!!'}";
- }
- } else {
- json = "{error: 'true', message: 'the path info is not existed!!!'}";
- }
-
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType("application/json");
- response.setCharacterEncoding("UTF-8");
- response.getWriter().write(json);
- }
-
- private String postCoverageDataSum(String urlSafeKey) {
- List<List<String>> allHalApiList = new ArrayList();
- List<List<String>> allCoveredHalApiList = new ArrayList();
-
- Key<TestPlanRunEntity> key = Key.create(urlSafeKey);
- TestPlanRunEntity testPlanRunEntity = ofy().load().key(key).safe();
-
- for (Key<TestRunEntity> testRunKey : testPlanRunEntity.getTestRuns()) {
- List<ApiCoverageEntity> apiCoverageEntityList =
- ofy().load().type(ApiCoverageEntity.class).ancestor(testRunKey).list();
- for (ApiCoverageEntity apiCoverageEntity : apiCoverageEntityList) {
- allHalApiList.add(apiCoverageEntity.getHalApi());
- allCoveredHalApiList.add(apiCoverageEntity.getCoveredHalApi());
- }
- }
- long totalHalApiNum = allHalApiList.stream().flatMap(Collection::stream).distinct().count();
- long totalCoveredHalApiNum =
- allCoveredHalApiList.stream().flatMap(Collection::stream).distinct().count();
- if (totalHalApiNum > 0) {
- testPlanRunEntity.setTotalApiCount(totalHalApiNum);
- if (totalCoveredHalApiNum > 0) {
- testPlanRunEntity.setCoveredApiCount(totalCoveredHalApiNum);
- }
- testPlanRunEntity.save();
- }
-
- Map<String, Long> halApiNumMap =
- new HashMap<String, Long>() {
- {
- put("totalHalApiNum", totalHalApiNum);
- put("totalCoveredHalApiNum", totalCoveredHalApiNum);
- }
- };
- String json = new Gson().toJson(halApiNumMap);
- return json;
- }
-
- /**
- * The API to ignore the irrelevant code for calculating ratio
- *
- * @param cmd disable or enable command to ignore the code.
- * @param coverageId the datastore ID for code coverage.
- * @param testName the test name.
- * @param testRunId the test run ID from datastore.
- * @return success json.
- */
- private String postCoverageData(
- String cmd, String coverageId, String testName, String testRunId) {
-
- Boolean isIgnored = false;
- if (cmd.equals("disable")) {
- isIgnored = true;
- }
- CoverageEntity coverageEntity = CoverageEntity.findById(testName, testRunId, coverageId);
- coverageEntity.setIsIgnored(isIgnored);
- coverageEntity.save();
-
- TestCoverageStatusEntity testCoverageStatusEntity =
- TestCoverageStatusEntity.findById(testName);
- Long newCoveredLineCount =
- cmd.equals("disable")
- ? testCoverageStatusEntity.getUpdatedCoveredLineCount()
- - coverageEntity.getCoveredCount()
- : testCoverageStatusEntity.getUpdatedCoveredLineCount()
- + coverageEntity.getCoveredCount();
- Long newTotalLineCount =
- cmd.equals("disable")
- ? testCoverageStatusEntity.getUpdatedTotalLineCount()
- - coverageEntity.getTotalCount()
- : testCoverageStatusEntity.getUpdatedTotalLineCount()
- + coverageEntity.getTotalCount();
- testCoverageStatusEntity.setUpdatedCoveredLineCount(newCoveredLineCount);
- testCoverageStatusEntity.setUpdatedTotalLineCount(newTotalLineCount);
- testCoverageStatusEntity.save();
-
- String json = new Gson().toJson("Success!");
- return json;
- }
-}