Merge "Adds app enumeration varations to perf tests"

This commit is contained in:
TreeHugger Robot
2020-02-07 19:20:24 +00:00
committed by Android (Google) Code Review
7 changed files with 782 additions and 111 deletions

View File

@@ -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);
}
}
}

View File

@@ -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"],
}

View File

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.perftests.packagemanager">
<permission android:name="com.android.perftests.packagemanager.TestPermission" />
<uses-permission android:name="com.android.perftests.packagemanager.TestPermission" />
<queries>
<package android:name="com.android.perftests.appenumeration0" />
<package android:name="com.android.perftests.appenumeration1" />
<package android:name="com.android.perftests.appenumeration2" />
<package android:name="com.android.perftests.appenumeration3" />
<package android:name="com.android.perftests.appenumeration4" />
<package android:name="com.android.perftests.appenumeration5" />
<package android:name="com.android.perftests.appenumeration6" />
<package android:name="com.android.perftests.appenumeration7" />
<package android:name="com.android.perftests.appenumeration8" />
<package android:name="com.android.perftests.appenumeration9" />
<package android:name="com.android.perftests.appenumeration10" />
<package android:name="com.android.perftests.appenumeration11" />
<package android:name="com.android.perftests.appenumeration12" />
<package android:name="com.android.perftests.appenumeration13" />
<package android:name="com.android.perftests.appenumeration14" />
<package android:name="com.android.perftests.appenumeration15" />
<package android:name="com.android.perftests.appenumeration16" />
<package android:name="com.android.perftests.appenumeration17" />
<package android:name="com.android.perftests.appenumeration18" />
<package android:name="com.android.perftests.appenumeration19" />
<package android:name="com.android.perftests.appenumeration20" />
<package android:name="com.android.perftests.appenumeration21" />
<package android:name="com.android.perftests.appenumeration22" />
<package android:name="com.android.perftests.appenumeration23" />
<package android:name="com.android.perftests.appenumeration24" />
<package android:name="com.android.perftests.appenumeration25" />
<package android:name="com.android.perftests.appenumeration26" />
<package android:name="com.android.perftests.appenumeration27" />
<package android:name="com.android.perftests.appenumeration28" />
<package android:name="com.android.perftests.appenumeration29" />
<package android:name="com.android.perftests.appenumeration30" />
<package android:name="com.android.perftests.appenumeration31" />
<package android:name="com.android.perftests.appenumeration32" />
<package android:name="com.android.perftests.appenumeration33" />
<package android:name="com.android.perftests.appenumeration34" />
<package android:name="com.android.perftests.appenumeration35" />
<package android:name="com.android.perftests.appenumeration36" />
<package android:name="com.android.perftests.appenumeration37" />
<package android:name="com.android.perftests.appenumeration38" />
<package android:name="com.android.perftests.appenumeration39" />
<package android:name="com.android.perftests.appenumeration40" />
<package android:name="com.android.perftests.appenumeration41" />
<package android:name="com.android.perftests.appenumeration42" />
<package android:name="com.android.perftests.appenumeration43" />
<package android:name="com.android.perftests.appenumeration44" />
<package android:name="com.android.perftests.appenumeration45" />
<package android:name="com.android.perftests.appenumeration46" />
<package android:name="com.android.perftests.appenumeration47" />
<package android:name="com.android.perftests.appenumeration48" />
<package android:name="com.android.perftests.appenumeration49" />
</queries>
<application>
<uses-library android:name="android.test.runner" />
<activity android:name="android.perftests.utils.PerfTestActivity">
<intent-filter>
<action android:name="com.android.perftests.packagemanager.PERFTEST" />
</intent-filter>
</activity>
</application>
<instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
android:targetPackage="com.android.perftests.packagemanager"/>
</manifest>

