1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  ~ Copyright (C) 2024 The Android Open Source Project
4  ~
5  ~ Licensed under the Apache License, Version 2.0 (the "License");
6  ~ you may not use this file except in compliance with the License.
7  ~ You may obtain a copy of the License at
8  ~
9  ~      http://www.apache.org/licenses/LICENSE-2.0
10  ~
11  ~ Unless required by applicable law or agreed to in writing, software
12  ~ distributed under the License is distributed on an "AS IS" BASIS,
13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  ~ See the License for the specific language governing permissions and
15  ~ limitations under the License.
16  -->
17<configuration description="Config for Cts Ad Services Custom Audience tests in ExtServices">
18    <option name="test-suite-tag" value="cts" />
19    <option name="test-tag" value="CtsAdExtServicesCustomAudienceTests" />
20    <option name="config-descriptor:metadata" key="component" value="adservices"/>
21    <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
22    <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
23    <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
24    <!-- Needed for correctly being picked up in presubmit -->
25    <option name="config-descriptor:metadata" key="mainline-param" value="com.google.android.extservices.apex" />
26
27
28    <!-- Prevent test from running on Android T+ -->
29    <object type="module_controller"
30        class="com.android.tradefed.testtype.suite.module.MaxSdkModuleController">
31        <option name="max-sdk-level" value="32"/>
32    </object>
33
34    <!-- Prevent tests from running on Android R- -->
35    <object type="module_controller"
36        class="com.android.tradefed.testtype.suite.module.Sdk31ModuleController"/>
37
38    <!-- Only run on devices containing the ExtServices module -->
39    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
40        <option name="mainline-module-package-name" value="com.google.android.extservices"/>
41    </object>
42
43    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
44        <option name="cleanup-apks" value="true"/>
45        <!-- The test apps to be installed and uninstalled -->
46        <option name="test-file-name" value="CtsAdExtServicesCustomAudienceTests.apk"/>
47    </target_preparer>
48
49    <test class="com.android.tradefed.testtype.AndroidJUnitTest">
50        <option name="hidden-api-checks" value="false" /> <!-- Allow hidden API uses -->
51        <option name="package" value="com.android.adextservices.tests.cts.customaudience"/>
52    </test>
53
54    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
55        <!-- Disable GPP flagging test apps -->
56        <option name="run-command" value="settings put global verifier_engprod 1" />
57        <option name="teardown-command" value="settings put global verifier_engprod 0" />
58
59        <!-- Create place to store tests apks that will be installed/uninstalled in the test. -->
60        <option name="run-command" value="mkdir -p /data/local/tmp/cts/install" />
61        <option name="teardown-command" value="rm -rf /data/local/tmp/cts"/>
62
63        <!-- Uninstall the test apps anyway in case failed test skips the uninstallation -->
64        <option name="test-user-token" value="%TEST_USER%"/>
65        <option name="teardown-command"
66            value="pm uninstall --user %TEST_USER% com.android.adservices.tests.cts.customaudience.sampleapphighbid" />
67        <option name="teardown-command"
68            value="pm uninstall --user %TEST_USER% com.android.adservices.tests.cts.customaudience.sampleapplowbid" />
69    </target_preparer>
70
71    <!-- Push compiled APK file of test apps to a local place for installation -->
72    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
73        <option name="push"
74            value="CtsSampleCustomAudienceAppHighBid.apk->/data/local/tmp/cts/install/CtsSampleCustomAudienceAppHighBid.apk" />
75        <option name="push"
76            value="CtsSampleCustomAudienceAppLowBid.apk->/data/local/tmp/cts/install/CtsSampleCustomAudienceAppLowBid.apk" />
77    </target_preparer>
78
79    <object type="module_controller"
80        class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
81        <option name="mainline-module-package-name" value="com.google.android.adservices"/>
82    </object>
83    <option name="config-descriptor:metadata" key="mainline-param" value="com.google.android.adservices.apex" />
84</configuration>
85