<?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.
-->

<!--Defines the list of test code coverage targets for core android platform 
    Intent is to list all modules that are present in a typical 'user' build
    
    TODO: auto-generate this file from build 

  Expected syntax in this file is 
  <coverage_targets>
    <coverage_target name type build_path
      [<src path=""/>] (0..*)  
    >/coverage_target>
    
   Where
     name - unique name of Android target
     type - one of JAVA_LIBRARIES,APPS 
     build_path - path to build directory for this module, relative to android
       source tree root
     src - optional sub-elements. Contains complete set of source code locations
       for target, relative to build_path. If not present, assumes valeu of "src"
      
       
-->

<coverage_targets>
   <!-- Java libs -->
    <coverage_target name="framework" type="JAVA_LIBRARIES" 
        build_path="frameworks/base">
        <src path="core/java" />
        <src path="graphics/java" />
        <src path="im/java" />
        <src path="location/java" />
        <src path="media/java" />
        <src path="opengl/java" />
        <src path="sax/java" />
        <src path="telephony/java" />
        <src path="wifi/java" />
    </coverage_target>
    <coverage_target name="android.test.runner"
        build_path="frameworks/base/test-runner" type="JAVA_LIBRARIES">
        <src path="." />
    </coverage_target>
   
   <!-- apps -->
    <coverage_target name="AlarmClock" build_path="packages/apps/AlarmClock"
        type="APPS" />
    <coverage_target name="ApiDemos" build_path="development/samples/ApiDemos"
        type="APPS" />
    <coverage_target name="Browser" build_path="packages/apps/Browser"
        type="APPS" />
    <coverage_target name="Calculator" build_path="packages/apps/Calculator"
        type="APPS" />
    <coverage_target name="Calendar" build_path="packages/apps/Calendar"
        type="APPS" />
    <coverage_target name="Camera" build_path="packages/apps/Camera"
        type="APPS" />
    <coverage_target name="Contacts" build_path="packages/apps/Contacts"
        type="APPS" />
    <coverage_target name="Email" build_path="packages/apps/Email"
        type="APPS" />
    <coverage_target name="Settings" build_path="packages/apps/Settings"
        type="APPS" />
    <coverage_target name="Phone" build_path="packages/apps/Phone"
        type="APPS" />
    <coverage_target name="Launcher" build_path="packages/apps/Home"
        type="APPS" />
    <coverage_target name="Mms" build_path="packages/apps/Mms" type="APPS" />
    <coverage_target name="Music" build_path="packages/apps/Music"
        type="APPS" />
    <coverage_target name="VoiceDialer" build_path="packages/apps/VoiceDialer"
        type="APPS" />

   <!-- content providers -->
    <coverage_target name="CalendarProvider"
        build_path="packages/providers/calendar" type="APPS" />
    <coverage_target name="ContactsProvider"
        build_path="packages/providers/ContactsProvider" type="APPS" />
    <coverage_target name="GoogleContactsProvider"
        build_path="packages/providers/GoogleContactsProvider" type="APPS" />
    <coverage_target name="DownloadProvider"
        build_path="packages/providers/DownloadProvider" type="APPS" />
    <coverage_target name="DrmProvider" build_path="packages/providers/drm"
        type="APPS" />
    <coverage_target name="GmailProvider"
        build_path="partner/google/providers/gmail" type="APPS" />
    <coverage_target name="MediaProvider"
        build_path="packages/providers/MediaProvider" type="APPS" />
    <coverage_target name="SettingsProvider"
        build_path="frameworks/base/packages/SettingsProvider" type="APPS" />
    <coverage_target name="TelephonyProvider"
        build_path="packages/providers/telephony" type="APPS" />

    <!-- input methods -->
    <coverage_target name="LatinIME" build_path="packages/inputmethods/LatinIME"
        type="APPS" />

</coverage_targets>
