<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->

<!-- 
This file contains standard test definitions for the Android platform
          
Tests are defined by <test> tags with the following attributes

name package [class runner build_path coverage_target continuous]

Where:
name: Self-descriptive name used to uniquely identify the test
build_path: File system path, relative to Android build root, to this package's
   Android.mk file. If omitted, build/sync step for this test will be skipped
package: Android application package that contains the tests
class: Optional. Fully qualified Java test class to run. 
runner: Fully qualified InstrumentationTestRunner to execute. If omitted, 
   will default to android.test.InstrumentationTestRunner
coverage_target: Build name of Android package this test targets - these targets
   are defined in the coverage_targets.xml file.  Used as basis for code
   coverage metrics. If omitted, code coverage will not be supported for this
   test
continuous: Optional boolean. Default is false. Set to true if tests are known
   to be reliable, and should be included in a continuous test system. false if
   they are under development.

These attributes map to the following commands:  
(if class is defined)
    adb shell am instrument -w <package>/<runner>
(else)
    adb shell am instrument -w -e class <class> <package>/<runner>

-->

<test-definitions version="1">

<!-- system-wide tests -->
<test name="framework"
    build_path="frameworks/base/tests/FrameworkTest"
    package="com.android.frameworktest.tests"
    class="com.android.frameworktest.AllTests"
    coverage_target="framework"
    continuous="true" />

<test name="android"
    build_path="frameworks/base/tests/AndroidTests"
    package="com.android.unit_tests"
    class="com.android.unit_tests.AndroidTests"
    coverage_target="framework"
    continuous="true" />

<test name="smoke"
    build_path="frameworks/base/tests/SmokeTest"
    package="com.android.smoketest.tests"
    coverage_target="framework"
    continuous="true" />

<test name="core"
    build_path="frameworks/base/tests/CoreTests"
    package="android.core"
    class="android.core.CoreTests"
    coverage_target="framework"
    continuous="true" />

<test name="libcore"
    build_path="frameworks/base/tests/CoreTests"
    package="android.core"
    class="android.core.JavaTests"
    coverage_target="framework" />
    
<test name="apidemos"
    build_path="development/samples/ApiDemos"
    package="com.example.android.apis.tests"
    coverage_target="ApiDemos"
    continuous="true" />

<test name="launchperf"
    build_path="development/apps/launchperf"
    package="com.android.launchperf"
    class="com.android.launchperf.SimpleActivityLaunchPerformance"
    coverage_target="framework" />

<!--  targeted framework tests -->
<test name="heap"
    build_path="frameworks/base/tests/AndroidTests"
    package="com.android.unit_tests"
    class="com.android.unit_tests.HeapTest"
    coverage_target="framework" />

<test name="activity"
    build_path="frameworks/base/tests/AndroidTests"
    package="com.android.unit_tests"
    class="com.android.unit_tests.activity.ActivityTests"
    coverage_target="framework" />

<!--  obsolete?
<test name="deadlock"
    build_path="frameworks/base/tests/Deadlock"
    package="com.android.deadlock.tests"
    coverage_target="framework" />
 -->


<test name="tablemerger"
    build_path="frameworks/base/tests/FrameworkTest"
    package="com.android.frameworktest.tests"
    class="android.content.AbstractTableMergerTest"
    coverage_target="framework" />

<test name="imf"
    build_path="frameworks/base/tests/ImfTest"
    package="com.android.imftest.tests"
    coverage_target="framework"
    continuous="true" />

<!--  selected app tests -->
<test name="browser"
    build_path="packages/apps/Browser"
    package="com.android.browser"
    runner=".BrowserTestRunner"
    coverage_target="Browser" />

<test name="browserfunc"
    build_path="packages/apps/Browser"
    package="com.android.browser"
    runner=".BrowserFunctionalTestRunner"
    coverage_target="Browser" />

<test name="calendar"
    build_path="packages/apps/Calendar/tests"
    package="com.android.calendar.tests"
    coverage_target="Calendar"
    continuous="true" />

<test name="calprov"
    build_path="packages/providers/CalendarProvider/tests"
    package="com.android.providers.calendar.tests"
    coverage_target="CalendarProvider"
    continuous="true" />

<test name="camera"
    build_path="packages/apps/Camera/tests"
    package="com.android.cameratests"
    runner="CameraInstrumentationTestRunner"
    coverage_target="Camera" />

<test name="contactsprov"
    build_path="packages/providers/GoogleContactsProvider/tests"
    package="com.android.providers.contactstests"
    coverage_target="ContactsProvider" />

<test name="email"
    build_path="packages/apps/Email"
    package="com.android.email.tests"
    coverage_target="Email"
    continuous="true" />

<test name="emailsmall"
    build_path="packages/apps/Email"
    package="com.android.email.tests"
    class="com.android.email.SmallTests"
    coverage_target="Email" />

<test name="media"
    build_path="frameworks/base/media/tests/MediaFrameworkTest"
    package="com.android.mediaframeworktest"
    runner=".MediaFrameworkTestRunner"
    coverage_target="framework"
    continuous="true" />
    
<test name="mediaunit"
    build_path="frameworks/base/media/tests/MediaFrameworkTest"
    package="com.android.mediaframeworktest"
    runner=".MediaFrameworkUnitTestRunner"
    coverage_target="framework" />
    
<test name="musicplayer"
    build_path="packages/apps/Music"
    package="com.android.music.tests"
    runner=".MusicPlayerFunctionalTestRunner"
    coverage_target="Music"
    continuous="true" />

<!-- obsolete?
<test name="mediaprov"
    build_path="tests/MediaProvider"
    package="com.android.mediaprovidertests"
    runner=".MediaProviderTestsInstrumentation"
    coverage_target="MediaProvider" />
 -->

<test name="mms"
    build_path="packages/apps/Mms"
    package="com.android.mms.tests"
    runner="com.android.mms.ui.MMSInstrumentationTestRunner"
    coverage_target="Mms" />

<test name="mmslaunch"
    build_path="packages/apps/Mms"
    package="com.android.mms.tests"
    runner="com.android.mms.SmsLaunchPerformance"
    coverage_target="Mms" />


<!-- obsolete?
<test name="ringtone"
    build_path="tests/RingtoneSettings"
    package="com.android.ringtonesettingstests"
    runner=".RingtoneSettingsInstrumentationTestRunner"
    coverage_target="Settings" />
-->

</test-definitions>
