Clean up ExcludeList.txt - #731
Merged
Merged
Conversation
Run against the current tree with the exclude list dropped, these three passed: java/lang/CharSequence/DefaultTest.java java/lang/Character/CheckProp.java java/lang/ClassLoader/Assert.java No entry says when or why any of them was excluded, so there is nothing to weigh the result against beyond the fact that they work. A fourth from the same batch, java/lang/Class/getEnclosingClass/EnclosingClassTest.java, still fails and stays excluded. The measurement was net8.0 on win-x64 only, from a local Debug build. All three entries were generic-all, so removing them re-enables every platform and framework, which is broader than what was measured. CI on this branch is what actually checks that. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sixty-eight entries name tests that no longer exist anywhere under ext/openjdk/jdk/test, so they exclude nothing. Clusters include seven sun/security/krb5/auto tests, several sun/tools/jps shell tests and three java/util/stream tests. One of the sixty-eight was malformed rather than merely stale: javax/sound/sampled/Clip/ClipSetPosjavax/sound/sampled/DirectAudio/bug6400879.java which is two paths fused by a lost newline. Both halves are separately and correctly listed a couple of lines away, so nothing was going unexcluded because of it; the line was simply inert. Eight tests were listed twice. Where the two entries disagreed the later one was winning, so three of them were excluded more narrowly than someone had written down. Collapsing takes the union of the two, which can only ever widen an exclusion, never re-enable a test that someone wanted off: FreezeTest.java generic-all + macosx-all,windows-all -> generic-all bug6544309.java generic-all + linux-all,macosx-all -> generic-all URLConnection test.sh windows-i586 + linux-all -> linux-all,windows-i586 Test4200310.sh windows-i586 + generic-all -> generic-all The remaining four were exact repeats: HaricaCA.java and three sun/security/pkcs11 entries. DialogToFrontNonModalTest.java is also listed twice but is left alone here, because #730 already changes one of its two entries and deduplicating it now would collide. Once that lands both read generic-all and the pair becomes an exact repeat that can be collapsed with the others.
Of the first 60 java/util entries, 54 pass when run with the exclude list dropped. None of them is a shell test, so all 54 were measured properly rather than inheriting the WSL problem that makes .sh results unreliable off a developer machine. Six did not pass. Three are .sh and Formatter/Basic exited 127, which is the same harness problem, so those four are unmeasured rather than failing and stay put. Two look real and also stay: TimSortStackSize2 exits unexpectedly and CldrFormatNamesTest throws RuntimeException: test failed. Measured on net8.0 and win-x64 from a local Debug build. The entries were generic-all, so removing them re-enables every platform and framework. CI here is what checks that. Also puts a comment over the java/lang/instrument block, which is contiguous and 58 entries long. They all fail identically at compilation: error: package java.lang.instrument does not exist The package is not in the runtime image, so nothing under it can build. One line of explanation covers all 58, which is the shape the rest of the file should end up in.
The first three thousand lines of this file are one flat alphabetical list with no comments in them; the topic-grouped sections with explanations only start further down. Dropping a bare comment into the alphabetical part gives a reader no way to tell where it stops applying, and a naive reading has it covering the 1896 entries below rather than the 58 it is about. So the comment now names its own scope, and a blank line closes the block.
Second batch of 100 java/util entries: 80 pass, 20 fail. Nineteen of the
twenty failures are shell tests and sixteen of those exited 127, which is the
WSL harness problem rather than anything about IKVM, so they are unmeasured
and stay. That leaves 80 passing out of 81 entries that could actually be
measured.
The one real failure is java/util/TimeZone/CLDRDisplayNamesTest.java, and it
fails for a reason worth writing down:
error: got 'Pazifische Normalzeit'
expected 'Nordamerikanische Westkuesten-Winterzeit' (style=1, locale=de_DE)
Timezone display names come back in the older COMPAT form rather than the
CLDR form the test wants. That is the same cause as CldrFormatNamesTest from
the first batch, and the file already carries a '# Related to CLDR/COMPAT/etc?'
comment elsewhere, so there is a group forming here.
Running total for java/util: 160 entries measured, 134 dropped, 3 real
failures kept, 23 shell tests unmeasured.
Third batch of 100, shell tests filtered out this time so every entry could actually be measured: 31 pass, 69 fail. Fifty-seven of the 69 are java/util/stream, and they all fail the same way before running a line of test code: Unrecognized option: -Xbootclasspath/a:... They are TestNG tests that put testng.jar and their boot test classes on the boot classpath, and the launcher does not implement that option. The file already records this cause for CustomizedLambdaFormTest under '# fails with -Xbootclasspath/a (needs implement)', so the stream block gets a comment pointing at the same thing. Sixty entries, one of which passed and has gone, leaving 59 under the comment. Of the remaining twelve failures, CLDRDisplayNamesTest is the CLDR display name problem already seen, and the rest are four java/util/logging, three java/util/zip, regex/PatternStreamTest and one resource bundle SPI test. Those have not been looked at individually. java/util now stands at 191 entries measured, 165 dropped, and the file at 4499 entries from 4740.
Batch of 98, shell tests filtered out so every entry was measurable: 85 pass,
13 fail. All thirteen failures are .java, so unlike the earlier batches none
of this result is contaminated by the WSL shell problem.
The thirteen that stay, by area:
java/io LargeCopyWithMark, File/Basic, and three Serializable tests
java/net Authenticator/Deadlock, SetDatagramSocketImplFactory,
ServerSocket/ThreadStop, two URLClassLoader/closetest tests,
sealing/CheckSealed
java/nio AsynchronousSocketChannel/CompletionHandlerRelease,
Files/CheckPermissions
Two of the thirteen exited 127, which usually means something was shelled out
to and not found, so those two are less certain than the rest. The others
fail with real assertions: AssertionError, java.lang.Error, and
AccessDeniedException for the permissions test.
File now at 4414 entries from 4740.
Batch of 100: 73 pass, 27 fail. The failures sit almost entirely in java/rmi/server and java/rmi/transport, twelve and eleven of them. Most of those failures are not real. Eighteen jtr files in this run end with Error. unexpected exit code from javac: -1073741502 which is 0xC0000142, STATUS_DLL_INIT_FAILED, a Windows process startup failure. javac never got going, so the test never ran. It shows up under the concurrency jtreg uses locally and says nothing about IKVM. That is the second way a local run manufactures failures, after the shell tests that cannot find the Windows java from inside WSL. Both point the same way: a local pass is trustworthy, a local failure is not, and none of the 27 here are being acted on. File now at 4341 entries from 4740.
Batch of 110: 85 pass, 23 fail, and no javac startup crashes this time so the failures are all genuine results. Twelve of the 23 are the java/io, java/net and java/nio failures already seen in an earlier batch, failing identically a second time. Independent reproduction, so those are real rather than flakes, and they stay. The other eleven are javax/management, out of eighty staged, so that area is mostly stale too. They have not been looked at individually yet: ImplVersionTest twice, Introspector's AnnotationSecurityTest and ClassLeakTest, NotificationInfoTest, OldMBeanServerTest, monitor/StartStopTest, mxbean/LeakTest, BroadcasterSupportDeadlockTest, DeadListenerTest and NoServerTimeoutTest. File now at 4256 entries from 4740.
Batch of 110 across sun/security, sun/net, sun/misc and sun/reflect: 101 pass, 8 fail, no javac startup crashes. The best yield of any area so far at 93 percent. The eight that stay are three sun/net/www, two sun/security/krb5, Reflection/GetCallerClassWithDepth, ManyNewInstanceAnonTest and sun/misc/Version. One of the 101 needed a second look. It passed but matched no entry, because the list carried sun/net/www/http/ChunkedOutputStream/checkError.java while the file on disk is CheckError.java. Windows does not care, which is why the earlier sweep for entries naming files that no longer exist did not catch it, but on Linux that entry matches nothing and the exclusion has been silently doing nothing. A scan of the whole file for the same problem turns up no others. The entry goes with the rest of the batch since the test passes either way. File now at 4155 entries from 4740.
Batch of 110 com/sun entries: 10 pass, 99 fail. Much the worst area so far, and for a single reason. Ninety-six of the 99 are com/sun/jdi, and they fail at compilation rather than at run time: error: package com.sun.jdi does not exist The Java Debug Interface is not in the runtime image, so none of the debugger tests can build. Same shape as java.lang.instrument. There are 149 com/sun/jdi entries in two runs: 146 together near the top of the file, which now carry a comment, and three further down that already sit under a '# jdi' heading. That makes three areas whose exclusions come down to a missing package or an unimplemented option rather than anything that could be fixed by retesting: com/sun/jdi at 146, java/util/stream at 59 and java/lang/instrument at 58. File now at 4145 entries from 4740.
Batch of 110: 103 pass, 7 fail, no javac startup crashes. Ninety-four percent. More useful than the number is that these ran at all. java/beans overlaps heavily with AWT, and the open question was whether the graphical areas could be measured on a developer machine or would have to wait for CI. They can: this box has a display and the tests used it. That matters because two thirds of the entries still lacking any explanation are java/awt, javax/swing, javax/sound, java/beans, sun/java2d and javax/imageio, and those are now known to be reachable. The seven that stay throw real exceptions rather than dying in the harness: three NegativeArraySizeException, two IllegalStateException and one java.lang.Error. File now at 4042 entries from 4740.
Batch of 110: 109 pass, nothing fails. The only entry not accounted for is javax/sound/midi/Gervill/AudioFloatInputStream/Available.java, which never reported a result and so stays, unmeasured rather than passing. An entire area coming back clean is a first. Sound is also the area where a developer machine and CI differ most, since one has audio devices and the other does not, so these want confirming in CI before the result is leaned on too heavily. They are all generic-all, so CI on this branch covers Linux and macOS as well. File now at 3933 entries from 4740, which is a sixth of the list gone.
Batch of 110: 38 pass, 55 fail, 17 never reported. The seventeen are a contiguous alphabetical tail from JCheckBox through JInternalFrame, so the run stopped before reaching them rather than skipping them individually. They stay, unmeasured. At 41 percent this is much the weakest of the graphical areas, against 94 for java/beans and 100 for javax/sound. The failures look the part too: nineteen InvocationTargetException plus assorted RuntimeException, Error and NullPointerException, which is what Swing interaction tests throw when focus or timing does not go their way. Swing is also where #730 found most of its flaky tests, so these failures are the least trustworthy of any area measured so far. Only the passes are being acted on, which is the rule throughout, and it matters more here than elsewhere. File now at 3895 entries from 4740.
Partial batch. The run was stopped part way because the graphical tests take over the desktop while they run, so only 92 of 110 reported: 60 passed, 32 failed. Only the 60 passes are acted on, which is the standing rule and is safe here regardless of the interruption. A test that passed, passed. The 32 failures and the 18 that never reported are all treated as unmeasured and stay. File now at 3835 entries from 4740.
Batch of 110, graphical areas filtered out of staging so nothing takes over the display: 96 pass, 13 fail, no javac startup crashes. Eight of the thirteen are the java/net and java/nio failures now seen for the third time across separate batches, failing identically each time. Repeated independently, so they are real and stay. The other five are new and not yet looked at: Security/SynchronizedAccess, jdk/lambda FDTest, two sun/security/krb5/auto tests and sun/security/ssl/SSLEngineImpl/SSLEngineDeadlock. File now at 3739 entries from 4740, so just over a fifth of the list has gone.
CI on this branch measured the 165 entries dropped so far across the whole matrix. One of them does not hold: java/util/concurrent/locks/Lock/TimedAcquireLeak.java passed locally on net8.0 and win-x64 but fails on net8.0 and linux-x64, in partition 8. That is the risk called out when these were first dropped. The measurements are taken on Windows, the entries are generic-all, and removing one re-enables every platform. This is the case where that mattered. Restored to generic-all rather than narrowed to linux-all. There is a local pass on Windows to justify narrowing, but the same measurement just produced a false positive, so it does not deserve that much weight. CI can narrow it later if anyone cares. The other failure in this run, java/awt/Modal/ToBack/ToBackAppModal2Test on Linux, is not from this branch. It is listed macosx-all,windows-all on main and so has always run on Linux. One entry in 165 is a rate worth stating plainly: 164 held up across every platform and framework in the matrix. It is not zero, and the batches still unpushed are larger than the batch that was measured.
The full matrix ran against this branch for the first time and found eight of the 1005 removals do not hold. They are restored with the platform specs they had on main, not narrowed: com/sun/crypto/provider/KeyFactory/TestProviderLeak com/sun/java/swing/plaf/gtk/4928019/bug4928019 java/awt/Focus/CloseDialogActivateOwnerTest java/awt/Focus/FrameMinimizeTest java/awt/Focus/RollbackFocusFromAnotherWindowTest java/nio/MappedByteBuffer/Truncate javax/swing/JComboBox/7195179/Test7195179 javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest Five of the eight are AWT focus or Swing tests, and bug4928019 is a GTK look and feel test that only runs for real on Linux. That is the expected shape: these were measured on a Windows desktop with a live interactive session, and CI has neither. Measuring graphical tests on a developer machine says less about CI than it appears to. Eight in 1005 is 0.8 percent, in line with the one in 165 the earlier partial run produced. The other eight failures in the run are not from this branch: DialogToFrontNonModalTest is the duplicate deliberately left for #730, KeepAliveProperty is one of the tests #730 excludes, and the rest already fail on main. File now at 3749 entries from 4740.
Two conflicting hunks, both where #730 added an entry next to lines this branch had removed. Kept from main: sun/net/www/http/KeepAliveCache/KeepAliveProperty.java - #730 added this as one of its eight flaky exclusions, and a single local pass here is much weaker evidence than five CI runs showing it fail intermittently java/awt/Focus/ModalDialogInitialFocusTest - never removed on this branch, it was only caught in the hunk by being adjacent Kept this branch's removals for the other three, which were measured passing and are not on anyone's flaky list: java/awt/Focus/ModalDialogActivationTest sun/net/www/http/KeepAliveCache/KeepAliveTimerThread sun/net/www/http/KeepAliveStream/InfiniteLoop All eight of #730's exclusions are present afterwards. The rule where they disagreed was that an intermittent failure beats a single local pass.
Second full matrix pass on this branch, this time with the eight earlier restores in place and #730's flaky exclusions merged in: 88 pass, 9 fail. Two of the nine are removals from this branch that do not hold, both AWT: java/awt/Choice/RemoveAllShrinkTest java/awt/Focus/ContainerFocusAutoTransferTest Restored with the generic-all they had on main. That makes ten bad removals out of roughly a thousand, or one percent, and nine of the ten are graphical. Measuring AWT and Swing on a Windows desktop with a live session keeps producing passes that CI does not reproduce, which is worth remembering before the graphical areas are swept again. Of the remaining seven failures, five are jtreg tests this branch never touched: EndlessLoopTest, ToBackAppModal2Test, ToBackModal1Test, IndependenceAWTTest and SetShapeAndClickSwing. The other two are not test failures at all; IKVM.Tests and IKVM.Tools.Importer.Tests on net10.0 and win-x64 both died with System.OperationCanceledException: Command execution canceled. Underlying process was forcefully terminated. which is the runner killing the process rather than anything failing.
Three full matrix passes each turned up two or three more AWT or Swing entries that were removed on the strength of a local pass and then failed in CI. Restoring them one round at a time was not converging, and it never would have: these tests are intermittent, so a clean run does not show the rest are safe, only that they did not fire that time. The numbers make the case. Of 999 removals, 317 were in graphical areas and 682 were not. Eleven of the graphical ones failed against two of the rest, which is 3.5 percent versus 0.3, so a graphical removal was about twelve times more likely to be wrong. The cause is not subtle. Those measurements came off a Windows desktop with a live interactive session, and CI has neither a desktop nor a user. Focus, window activation and pointer behaviour are simply not the same, so a pass there says very little about a pass in CI. So all 303 still-live graphical entries go back with the platform specs they had on main. Ten stay removed because the tests no longer exist, and the two collapsed duplicates, FreezeTest and bug6544309, stay collapsed. Everything outside the graphical areas is untouched. That leaves the non-graphical work: 682 removals with two known errors, both already corrected, together with 68 dead entries, eight collapsed duplicates, one case mismatch and three comment groups covering 263 entries. The graphical areas still want auditing. They need to be measured in CI, where there is no desktop to mislead them.
This is the job that would not go green no matter how many times it was rerun. java/awt/Modal/ToBack/ToBackAppModal2Test failed on net8.0 and linux-x64 on three consecutive attempts with the same error: RuntimeException: Clicking the dialog Close button did not trigger an action Deterministic, not intermittent, so rerunning was never going to help. The entry is untouched by this branch. It reads macosx-all,windows-all on main and on this branch alike, which means it has always run on Linux and has always failed there. Nothing here caused it. Thirty of the thirty-six tests in java/awt/Modal/ToBack are generic-all. Only five are narrowed to macosx-all,windows-all, and this is one of them, which looks like they were excluded on the other two platforms at some point and never widened once they started failing on Linux. Widening this one to generic-all matches its siblings. Only the one that is demonstrably failing is changed. The other four narrowed entries, ToBackModal1Test, ToBackModal2Test, ToBackNonModal2Test and ToBackTKModal3Test, are left alone because there is no evidence against them.
All three turned up in the last run and none of them is affected by anything
else on this branch. Each was already excluded somewhere, just not on the
platform where it failed.
MouseWheelOnBackgroundComponent.java macosx-all -> generic-all
failed on net8.0 linux-x64. Its only sibling under WheelModifier is
already generic-all.
SetShapeDynamicallyAndClick.java macosx-all,windows -> generic-all
failed on net8.0 linux-x64. Its neighbours SetShape.java and
SetShapeAndClick.java are both linux-all,macosx-all, so the whole group
is unhappy across platforms, just recorded inconsistently.
PopdownGeneratesMouseEvents.java added as generic-all
failed on net472 win-x64. Only the .html variant was listed, at
macosx-all, while the .java was not excluded at all. Same trap as
ConsumeForModalDialogTest in #730, where the .html was listed and the
.java was the one failing. Both files exist in the tree.
Chose generic-all rather than adding the single failing platform. These are
pointer and window interaction tests, the flakiest category in the suite, and
the platform-by-platform narrowing is exactly what left gaps in all three
cases.
The fourth failure in that run is not a test. Importer.Tests on net8.0 and
linux-x64 lost one row of eight to exit code 143, which is SIGTERM, so the
process was killed rather than the assertion failing. Nothing to exclude.
None of them is touched by this branch; all three were already failing and
simply had not been recorded.
com/sun/crypto/provider/Cipher/PBE/PBMacBuffer.java
not excluded anywhere. Failed on net8.0 win-x64.
java/awt/List/KeyEventsTest/KeyEventsTest.java
only the .html variant was listed, at linux-all,macosx-all, so the .java
ran on Windows and failed there. Both files exist. This is the third time
the same .html/.java gap has come up, after ConsumeForModalDialogTest in
#730 and PopdownGeneratesMouseEvents earlier on this branch, so the file
is likely to have more of them.
src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java
first entry in the nashorn exclude list, which was empty. Failed on
net8.0 linux-x64 with 'failures: 1' out of its TestNG run.
Worth saying plainly: excluding these does not make the next run green.
Every run since the graphical revert has surfaced three or four different
pre-existing failures, and none has been caused by this branch. This is the
ambient flake tail on main rather than anything about this change, and it
will not close by iterating.
Everything excluded on this branch so far went in bare, with the reason left in a commit message. That is exactly how the file reached four thousand entries against fifty comment lines, so it is worth not repeating while cleaning it up. The six added or widened here now sit under one heading explaining the shared cause, each with a line saying what is specific to it, following the same shape as the existing sections such as '# Bad AWT' and '# JFR is not supported'. The nashorn entry gets the same treatment in its own file. Two of the six read oddly without a note and are worth having recorded: KeyEventsTest and PopdownGeneratesMouseEvents were both already listed as .html while the .java was the file actually running and failing, which is the same gap that caught ConsumeForModalDialogTest in #730. Three occurrences now, so a sweep for .html entries whose .java sibling is missing is worth doing on its own. No entry count change, 4061 either way. The six moved out of alphabetical order into the section, which is where the file already keeps grouped causes.
The comments described the edits rather than the tests: which platform list got widened, that a .html was listed and a .java was not. That is history of the file, not information anyone needs when deciding whether an entry can go. Rewritten to record where each test fails, and the failure itself where it has actually been read. Only ToBackAppModal2Test has been looked at in detail, so only it carries a message; the header says as much rather than implying the rest are understood. An earlier draft of this had plausible-sounding causes for all six, invented from the test names. Those are gone. An entry saying only where it fails is worth more than one that reads as though the cause is known when it is not.
The point of this branch is a suite that builds and tests end to end, and that has not happened for a while. Waiting for one run to surface three or four failures, excluding those, and running again was not converging, so this takes the failures from ten recent runs across main and the open branches at once. Eighteen distinct tests failed. Nine were already covered, by #730, #733 or earlier commits here. The other nine were either unlisted or listed only for platforms other than the one they fail on: BlowfishTestVector macosx-all -> also fails net8.0 win-x64 FileDialogLeakTest unlisted -> net472 win-x64 BlockingDDDocModalTest linux-all,macosx-all -> net472 win-x64 FocusTransferWDFModeless3 macosx-all,windows -> net8.0 linux-x64 RobotWheelTest unlisted -> net472 win-x64 Tls13PacketSize unlisted -> net472 win-x64 PerPixelTranslucent macosx-all,windows -> net8.0 linux-x64 PerPixelTranslucentCanvas macosx-all,windows -> net8.0 linux-x64 ValidationWarningsTest unlisted -> net8.0 win-x64 Each carries the framework and platform it was seen failing on, so there is something to reproduce from when they are picked back up. Two are worth noting as not graphical, and so more likely to be real: BlowfishTestVector and ValidationWarningsTest. This is deliberately a wide net. Getting to green is what makes the next failure informative; reintroducing these one at a time comes after.
Partition 7 came back with ShapedPerPixelTranslucentGradient, a third variant from the same directory after PerPixelTranslucent and PerPixelTranslucentCanvas were excluded a commit ago. Picking these off one per run is not going to end. There are 24 files across javax/swing/JWindow/ShapedAndTranslucentWindows and java/awt/Window/ShapedAndTranslucentWindows, two of which are the Common helper. All 22 tests were already excluded, but across four scattered places and five different platform lists, and in every case the platform that failed was the one that particular entry omitted. So the group was understood to be bad; it was just recorded badly. They check that a window's shape and per-pixel alpha are honoured, and that clicks land on or miss the shaped region. A headless runner does not reproduce any of that faithfully, which is the same reason as for the rest of the interaction tests. All 22 now sit together at generic-all under one comment. No change in entry count, since every one of them was already listed.
javax/sound/midi/Sequencer/Looping.java never finishes on net8.0 linux-x64. It is killed by the 32 minute timeout, which is worse than a plain failure since it holds a runner for half an hour before the job gives up. It has never been excluded, on any platform. The runner has no audio device, which is presumably why the sequencer loop never completes. Worth recording that this is a gap rather than a one-off. There are 387 javax/sound tests in the tree and 268 are excluded, so 119 still run, including this one until now. They are all audio tests on machines without audio. Not excluding the other 118 here because none of them has actually failed yet and there is no evidence against them, but each carries the same risk of hanging for half an hour rather than failing quickly.
Both were already excluded, just not on Linux, which is the shape almost every real failure in this exercise has taken. EndlessLoopTest macosx-all,windows-all -> generic-all EnqueueWithDialogButtonTest macosx-all -> generic-all The second is worth a note: seven of the eight tests alongside it under KeyboardFocusmanager/TypeAhead are already generic-all, so it was the odd one out rather than a considered exception. Both moved into the annotated section with the platform they were seen failing on, rather than left where they were with a wider platform list.
Sixty-one tests have been running unexcluded because only their .html variant was listed. Both files exist in the tree and jtreg runs the .java, so the exclusion never applied to the thing that actually executes. Four of these surfaced as CI failures one at a time before the pattern was obvious: ConsumeForModalDialogTest in #730, then PopdownGeneratesMouseEvents, KeyEventsTest and ConsumeNextMnemonicKeyTypedTest here. Rather than wait for the remaining fifty-seven to appear a run at a time, this closes the class. Each inherits the platform list already recorded against its .html, so nothing is excluded more widely than someone previously decided. Where the .html says macosx-all the .java now says macosx-all too. Also adds two seen failing in this run, both already excluded elsewhere: AdaptorCloseAndInterrupt linux-all,macosx-all -> fails on net472 win-x64 InputVerifierTest2 macosx-all -> fails on net8.0 linux-x64
PopdownGeneratesMouseEvents failed again despite its .java being generic-all. The log says 'Applet thread threw exception', so what ran was the .html, which was still macosx-all. Excluding one half of a pair does nothing if the other half is what jtreg picks up. Four pairs disagreed, and they are exactly the four tests that surfaced one at a time over this work: PopdownGeneratesMouseEvents, ModalDialogInitialFocusTest, ConsumeForModalDialogTest and KeyEventsTest. In each case the .java had been widened to generic-all when it failed while the .html was left as it was, so the applet variant kept running and kept failing. Both halves now carry the union of the two platform lists, which for all four is generic-all. Worth noting the previous commit had this backwards. It gave each missing .java the platform list from its .html, on the assumption the .html entry was correct. That is right where the .html was never the problem, and wrong for these four where the .html was itself too narrow. The rule that holds in both directions is that the two halves should agree.
This was referenced Aug 15, 2026
Merged
pull Bot
pushed a commit
to parhelia512/ikvm
that referenced
this pull request
Aug 16, 2026
Moves OpenJdkUpdateVersion from 472 to 482 and the ext/openjdk submodule to 69137c64, the tip of ikvm-jdk8u482-b08. This is ikvmnet#716 rebuilt on main. That PR targets develop, which has had no commits since April and none of the CI work from the last few days, so nothing there could have run cleanly. Its content was four files; the two workflow changes it carried, moving the Windows runners to windows-2025 and staging under D:, were attempts at the disk and MSBuild problems that ikvmnet#727 has since solved differently, so they are dropped rather than carried across. Of the five exclude list changes it made, two already landed independently: AsyncClose was widened to generic-all in ikvmnet#730 after showing up as a flake on Windows, and ModalDialogInitialFocusTest in ikvmnet#731. The remaining three are carried over as they were.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ExcludeList.txthas accumulated for years. It holds 4740 entries against 48 comment lines, so roughly one entry in a hundred records why it is there, and an unknown share describes problems that no longer exist.The goal is to get it back into a state worth trusting: drop what no longer applies, keep what genuinely fails, and say why for the ones that stay. This is the first pass. Further passes will follow as areas get measured.
What this pass does
Removes 68 entries that name tests which no longer exist anywhere under
ext/openjdk/jdk/test. They exclude nothing. Clusters include sevensun/security/krb5/autotests, severalsun/tools/jpsshell tests, and threejava/util/streamtests.One of the 68 was malformed rather than merely stale:
Two paths fused by a lost newline. Both halves are separately and correctly listed a couple of lines away, so nothing was going unexcluded because of it â the line was simply inert.
Collapses 8 tests that were listed twice. Where the two entries disagreed the later one was winning, so three were excluded more narrowly than someone had written down. Collapsing takes the union, which can only widen an exclusion and never re-enables a test someone wanted off:
.../TypeAhead/FreezeTest/FreezeTest.javageneric-all+macosx-all,windows-allgeneric-alljavax/swing/JPopupMenu/6544309/bug6544309.javageneric-all+linux-all,macosx-allgeneric-alljava/net/URLConnection/6212146/test.shwindows-i586+linux-alllinux-all,windows-i586sun/nio/cs/Test4200310.shwindows-i586+generic-allgeneric-allThe other four were exact repeats:
HaricaCA.javaand threesun/security/pkcs11entries.DialogToFrontNonModalTest.javais also listed twice but is left alone, because #730 already changes one of its two entries and deduplicating now would collide. Once that lands both readgeneric-alland the pair becomes an exact repeat to collapse later.Drops three entries for tests that pass now. Run with our
ExcludeList.txtdropped and an include list naming only these, so they ran exactly as they would if unexcluded:java/lang/CharSequence/DefaultTest.javajava/lang/Character/CheckProp.javajava/lang/ClassLoader/Assert.javajava/lang/Class/getEnclosingClass/EnclosingClassTest.javaMeasured on net8.0 / win-x64 only, from a local Debug build. All three were
generic-all, so removing them re-enables every platform and framework. CI on this branch is the actual check; if one fails outside what was measured, the fix is to restore that entry scoped to the platform rather than drop it wholesale.Net effect
4740 entries to 4664. Alignment at column 121 preserved throughout. No change to what is excluded except the three tests above and the four widened duplicates.
What comes later
Not in this PR, but where this is heading:
java/langandjava/utilare likely healthier than the AWT and Swing half of the file.# posix isn't supported on IKVM,# JFR is not supported). At four thousand entries, grouping is what keeps that readable..shand cannot be measured on a developer machine, since they run under WSL but are handed a WindowsTESTJAVA. Those need CI.The harness for all of that is on
test/audit-excludesand is not part of this PR.