summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkhil Gangu <akhilga@google.com>2023-03-16 22:10:04 +0000
committerAkhil Gangu <akhilga@google.com>2023-03-17 22:22:36 +0000
commit74a0cb27a5e8dd854928ed209048b361e088b45b (patch)
treed366d75537e096dcebcc732fdfd21a57188939c6
parent4543591370641600a30cccda435b458b7f3cb817 (diff)
downloadAdServices-74a0cb27a5e8dd854928ed209048b361e088b45b.tar.gz
Extend TopicsManagerMdd CTS test to run on Android S.
Apart from creating separate test configurations, some minor changes to get the tests to pass on S include: allow-listing the new test package name in the cts_test_1 precomputed_app_list in g3 (cl/517269439), updating manifest MDD test file URL (autogen CL: cl/517465633), and setting a few flags to avoid invoking system server related code. Also added mts-extservices tag so some of the existing extadservices CTS tests. Fix: b/274018111 Test: atest CtsExtAdServicesMddTests (verified on S and T) Change-Id: Ic86ee8a124bf9bfb7903735d9c6d96f498fbcf33
-rw-r--r--adservices/tests/cts/endtoends/permissions/appoptout/Android.bp2
-rw-r--r--adservices/tests/cts/endtoends/permissions/noperm/Android.bp2
-rw-r--r--adservices/tests/cts/endtoends/permissions/valid/Android.bp2
-rw-r--r--adservices/tests/cts/endtoends/topics/appupdate/Android.bp2
-rw-r--r--adservices/tests/cts/endtoends/topics/connection/Android.bp2
-rw-r--r--adservices/tests/cts/endtoends/topics/mdd/Android.bp31
-rw-r--r--adservices/tests/cts/endtoends/topics/mdd/AndroidManifestExtServices.xml31
-rw-r--r--adservices/tests/cts/endtoends/topics/mdd/AndroidTest.ExtServices.xml64
-rw-r--r--adservices/tests/cts/endtoends/topics/mdd/src/com/android/adservices/tests/cts/topics/mdd/TopicsManagerMddTest.java13
9 files changed, 143 insertions, 6 deletions
diff --git a/adservices/tests/cts/endtoends/permissions/appoptout/Android.bp b/adservices/tests/cts/endtoends/permissions/appoptout/Android.bp
index 6d4081dd50..2b1676fa98 100644
--- a/adservices/tests/cts/endtoends/permissions/appoptout/Android.bp
+++ b/adservices/tests/cts/endtoends/permissions/appoptout/Android.bp
@@ -71,7 +71,7 @@ android_test {
test_suites: [
"cts",
"general-tests",
- "mts-adservices"
+ "mts-extservices",
],
sdk_version: "module_current",
min_sdk_version: "31",
diff --git a/adservices/tests/cts/endtoends/permissions/noperm/Android.bp b/adservices/tests/cts/endtoends/permissions/noperm/Android.bp
index a7546beb55..08008245ec 100644
--- a/adservices/tests/cts/endtoends/permissions/noperm/Android.bp
+++ b/adservices/tests/cts/endtoends/permissions/noperm/Android.bp
@@ -63,7 +63,7 @@ android_test {
test_suites: [
"cts",
"general-tests",
- "mts-adservices"
+ "mts-extservices",
],
sdk_version: "module_current",
min_sdk_version: "31",
diff --git a/adservices/tests/cts/endtoends/permissions/valid/Android.bp b/adservices/tests/cts/endtoends/permissions/valid/Android.bp
index 655e421c49..4d914bfc76 100644
--- a/adservices/tests/cts/endtoends/permissions/valid/Android.bp
+++ b/adservices/tests/cts/endtoends/permissions/valid/Android.bp
@@ -72,7 +72,7 @@ android_test {
test_suites: [
"cts",
"general-tests",
- "mts-adservices"
+ "mts-extservices",
],
sdk_version: "module_current",
min_sdk_version: "31",
diff --git a/adservices/tests/cts/endtoends/topics/appupdate/Android.bp b/adservices/tests/cts/endtoends/topics/appupdate/Android.bp
index 2866b9f95e..4ba80585b0 100644
--- a/adservices/tests/cts/endtoends/topics/appupdate/Android.bp
+++ b/adservices/tests/cts/endtoends/topics/appupdate/Android.bp
@@ -68,7 +68,7 @@ android_test {
test_suites: [
"cts",
"general-tests",
- "mts-adservices"
+ "mts-extservices",
],
data: [
// Sample App will be installed and uninstalled in the test.
diff --git a/adservices/tests/cts/endtoends/topics/connection/Android.bp b/adservices/tests/cts/endtoends/topics/connection/Android.bp
index 837fec6757..ede5070b27 100644
--- a/adservices/tests/cts/endtoends/topics/connection/Android.bp
+++ b/adservices/tests/cts/endtoends/topics/connection/Android.bp
@@ -64,7 +64,7 @@ android_test {
test_suites: [
"cts",
"general-tests",
- "mts-adservices"
+ "mts-extservices",
],
sdk_version: "module_current",
min_sdk_version: "31",
diff --git a/adservices/tests/cts/endtoends/topics/mdd/Android.bp b/adservices/tests/cts/endtoends/topics/mdd/Android.bp
index 7bdb226cc6..e03210a193 100644
--- a/adservices/tests/cts/endtoends/topics/mdd/Android.bp
+++ b/adservices/tests/cts/endtoends/topics/mdd/Android.bp
@@ -42,3 +42,34 @@ android_test {
min_sdk_version: "Tiramisu",
test_mainline_modules: ["com.google.android.adservices.apex"],
}
+
+android_test {
+ name: "CtsExtAdServicesMddTests",
+ srcs: [
+ "src/**/*.java",
+ ],
+ static_libs: [
+ "androidx.concurrent_concurrent-futures",
+ "compatibility-device-util-axt", // Needed for ShellUtils.runShellCommand
+ "truth-prebuilt",
+ "adservices-clients",
+ "adservices-test-utility",
+ ],
+ libs: [
+ "android.ext.adservices",
+ "android.test.base",
+ "framework-adservices",
+ "framework-sdksandbox.impl",
+ ],
+ test_suites: [
+ "cts",
+ "general-tests",
+ "mts-extservices",
+ ],
+ sdk_version: "module_current",
+ min_sdk_version: "31",
+ max_sdk_version: "32",
+ test_mainline_modules: ["com.google.android.extservices.apex"],
+ test_config: "AndroidTest.ExtServices.xml",
+ manifest: "AndroidManifestExtServices.xml",
+}
diff --git a/adservices/tests/cts/endtoends/topics/mdd/AndroidManifestExtServices.xml b/adservices/tests/cts/endtoends/topics/mdd/AndroidManifestExtServices.xml
new file mode 100644
index 0000000000..ba7a8d7e5c
--- /dev/null
+++ b/adservices/tests/cts/endtoends/topics/mdd/AndroidManifestExtServices.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 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.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.adextservices.tests.cts.topics.mdd">
+
+ <uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"/>
+ <application>
+ <property android:name="android.adservices.AD_SERVICES_CONFIG"
+ android:resource="@xml/ad_services_config"/>
+ <uses-library android:name="android.ext.adservices" android:required="false"/>
+ </application>
+ <instrumentation
+ android:name="androidx.test.runner.AndroidJUnitRunner"
+ android:targetPackage="com.android.adextservices.tests.cts.topics.mdd">
+ </instrumentation>
+</manifest>
diff --git a/adservices/tests/cts/endtoends/topics/mdd/AndroidTest.ExtServices.xml b/adservices/tests/cts/endtoends/topics/mdd/AndroidTest.ExtServices.xml
new file mode 100644
index 0000000000..1862a8fe3a
--- /dev/null
+++ b/adservices/tests/cts/endtoends/topics/mdd/AndroidTest.ExtServices.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 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 Ad Services MDD E2E tests in ExtServices">
+ <option name="test-suite-tag" value="cts"/>
+ <option name="test-tag" value="CtsExtAdServicesMddTests"/>
+ <option name="config-descriptor:metadata" key="component" value="framework"/>
+ <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="secondary_user"/>
+
+ <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+ <option name="cleanup-apks" value="true"/>
+ <!-- The test apps to be installed and uninstalled -->
+ <option name="test-file-name" value="CtsExtAdServicesMddTests.apk"/>
+ <option name="check-min-sdk" value="true"/>
+ </target_preparer>
+
+ <test class="com.android.tradefed.testtype.AndroidJUnitTest">
+ <option name="package" value="com.android.adextservices.tests.cts.topics.mdd"/>
+ </test>
+
+ <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+ <!-- Disable global/topics kill_switch to ignore the effect of actual PH values. -->
+ <option name="run-command" value="device_config put adservices global_kill_switch false"/>
+ <option name="run-command" value="device_config put adservices topics_kill_switch false"/>
+ <!-- Override Consent Manager to debug mode to grant user consent -->
+ <option name="run-command"
+ value="setprop debug.adservices.consent_manager_debug_mode true"/>
+ <option name="run-command" value="setprop log.tag.adservices VERBOSE"/>
+ <!-- Override the flag to disable Topics enrollment check. -->
+ <option name="run-command"
+ value="setprop debug.adservices.disable_topics_enrollment_check true"/>
+
+ <option name="teardown-command"
+ value="setprop debug.adservices.consent_manager_debug_mode false"/>
+ <option name="teardown-command"
+ value="setprop debug.adservices.disable_topics_enrollment_check false"/>
+
+ <!-- Temporarily disable Device Config sync -->
+ <option name="run-command" value="device_config set_sync_disabled_for_tests persistent"/>
+ <option name="teardown-command" value="device_config set_sync_disabled_for_tests none"/>
+ </target_preparer>
+
+ <object type="module_controller"
+ class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
+ <option name="mainline-module-package-name" value="com.google.android.extservices"/>
+ </object>
+ <option name="config-descriptor:metadata" key="mainline-param"
+ value="com.google.android.extservices.apex"/>
+</configuration>
diff --git a/adservices/tests/cts/endtoends/topics/mdd/src/com/android/adservices/tests/cts/topics/mdd/TopicsManagerMddTest.java b/adservices/tests/cts/endtoends/topics/mdd/src/com/android/adservices/tests/cts/topics/mdd/TopicsManagerMddTest.java
index 5180e96095..eeb6564d16 100644
--- a/adservices/tests/cts/endtoends/topics/mdd/src/com/android/adservices/tests/cts/topics/mdd/TopicsManagerMddTest.java
+++ b/adservices/tests/cts/endtoends/topics/mdd/src/com/android/adservices/tests/cts/topics/mdd/TopicsManagerMddTest.java
@@ -26,7 +26,9 @@ import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import com.android.adservices.common.AdservicesTestHelper;
+import com.android.adservices.common.CompatAdServicesTestUtils;
import com.android.compatibility.common.util.ShellUtils;
+import com.android.modules.utils.build.SdkLevel;
import org.junit.After;
import org.junit.Assume;
@@ -69,7 +71,7 @@ public class TopicsManagerMddTest {
// http://google3/wireless/android/adservices/mdd/topics_classifier/cts_test_1/
// These assets are have asset version set to 0 for verification in tests.
private static final String TEST_MDD_MANIFEST_FILE_URL =
- "https://www.gstatic.com/mdi-serving/rubidium-adservices-topics-classifier/1489/165d2bb9043b11893187dfe808c3398bc4f11c48";
+ "https://www.gstatic.com/mdi-serving/rubidium-adservices-topics-classifier/1640/2eda2f0d34820761569a04349311984a295acfae";
// Use 0 percent for random topic in the test so that we can verify the returned topic.
private static final int TEST_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC = 0;
@@ -88,6 +90,12 @@ public class TopicsManagerMddTest {
// Skip the test if it runs on unsupported platforms.
Assume.assumeTrue(AdservicesTestHelper.isDeviceSupported());
+ // Extra flags need to be set when test is executed on S- for service to run (e.g.
+ // to avoid invoking system-server related code).
+ if (!SdkLevel.isAtLeastT()) {
+ CompatAdServicesTestUtils.setFlags();
+ }
+
// Kill AdServices process.
AdservicesTestHelper.killAdservicesProcess(ADSERVICES_PACKAGE_NAME);
@@ -111,6 +119,9 @@ public class TopicsManagerMddTest {
overridePercentageForRandomTopic(TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC);
// Reset Mdd manifest file url to the default value.
overrideMddManifestFileUrl(mDefaultMddManifestFileUrl);
+ if (!SdkLevel.isAtLeastT()) {
+ CompatAdServicesTestUtils.resetFlagsToDefault();
+ }
}
@Test