Downgrade device precondition errors to warnings
Change-Id: Id260c8c24126daeb8d7bfab7c7b6cfc960098452
diff --git a/tools/tradefed-host/preconditions/src/com/android/cts/preconditions/PreconditionsTest.java b/tools/tradefed-host/preconditions/src/com/android/cts/preconditions/PreconditionsTest.java
index 64a2b31..f1576a3 100644
--- a/tools/tradefed-host/preconditions/src/com/android/cts/preconditions/PreconditionsTest.java
+++ b/tools/tradefed-host/preconditions/src/com/android/cts/preconditions/PreconditionsTest.java
@@ -17,19 +17,30 @@
import android.app.KeyguardManager;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.os.Environment;
import android.test.AndroidTestCase;
+import android.util.Log;
/**
* An AndroidTestCase class to verify that device-side preconditions are met for CTS
*/
public class PreconditionsTest extends AndroidTestCase {
+ private static final String TAG = "PreconditionsTest";
+
/**
* Test if device has no screen lock
* @throws Exception
*/
public void testScreenUnlocked() throws Exception {
+ PackageManager pm = getContext().getPackageManager();
+ if (pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK)
+ || pm.hasSystemFeature(PackageManager.FEATURE_WATCH)
+ || pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
+ Log.i(TAG, "Skipping screen lock precondition for this device type");
+ return; // do not test for unlocked screen on devices with no screen lock
+ }
KeyguardManager km =
(KeyguardManager) getContext().getSystemService(Context.KEYGUARD_SERVICE);
assertFalse("Device must have screen lock disabled", km.isDeviceSecure());
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/DevicePreconditionPreparer.java b/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/DevicePreconditionPreparer.java
index 039470b..1c0f193 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/DevicePreconditionPreparer.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/DevicePreconditionPreparer.java
@@ -18,6 +18,7 @@
import com.android.cts.tradefed.build.CtsBuildHelper;
import com.android.cts.tradefed.testtype.Abi;
+import com.android.ddmlib.Log;
import com.android.ddmlib.testrunner.TestIdentifier;
import com.android.tradefed.build.IBuildInfo;
import com.android.tradefed.build.IFolderBuildInfo;
@@ -25,7 +26,7 @@
import com.android.tradefed.config.OptionClass;
import com.android.tradefed.device.DeviceNotAvailableException;
import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
+import com.android.tradefed.log.LogUtil;
import com.android.tradefed.result.InputStreamSource;
import com.android.tradefed.result.ITestInvocationListener;
import com.android.tradefed.result.LogDataType;
@@ -65,9 +66,16 @@
private static final String PACKAGE_NAME = "com.android.cts.preconditions";
private static final String RUNNER_NAME = "android.support.test.runner.AndroidJUnitRunner";
+ private static final String LOG_TAG = DevicePreconditionPreparer.class.getSimpleName();
+
/* Map used to track test failures */
private ConcurrentHashMap<TestIdentifier, String> testFailures = new ConcurrentHashMap<>();
+ /* Helper that logs a message with LogLevel.WARN */
+ private static void printWarning(String msg) {
+ LogUtil.printLog(Log.LogLevel.WARN, LOG_TAG, msg);
+ }
+
/**
* {@inheritDoc}
*/
@@ -80,7 +88,8 @@
try {
if (!instrument(device, buildInfo)) {
- throw new TargetSetupError("Not all device-side preconditions met");
+ printWarning("Not all device-side preconditions met, " +
+ "CTS tests may fail as a result.");
}
} catch (FileNotFoundException e) {
throw new TargetSetupError(
@@ -106,7 +115,8 @@
success = false; // at least one precondition has failed
for (TestIdentifier test : testFailures.keySet()) {
String trace = testFailures.get(test);
- CLog.e("Precondition test %s failed.\n%s", test.getTestName(), trace);
+ printWarning(String.format(
+ "Precondition test %s failed.\n%s", test.getTestName(), trace));
}
}
return success;
@@ -133,7 +143,8 @@
*/
@Override
public void testRunFailed(String errorMessage) {
- CLog.e("Device-side preconditions test run failed: %s", errorMessage);
+ printWarning(String.format(
+ "Device-side preconditions test run failed: %s", errorMessage));
}
/**