#
# Test uses-sdk: there's a warning if the main manifest defines a targetSdkVersion that
# is smaller than what the libraries target.
#

@fails

@main

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app1"
    android:versionCode="100"
    android:versionName="1.0.0">

    <!-- This app requires cupcake and targets at least 10. -->
    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="ApiCodename10"
        />

    <application />

</manifest>


@lib1

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib1">

    <!-- This lib requires cupcake and targets 11 which is > 10 so it's a warning. -->
    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="11"
        />

</manifest>


@lib2

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib2">

    <!-- This is not an error nor a warning. -->
    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="4"
        />
</manifest>


@result

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app1"
    android:versionCode="100"
    android:versionName="1.0.0">

    <!-- This app requires cupcake and targets at least 10. -->
    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="ApiCodename10"
        />

    <application />

</manifest>


@errors

W [ManifestMergerTest0_main.xml:4, ManifestMergerTest1_lib1.xml:4] Main manifest has <uses-sdk android:targetSdkVersion='10'> but library uses targetSdkVersion='11'
