diff options
author | Akhil Gangu <akhilga@google.com> | 2023-03-16 22:10:04 +0000 |
---|---|---|
committer | Akhil Gangu <akhilga@google.com> | 2023-03-17 22:22:36 +0000 |
commit | 74a0cb27a5e8dd854928ed209048b361e088b45b (patch) | |
tree | d366d75537e096dcebcc732fdfd21a57188939c6 | |
parent | 4543591370641600a30cccda435b458b7f3cb817 (diff) | |
download | AdServices-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
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 |