diff options
author | Young Gyu Park <younggyu@google.com> | 2018-04-18 14:45:46 +0900 |
---|---|---|
committer | Keun Soo Yim <yim@google.com> | 2018-04-19 02:16:09 +0000 |
commit | 81a026062cd56132f145862720d3472f16384ac2 (patch) | |
tree | 940901ee9b3f185ef6d75938560a254fcf46fe19 /src/main/java | |
parent | d32eb9559b034b40ea3745ee20dd23f4d9fec91d (diff) | |
download | dashboard-81a026062cd56132f145862720d3472f16384ac2.tar.gz |
Implementing suite test category.
Test: go/vts-web-staging/show_plan_release?plan=vts&type=suite&page=1
Bug: 78095215
Change-Id: I0f8eb37e6cba3942f5816a57869ed49e50123d92
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/android/vts/entity/TestSuiteResultEntity.java | 56 | ||||
-rw-r--r-- | src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java | 6 |
2 files changed, 58 insertions, 4 deletions
diff --git a/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java b/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java index 2e1d5e3..f82e114 100644 --- a/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java +++ b/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java @@ -27,8 +27,13 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.time.Instant; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import static com.googlecode.objectify.ObjectifyService.ofy; @@ -40,11 +45,12 @@ import static com.googlecode.objectify.ObjectifyService.ofy; public class TestSuiteResultEntity { public enum GROUP_TYPE { - OTA, SIGNED, TOT + OTA, + SIGNED, + TOT } - @Parent - Key<TestSuiteFileEntity> testSuiteFileEntityKey; + @Parent Key<TestSuiteFileEntity> testSuiteFileEntityKey; /** Test Suite start time field */ @Id @Getter @Setter Long startTime; @@ -146,11 +152,13 @@ public class TestSuiteResultEntity { this.failedTestCaseCount = failedTestCaseCount; int totalTestCaseCount = passedTestCaseCount + failedTestCaseCount; - if ( totalTestCaseCount <= 0 ) { + if (totalTestCaseCount <= 0) { this.passedTestCaseRatio = 0; } else { this.passedTestCaseRatio = passedTestCaseCount / totalTestCaseCount * 100; } + + this.groupType = this.getGroupType(); } /** Saving function for the instance of this class */ @@ -162,4 +170,44 @@ public class TestSuiteResultEntity { public List<? extends TestSuiteResultEntity> getTestSuitePlans() { return ofy().load().type(this.getClass()).project("suitePlan").distinct(true).list(); } + + private String getNormalizedVersion(String fingerprint) { + Map<String, Pattern> partternMap = + new HashMap<String, Pattern>() { + { + put( + "9", + Pattern.compile( + "(:9(\\.\\d\\.\\d|\\.\\d|)|:P\\w*/)", + Pattern.CASE_INSENSITIVE)); + put( + "8.1", + Pattern.compile( + "(:8\\.1\\.\\d\\/|:O\\w+-MR1/)", Pattern.CASE_INSENSITIVE)); + put( + "8", + Pattern.compile( + "(:8\\.0\\.\\d\\/|:O\\w*/)", Pattern.CASE_INSENSITIVE)); + } + }; + + for (Map.Entry<String, Pattern> entry : partternMap.entrySet()) { + Matcher systemMatcher = entry.getValue().matcher(fingerprint); + if (systemMatcher.find()) { + return entry.getKey(); + } + } + return "unknown-version-" + Instant.now().toEpochMilli(); + } + + public GROUP_TYPE getGroupType() { + if (this.getNormalizedVersion(this.buildSystemFingerprint) + != this.getNormalizedVersion(this.buildVendorFingerprint)) { + return GROUP_TYPE.OTA; + } else if (this.buildVendorFingerprint.endsWith("release-keys")) { + return GROUP_TYPE.SIGNED; + } else { + return GROUP_TYPE.TOT; + } + } } diff --git a/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java b/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java index 69c75f1..b068b0c 100644 --- a/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java +++ b/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java @@ -285,6 +285,10 @@ public class ShowPlanReleaseServlet extends BaseServlet { String PLAN_RELEASE_JSP = "WEB-INF/jsp/show_suite_release.jsp"; String testPlan = request.getParameter("plan"); + String groupType = + request.getParameter("groupType") == null + ? "OTA" + : request.getParameter("groupType"); int page = request.getParameter("page") == null ? 1 @@ -298,6 +302,7 @@ public class ShowPlanReleaseServlet extends BaseServlet { ofy().load() .type(TestSuiteResultEntity.class) .filter("suitePlan", testPlan) + .filter("groupType", groupType) .orderKey(true); Pagination<TestSuiteResultEntity> testSuiteResultEntityPagination = @@ -331,6 +336,7 @@ public class ShowPlanReleaseServlet extends BaseServlet { request.setAttribute("page", page); request.setAttribute("testType", "suite"); + request.setAttribute("groupType", groupType); request.setAttribute("plan", testPlan); request.setAttribute("testSuiteResultEntityPagination", testSuiteResultEntityPagination); RequestDispatcher dispatcher = request.getRequestDispatcher(PLAN_RELEASE_JSP); |