Merge "Move Native Graphics initialization into ViewScreenshotTestRule." into udc-dev am: 05bdb35bb6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23494571 Change-Id: I9fd7c3c5e585abfc050f99fba092d255ea6ef026 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -62,6 +62,15 @@ open class ViewScreenshotTestRule(
|
|||||||
private val isRobolectric = if (Build.FINGERPRINT.contains("robolectric")) true else false
|
private val isRobolectric = if (Build.FINGERPRINT.contains("robolectric")) true else false
|
||||||
|
|
||||||
override fun apply(base: Statement, description: Description): Statement {
|
override fun apply(base: Statement, description: Description): Statement {
|
||||||
|
if (isRobolectric) {
|
||||||
|
// In robolectric mode, we enable NATIVE graphics and unpack font and icu files.
|
||||||
|
// We need to use reflection, as this library is only needed and therefore
|
||||||
|
// only available in deviceless mode.
|
||||||
|
val nativeLoaderClassName = "org.robolectric.nativeruntime.DefaultNativeRuntimeLoader"
|
||||||
|
val defaultNativeRuntimeLoader = Class.forName(nativeLoaderClassName)
|
||||||
|
System.setProperty("robolectric.graphicsMode", "NATIVE")
|
||||||
|
defaultNativeRuntimeLoader.getMethod("injectAndLoad").invoke(null)
|
||||||
|
}
|
||||||
val ruleToApply = if (isRobolectric) roboRule else delegateRule
|
val ruleToApply = if (isRobolectric) roboRule else delegateRule
|
||||||
return ruleToApply.apply(base, description)
|
return ruleToApply.apply(base, description)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user