<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<configuration description="Config for CTS Sample host test cases">
    <option name="test-suite-tag" value="cts" />
    <option name="config-descriptor:metadata" key="component" value="media" />
    <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
    <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
    <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.DynamicConfigPusher">
        <option name="target" value="host" />
        <option name="config-filename" value="cts" />
        <option name="dynamic-config-name" value="cts-dynamic-config" />
        <option name="version" value="9.0_r1"/>
    </target_preparer>
    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.MediaPreparer">
        <option name="media-download-only" value="true" />
    </target_preparer>
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="CtsMediaBitstreamsDeviceSideTestApp.apk" />
    </target_preparer>
    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.DynamicConfigPusher">
        <option name="target" value="device" />
        <option name="config-filename" value="CtsMediaBitstreamsTestCases" />
        <option name="version" value="9.0_r1"/>
    </target_preparer>
    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ReportLogCollector">
        <option name="src-dir" value="/sdcard/report-log-files/"/>
        <option name="dest-dir" value="report-log-files/"/>
        <option name="temp-dir" value="temp-report-logs/"/>
        <option name="device-dir" value="true"/>
    </target_preparer>
    <test class="com.android.compatibility.common.tradefed.testtype.JarHostTest" >
        <option name="jar" value="CtsMediaBitstreamsTestCases.jar" />
        <option name="runtime-hint" value="4h50m" />
        <!-- shard-unit must be class -->
        <option name="shard-unit" value="class" />
        <!-- remove exclude-annotation option and use include-annotation
          android.media.cts.bitstreams.FullPackage instead to run full package -->
        <option name="exclude-annotation" value="android.media.cts.bitstreams.FullPackage" />
    </test>
</configuration>
