diff --git a/apct-tests/perftests/core/src/android/os/PackageManagerPerfTest.java b/apct-tests/perftests/core/src/android/os/PackageManagerPerfTest.java deleted file mode 100644 index 236f548cf6dd..000000000000 --- a/apct-tests/perftests/core/src/android/os/PackageManagerPerfTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2017 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. - */ - -package android.os; - -import android.content.ComponentName; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.perftests.utils.BenchmarkState; -import android.perftests.utils.PerfStatusReporter; - -import androidx.test.InstrumentationRegistry; -import androidx.test.filters.LargeTest; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(AndroidJUnit4.class) -@LargeTest -public class PackageManagerPerfTest { - private static final String PERMISSION_NAME_EXISTS = - "com.android.perftests.core.TestPermission"; - private static final String PERMISSION_NAME_DOESNT_EXIST = - "com.android.perftests.core.TestBadPermission"; - private static final ComponentName TEST_ACTIVITY = - new ComponentName("com.android.perftests.core", - "android.perftests.utils.PerfTestActivity"); - - @Rule - public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); - - @Test - public void testCheckPermissionExists() { - final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); - final PackageManager pm = InstrumentationRegistry.getTargetContext().getPackageManager(); - final String packageName = TEST_ACTIVITY.getPackageName(); - - while (state.keepRunning()) { - int ret = pm.checkPermission(PERMISSION_NAME_EXISTS, packageName); - } - } - - @Test - public void testCheckPermissionDoesntExist() { - final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); - final PackageManager pm = InstrumentationRegistry.getTargetContext().getPackageManager(); - final String packageName = TEST_ACTIVITY.getPackageName(); - - while (state.keepRunning()) { - int ret = pm.checkPermission(PERMISSION_NAME_DOESNT_EXIST, packageName); - } - } - - @Test - public void testQueryIntentActivities() { - final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); - final PackageManager pm = InstrumentationRegistry.getTargetContext().getPackageManager(); - final Intent intent = new Intent("com.android.perftests.core.PERFTEST"); - - while (state.keepRunning()) { - pm.queryIntentActivities(intent, 0); - } - } - - @Test - public void testGetPackageInfo() throws Exception { - final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); - final PackageManager pm = InstrumentationRegistry.getTargetContext().getPackageManager(); - final String packageName = TEST_ACTIVITY.getPackageName(); - - while (state.keepRunning()) { - pm.getPackageInfo(packageName, 0); - } - } - - @Test - public void testGetApplicationInfo() throws Exception { - final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); - final PackageManager pm = InstrumentationRegistry.getTargetContext().getPackageManager(); - final String packageName = TEST_ACTIVITY.getPackageName(); - - while (state.keepRunning()) { - pm.getApplicationInfo(packageName, 0); - } - } - - @Test - public void testGetActivityInfo() throws Exception { - final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); - final PackageManager pm = InstrumentationRegistry.getTargetContext().getPackageManager(); - - while (state.keepRunning()) { - pm.getActivityInfo(TEST_ACTIVITY, 0); - } - } -} diff --git a/apct-tests/perftests/packagemanager/Android.bp b/apct-tests/perftests/packagemanager/Android.bp new file mode 100644 index 000000000000..17033e048c7d --- /dev/null +++ b/apct-tests/perftests/packagemanager/Android.bp @@ -0,0 +1,21 @@ +android_test { + name: "PackageManagerPerfTests", + + srcs: ["src/**/*.java"], + + static_libs: [ + "platform-compat-test-rules", + "androidx.appcompat_appcompat", + "androidx.test.rules", + "androidx.test.ext.junit", + "androidx.annotation_annotation", + "apct-perftests-utils", + ], + + libs: ["android.test.base"], + + platform_apis: true, + + test_suites: ["device-tests"], + +} diff --git a/apct-tests/perftests/packagemanager/AndroidManifest.xml b/apct-tests/perftests/packagemanager/AndroidManifest.xml new file mode 100644 index 000000000000..520f4b55d931 --- /dev/null +++ b/apct-tests/perftests/packagemanager/AndroidManifest.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apct-tests/perftests/packagemanager/AndroidTest.xml b/apct-tests/perftests/packagemanager/AndroidTest.xml new file mode 100644 index 000000000000..c112d87d83e1 --- /dev/null +++ b/apct-tests/perftests/packagemanager/AndroidTest.xml @@ -0,0 +1,88 @@ + + + + diff --git a/apct-tests/perftests/packagemanager/apps/query-all/Android.bp b/apct-tests/perftests/packagemanager/apps/query-all/Android.bp new file mode 100644 index 000000000000..3cb1589bc376 --- /dev/null +++ b/apct-tests/perftests/packagemanager/apps/query-all/Android.bp @@ -0,0 +1,314 @@ +// 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. + +android_test_helper_app { + name: "QueriesAll0", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration0", + ] +} +android_test_helper_app { + name: "QueriesAll1", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration1", + ] +} +android_test_helper_app { + name: "QueriesAll2", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration2", + ] +} +android_test_helper_app { + name: "QueriesAll3", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration3", + ] +} +android_test_helper_app { + name: "QueriesAll4", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration4", + ] +} +android_test_helper_app { + name: "QueriesAll5", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration5", + ] +} +android_test_helper_app { + name: "QueriesAll6", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration6", + ] +} +android_test_helper_app { + name: "QueriesAll7", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration7", + ] +} +android_test_helper_app { + name: "QueriesAll8", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration8", + ] +} +android_test_helper_app { + name: "QueriesAll9", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration9", + ] +} +android_test_helper_app { + name: "QueriesAll10", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration10", + ] +} +android_test_helper_app { + name: "QueriesAll11", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration11", + ] +} +android_test_helper_app { + name: "QueriesAll12", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration12", + ] +} +android_test_helper_app { + name: "QueriesAll13", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration13", + ] +} +android_test_helper_app { + name: "QueriesAll14", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration14", + ] +} +android_test_helper_app { + name: "QueriesAll15", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration15", + ] +} +android_test_helper_app { + name: "QueriesAll16", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration16", + ] +} +android_test_helper_app { + name: "QueriesAll17", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration17", + ] +} +android_test_helper_app { + name: "QueriesAll18", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration18", + ] +} +android_test_helper_app { + name: "QueriesAll19", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration19", + ] +} +android_test_helper_app { + name: "QueriesAll20", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration20", + ] +} +android_test_helper_app { + name: "QueriesAll21", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration21", + ] +} +android_test_helper_app { + name: "QueriesAll22", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration22", + ] +} +android_test_helper_app { + name: "QueriesAll23", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration23", + ] +} +android_test_helper_app { + name: "QueriesAll24", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration24", + ] +} +android_test_helper_app { + name: "QueriesAll25", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration25", + ] +} +android_test_helper_app { + name: "QueriesAll26", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration26", + ] +} +android_test_helper_app { + name: "QueriesAll27", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration27", + ] +} +android_test_helper_app { + name: "QueriesAll28", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration28", + ] +} +android_test_helper_app { + name: "QueriesAll29", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration29", + ] +} +android_test_helper_app { + name: "QueriesAll30", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration30", + ] +} +android_test_helper_app { + name: "QueriesAll31", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration31", + ] +} +android_test_helper_app { + name: "QueriesAll32", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration32", + ] +} +android_test_helper_app { + name: "QueriesAll33", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration33", + ] +} +android_test_helper_app { + name: "QueriesAll34", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration34", + ] +} +android_test_helper_app { + name: "QueriesAll35", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration35", + ] +} +android_test_helper_app { + name: "QueriesAll36", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration36", + ] +} +android_test_helper_app { + name: "QueriesAll37", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration37", + ] +} +android_test_helper_app { + name: "QueriesAll38", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration38", + ] +} +android_test_helper_app { + name: "QueriesAll39", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration39", + ] +} +android_test_helper_app { + name: "QueriesAll40", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration40", + ] +} +android_test_helper_app { + name: "QueriesAll41", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration41", + ] +} +android_test_helper_app { + name: "QueriesAll42", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration42", + ] +} +android_test_helper_app { + name: "QueriesAll43", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration43", + ] +} +android_test_helper_app { + name: "QueriesAll44", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration44", + ] +} +android_test_helper_app { + name: "QueriesAll45", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration45", + ] +} +android_test_helper_app { + name: "QueriesAll46", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration46", + ] +} +android_test_helper_app { + name: "QueriesAll47", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration47", + ] +} +android_test_helper_app { + name: "QueriesAll48", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration48", + ] +} +android_test_helper_app { + name: "QueriesAll49", + aaptflags: [ + "--rename-manifest-package com.android.perftests.appenumeration49", + ] +} diff --git a/apct-tests/perftests/packagemanager/apps/query-all/AndroidManifest.xml b/apct-tests/perftests/packagemanager/apps/query-all/AndroidManifest.xml new file mode 100644 index 000000000000..e2cfa0430a32 --- /dev/null +++ b/apct-tests/perftests/packagemanager/apps/query-all/AndroidManifest.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java b/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java new file mode 100644 index 000000000000..d7428cf0ab8a --- /dev/null +++ b/apct-tests/perftests/packagemanager/src/android/os/PackageManagerPerfTest.java @@ -0,0 +1,189 @@ +/* + * 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. + */ + +package android.os; + +import static libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges; +import static libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges; + +import android.compat.testing.PlatformCompatChangeRule; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.LargeTest; +import androidx.test.platform.app.InstrumentationRegistry; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class PackageManagerPerfTest { + private static final String PERMISSION_NAME_EXISTS = + "com.android.perftests.packagemanager.TestPermission"; + private static final String PERMISSION_NAME_DOESNT_EXIST = + "com.android.perftests.packagemanager.TestBadPermission"; + private static final String OTHER_PACKAGE_NAME = "com.android.perftests.appenumeration0"; + private static final ComponentName TEST_ACTIVITY = + new ComponentName(OTHER_PACKAGE_NAME, + "android.perftests.utils.PerfTestActivity"); + + @Rule + public final PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Rule + public final PlatformCompatChangeRule mPlatformCompatChangeRule = + new PlatformCompatChangeRule(); + + public PackageManagerPerfTest() throws PackageManager.NameNotFoundException { + final Context context = InstrumentationRegistry.getInstrumentation().getContext(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testCheckPermissionExists() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + final String packageName = TEST_ACTIVITY.getPackageName(); + + while (state.keepRunning()) { + int ret = pm.checkPermission(PERMISSION_NAME_EXISTS, packageName); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testCheckPermissionExistsWithFiltering() { + testCheckPermissionExists(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testCheckPermissionDoesntExist() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + final String packageName = TEST_ACTIVITY.getPackageName(); + + while (state.keepRunning()) { + int ret = pm.checkPermission(PERMISSION_NAME_DOESNT_EXIST, packageName); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testCheckPermissionDoesntExistWithFiltering() { + testCheckPermissionDoesntExist(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testQueryIntentActivities() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + final Intent intent = new Intent("com.android.perftests.core.PERFTEST"); + + while (state.keepRunning()) { + pm.queryIntentActivities(intent, 0); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testQueryIntentActivitiesWithFiltering() { + testQueryIntentActivities(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetPackageInfo() throws Exception { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + + while (state.keepRunning()) { + pm.getPackageInfo(OTHER_PACKAGE_NAME, 0); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetPackageInfoWithFiltering() throws Exception { + testGetPackageInfo(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetApplicationInfo() throws Exception { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + + while (state.keepRunning()) { + pm.getApplicationInfo(OTHER_PACKAGE_NAME, 0); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetApplicationInfoWithFiltering() throws Exception { + testGetApplicationInfo(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetActivityInfo() throws Exception { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + + while (state.keepRunning()) { + pm.getActivityInfo(TEST_ACTIVITY, 0); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetActivityInfoWithFiltering() throws Exception { + testGetActivityInfo(); + } + + @Test + @DisableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetInstalledPackages() throws Exception { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final PackageManager pm = + InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageManager(); + + while (state.keepRunning()) { + pm.getInstalledPackages(0); + } + } + + @Test + @EnableCompatChanges(PackageManager.FILTER_APPLICATION_QUERY) + public void testGetInstalledPackagesWithFiltering() throws Exception { + testGetInstalledPackages(); + } +}