page.title=Using CTS Verifier
@jd:body

<!--
    Copyright 2015 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 Android Compatibility Test Suite Verifier (CTS Verifier) is a supplement to
  the Compatibility Test Suite (CTS). While CTS checks those APIs and functions
  that can be automated, CTS Verifier provides tests for those APIs and functions
  that cannot be tested on a stationary device without manual input, like audio
  quality, touchscreen, accelerometer, camera, etc.</p>
<h2 id=test_preparation>Test preparation</h2>
<p>The device must have verified Android API compatibility by successfully passing
  the Compatibility Test Suite.</p>
<h3 id=hardware_requirements>Hardware requirements</h3>
<ul>
  <li> A Linux computer with USB 2.0 compatible port
  <li> A second Android device with a known compatible Bluetooth, Wi-Fi direct, and
    NFC Host Card Emulation (HCE) implementation
</ul>
<h3 id=setup>Setup</h3>
<ul>
  <li>Install the <a href="http://developer.android.com/sdk/index.html">Android
SDK</a> on the Linux computer <li>Download the appropriate <a
href="downloads.html">CTS Verifier.apk</a> for the
version of Android under test.
  <li>Install CTS Verifier.apk to the <em>Device Under Test</em> (DUT). <br>
    <code>adb install -r -g CtsVerifier.apk</code>
  <li>Ensure that the device has its system data and time set correctly.
</ul>
<h2 id=cts_test_procedure>CTS Verifier test procedure</h2>
<ol>
  <li>After the CTS Verifier.apk has been installed, launch the CTS Verifier
    application:

<img src="images/cts-verifier-icon.png" alt="CTS Verifier icon in launcher" id="figure1" />
<p class="img-caption">
  <strong>Figure 1.</strong> CTS Verifier icon
</p>

  <li>Once opened, the CTS Verifier displays a list of all test sets available for
    manual verification:

<img src="images/cts-verifier-menu.png" alt="CTS Verifier menu of tests" id="figure2" />
<p class="img-caption">
  <strong>Figure 2.</strong> CTS Verifier menu of tests
</p>

  <li>Each test contains a set of common elements (in some tests, Pass/Fail is
    determined automatically):
    <ul>
      <li><em>Info</em>—a set of instructions to run the test. This will appear as a popup the first
        time each test is opened or whenever the <strong>Info</strong> button (？) is pressed.
      <li><em>Pass</em>—If the DUT meets the test requirements per the instructions from Info, press
        the <strong>Pass</strong> button (✓).
      <li><em>Fail</em>—If the DUT does not meet the test requirements per the instructions from Info,
        press the <strong>Fail</strong> button (！).
    </ul>

<img src="images/video-verifier.png" alt="Streaming video quality verifier" id="figure3" />
<p class="img-caption">
  <strong>Figure 3.</strong> Video quality verifier
</p>

</ol>

<h2 id=specific_test_requirements>Specific test requirements</h2>
<h3 id=usb_accessory>USB Accessory</h3>
<p>In order to run the USB Accessory test, you need a Linux computer to run the
  USB desktop machine (host) program.</p>
<ol>
  <li>Connect the DUT to a computer.
  <li>Execute the cts-usb-accessory program on the computer found in the CTS Verifier
    package.
  <li>A popup message will appear on the DUT. Select <strong>OK</strong> and go into the USB Accessory Test in the CTS Verifier application.
<br>
<img src="images/screen-lock-test.png" alt="CTS Verifier screen lock test" id="figure4" />
<p class="img-caption">
  <strong>Figure 4.</strong> Screen lock test
</p>

  <li>Output similar to below will appear on the computer’s console. 
