diff options
author | Android Partner Docs <noreply@android.com> | 2018-03-16 12:34:18 -0700 |
---|---|---|
committer | Clay Murphy <claym@google.com> | 2018-03-16 12:39:03 -0700 |
commit | c6df243a3316ba12bd910555abe5d2df44ea34d9 (patch) | |
tree | 583f1449d717126091363f8accd5f02f501bbf52 /en/devices/tech/vts/setup.html | |
parent | e776910169664b89ac8ebb36627373136c8e532c (diff) | |
download | source.android.com-c6df243a3316ba12bd910555abe5d2df44ea34d9.tar.gz |
Docs: Changes to source.android.com
- 189377827 hikey960: Use Image.gz-dtb as a kernel image by Android Partner Docs <noreply@android.com>
- 189349681 Moving VTS from devices/tech to compatibility/vts (and im... by Heidi von Markham <hvm@google.com>
- 189244963 Augment USB Audio CTS doc with additional peripherals by Clay Murphy <claym@google.com>
- 189185354 New reports page for Android Security YIR and home page u... by Danielle Roberts <daroberts@google.com>
- 189059228 Update CTS/CTS-Verifier downloads for CTS-Mar-2018 Releases by Android Partner Docs <noreply@android.com>
- 189043885 Devsite localized content from translation request 6cb273... by Android Partner Docs <noreply@android.com>
- 189038438 Devsite localized content from translation request 1306aa... by Android Partner Docs <noreply@android.com>
- 189038430 Devsite localized content from translation request cbcbd6... by Android Partner Docs <noreply@android.com>
- 188908346 Devsite localized content from translation request 946829... by Android Partner Docs <noreply@android.com>
- 188908252 Devsite localized content from translation request 4ade76... by Android Partner Docs <noreply@android.com>
- 188908248 Devsite localized content from translation request 3a86a7... by Android Partner Docs <noreply@android.com>
- 188908238 Devsite localized content from translation request 090d64... by Android Partner Docs <noreply@android.com>
- 188877475 Updated "Develop CTS" page to by Android Partner Docs <noreply@android.com>
- 188805462 Devsite localized content from translation request 429221... by Android Partner Docs <noreply@android.com>
- 188791843 CDD: Relax Overview title count requirement. by Android Partner Docs <noreply@android.com>
- 188751143 Devsite localized content from translation request 1e4322... by Android Partner Docs <noreply@android.com>
- 188751132 Devsite localized content from translation request 9e5f9b... by Android Partner Docs <noreply@android.com>
- 188560973 CDD: SD card encryption required for the primary external... by Android Partner Docs <noreply@android.com>
- 188560351 by Android Partner Docs <noreply@android.com>
- 188418844 Add links and path to source files for Data Saver by Clay Murphy <claym@google.com>
- 188368136 CDD: Apps can use ACTION_OPEN_DOCUMENT_TREE to write to s... by Android Partner Docs <noreply@android.com>
- 188364381 by Android Partner Docs <noreply@android.com>
- 188363534 CDD: Fixing typos in the USB section by Android Partner Docs <noreply@android.com>
- 188360294 CDD: Relax Overview title count requirement. by Android Partner Docs <noreply@android.com>
- 188351043 Devsite localized content from translation request e77cb5... by Android Partner Docs <noreply@android.com>
- 188346717 CDD: Relax Near-ultrasound microphone SNR requirement. by Android Partner Docs <noreply@android.com>
- 188344574 CDD: Updated section 3.8.10 Lock Screen Media Control to ... by Android Partner Docs <noreply@android.com>
- 188269274 by Android Partner Docs <noreply@android.com>
- 188268739 CDD: Relax Overview title count requirement. by Android Partner Docs <noreply@android.com>
- 188254167 Add AOSP links to Android & Pixel bulletins by Danielle Roberts <daroberts@google.com>
- 188246295 by Android Partner Docs <noreply@android.com>
- 188243208 by Android Partner Docs <noreply@android.com>
- 188235190 Devsite localized content from translation request f764fc... by Android Partner Docs <noreply@android.com>
- 188213222 Add tag for Pixel C release for March 2018. by Android Partner Docs <noreply@android.com>
- 188209010 Devsite localized content from translation request 8fd2a1... by Android Partner Docs <noreply@android.com>
PiperOrigin-RevId: 189377827
Change-Id: I6f068548537b775ce3f2f086d87633726b1286b0
Diffstat (limited to 'en/devices/tech/vts/setup.html')
-rw-r--r-- | en/devices/tech/vts/setup.html | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/en/devices/tech/vts/setup.html b/en/devices/tech/vts/setup.html deleted file mode 100644 index 79bc79d7..00000000 --- a/en/devices/tech/vts/setup.html +++ /dev/null @@ -1,198 +0,0 @@ -<html devsite> - <head> - <title>VTS Dashboard Setup</title> - <meta name="project_path" value="/_project.yaml" /> - <meta name="book_path" value="/_book.yaml" /> - </head> - <body> - <!-- - Copyright 2017 The Android Open Source Project - - 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. - --> - -<p> -The VTS Dashboard provides a user backend and user interface for viewing test -results from the VTS continuous integration system. It supports test-driven -development with tools such as test status notifications to help developers to -locate and prevent regression areas during the development cycle (include test -monitoring and -triaging support). -</p> - -<p> -The user interface supports new features (such as native code coverage) provided -by the VTS infrastructure and enables the development of tools with optimized -and well-characterized performance by offering continuous performance -monitoring. -</p> - -<h2 id=requirements>Requirements</h2> -<p> -The following services are required to use the VTS Dashboard: -</p> -<ul> -<li><a href="https://maven.apache.org/">Apache Maven</a>, for building and -deployment</li> -<li><a href="https://cloud.google.com/appengine">Google Cloud App Engine</a>, -for web-service hosting</li> -<li><a href="https://cloud.google.com/datastore/docs/">Google Cloud -Datastore</a>, for storage</li> -<li><a href="http://www.stackdriver.com/">Google Stackdriver</a>, for -monitoring</li> -</ul> - -<p> -Viewing <a href="/devices/architecture/testing/ui.html#coverage">test -coverage</a> relies on a REST API to a source code server (e.g. Gerrit), which -enables the web service to fetch original source code according to existing -access control lists. -</p> - -<h2 id=arch>Architecture</h2> -<p> -The VTS Dashboard uses the following architecture: -</p> -<img src="../images/treble_vts_dash_arch.png" title="VTS Dashboard Architecture"> -<figcaption><strong>Figure 1</strong>. VTS Dashboard architecture.</figcaption> - -<p> -Test status results are continuously uploaded to the Cloud Datastore database -via a REST interface. The VTS runner automatically processes the results and -serializes them using the Protobuf format. -</p> -<p> -Web servlets form the primary access point for users, delivering and processing -data from the Datastore database. The servlets include: a main servlet for -delivering all of the tests, a preferences servlet for managing user favorites, -a results servlet for populating a test table, a graph servlet for preparing -profiling data, and a coverage servlet for preparing coverage data for the -client. -</p> -<p> -Each test module has its own Datastore ancestry tree and test results are -indexed with the Unix timestamp of the test start time. Coverage data in the -database is stored with the test results as a vector of counts (i.e. for each -line in the original source file) and identifying information to fetch the -source code from a source code server. -</p> -<p> -The notification service runs using task queues, identifying test case status -changes, and notifying subscribers. Stateful information is stored in a status -table to keep track of data freshness and existing failures. This allows for the -notification service to provide rich information about individual test case -failures and fixes. -</p> - -<h2 id=code-structure>Code structure</h2> -<p> -VTS Dashboard essential components include the servlets implemented in Java, -the front-end JSPs, CSS stylesheets, and configuration files. The following list -details the locations and descriptions of these components (all paths relative -to <code>test/vts/web/dashboard</code>): -</p> -<ul> -<li><code>pom.xml</code><br>Settings file where environment variables and -dependencies are defined.</li> -<li><code>src/main/java/com/android/vts/api/</code><br>Contains endpoints for -interacting with the data via REST.</li> -<li><code>src/main/java/com/android/vts/entity/</code><br>Contains Java models -of the Datastore entities.</li> -<li><code>src/main/java/com/android/vts/proto/</code><br>Contains Java files -for Protobuf, including <code>VtsReportMessage.java</code>, which is a Java -implementation of Protobuf type used to describe VTS test results.</li> -<li><code>src/main/java/com/android/vts/servlet/</code><br>Contains Java -files for servlets.</li> -<li><code>src/main/java/com/android/vts/util/</code><br>Contains Java files -for utility functions and classes used by the servlets.</li> -<li><code>src/test/java/com/android/vts/</code><br>Contains UI tests for the -servlets and utils.</li> -<li><code>src/main/webapp/</code><br>Contains files related to the UI (JSP, -CSS, XML): - <ul> - <li><code>js/</code>. Contains Javascript files used by the web pages.</li> - <li><code>WEB-INF/</code>. Contains configuration and UI files.</li> - <li><code>jsp/</code>. Contains the JSP files for each web page.</li> - </ul> -</li> -<li><code>appengine-web.xml</code><br>Settings file where environment -variables are loaded into variables.</li> -<li><code>web.xml</code><br>Settings file where servlet mappings and -security constraints are defined.</li> -<li><code>cron.xml</code><br>Settings file defining scheduled tasks (i.e. -the notifications service).</li> -</ul> - -<h2 id=setup>Setting up the Dashboard</h2> -<p> -To set up the VTS Dashboard: -</p> -<ol> -<li>Create a Google Cloud App Engine Project.</li> -<li>Set up the deployment host by installing: - <ul> - <li>Java 8</li> - <li>Google App Engine SDK</li> - <li>Maven</li> - </ul> -</li> -<li>Generate an OAuth 2.0 Client ID in the Google Cloud API Manager.</li> -<li>Create a Service Account and create a keyfile.</li> -<li>Add an email address to the App Engine Email API Authorized Senders List.</li> -<li>Set up a Google Analytics Account.</li> -<li>Specify environment variables in the Dashboard <code>pom.xml</code>: - <ul> - <li>Set the client ID with the OAuth 2.0 ID (from step 3).</li> - <li>Set the service client ID with the identifier included in the keyfile (from - step 4).</li> - <li>Specify the sender email address for alerts (from step 5).</li> - <li>Specify an email domain to which all emails will be sent.</li> - <li>Specify the address to the Gerrit REST server.</li> - <li>Specify the OAuth 2.0 scope to use for the Gerrit REST server.</li> - <li>Specify the Google Analytics ID (from step 6).</li> - <li>Build and deploy the project.</li> - </ul> -</li> -<li>In a terminal, run <code>mvn clean appengine:update</code></li> -</ol> - -<p> -For more information regarding Dashboard setup and configuration, refer to the -<a href="https://codelabs.developers.google.com/codelabs/android-vts">Android -VTS Code Lab</a>. -</p> - -<h2 id=security>Security considerations</h2> -<p> -Robust coverage information requires access to the original source code. -However, some code may be sensitive and an additional gateway to it may allow -for exploitation of existing access control lists. -</p> -<p> -To avoid this threat, instead of serving the source code with the coverage -information, the Dashboard directly handles a coverage vector (i.e., a vector of -execution counts mapping to the lines in a source file). Along with the coverage -vector, the Dashboard receives a Git project name and path so that the client -can fetch the code from an external source code API. The client browser receives -this information and uses cross-origin resource sharing (CORS) in Javascript to -query the source code server for the original source code; the resulting code is -combined with the coverage vector to produce a display. -</p> -<p> -This approach does not widen the attack surface because the Dashboard uses the -user's cookies to authenticate with an outside service. A user who cannot access -source code directly cannot exploit the Dashboard to view sensitive information. -</p> - - </body> -</html> |