Merge "Move Native Graphics initialization into ViewScreenshotTestRule." into udc-dev

This commit is contained in:
Ram Peri
2023-06-01 21:35:14 +00:00
committed by Android (Google) Code Review

View File

@@ -62,6 +62,15 @@ open class ViewScreenshotTestRule(
private val isRobolectric = if (Build.FINGERPRINT.contains("robolectric")) true else false
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
return ruleToApply.apply(base, description)
}