summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/servlet/ShowTableServlet.java
diff options
context:
space:
mode:
authorRyan Campbell <ryanjcampbell@google.com>2017-09-20 12:59:52 -0700
committerRyan Campbell <ryanjcampbell@google.com>2017-09-21 09:21:14 -0700
commit4fab0a7bb39e5c500cb21fe1c48d7561dd8d5897 (patch)
treeb8c18815c58fe71743af7358b049546b8ed6dd23 /src/main/java/com/android/vts/servlet/ShowTableServlet.java
parentf87874afedf119adbf5991cc95fb25b7b75f688e (diff)
downloaddashboard-4fab0a7bb39e5c500cb21fe1c48d7561dd8d5897.tar.gz
Implement inequality filtering on pass/fail counts
Implement logic for inequality filtering on the test run and test plan run pass/fail counts. This allows users to better locate the desired tests (e.g. find all runs with failures, find runs with more than x failures). Bug: 65953869 Test: staging Change-Id: I63db2460188fd2b83f800c205b792526cf714c6e
Diffstat (limited to 'src/main/java/com/android/vts/servlet/ShowTableServlet.java')
-rw-r--r--src/main/java/com/android/vts/servlet/ShowTableServlet.java54
1 files changed, 18 insertions, 36 deletions
diff --git a/src/main/java/com/android/vts/servlet/ShowTableServlet.java b/src/main/java/com/android/vts/servlet/ShowTableServlet.java
index 6967a63..d5dae44 100644
--- a/src/main/java/com/android/vts/servlet/ShowTableServlet.java
+++ b/src/main/java/com/android/vts/servlet/ShowTableServlet.java
@@ -26,11 +26,8 @@ import com.android.vts.util.TestResults;
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.FetchOptions;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;
-import com.google.appengine.api.datastore.Query;
-import com.google.appengine.api.datastore.Query.CompositeFilterOperator;
import com.google.appengine.api.datastore.Query.Filter;
import com.google.appengine.api.datastore.Query.SortDirection;
import com.google.gson.Gson;
@@ -152,45 +149,30 @@ public class ShowTableServlet extends BaseServlet {
dir = SortDirection.ASCENDING;
}
Key testKey = KeyFactory.createKey(TestEntity.KIND, testName);
- Map<String, Object> parameterMap = request.getParameterMap();
- Filter userTestFilter = FilterUtil.getUserTestFilter(parameterMap);
- Filter userDeviceFilter = FilterUtil.getUserDeviceFilter(parameterMap);
Filter typeFilter = FilterUtil.getTestTypeFilter(showPresubmit, showPostsubmit, unfiltered);
Filter testFilter =
FilterUtil.getTimeFilter(
testKey, TestRunEntity.KIND, startTime, endTime, typeFilter);
- if (userTestFilter == null && userDeviceFilter == null) {
- Query testRunQuery =
- new Query(TestRunEntity.KIND)
- .setAncestor(testKey)
- .setFilter(testFilter)
- .addSort(Entity.KEY_RESERVED_PROPERTY, dir);
- for (Entity testRun :
- datastore
- .prepare(testRunQuery)
- .asIterable(FetchOptions.Builder.withLimit(MAX_BUILD_IDS_PER_PAGE))) {
- processTestRun(testResults, testRun);
- }
- } else {
- if (userTestFilter != null) {
- testFilter = CompositeFilterOperator.and(userTestFilter, testFilter);
- }
- List<Key> gets =
- FilterUtil.getMatchingKeys(
- testKey,
- TestRunEntity.KIND,
- testFilter,
- userDeviceFilter,
- dir,
- MAX_BUILD_IDS_PER_PAGE);
- Map<Key, Entity> entityMap = datastore.get(gets);
- for (Key key : gets) {
- if (!entityMap.containsKey(key)) {
- continue;
- }
- processTestRun(testResults, entityMap.get(key));
+
+ Map<String, Object> parameterMap = request.getParameterMap();
+ List<Filter> userTestFilters = FilterUtil.getUserTestFilters(parameterMap, testFilter);
+ Filter userDeviceFilter = FilterUtil.getUserDeviceFilter(parameterMap);
+
+ List<Key> gets =
+ FilterUtil.getMatchingKeys(
+ testKey,
+ TestRunEntity.KIND,
+ userTestFilters,
+ userDeviceFilter,
+ dir,
+ MAX_BUILD_IDS_PER_PAGE);
+ Map<Key, Entity> entityMap = datastore.get(gets);
+ for (Key key : gets) {
+ if (!entityMap.containsKey(key)) {
+ continue;
}
+ processTestRun(testResults, entityMap.get(key));
}
testResults.processReport();