diff --git a/staticlibs/testutils/Android.bp b/staticlibs/testutils/Android.bp
index 33821564d7..be4ccfed03 100644
--- a/staticlibs/testutils/Android.bp
+++ b/staticlibs/testutils/Android.bp
@@ -83,5 +83,5 @@ java_test_host {
],
libs: ["tradefed"],
test_suites: ["ats", "device-tests", "general-tests", "cts", "mts-networking"],
- data: [":ConnectivityChecker"],
+ data: [":ConnectivityTestPreparer"],
}
diff --git a/staticlibs/testutils/app/connectivitychecker/Android.bp b/staticlibs/testutils/app/connectivitychecker/Android.bp
index 58f22db7c5..f7118cfaa0 100644
--- a/staticlibs/testutils/app/connectivitychecker/Android.bp
+++ b/staticlibs/testutils/app/connectivitychecker/Android.bp
@@ -17,7 +17,7 @@ package {
}
android_test_helper_app {
- name: "ConnectivityChecker",
+ name: "ConnectivityTestPreparer",
srcs: ["src/**/*.kt"],
sdk_version: "system_current",
// Allow running the test on any device with SDK Q+, even when built from a branch that uses
diff --git a/staticlibs/testutils/app/connectivitychecker/AndroidManifest.xml b/staticlibs/testutils/app/connectivitychecker/AndroidManifest.xml
index 8e5958c316..015b41f9ba 100644
--- a/staticlibs/testutils/app/connectivitychecker/AndroidManifest.xml
+++ b/staticlibs/testutils/app/connectivitychecker/AndroidManifest.xml
@@ -15,7 +15,7 @@
~ limitations under the License.
-->
+ package="com.android.testutils.connectivitypreparer">
@@ -27,6 +27,6 @@
+ android:targetPackage="com.android.testutils.connectivitypreparer"
+ android:label="Connectivity test target preparer" />
diff --git a/staticlibs/testutils/app/connectivitychecker/src/com/android/testutils/connectivitychecker/ConnectivityCheckTest.kt b/staticlibs/testutils/app/connectivitychecker/src/com/android/testutils/connectivitypreparer/ConnectivityCheckTest.kt
similarity index 92%
rename from staticlibs/testutils/app/connectivitychecker/src/com/android/testutils/connectivitychecker/ConnectivityCheckTest.kt
rename to staticlibs/testutils/app/connectivitychecker/src/com/android/testutils/connectivitypreparer/ConnectivityCheckTest.kt
index f72938d945..6bcb8fc182 100644
--- a/staticlibs/testutils/app/connectivitychecker/src/com/android/testutils/connectivitychecker/ConnectivityCheckTest.kt
+++ b/staticlibs/testutils/app/connectivitychecker/src/com/android/testutils/connectivitypreparer/ConnectivityCheckTest.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.testutils.connectivitychecker
+package com.android.testutils.connectivitypreparer
import android.content.pm.PackageManager.FEATURE_TELEPHONY
import android.content.pm.PackageManager.FEATURE_WIFI
@@ -40,7 +40,7 @@ class ConnectivityCheckTest {
val pm by lazy { context.packageManager }
@Test
- fun testCheckDeviceSetup() {
+ fun testCheckConnectivity() {
checkWifiSetup()
checkTelephonySetup()
}
@@ -57,10 +57,11 @@ class ConnectivityCheckTest {
val commonError = "Check the test bench. To run the tests anyway for quick & dirty local " +
"testing, you can use atest X -- " +
- "--test-arg com.android.testutils.ConnectivityCheckTargetPreparer:disable:true"
+ "--test-arg com.android.testutils.ConnectivityTestTargetPreparer" +
+ ":ignore-connectivity-check:true"
// Do not use assertEquals: it outputs "expected X, was Y", which looks like a test failure
if (tm.simState == TelephonyManager.SIM_STATE_ABSENT) {
- fail("The device has no SIM card inserted. " + commonError)
+ fail("The device has no SIM card inserted. $commonError")
} else if (tm.simState != TelephonyManager.SIM_STATE_READY) {
fail("The device is not setup with a usable SIM card. Sim state was ${tm.simState}. " +
commonError)
diff --git a/staticlibs/testutils/host/com/android/testutils/ConnectivityCheckTargetPreparer.kt b/staticlibs/testutils/host/com/android/testutils/ConnectivityTestTargetPreparer.kt
similarity index 69%
rename from staticlibs/testutils/host/com/android/testutils/ConnectivityCheckTargetPreparer.kt
rename to staticlibs/testutils/host/com/android/testutils/ConnectivityTestTargetPreparer.kt
index ccc40641a2..fd837aa1a0 100644
--- a/staticlibs/testutils/host/com/android/testutils/ConnectivityCheckTargetPreparer.kt
+++ b/staticlibs/testutils/host/com/android/testutils/ConnectivityTestTargetPreparer.kt
@@ -17,6 +17,7 @@
package com.android.testutils
import com.android.ddmlib.testrunner.TestResult
+import com.android.tradefed.config.Option
import com.android.tradefed.invoker.TestInformation
import com.android.tradefed.result.CollectingTestListener
import com.android.tradefed.result.ddmlib.DefaultRemoteAndroidTestRunner
@@ -24,19 +25,26 @@ import com.android.tradefed.targetprep.BaseTargetPreparer
import com.android.tradefed.targetprep.TargetSetupError
import com.android.tradefed.targetprep.suite.SuiteApkInstaller
-private const val CONNECTIVITY_CHECKER_APK = "ConnectivityChecker.apk"
-private const val CONNECTIVITY_PKG_NAME = "com.android.testutils.connectivitychecker"
+private const val CONNECTIVITY_CHECKER_APK = "ConnectivityTestPreparer.apk"
+private const val CONNECTIVITY_PKG_NAME = "com.android.testutils.connectivitypreparer"
+private const val CONNECTIVITY_CHECK_CLASS = "$CONNECTIVITY_PKG_NAME.ConnectivityCheckTest"
// As per the defined in the checker manifest
private const val CONNECTIVITY_CHECK_RUNNER_NAME = "androidx.test.runner.AndroidJUnitRunner"
+private const val IGNORE_CONN_CHECK_OPTION = "ignore-connectivity-check"
/**
- * A target preparer that verifies that the device was setup correctly for connectivity tests.
+ * A target preparer that sets up and verifies a device for connectivity tests.
*
- * For quick and dirty local testing, can be disabled by running tests with
- * "atest -- --test-arg com.android.testutils.ConnectivityCheckTargetPreparer:disable:true".
+ * For quick and dirty local testing, the connectivity check can be disabled by running tests with
+ * "atest -- \
+ * --test-arg com.android.testutils.ConnectivityTestTargetPreparer:ignore-connectivity-check:true".
*/
-class ConnectivityCheckTargetPreparer : BaseTargetPreparer() {
- val installer = SuiteApkInstaller()
+open class ConnectivityTestTargetPreparer : BaseTargetPreparer() {
+ private val installer = SuiteApkInstaller()
+
+ @Option(name = IGNORE_CONN_CHECK_OPTION,
+ description = "Disables the check for mobile data and wifi")
+ private var ignoreConnectivityCheck = false
override fun setUp(testInformation: TestInformation) {
if (isDisabled) return
@@ -63,11 +71,20 @@ class ConnectivityCheckTargetPreparer : BaseTargetPreparer() {
runResult.runFailureMessage, testInformation.device.deviceDescriptor)
}
- if (!runResult.hasFailedTests()) return
+ val ignoredTestClasses = mutableSetOf()
+ if (ignoreConnectivityCheck) {
+ ignoredTestClasses.add(CONNECTIVITY_CHECK_CLASS)
+ }
+
val errorMsg = runResult.testResults.mapNotNull { (testDescription, testResult) ->
- if (TestResult.TestStatus.FAILURE != testResult.status) null
- else "$testDescription: ${testResult.stackTrace}"
+ if (TestResult.TestStatus.FAILURE != testResult.status ||
+ ignoredTestClasses.contains(testDescription.className)) {
+ null
+ } else {
+ "$testDescription: ${testResult.stackTrace}"
+ }
}.joinToString("\n")
+ if (errorMsg.isBlank()) return
throw TargetSetupError("Device setup checks failed. Check the test bench: \n$errorMsg",
testInformation.device.deviceDescriptor)
@@ -77,4 +94,4 @@ class ConnectivityCheckTargetPreparer : BaseTargetPreparer() {
if (isTearDownDisabled) return
installer.tearDown(testInformation, e)
}
-}
\ No newline at end of file
+}