eclipse-jdt / eclipse.jdt.debug

Eclipse Public License 2.0
16 stars 50 forks source link

Tests from org.eclipse.jdt.debug.jdi.tests are not run in daily builds #484

Closed jarthana closed 1 month ago

jarthana commented 2 months ago

There are bunch of tests under the suite org.eclipse.debug.jdi.tests.AutomatedSuite. These tests are run as part of the PR, but not really run as part of the daily I builds. They should be run every day too.

jukzi commented 1 month ago

it is unclear to me what is the intended difference of org.eclipse.debug.jdi.tests.AutomatedSuite vs org.eclipse.debug.jdi.tests.TestAll they look very similar.

the referenced VirtualThreadTest.testJDIPlatformThreadsOnlyFilter() fails locally to me:

junit.framework.AssertionFailedError: 6
    at junit.framework.TestCase.assertNull(TestCase.java:418)
akurtakov commented 1 month ago

If you look at https://download.eclipse.org/eclipse/downloads/drops4/I20240909-1800/testResults.php there are Missing Files org.eclipse.jdt.debug.jdi.tests_ep434I-unit-mac64-java17_macosx.cocoa.x86_64_17.xml org.eclipse.jdt.debug.jdi.tests_ep434I-unit-macM1-java17_macosx.cocoa.aarch64_17.xml org.eclipse.jdt.debug.jdi.tests_ep434I-unit-win32-java17_win32.win32.x86_64_17.xml org.eclipse.jdt.debug.jdi.tests_ep434I-unit-cen64-gtk3-java17_linux.gtk.x86_64_17.xml org.eclipse.jdt.debug.jdi.tests_ep434I-unit-cen64-gtk3-java21_linux.gtk.x86_64_21.xml org.eclipse.jdt.debug.jdi.tests_ep434I-unit-cen64-gtk3-java22_linux.gtk.x86_64_22.xml aka smth was missed in the enablement.

jukzi commented 1 month ago

there is now a org.eclipse.jdt.debug.jdi.tests.log https://download.eclipse.org/eclipse/downloads/drops4/I20240909-1800/testresults/ep434I-unit-cen64-gtk3-java22_linux.gtk.x86_64_22/directorLogs/director-org.eclipse.jdt.debug.jdi.tests.log

like https://download.eclipse.org/eclipse/downloads/drops4/I20240909-1800/testresults/ep434I-unit-cen64-gtk3-java22_linux.gtk.x86_64_22/directorLogs/director-org.eclipse.jdt.debug.tests.log so at least the commit did something. but i don't know what is missing.

jukzi commented 1 month ago

files like https://download.eclipse.org/eclipse/downloads/drops4/I20240909-1800/testresults/ep434I-unit-macM1-java17_macosx.cocoa.aarch64_17/org.eclipse.jdt.debug.tests.AutomatedSuite.log https://download.eclipse.org/eclipse/downloads/drops4/I20240909-1800/testresults/ep434I-unit-macM1-java17_macosx.cocoa.aarch64_17/org.eclipse.jdt.debug.tests.AutomatedSuite.txt are missing for jdi

iloveeclipse commented 1 month ago

I haven't checked for more details why, but it looks like added tests are hanging the build, see jobs waiting way to long now: https://ci.eclipse.org/releng/job/AutomatedTests/

iloveeclipse commented 1 month ago

JDI tests hang:

https://download.eclipse.org/eclipse/downloads/drops4/I20240910-0650/logs.php#console

See for example

https://download.eclipse.org/eclipse/downloads/drops4/I20240910-0650/testresults/ep434I-unit-cen64-gtk3-java17_linux.gtk.x86_64_17/org.eclipse.debug.jdi.tests.AutomatedSuite.txt

The program doesn't seem to have started after 30000ms
DumpStackTracesTimer almost reached timeout '7200000'.

Main thread:

java.lang.Exception: ThreadDump for thread "main"
    at java.base@17.0.2/java.lang.Object.wait(Native Method)
    at org.eclipse.debug.jdi.tests.EventWaiter.waitEvent(EventWaiter.java:177)
    at org.eclipse.debug.jdi.tests.AbstractJDITest.waitForEvent(AbstractJDITest.java:1522)
    at org.eclipse.debug.jdi.tests.AbstractJDITest.startProgram(AbstractJDITest.java:1301)
    at org.eclipse.debug.jdi.tests.AbstractJDITest.launchTargetAndStartProgram(AbstractJDITest.java:1118)
    at org.eclipse.debug.jdi.tests.AbstractJDITest.setUp(AbstractJDITest.java:1126)
    at junit.framework.TestCase.runBare(TestCase.java:140)
jukzi commented 1 month ago

https://download.eclipse.org/eclipse/downloads/drops4/I20240912-0340/testresults/ep434I-unit-macM1-java17_macosx.cocoa.aarch64_17/org.eclipse.debug.jdi.tests.AutomatedSuite.txt

!MESSAGE starting DumpStackTracesTimer with timeout=7080000 at 2024-09-12 06:05:26 -0400
launched with pid=2239: /usr/local/openjdk-17/Contents/Home/bin/java -classpath /Users/genie.releng/workspace/AutomatedTests/ep434I-unit-macM1-java17/workarea/I20240912-0340/eclipse-testing/test-eclipse/Eclipse.app/Contents/Eclipse/./bin -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9900,suspend=y,server=y org.eclipse.debug.jdi.tests.program.MainClass
Listening for transport dt_socket at address: 9900
Connected to localhost:9900 after 45ms
VMStartEvent: 0
ClassPrepareEvent: 3

