page.title=Systems Testing With VTS
@jd: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.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>The Vendor Test Suite (VTS) automates HAL and OS kernel testing. To use VTS
to test an Android native system implementation, set up a testing environment
then test a patch using a VTS plan.</p>

<h2 id="establish">Establishing a test environment</h2>
<p>To set up a testing environment:</p>
<ol>
<li>Install Python development kit:
<pre><code>$ sudo apt-get install python-dev</code></pre></li>
<li>Install Protocol Buffer tools (for Python):
<pre><code>$ sudo apt-get install python-protobuf<br>
$ sudo apt-get install protobuf-compiler
</code></pre></li>
<li>Install Python virtual environment-related tools:
<pre><code>$ sudo apt-get install python-virtualenv<br>
$ sudo apt-get install python-pip
</code></pre></li></ol>

<h2 id="test">Testing a patch</h2>
<p>To test a patch:</p>
<ol>
<li>Build a VTS host-side package:
<pre><code>$ . build/envsetup.sh
$ lunch aosp_arm64-userdebug
$ make vts -j</code></pre></li>
<li>Run the default VTS tests:
<pre><code>$ vts-tradefed<br>
&gt; run vts     // where vts is the test plan name
</pre></code></li></ol>

<h2 id="plans">VTS plans</h2>
<p>Available VTS test plans include:</p>

<table>
<thead>
<tr>
<th>Command</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>&gt; run vts</td>
<td>For default VTS tests</td>
</tr>
<tr>
<td>&gt; run vts-hal</td>
<td>For default VTS HAL (hardware abstraction layer) tests</td>
</tr>
<tr>
<td>&gt; run vts-kernel</td>
<td>For default VTS kernel tests</td>
</tr>
</tbody>
</table>

<p>To view a list of all plans, refer to
<code><a href="https://android.googlesource.com/platform/test/vts/+/master/tools/vts-tradefed/res/config/plans.md">/test/vts/tools/vts-tradefed/res/config.md</a></code>.</p>

<h2 id="support">Support</h2>
<p>You can view a user manual at
<code><a href=" https://android.googlesource.com/platform/test/vts/+/master/README.md">/test/vts/doc</a></code>.
For questions on VTS, please join
<a href="https://groups.google.com/forum/#!forum/android-vts">android-vts@googlegroups.com</a>.</p>
