You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
48 lines
1.8 KiB
package com.android.internal.systemui.lint
|
|
|
|
import com.android.tools.lint.checks.infrastructure.LintDetectorTest
|
|
import com.android.tools.lint.checks.infrastructure.TestLintTask
|
|
import java.io.File
|
|
import org.junit.ClassRule
|
|
import org.junit.rules.TestRule
|
|
import org.junit.runner.Description
|
|
import org.junit.runner.RunWith
|
|
import org.junit.runners.JUnit4
|
|
import org.junit.runners.model.Statement
|
|
|
|
@Suppress("UnstableApiUsage")
|
|
@RunWith(JUnit4::class)
|
|
abstract class SystemUILintDetectorTest : LintDetectorTest() {
|
|
|
|
companion object {
|
|
@ClassRule
|
|
@JvmField
|
|
val libraryChecker: LibraryExists =
|
|
LibraryExists("framework.jar", "androidx.annotation_annotation.jar")
|
|
}
|
|
|
|
class LibraryExists(vararg val libraryNames: String) : TestRule {
|
|
override fun apply(base: Statement, description: Description): Statement {
|
|
return object : Statement() {
|
|
override fun evaluate() {
|
|
for (libName in libraryNames) {
|
|
val libFile = File(libName)
|
|
if (!libFile.canonicalFile.exists()) {
|
|
throw Exception(
|
|
"Could not find $libName in the test's working directory. " +
|
|
"File ${libFile.absolutePath} does not exist."
|
|
)
|
|
}
|
|
}
|
|
base.evaluate()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Customize the lint task to disable SDK usage completely. This ensures that running the tests
|
|
* in Android Studio has the same result as running the tests in atest
|
|
*/
|
|
override fun lint(): TestLintTask =
|
|
super.lint().allowMissingSdk(true).sdkHome(File("/dev/null"))
|
|
}
|
|
|