...

https://download.eclipse.org/eclipse/downloads/drops4/I20240912-0340/testresults/html/org.eclipse.jdt.debug.jdi.tests_ep434I-unit-macM1-java17_macosx.cocoa.aarch64_17.html

java.lang.RuntimeException: ClassPrepareEvent for org.eclipse.debug.jdi.tests.program.MainClass missing after 10000ms
at org.eclipse.debug.jdi.tests.AbstractJDITest.startProgram(AbstractJDITest.java:1311)
at org.eclipse.debug.jdi.tests.AbstractJDITest.launchTargetAndStartProgram(AbstractJDITest.java:1125)
at org.eclipse.debug.jdi.tests.AbstractJDITest.setUp(AbstractJDITest.java:1133)
at junit.framework.TestCase.runBare(TestCase.java:140)at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)at junit.framework.TestCase.run(TestCase.java:130
)at junit.framework.TestSuite.runTest(TestSuite.java:241)at junit.framework.TestSuite.run(TestSuite.java:236)
at junit.framework.TestSuite.runTest(TestSuite.java:241)at junit.framework.TestSuite.run(TestSuite.java:236)
jukzi commented 1 month ago

The current exception reveals the .class files can not be loaded - probably because they are in a jar and not in the bin folder during i-build.

launched with pid=5012: C:\PROGRA~1\ECLIPS~1\jdk-17.0.5.8-hotspot\bin\javaw.exe -classpath C:\Users\genie.releng\workspace\AutomatedTests\ep434I-unit-win32-java17\workarea\I20240915-1800\eclipse-testing\test-eclipse\eclipse\.\bin -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9900,suspend=y,server=y org.eclipse.debug.jdi.tests.program.MainClass
Listening for transport dt_socket at address: 9900
Connected to localhost:9900 after 144ms
classPrepare:ClassPrepareEvent: 3 referenceType=java.lang.reflect.Array java.lang.reflect.Array
classPrepare:ClassPrepareEvent: 3 referenceType=sun.launcher.LauncherHelper sun.launcher.LauncherHelper
classPrepare:ClassPrepareEvent: 3 referenceType=java.nio.charset.CharsetDecoder java.nio.charset.CharsetDecoder
classPrepare:ClassPrepareEvent: 3 referenceType=sun.nio.cs.ArrayDecoder sun.nio.cs.ArrayDecoder
classPrepare:ClassPrepareEvent: 3 referenceType=sun.nio.cs.SingleByte$Decoder sun.nio.cs.SingleByte$Decoder
classPrepare:ClassPrepareEvent: 3 referenceType=java.lang.StringCoding java.lang.StringCoding
classPrepare:ClassPrepareEvent: 3 referenceType=sun.net.util.URLUtil sun.net.util.URLUtil
classPrepare:ClassPrepareEvent: 3 referenceType=java.util.Locale java.util.Locale
classPrepare:ClassPrepareEvent: 3 referenceType=sun.util.locale.BaseLocale sun.util.locale.BaseLocale
classPrepare:ClassPrepareEvent: 3 referenceType=sun.util.locale.LocaleUtils sun.util.locale.LocaleUtils
classPrepare:ClassPrepareEvent: 3 referenceType=java.security.PrivilegedExceptionAction java.security.PrivilegedExceptionAction
classPrepare:ClassPrepareEvent: 3 referenceType=jdk.internal.loader.URLClassPath$3 jdk.internal.loader.URLClassPath$3
classPrepare:ClassPrepareEvent: 3 referenceType=jdk.internal.loader.URLClassPath$Loader jdk.internal.loader.URLClassPath$Loader
classPrepare:ClassPrepareEvent: 3 referenceType=jdk.internal.loader.URLClassPath$JarLoader jdk.internal.loader.URLClassPath$JarLoader
classPrepare:ClassPrepareEvent: 3 referenceType=java.util.zip.ZipConstants java.util.zip.ZipConstants
classPrepare:ClassPrepareEvent: 3 referenceType=java.util.zip.ZipFile java.util.zip.ZipFile
classPrepare:ClassPrepareEvent: 3 referenceType=jdk.internal.access.JavaUtilZipFileAccess jdk.internal.access.JavaUtilZipFileAccess
classPrepare:ClassPrepareEvent: 3 referenceType=java.util.zip.ZipFile$1 java.util.zip.ZipFile$1
classPrepare:ClassPrepareEvent: 3 referenceType=sun.net.www.protocol.jar.Handler sun.net.www.protocol.jar.Handler
classPrepare:ClassPrepareEvent: 3 referenceType=jdk.internal.loader.URLClassPath$JarLoader$1 jdk.internal.loader.URLClassPath$JarLoader$1
classPrepare:ClassPrepareEvent: 3 referenceType=jdk.internal.loader.FileURLMapper jdk.internal.loader.FileURLMapper
classPrepare:ClassPrepareEvent: 3 referenceType=java.io.IOException java.io.IOException
classPrepare:ClassPrepareEvent: 3 referenceType=java.io.FileNotFoundException java.io.FileNotFoundException
...
jukzi commented 1 month ago

@jarthana the tests are running now. but please note that some of them fail: https://github.com/eclipse-jdt/eclipse.jdt.debug/issues/503