View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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.
-->
<configuration description="Runs PackageManagerPerfTests metric instrumentation.">
<option name="test-suite-tag" value="apct" />
<option name="test-suite-tag" value="apct-metric-instrumentation" />
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="PackageManagerPerfTests.apk" />
</target_preparer>
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="force-queryable" value="false" />
<option name="test-file-name" value="QueriesAll0.apk" />
<option name="test-file-name" value="QueriesAll1.apk" />
<option name="test-file-name" value="QueriesAll2.apk" />
<option name="test-file-name" value="QueriesAll3.apk" />
<option name="test-file-name" value="QueriesAll4.apk" />
<option name="test-file-name" value="QueriesAll5.apk" />
<option name="test-file-name" value="QueriesAll6.apk" />
<option name="test-file-name" value="QueriesAll7.apk" />
<option name="test-file-name" value="QueriesAll8.apk" />
<option name="test-file-name" value="QueriesAll9.apk" />
<option name="test-file-name" value="QueriesAll10.apk" />
<option name="test-file-name" value="QueriesAll11.apk" />
<option name="test-file-name" value="QueriesAll12.apk" />
<option name="test-file-name" value="QueriesAll13.apk" />
<option name="test-file-name" value="QueriesAll14.apk" />
<option name="test-file-name" value="QueriesAll15.apk" />
<option name="test-file-name" value="QueriesAll16.apk" />
<option name="test-file-name" value="QueriesAll17.apk" />
<option name="test-file-name" value="QueriesAll18.apk" />
<option name="test-file-name" value="QueriesAll19.apk" />
<option name="test-file-name" value="QueriesAll20.apk" />
<option name="test-file-name" value="QueriesAll21.apk" />
<option name="test-file-name" value="QueriesAll22.apk" />
<option name="test-file-name" value="QueriesAll23.apk" />
<option name="test-file-name" value="QueriesAll24.apk" />
<option name="test-file-name" value="QueriesAll25.apk" />
<option name="test-file-name" value="QueriesAll26.apk" />
<option name="test-file-name" value="QueriesAll27.apk" />
<option name="test-file-name" value="QueriesAll28.apk" />
<option name="test-file-name" value="QueriesAll29.apk" />
<option name="test-file-name" value="QueriesAll30.apk" />
<option name="test-file-name" value="QueriesAll31.apk" />
<option name="test-file-name" value="QueriesAll32.apk" />
<option name="test-file-name" value="QueriesAll33.apk" />
<option name="test-file-name" value="QueriesAll34.apk" />
<option name="test-file-name" value="QueriesAll35.apk" />
<option name="test-file-name" value="QueriesAll36.apk" />
<option name="test-file-name" value="QueriesAll37.apk" />
<option name="test-file-name" value="QueriesAll38.apk" />
<option name="test-file-name" value="QueriesAll39.apk" />
<option name="test-file-name" value="QueriesAll40.apk" />
<option name="test-file-name" value="QueriesAll41.apk" />
<option name="test-file-name" value="QueriesAll42.apk" />
<option name="test-file-name" value="QueriesAll43.apk" />
<option name="test-file-name" value="QueriesAll44.apk" />
<option name="test-file-name" value="QueriesAll45.apk" />
<option name="test-file-name" value="QueriesAll46.apk" />
<option name="test-file-name" value="QueriesAll47.apk" />
<option name="test-file-name" value="QueriesAll48.apk" />
<option name="test-file-name" value="QueriesAll49.apk" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.android.perftests.packagemanager" />
<option name="hidden-api-checks" value="false"/>
</test>
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
<option name="directory-keys" value="/data/local/PackageManagerPerfTests" />
<option name="collect-on-run-ended-only" value="true" />
</metrics_collector>
</configuration>

View File

@@ -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",
]
}

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.perftests.appenumeration">
<application android:hasCode="false" >
<activity android:name="android.perftests.utils.PerfTestActivity">
<intent-filter>
<action android:name="com.android.perftests.packagemanager.PERFTEST" />
</intent-filter>
</activity>
</application>
<queries>
<package android:name="com.android.perftests.appenumeration0" />
<package android:name="com.android.perftests.appenumeration1" />
<package android:name="com.android.perftests.appenumeration2" />
<package android:name="com.android.perftests.appenumeration3" />
<package android:name="com.android.perftests.appenumeration4" />
<package android:name="com.android.perftests.appenumeration5" />
<package android:name="com.android.perftests.appenumeration6" />
<package android:name="com.android.perftests.appenumeration7" />
<package android:name="com.android.perftests.appenumeration8" />
<package android:name="com.android.perftests.appenumeration9" />
<package android:name="com.android.perftests.appenumeration10" />
<package android:name="com.android.perftests.appenumeration11" />
<package android:name="com.android.perftests.appenumeration12" />
<package android:name="com.android.perftests.appenumeration13" />
<package android:name="com.android.perftests.appenumeration14" />
<package android:name="com.android.perftests.appenumeration15" />
<package android:name="com.android.perftests.appenumeration16" />
<package android:name="com.android.perftests.appenumeration17" />
<package android:name="com.android.perftests.appenumeration18" />
<package android:name="com.android.perftests.appenumeration19" />
<package android:name="com.android.perftests.appenumeration20" />
<package android:name="com.android.perftests.appenumeration21" />
<package android:name="com.android.perftests.appenumeration22" />
<package android:name="com.android.perftests.appenumeration23" />
<package android:name="com.android.perftests.appenumeration24" />
<package android:name="com.android.perftests.appenumeration25" />
<package android:name="com.android.perftests.appenumeration26" />
<package android:name="com.android.perftests.appenumeration27" />
<package android:name="com.android.perftests.appenumeration28" />
<package android:name="com.android.perftests.appenumeration29" />
<package android:name="com.android.perftests.appenumeration30" />
<package android:name="com.android.perftests.appenumeration31" />
<package android:name="com.android.perftests.appenumeration32" />
<package android:name="com.android.perftests.appenumeration33" />
<package android:name="com.android.perftests.appenumeration34" />
<package android:name="com.android.perftests.appenumeration35" />
<package android:name="com.android.perftests.appenumeration36" />
<package android:name="com.android.perftests.appenumeration37" />
<package android:name="com.android.perftests.appenumeration38" />
<package android:name="com.android.perftests.appenumeration39" />
<package android:name="com.android.perftests.appenumeration40" />
<package android:name="com.android.perftests.appenumeration41" />
<package android:name="com.android.perftests.appenumeration42" />
<package android:name="com.android.perftests.appenumeration43" />
<package android:name="com.android.perftests.appenumeration44" />
<package android:name="com.android.perftests.appenumeration45" />
<package android:name="com.android.perftests.appenumeration46" />
<package android:name="com.android.perftests.appenumeration47" />
<package android:name="com.android.perftests.appenumeration48" />
<package android:name="com.android.perftests.appenumeration49" />
</queries>
</manifest>

View File

@@ -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();
}
}