<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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 Libcore java.util Collection test cases">
    <option name="test-suite-tag" value="cts" />
    <option name="not-shardable" value="true" />
    <option name="config-descriptor:metadata" key="component" value="libcore" />
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="CtsLibcoreJavaUtilCollectionsTestCases.apk" />
    </target_preparer>
    <!--
    Notes as of November 2016:

    1.) When the runner collects the set of tests to run, it
    (a) attempts to directly run TestCase subclasses from guava-testlib, which they don't support,
    (b) doesn't find classes with suite() methods.
    (c) runs out of memory if attempting to run all of the > 220k tests in a single go
    Breaking the tests down into chunks of ~ 40-50k tests each, and explicitly specifying the
    suites to run, solves these problems.

    2.) Due to http://b/33068110 the classes with the suite() methods (in the "suite" sub-package)
    need to extend TestSuite, which means that they need to delegate to separate classes (in the
     "tests" sub-package) that extend classes from guava-testlib.
    -->
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="libcore.java.util.collectiontests" />
        <option name="class" value="libcore.java.util.suite.ConcurrentSkipListMapNaturalSuite" />
        <option name="runtime-hint" value="10m" />
        <option name="test-timeout" value="1200000" />
        <option name="shell-timeout" value="1400000" />
    </test>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="libcore.java.util.collectiontests" />
        <option name="class" value="libcore.java.util.suite.ConcurrentSkipListMapWithComparatorSuite" />
        <option name="runtime-hint" value="10m" />
        <option name="test-timeout" value="1200000" />
        <option name="shell-timeout" value="1400000" />
    </test>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="libcore.java.util.collectiontests" />
        <option name="class" value="libcore.java.util.suite.TreeMapNaturalSuite" />
        <option name="runtime-hint" value="10m" />
        <option name="test-timeout" value="1200000" />
        <option name="shell-timeout" value="1400000" />
    </test>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="libcore.java.util.collectiontests" />
        <option name="class" value="libcore.java.util.suite.TreeMapWithComparatorSuite" />
        <option name="runtime-hint" value="10m" />
        <option name="test-timeout" value="1200000" />
        <option name="shell-timeout" value="1400000" />
    </test>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="libcore.java.util.collectiontests" />
        <option name="class" value="libcore.java.util.suite.OtherCollectionsSuite" />
        <option name="runtime-hint" value="8m" />
        <option name="test-timeout" value="1200000" />
        <option name="shell-timeout" value="1400000" />
    </test>
</configuration>
