Don't attempt to launch disabled activities in smoke test.
Also remove the superfluous runner from manifest.
Change-Id: I194b260d443d9bd4a16f62893bb2f7bcfb7ed40e
diff --git a/tests/SmokeTest/tests/AndroidManifest.xml b/tests/SmokeTest/tests/AndroidManifest.xml
index cad37c5..f1a0a4c 100644
--- a/tests/SmokeTest/tests/AndroidManifest.xml
+++ b/tests/SmokeTest/tests/AndroidManifest.xml
@@ -27,15 +27,6 @@
</application>
<!--
- This declares that this app uses the instrumentation test runner targeting the package of
- com.android.smoketest. To run the tests use the command:
- `adb shell am instrument -w com.android.smoketest.tests/android.test.InstrumentationTestRunner`
- -->
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.android.smoketest"
- android:label="System Smoke Tests"/>
-
- <!--
This declares a method to run the instrumentation with a special runner, which will run each
app as a separate testcase. To do so, use the command:
`adb shell am instrument -w com.android.smoketest.tests/com.android.smoketest.SmokeTestRunner`
diff --git a/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java b/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java
index 03c2923..946299b 100644
--- a/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java
+++ b/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java
@@ -154,6 +154,11 @@
// launch app, and wait 7 seconds for it to start/settle
final Intent intent = intentForActivity(app);
+ if (intent == null) {
+ Log.i(TAG, String.format("Activity %s/%s is disabled, skipping",
+ app.activityInfo.packageName, app.activityInfo.name));
+ return Collections.EMPTY_LIST;
+ }
getContext().startActivity(intent);
try {
Thread.sleep(appLaunchWait);
@@ -238,10 +243,16 @@
/**
* A helper function to create an {@link Intent} to run, given a {@link ResolveInfo} specifying
* an activity to be launched.
+ *
+ * @return the {@link Intent} or <code>null</code> if given app is disabled
*/
- static Intent intentForActivity(ResolveInfo app) {
+ Intent intentForActivity(ResolveInfo app) {
final ComponentName component = new ComponentName(app.activityInfo.packageName,
app.activityInfo.name);
+ if (getContext().getPackageManager().getComponentEnabledSetting(component) ==
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
+ return null;
+ }
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(component);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);