As of 2024-06-19, Ravenwood uses the host side JVM, not ART, so it doesn't use libcore
either.
To support ICU on Ravenwood, we include the following jar files in the Ravenwood classpath.
core-icu4j-for-host.ravenwood
icu4j-icudata-jarjar
icu4j-icutzdata-jarjar
core-icu4j-for-host.ravenwood
is made from core-icu4j-for-host.ravenwood
with hoststubgen
to make the following modifications.
android.icu
APIs on Ravenwood.libcore_bridge
APIS -- will throw at runtime.This “policy” is defined in android_icu4j/icu-ravenwood-policies.txt.
As a result, on Ravenwood, all android.icu
APIs will work, but none of the libcore_bridge
APIs.
ICU's CTS is CtsIcuTestCases
, which contains the tests under android_icu4j/src/main/tests/, which are the tests from the upstream ICU, and android_icu4j/testing/, which are android specific tests, which depends on libcore_bridge
.
On Ravenwood, android_icu4j/src/main/tests/ will pass, but not android_icu4j/testing/.
So we have CtsIcuTestCasesRavenwood-core-only
, which only contains the tests from the upstream. You can run this with atest CtsIcuTestCasesRavenwood-core-only
.