The new implementation of java.lang.reflect.Proxy (in
libcore/ojluni/src/main/java/java/lang/reflect/Proxy.java)
uses weak references (in getProxyClass0). Two ART run-tests
(044-proxy and 005-annotations) rely on precise proxy
class names being outputted, but because weak references may
not be collected on time, there is sometimes a discrepancy
between expected and actual results in those tests. This
issue seems to be triggereed more frequently with the
implementation of read barriers in the compiler, which
relies on a slow path always calling a runtime entry point.
This problem did not happen before Enso, as the old
implementation of getProxyClass
(libcore/libart/src/main/java/java/lang/reflect/Proxy.java)
did not use weak references (in getProxyClass).
Temporarily disable tests 044-proxy and 005-annotations to
make the art-read-barrier build turn green again.
Bug:
25838574
Change-Id: Ibfcdeb41572580c0e22b7688879e4b8b1cdb68e1
TEST_ART_BROKEN_OPTIMIZING_DEBUGGABLE_RUN_TESTS :=
# Tests that should fail in the read barrier configuration.
+# 005: Flakiness due to Enso's java.lang.reflect.Proxy using weak references (b/25838574).
+# 044: Flakiness due to Enso's java.lang.reflect.Proxy using weak references (b/25838574).
# 055: Exceeds run time limits due to read barrier instrumentation.
# 137: Read barrier forces interpreter. Cannot run this with the interpreter.
# 537: Expects an array copy to be intrinsified, but calling-on-slowpath intrinsics are not yet
# handled in the read barrier configuration.
TEST_ART_BROKEN_READ_BARRIER_RUN_TESTS := \
+ 005-annotations \
+ 044-proxy \
055-enum-performance \
137-cfi \
537-checker-arraycopy