adoptium / aqa-tests

Home of test infrastructure for Adoptium builds
https://adoptium.net/aqavit
Apache License 2.0
133 stars 314 forks source link

Initial problem listing for Windows ARM64 #4155

Open joe-braley opened 2 years ago

joe-braley commented 2 years ago

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)
...

tentative-microsoft-excludes.zip

joe-braley commented 1 year ago

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
d3r3kk commented 1 year ago

@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...

smlambert commented 1 year ago

@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.

d3r3kk commented 1 year ago

Ah ok, thank you @smlambert for the clarity!

Luigi96 commented 9 months ago

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
Luigi96 commented 6 months ago

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