<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2024 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 ranging multi-device test cases">
    <option name="test-suite-tag" value="cts" />
    <option name="config-descriptor:metadata" key="component" value="uwb" />
    <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
    <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
    <option name="config-descriptor:metadata" key="parameter" value="not_secondary_user" />
    <option name="config-descriptor:metadata" key="mainline-param" value="com.google.android.uwb.apex" />

    <!-- Do not run the tests on automotive variant-->
    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.DeviceFeatureModuleController">
        <option name="forbidden-feature" value="android.hardware.type.automotive"/>
    </object>

    <device name="device1">
        <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
            <option name="test-file-name" value="ranging_snippet.apk" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
            <option name="test-file-name" value="uwb_snippet.apk" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
            <option name="test-file-name" value="bluetooth_multi_devices_snippet.apk" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
            <option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
            <option name="run-command" value="wm dismiss-keyguard" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
            <option name="throw-if-cmd-fail" value="true" />
            <!-- Disable ble services to allow Bluetooth to go full OFF vs BLE_ON -->
            <option name="run-command" value="settings put system nearby_scanning_enabled 0"/>
            <option name="run-command" value="settings put system spen_air_action 0"/>
            <option name="run-command" value="settings put global ble_scan_always_enabled 0"/>
        </target_preparer>
    </device>
    <device name="device2">
        <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
            <option name="test-file-name" value="ranging_snippet.apk" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
            <option name="test-file-name" value="uwb_snippet.apk" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
            <option name="test-file-name" value="bluetooth_multi_devices_snippet.apk" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
            <option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
            <option name="run-command" value="wm dismiss-keyguard" />
        </target_preparer>
        <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
            <option name="throw-if-cmd-fail" value="true" />
            <!-- Disable ble services to allow Bluetooth to go full OFF vs BLE_ON -->
            <option name="run-command" value="settings put system nearby_scanning_enabled 0"/>
            <option name="run-command" value="settings put system spen_air_action 0"/>
            <option name="run-command" value="settings put global ble_scan_always_enabled 0"/>
        </target_preparer>
    </device>

    <test class="com.android.tradefed.testtype.mobly.MoblyBinaryHostTest">
        <!-- The mobly-par-file-name should match the module name -->
        <option name="mobly-par-file-name" value="MultiDeviceRangingTestCases" />
        <!-- Timeout limit in milliseconds for all test cases of the python binary -->
        <option name="mobly-test-timeout" value="1800000" />
    </test>
    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.Sdk36ModuleController" />
</configuration>

