Change test to use a public API method to avoid an implementation
dependency on core-icu4j.
java.lang.reflect.Modifier.classModifiers() is a public static getter
returning a simple static field, just like
android.icu.util.TimeZone.getDefaultTimeZoneType, and we dex2oat with
the implementation dex jars for core-oj where it's implemented.
Test: art/test/testrunner/testrunner.py --target --64 -t 683
Test: art/test/testrunner/testrunner.py --host -t 683
Bug: 202711962
Change-Id: If099f0e8ec9c0057e2b7852e6823e65ecab2112c
diff --git a/test/683-clinit-inline-static-invoke/src-multidex/MyTimeZone.java b/test/683-clinit-inline-static-invoke/src-multidex/MyModifier.java
similarity index 73%
rename from test/683-clinit-inline-static-invoke/src-multidex/MyTimeZone.java
rename to test/683-clinit-inline-static-invoke/src-multidex/MyModifier.java
index b74b310..bc01940 100644
--- a/test/683-clinit-inline-static-invoke/src-multidex/MyTimeZone.java
+++ b/test/683-clinit-inline-static-invoke/src-multidex/MyModifier.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-import android.icu.util.TimeZone;
+import java.lang.reflect.Modifier;
-public abstract class MyTimeZone extends TimeZone {
- // Reference to MyTimeZone.getDefaultTimeZoneType() shall resolve
- // to TimeZone.getDefaultTimeZoneType() which should be easily inlined.
+public abstract class MyModifier extends Modifier {
+ // Reference to MyModifier.classModifiers() shall resolve to
+ // Modifier.classModifiers() which should be easily inlined.
}
diff --git a/test/683-clinit-inline-static-invoke/src/Main.java b/test/683-clinit-inline-static-invoke/src/Main.java
index ceccffb..6f15e27 100644
--- a/test/683-clinit-inline-static-invoke/src/Main.java
+++ b/test/683-clinit-inline-static-invoke/src/Main.java
@@ -26,6 +26,6 @@
// TypeId in the current DexFile, we erroneously provided the type index from the
// declaring DexFile and that caused a crash. This was fixed by changing the
// ClinitCheck entrypoint to take the Class reference from LoadClass.
- int placeholder = MyTimeZone.getDefaultTimeZoneType();
+ int placeholder = MyModifier.classModifiers();
}
}