<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2020 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="Runs iorap-functional-tests.">
    <option name="test-suite-tag" value="apct" />
    <option name="test-suite-tag" value="apct-instrumentation" />
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="iorap-functional-tests.apk" />
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>

    <target_preparer
        class="com.android.tradefed.targetprep.DeviceSetup">

        <!-- iorapd does not pick up the above changes until we restart it -->
        <option name="run-command" value="stop iorapd" />

        <!-- Clean up the existing iorap database. -->
        <option name="run-command" value="rm -r /data/misc/iorapd/*" />
        <option name="run-command" value="sleep 1" />

        <!-- Set system properties to enable perfetto tracing, readahead and detailed logging. -->
        <option name="run-command" value="setprop iorapd.perfetto.enable true" />
        <option name="run-command" value="setprop iorapd.readahead.enable true" />
        <option name="run-command" value="setprop iorapd.log.verbose true" />

        <option name="run-command" value="start iorapd" />

        <!-- give it some time to restart the service; otherwise the first unit test might fail -->
        <option name="run-command" value="sleep 1" />
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
        <option name="cleanup" value="true" />
        <option name="abort-on-push-failure" value="true" />
        <option name="push-file"
          key="iorap_test_app_v1.apk"
          value="/data/misc/iorapd/iorap_test_app_v1.apk" />
        <option name="push-file"
          key="iorap_test_app_v2.apk"
          value="/data/misc/iorapd/iorap_test_app_v2.apk" />
        <option name="push-file"
          key="iorap_test_app_v3.apk"
          value="/data/misc/iorapd/iorap_test_app_v3.apk" />
    </target_preparer>

    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="com.google.android.startop.iorap.tests" />
        <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
        <!-- test-timeout unit is ms, value = 30 min -->
        <option name="test-timeout" value="1800000" />
    </test>

</configuration>