</ol>
<pre>
out/host/linux-x86/cts-verifier/android-cts-verifier$ <strong>./cts-usb-accessory</strong>
CTS USB Accessory Tester
Found possible Android device (413c:2106) - attempting to switch to accessory
mode...
Failed to read protocol version
Found Android device in accessory mode (18d1:2d01)...
[RECV] Message from Android device #0
[SENT] Message from Android accessory #0
[RECV] Message from Android device #1
[SENT] Message from Android accessory #1
[RECV] Message from Android device #2
[SENT] Message from Android accessory #2
[RECV] Message from Android device #3
[SENT] Message from Android accessory #3
[RECV] Message from Android device #4
[SENT] Message from Android accessory #4
[RECV] Message from Android device #5
[SENT] Message from Android accessory #5
[RECV] Message from Android device #6
[SENT] Message from Android accessory #6
[RECV] Message from Android device #7
[SENT] Message from Android accessory #7
[RECV] Message from Android device #8
[SENT] Message from Android accessory #8
[RECV] Message from Android device #9
[SENT] Message from Android accessory #9
[RECV] Message from Android device #10
[SENT] Message from Android accessory #10
</pre>
<h3 id=camera_field_of_view_calibration>Camera field of view calibration</h3>
<p>This field of view calibration procedure is designed to be a quick way to
  determine the device field of view with moderate accuracy.
<p><strong>Setup</strong> - Print the <a
href="{@docRoot}compatibility/calibration-pattern.pdf">calibration-pattern.pdf</a>
target file and mount it on a rigid backing. Print on 11” x 17” or A3. Orient
the camera device and the printed target as shown in the diagram below:</p>

<img src="images/camera-printed-target.png" alt="Camera printed target" id="figure5" />
<p class="img-caption">
  <strong>Figure 5.</strong> Camera printed target
</p>

<p><strong>Setting the target width</strong> - Measure the distance between the
solid lines on the target pattern in centimeters to account for printing
inaccuracies (~38 cm).</p>
<ol>
  <li>Start the calibration application.
  <li>Press the setup button and select “Marker distance” to enter the distance.
  <li>Measure and enter the distance to the target pattern (~100 cm).
  <li>Press the back button to return to the calibration preview.
</ol>
<p><strong>Calibration process</strong> - Verify that the device and target are
placed as shown in the figure and the correct distances have been entered into
the setup dialog.The preview will display the image with a vertical line
overlaid onto it. This line should align with the center line of the target
pattern. The transparent grid can be used with the other vertical lines to
ensure that the optical axis is orthogonal to the target.</p>
<ol>
  <li>Select an image resolution to test from the selector at the bottom left.
  <li>Tap the screen to take a photo and enter the calibration mode (described
    below).
  <li>Hit the back button and repeat for all supported image resolutions.
</ol>
<p><strong>Calibration test (per resolution)</strong> In the calibration mode, the photo will be displayed with two vertical lines
  overlaid onto the image.These lines should align with the vertical lines on the target pattern within a
  few pixels. If they do not, then the reported field of view for that mode is
  inaccurate (assuming the setup is correct).Adjust the slider at the bottom of the screen until the overlay aligns with the
  target pattern as closely as possible. The displayed field of view will be a
  close approximation to the correct value when the overlay and the target
  pattern image are aligned. The reported field of view should be within +/-1
  degree of the calibration value.</p>
<h2 id=exporting_test_reports>Exporting test reports</h2>
<ol>
  <li>After all tests are completed, tap the <strong>Save (disk)</strong> icon.
<br>
<img src="images/verifier-save-icon.png" alt="CTS Verifier Save icon" id="figure6" />
<p class="img-caption">
  <strong>Figure 6.</strong> CTS Verifier Save icon
</p>

  <li>A path to the saved report will be displayed in pop-up (e.g.
<code>/mnt/sdcard/ctsVerifierReports/ctsVerifierReport-date-time.zip</code>).
Record the path.
<br>
<img src="images/path-saved-report.png" alt="CTS Verifier path to saved report " id="figure7" />
<p class="img-caption">
  <strong>Figure 7.</strong> CTS Verifier path to saved report
</p>

  <li>Connect the device via USB to a computer with the SDK installed.
  <li>From the computer’s SDK installation, run <code>adb pull
    <CTS Verifier report path>
    </code> to download the report from the device.
    <ul>
  <li>To download all reports run : <code>adb pull /mnt/sdcard/ctsVerifierReports/ .</code>
  <li>The name of the reports are time-stamped based on the DUT’s system time.
  <li>To clear results after they have been selected, select <strong>Menu > Clear</strong>. This will
    clear the Pass/Fail results.
</ol>
