Initial problem listing for Windows ARM64
Please let me know if this should be broken up into separate GitHub issues!
Initial problem listing for Window AArch64 for JDK11 and JDK17:
- JDK11u:
- tools/jlink/plugins/VendorInfoPluginsTest.java
- jdk/jfr/jvm/TestDumpOnCrash.java
- java/lang/ProcessBuilder/Basic.java#id0
- java/lang/ProcessBuilder/PipelineTest.java
- jdk\sun\tools\jhsdb\JShellHeapDumpTest.java
- JDK17u:
- jdk/jfr/event/runtime/TestDumpReason.java
- jdk/jfr/event/runtime/TestShutdownEvent.java
- jdk/jfr/jvm/TestDumpOnCrash.java
- java/foreign/valist/VaListTest.java
- java/foreign/malloc/TestMixedMallocFree.java
- java/foreign/TestNative.java
- java/foreign/TestVarArgs.java
- java/foreign/StdLibTest.java
With respect to java/foreign/* tests there is ongoing work to update the foreign function and memory API to work with Windows ARM64 so I believe that Temurin might be affected by these tests as well.
Example output:
**JDK11**
Test: tools/jlink/plugins/VendorInfoPluginsTest.java
Reasoning: Expecting strings from stdout. Might be a possible port issue.
Output:
java.lang.RuntimeException: '^# +https://bugs.xyzzy.com/crash/$' missing from stdout
at jdk.test.lib.process.OutputAnalyzer.stdoutShouldMatch(OutputAnalyzer.java:300)
at VendorInfoPluginsTest.main(VendorInfoPluginsTest.java:101)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:312)
at java.base/java.lang.Thread.run(Thread.java:829)
-------------
Test: jdk/jfr/jvm/TestDumpOnCrash.java
Reasoning: May be related to other Windows ARM64 bugs where strings are not printed when exceptions are encountered.
Output:
java.lang.RuntimeException: No emergency jfr recording file C:\cygwin\home\....\aqa-tests\TKG\output_16681913139896\jdk_jfr_0\work\scratch\1\hs_err_pid14644.jfr exists: expected true, was false
at jdk.test.lib.Asserts.fail(Asserts.java:594)
at jdk.test.lib.Asserts.assertTrue(Asserts.java:486)
-------------
Test: java/lang/ProcessBuilder/Basic.java#id0
Reasoning: String contents contain extra characters. Might be a possible port issue.
Output:
STDERR:
>'PROCESSOR_ARCHITECTURE=ARM64,SystemRoot=C:\WINDOWS,'< not equal to 'SystemRoot=C:\WINDOWS,'
-------------
Test: java/lang/ProcessBuilder/PipelineTest.java
Reasoning: Expecting "Stream should have been a NullStreamgetErrorStream"
Output:
TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.AssertionError: Some tests failed
Stream should have been a NullStreamgetErrorStream
---------------
Test: jdk\sun\tools\jhsdb\JShellHeapDumpTest.java
Reasoning: Might be related to this bug https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8228625 and https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8230731.
Output:
java.lang.RuntimeException: Test ERROR java.lang.RuntimeException: 'JShellToolProvider' missing from stdout/stderr
at JShellHeapDumpTest.printStackTraces(JShellHeapDumpTest.java:105)
at JShellHeapDumpTest.testHeapDump(JShellHeapDumpTest.java:122)
at JShellHeapDumpTest.main(JShellHeapDumpTest.java:153)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
**JDK17**
Test: jdk/jfr/event/runtime/TestDumpReason.java
Reasoning: May be related to other Windows ARM64 bugs where strings are not printed when exceptions are encountered.
Output:
java.lang.Exception: 3 attempts with failure!
at jdk.jfr.event.runtime.TestDumpReason.test(TestDumpReason.java:87)
at jdk.jfr.event.runtime.TestDumpReason.main(TestDumpReason.java:66)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
at java.base/java.lang.Thread.run(Thread.java:833)
-------------
Test: jdk/jfr/event/runtime/TestShutdownEvent.java
Reasoning: May be related to other Windows ARM64 bugs where strings are not printed when exceptions are encountered.
Output:
Execution failed: `main' threw exception: java.io.IOException: Not a valid Flight Recorder file. File length is only 0 bytes.
-------------
Test: jdk/jfr/jvm/TestDumpOnCrash.java
Reasoning: May be related to other Windows ARM64 bugs where strings are not printed when exceptions are encountered.
Output:
==================================
Attempt 2. Verification failed:
No emergency jfr recording file C:\cygwin\...\aqa-tests\TKG\output_16681841155913\jdk_jfr_1\work\scratch\1\hs_err_pid11336.jfr exists: expected true, was false
Retrying...
STDERR:
java.lang.Exception: 3 attempts with failure!
-------------
Test: java/foreign/valist/VaListTest.java
Reasoning: Foreign API is not enabled on these platforms in our build. Work in progress to get these enabled.
Output:
java.lang.AssertionError: expected [12.0] but found [2.8137679358465E-311]
at org.testng.Assert.fail(Assert.java:99)
at org.testng.Assert.failNotEquals(Assert.java:1037)
at org.testng.Assert.assertEquals(Assert.java:701)
at org.testng.Assert.assertEquals(Assert.java:712)
at VaListTest.testDoubleSum(VaListTest.java:191)
-------------
Test: java/foreign/malloc/TestMixedMallocFree.java
Reasoning: Foreign API is not enabled on these platforms in our build. Work in progress to get these enabled.
Output:
Caused by: java.lang.NullPointerException: Cannot invoke "jdk.internal.loader.NativeLibrary.lookup(String)" because "lib" is null
at jdk.incubator.foreign/jdk.internal.foreign.SystemLookup.lambda$libLookup$7(SystemLookup.java:92)
at jdk.incubator.foreign/jdk.internal.foreign.SystemLookup.lookup(SystemLookup.java:103)
at jdk.incubator.foreign/jdk.internal.foreign.abi.SharedUtils$AllocHolder.<clinit>(SharedUtils.java:442)
-------------
Test: java/foreign/TestNative.java
Reasoning: Foreign API is not enabled on these platforms in our build. Work in progress to get these enabled.
Output:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class jdk.internal.foreign.abi.SharedUtils$AllocHolder
at jdk.incubator.foreign/jdk.internal.foreign.abi.SharedUtils.allocateMemoryInternal(SharedUtils.java:469)
.. 36 more
-------------
Test: java/foreign/TestVarArgs.java
Reasoning: Foreign API is not enabled on these platforms in our build. Work in progress to get these enabled.
Output:
test TestVarArgs.testVarArgs(java.util.ImmutableCollections$ListN@11b401d7): success
test TestVarArgs.testVarArgs(java.util.ImmutableCollections$ListN@6a94694d): failure
java.lang.AssertionError: expected [5.0] but found [0.0]
at org.testng.Assert.fail(Assert.java:99)
at org.testng.Assert.failNotEquals(Assert.java:1037)
at org.testng.Assert.assertEqualsImpl(Assert.java:140)
at org.testng.Assert.assertEquals(Assert.java:122)
-------------
Test: java/foreign/StdLibTest.java
Reasoning: Foreign API is not enabled on these platforms in our build. Work in progress to get these enabled.
Output:
org.testng.TestNGException:
Cannot instantiate class StdLibTest
at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:30)
at org.testng.internal.InstanceCreator.instantiateUsingDefaultConstructor(InstanceCreator.java:193)
at org.testng.internal.InstanceCreator.createInstanceUsingObjectFactory(InstanceCreator.java:113)
at org.testng.internal.InstanceCreator.createInstance(InstanceCreator.java:79)
...
Adding to JDK17. These are issues with both 11 and 17 and fail in the same way.
java/lang/ProcessBuilder/PipelineTest.java
tools/jlink/plugins/VendorInfoPluginsTest.java
@sophia-guo and @smlambert will this be possible for us to use and still get into the marketplace? We're coming in very late already, and this is the last set of blockers we have to get the TAP files required to pass...
@d3r3kk - yes, the small set of remaining failing testcases can be excluded to get a clean run. Exclusions are permitted / expected, especially with new platforms as issues typically need to be worked out (and since exclusions are open, transparent and searchable), this is not a blocker for adding this platform into the marketplace
I should also mention, since these exclusions are not vendor specific, they do not need to be held in the vendor exclude files, but can be added to the common ProblemList files.
Ah ok, thank you @smlambert for the clarity!
These are the tests included on JDK21 for Windows ARM64:
- java/lang/Thread/virtual/stress/PingPong.java#ltq
- sun/tools/jhsdb/JShellHeapDumpTest.java
- sun/tools/jhsdb/HeapDumpTest.java
- sun/tools/jhsdb/JShellHeapDumpTest.java
- tools/jlink/plugins/VendorInfoPluginsTest.java
- jdk/jfr/event/runtime/TestDumpReason.java
- jdk/jfr/event/runtime/TestShutdownEvent.java
- jdk/jfr/jvm/TestDumpOnCrash.java
For April 2024 PSU we problemlisted two more test for Windows ARM64 JDK21:
- java/lang/Thread/virtual/stress/PingPong.java#sq
- java/lang/ProcessBuilder/Basic.java#id0