summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2020-04-03 03:07:39 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-03 03:07:39 +0000
commit24f8cd78e06a95e29f3491a80c5a992ea37bdcb7 (patch)
treec6bf523cc495d9ffd412919bd34f01701d0542b6
parentb5bc4f924434ae8aff66f1bc96f2ff8d1487d67e (diff)
parent08ffbabc1b5ab09bef015fb3a748f97534403fd0 (diff)
Merge "Add ignore class parameters to DevSdkIgnoreRule" into rvc-dev
-rw-r--r--tests/lib/src/com/android/testutils/DevSdkIgnoreRule.kt12
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/lib/src/com/android/testutils/DevSdkIgnoreRule.kt b/tests/lib/src/com/android/testutils/DevSdkIgnoreRule.kt
index fd7deb6..d30138d 100644
--- a/tests/lib/src/com/android/testutils/DevSdkIgnoreRule.kt
+++ b/tests/lib/src/com/android/testutils/DevSdkIgnoreRule.kt
@@ -27,8 +27,14 @@ import org.junit.runners.model.Statement
*
* If the device is not using a release SDK, the development SDK is considered to be higher than
* [Build.VERSION.SDK_INT].
+ *
+ * @param ignoreClassUpTo Skip all tests in the class if the device dev SDK is <= this value.
+ * @param ignoreClassAfter Skip all tests in the class if the device dev SDK is > this value.
*/
-class DevSdkIgnoreRule : TestRule {
+class DevSdkIgnoreRule @JvmOverloads constructor(
+ private val ignoreClassUpTo: Int? = null,
+ private val ignoreClassAfter: Int? = null
+) : TestRule {
override fun apply(base: Statement, description: Description): Statement {
return IgnoreBySdkStatement(base, description)
}
@@ -49,7 +55,7 @@ class DevSdkIgnoreRule : TestRule {
*/
annotation class IgnoreUpTo(val value: Int)
- private class IgnoreBySdkStatement(
+ private inner class IgnoreBySdkStatement(
private val base: Statement,
private val description: Description
) : Statement() {
@@ -63,6 +69,8 @@ class DevSdkIgnoreRule : TestRule {
val sdkInt = Build.VERSION.SDK_INT
val devApiLevel = sdkInt + if (release) 0 else 1
val message = "Skipping test for ${if (!release) "non-" else ""}release SDK $sdkInt"
+ assumeTrue(message, ignoreClassAfter == null || devApiLevel <= ignoreClassAfter)
+ assumeTrue(message, ignoreClassUpTo == null || devApiLevel > ignoreClassUpTo)
assumeTrue(message, ignoreAfter == null || devApiLevel <= ignoreAfter.value)
assumeTrue(message, ignoreUpTo == null || devApiLevel > ignoreUpTo.value)
base.evaluate()