From f85668aa00810ed411c1a01ce02c412850db2300 Mon Sep 17 00:00:00 2001 From: Lu Chuansheng Date: Thu, 21 May 2026 19:51:23 +0800 Subject: [PATCH 1/3] Port CVM overlay changes --- cvm/conf/jtreg_hotspot8_excludes_aarch64.list | 116 +++ cvm/conf/jtreg_hotspot8_excludes_x64.list | 110 +++ cvm/conf/jtreg_jdk8_excludes.list | 782 ++++++++++++++++++ .../test/compiler/6859338/Test6859338.java | 2 +- .../test/compiler/7196199/Test7196199.java | 2 +- .../test/compiler/8004741/Test8004741.java | 4 +- .../compiler/stable/StableConfiguration.java | 3 +- .../test/gc/arguments/TestAggressiveHeap.java | 6 +- .../TestG1ConcRefinementThreads.java | 31 +- .../gc/arguments/TestG1HeapRegionSize.java | 2 +- .../test/gc/arguments/TestHeapFreeRatio.java | 4 +- .../TestInitialTenuringThreshold.java | 3 +- .../TestUnrecognizedVMOptionsHandling.java | 22 +- .../TestUseCompressedOopsErgoTools.java | 9 +- .../TestDefaultMaxRAMFraction.java | 2 +- .../com/oracle/java/testlibrary/Platform.java | 6 + .../cli/CommandLineOptionTest.java | 4 + .../whitebox/sun/hotspot/WhiteBox.java | 4 +- .../whitebox/sun/hotspot/code/NMethod.java | 20 +- jdk/test/com/sun/jdi/BreakpointWithFullGC.sh | 2 +- jdk/test/com/sun/jdi/RedefineCrossEvent.java | 4 - jdk/test/java/lang/System/Versions.java | 8 +- jdk/test/sun/misc/Version/Version.java | 34 +- .../javac/6508981/TestInferBinaryName.java | 3 +- .../MalformedAnnotationProcessorTests.java | 4 + test/jtreg-ext/requires/VMProps.java | 2 +- 26 files changed, 1125 insertions(+), 64 deletions(-) create mode 100644 cvm/conf/jtreg_hotspot8_excludes_aarch64.list create mode 100644 cvm/conf/jtreg_hotspot8_excludes_x64.list create mode 100644 cvm/conf/jtreg_jdk8_excludes.list diff --git a/cvm/conf/jtreg_hotspot8_excludes_aarch64.list b/cvm/conf/jtreg_hotspot8_excludes_aarch64.list new file mode 100644 index 00000000000..991165091ce --- /dev/null +++ b/cvm/conf/jtreg_hotspot8_excludes_aarch64.list @@ -0,0 +1,116 @@ +compiler/EscapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java +compiler/intrinsics/sha/sanity/TestSHA1Intrinsics.java +compiler/intrinsics/sha/sanity/TestSHA1MultiBlockIntrinsics.java +compiler/intrinsics/sha/sanity/TestSHA256Intrinsics.java +compiler/intrinsics/sha/sanity/TestSHA256MultiBlockIntrinsics.java +compiler/intrinsics/sha/sanity/TestSHA512Intrinsics.java +compiler/jsr292/methodHandleExceptions/TestAMEnotNPE.java +compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java +compiler/intrinsics/sha/sanity/TestSHA512MultiBlockIntrinsics.java +compiler/profiling/spectrapredefineclass/Launcher.java +compiler/rtm/cli/TestPrintPreciseRTMLockingStatisticsOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestRTMAbortRatioOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestRTMAbortThresholdOption.java +compiler/rtm/cli/TestRTMLockingCalculationDelayOption.java +compiler/rtm/cli/TestRTMLockingThresholdOption.java +compiler/rtm/cli/TestRTMRetryCountOption.java +compiler/rtm/cli/TestRTMSpinLoopCountOption.java +compiler/rtm/cli/TestRTMTotalCountIncrRateOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestUseRTMDeoptOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestUseRTMForStackLocksOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestUseRTMXendForLockBusyOption.java +compiler/startup/NumCompilerThreadsCheck.java +compiler/tiered/NonTieredLevelsTest.java +compiler/tiered/LevelTransitionTest.java +gc/6941923/Test6941923.java +gc/arguments/TestSurvivorAlignmentInBytesOption.java +gc/class_unloading/TestCMSClassUnloadingEnabledHWM.java +gc/class_unloading/TestG1ClassUnloadingHWM.java +gc/ergonomics/TestDynamicNumberOfGCThreads.java +gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java +gc/g1/TestG1TraceEagerReclaimHumongousObjects.java +gc/g1/TestGCLogMessages.java +gc/g1/TestHumongousAllocInitialMark.java +gc/g1/TestPrintRegionRememberedSetInfo.java +gc/g1/TestStringDeduplicationAgeThreshold.java +gc/g1/TestStringDeduplicationFullGC.java +gc/g1/TestStringDeduplicationInterned.java +gc/g1/TestStringDeduplicationPrintOptions.java +gc/g1/TestStringDeduplicationTableRehash.java +gc/g1/TestStringDeduplicationTableResize.java +gc/g1/TestStringDeduplicationYoungGC.java +gc/g1/TestStringSymbolTableStats.java +gc/logging/TestGCId.java +gc/metaspace/TestMetaspaceSizeFlags.java +gc/parallelScavenge/AdaptiveGCBoundary.java +gc/startup_warnings/TestCMSForegroundFlags.java +gc/startup_warnings/TestCMSIncrementalMode.java +gc/startup_warnings/TestDefNewCMS.java +gc/startup_warnings/TestIncGC.java +gc/6581734/Test6581734.java +gc/startup_warnings/TestParNewSerialOld.java +gc/survivorAlignment/TestAllocationInEden.java +gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterFullGC.java +gc/survivorAlignment/TestPromotionFromEdenToTenured.java +gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterMinorGC.java +gc/survivorAlignment/TestPromotionToSurvivor.java +gc/TestGCLogRotationViaJcmd.java +gc/TestMemoryMXBeansAndPoolsPresence.java +gc/TestVerifyDuringStartup.java +gc/TestVerifySilently.java +gc/TestVerifySubSet.java +runtime/6929067/Test6929067.sh +runtime/6981737/Test6981737.java +runtime/7110720/Test7110720.sh +runtime/7162488/Test7162488.sh +runtime/CDSCompressedKPtrs/CDSCompressedKPtrs.java +runtime/CDSCompressedKPtrs/CDSCompressedKPtrsError.java +runtime/CheckEndorsedAndExtDirs/EndorsedExtDirs.java +runtime/ClassFile/UnsupportedClassFileVersion.java +runtime/CommandLine/PrintFlagsUintxTest.java +runtime/CommandLine/TraceExceptionsTest.java +runtime/CommandLine/UnrecognizedVMOption.java +runtime/CommandLine/VMOptionWarning.java +runtime/CompressedOops/CompressedClassPointers.java +runtime/containers/cgroup/PlainRead.java +runtime/containers/docker/TestCPUSets.java +runtime/containers/docker/TestCPUAwareness.java +runtime/containers/docker/TestMemoryAwareness.java +runtime/contended/Options.java +runtime/InternalApi/ThreadCpuTimesDeadlock.java +runtime/InitialThreadOverflow/testme.sh +runtime/containers/docker/TestMisc.java +runtime/invokedynamic/BootstrapMethodErrorTest.java +runtime/Metaspace/MaxMetaspaceSizeTest.java +runtime/NMT/AutoshutdownNMT.java +runtime/NMT/ChangeTrackingLevel.java +runtime/NMT/JcmdBaselineDetail.java +runtime/NMT/JcmdDetailDiff.java +runtime/NMT/JcmdSummaryDiff.java +runtime/NMT/MallocSiteTypeChange.java +runtime/NMT/NMTWithCDS.java +runtime/NMT/ShutdownTwice.java +runtime/NMT/SummaryAfterShutdown.java +runtime/NMT/ThreadedVirtualAllocTestType.java +runtime/NMT/VirtualAllocCommitUncommitRecommit.java +runtime/NMT/VirtualAllocTestType.java +runtime/SharedArchiveFile/CdsDifferentObjectAlignment.java +runtime/SharedArchiveFile/CdsSameObjectAlignment.java +runtime/SharedArchiveFile/LimitSharedSizes.java +runtime/SharedArchiveFile/PrintSharedArchiveAndExit.java +runtime/SharedArchiveFile/SharedArchiveFile.java +runtime/SharedArchiveFile/SharedBaseAddress.java +runtime/SharedArchiveFile/SpaceUtilizationCheck.java +serviceability/dcmd/ClassLoaderStatsTest.java +serviceability/ParserTest.java +testlibrary_tests/whitebox/vm_flags/DoubleTest.java +testlibrary_tests/whitebox/vm_flags/IntxTest.java +runtime/NMT/MallocStressTest.java +testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java +vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java + +compiler/arguments/TestUseBMI1InstructionsOnUnsupportedCPU.java +compiler/arguments/TestUseCountLeadingZerosInstructionOnUnsupportedCPU.java +compiler/arguments/TestUseCountTrailingZerosInstructionOnUnsupportedCPU.java +compiler/7184394/TestAESMain.java +compiler/intrinsics/sha/cli/TestUseSHA512IntrinsicsOptionOnSupportedCPU.java diff --git a/cvm/conf/jtreg_hotspot8_excludes_x64.list b/cvm/conf/jtreg_hotspot8_excludes_x64.list new file mode 100644 index 00000000000..6a94de778e1 --- /dev/null +++ b/cvm/conf/jtreg_hotspot8_excludes_x64.list @@ -0,0 +1,110 @@ +compiler/EscapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java +compiler/intrinsics/sha/sanity/TestSHA1Intrinsics.java +compiler/intrinsics/sha/sanity/TestSHA1MultiBlockIntrinsics.java +compiler/intrinsics/sha/sanity/TestSHA256Intrinsics.java +compiler/intrinsics/sha/sanity/TestSHA256MultiBlockIntrinsics.java +compiler/intrinsics/sha/sanity/TestSHA512Intrinsics.java +compiler/jsr292/methodHandleExceptions/TestAMEnotNPE.java +compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java +compiler/intrinsics/sha/sanity/TestSHA512MultiBlockIntrinsics.java +compiler/profiling/spectrapredefineclass/Launcher.java +compiler/rtm/cli/TestPrintPreciseRTMLockingStatisticsOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestRTMAbortRatioOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestRTMTotalCountIncrRateOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestUseRTMDeoptOptionOnUnsupportedConfig.java +compiler/rtm/cli/TestUseRTMForStackLocksOptionOnUnsupportedConfig.java +compiler/startup/NumCompilerThreadsCheck.java +compiler/tiered/NonTieredLevelsTest.java +compiler/tiered/LevelTransitionTest.java +gc/6941923/Test6941923.java +gc/arguments/TestSurvivorAlignmentInBytesOption.java +gc/class_unloading/TestCMSClassUnloadingEnabledHWM.java +gc/class_unloading/TestG1ClassUnloadingHWM.java +gc/ergonomics/TestDynamicNumberOfGCThreads.java +gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java +gc/g1/TestG1TraceEagerReclaimHumongousObjects.java +gc/g1/TestGCLogMessages.java +gc/g1/TestHumongousAllocInitialMark.java +gc/g1/TestPrintRegionRememberedSetInfo.java +gc/g1/TestStringDeduplicationAgeThreshold.java +gc/g1/TestStringDeduplicationFullGC.java +gc/g1/TestStringDeduplicationInterned.java +gc/g1/TestStringDeduplicationPrintOptions.java +gc/g1/TestStringDeduplicationTableRehash.java +gc/g1/TestStringDeduplicationTableResize.java +gc/g1/TestStringDeduplicationYoungGC.java +gc/g1/TestStringSymbolTableStats.java +gc/logging/TestGCId.java +gc/metaspace/TestMetaspaceSizeFlags.java +gc/parallelScavenge/AdaptiveGCBoundary.java +gc/startup_warnings/TestCMSForegroundFlags.java +gc/startup_warnings/TestCMSIncrementalMode.java +gc/startup_warnings/TestDefNewCMS.java +gc/startup_warnings/TestIncGC.java +gc/6581734/Test6581734.java +gc/startup_warnings/TestParNewSerialOld.java +gc/survivorAlignment/TestAllocationInEden.java +gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterFullGC.java +gc/survivorAlignment/TestPromotionFromEdenToTenured.java +gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterMinorGC.java +gc/survivorAlignment/TestPromotionToSurvivor.java +gc/TestGCLogRotationViaJcmd.java +gc/TestMemoryMXBeansAndPoolsPresence.java +gc/TestVerifyDuringStartup.java +gc/TestVerifySilently.java +gc/TestVerifySubSet.java +runtime/6929067/Test6929067.sh +runtime/6981737/Test6981737.java +runtime/7110720/Test7110720.sh +runtime/7162488/Test7162488.sh +runtime/CDSCompressedKPtrs/CDSCompressedKPtrs.java +runtime/CDSCompressedKPtrs/CDSCompressedKPtrsError.java +runtime/CheckEndorsedAndExtDirs/EndorsedExtDirs.java +runtime/ClassFile/UnsupportedClassFileVersion.java +runtime/CommandLine/PrintFlagsUintxTest.java +runtime/CommandLine/TraceExceptionsTest.java +runtime/CommandLine/UnrecognizedVMOption.java +runtime/CommandLine/VMOptionWarning.java +runtime/CompressedOops/CompressedClassPointers.java +runtime/containers/cgroup/PlainRead.java +runtime/containers/docker/TestCPUSets.java +runtime/containers/docker/TestCPUAwareness.java +runtime/containers/docker/TestMemoryAwareness.java +runtime/contended/Options.java +runtime/InternalApi/ThreadCpuTimesDeadlock.java +runtime/InitialThreadOverflow/testme.sh +runtime/containers/docker/TestMisc.java +runtime/invokedynamic/BootstrapMethodErrorTest.java +runtime/Metaspace/MaxMetaspaceSizeTest.java +runtime/NMT/AutoshutdownNMT.java +runtime/NMT/ChangeTrackingLevel.java +runtime/NMT/JcmdBaselineDetail.java +runtime/NMT/JcmdDetailDiff.java +runtime/NMT/JcmdSummaryDiff.java +runtime/NMT/MallocSiteTypeChange.java +runtime/NMT/MallocStressTest.java +runtime/NMT/NMTWithCDS.java +runtime/NMT/ShutdownTwice.java +runtime/NMT/SummaryAfterShutdown.java +runtime/NMT/ThreadedVirtualAllocTestType.java +runtime/NMT/VirtualAllocCommitUncommitRecommit.java +runtime/NMT/VirtualAllocTestType.java +runtime/SharedArchiveFile/CdsDifferentObjectAlignment.java +runtime/SharedArchiveFile/CdsSameObjectAlignment.java +runtime/SharedArchiveFile/LimitSharedSizes.java +runtime/SharedArchiveFile/PrintSharedArchiveAndExit.java +runtime/SharedArchiveFile/SharedArchiveFile.java +runtime/SharedArchiveFile/SharedBaseAddress.java +runtime/SharedArchiveFile/SpaceUtilizationCheck.java +serviceability/dcmd/ClassLoaderStatsTest.java +serviceability/ParserTest.java +testlibrary_tests/whitebox/vm_flags/DoubleTest.java +testlibrary_tests/whitebox/vm_flags/IntxTest.java +testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java +vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java + +compiler/intrinsics/sha/cli/TestUseSHA1IntrinsicsOptionOnUnsupportedCPU.java +compiler/intrinsics/sha/cli/TestUseSHA256IntrinsicsOptionOnUnsupportedCPU.java +compiler/intrinsics/sha/cli/TestUseSHA512IntrinsicsOptionOnUnsupportedCPU.java +compiler/intrinsics/sha/cli/TestUseSHAOptionOnUnsupportedCPU.java +runtime/containers/docker/DockerBasicTest.java diff --git a/cvm/conf/jtreg_jdk8_excludes.list b/cvm/conf/jtreg_jdk8_excludes.list new file mode 100644 index 00000000000..a9a21e03e21 --- /dev/null +++ b/cvm/conf/jtreg_jdk8_excludes.list @@ -0,0 +1,782 @@ +java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html +java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html +java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html +java/awt/Choice/PopupPosTest/PopupPosTest.html +java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html +java/awt/Component/F10TopToplevel/F10TopToplevel.html +java/awt/Component/UpdatingBootTime/UpdatingBootTime.html +java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java +java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java +java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html +java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html +java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html +java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html +java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html +java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html +java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html +java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html +java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html +java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html +java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html +java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html +java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html +java/awt/dnd/URLDragTest/URLDragTest.html +java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html +java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html +java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html +java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html +java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html +java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html +java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html +java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html +java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html +java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html +java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java +java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html +java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html +java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html +java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html +java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html +java/awt/FileDialog/MultipleMode/MultipleMode.html +java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html +java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html +java/awt/Focus/8044614/bug8044614.java +java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html +java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html +java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html +java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html +java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html +java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html +java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html +java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html +java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html +java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html +java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html +java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html +java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html +java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html +java/awt/FontClass/CreateFont/bigfont.html +java/awt/Frame/DisposeStressTest/DisposeStressTest.html +java/awt/Frame/FrameStateTest/FrameStateTest.html +java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html +java/awt/Frame/NonEDT_GUI_DeadlockTest/NonEDT_GUI_Deadlock.html +java/awt/Frame/ShownOnPack/ShownOnPack.html +java/awt/grab/MenuDragEvents/MenuDragEvents.html +java/awt/Graphics/DrawLineTest.java +java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html +java/awt/im/4959409/bug4959409.html +java/awt/im/8041990/bug8041990.java +java/awt/im/8132503/bug8132503.java +java/awt/im/8148984/bug8148984.java +java/awt/im/8154816/bug8154816.java +java/awt/im/JTextFieldTest.java +java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java +java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java +java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java +java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html +java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html +java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html +java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html +java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html +java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html +java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html +java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html +java/awt/List/KeyEventsTest/KeyEventsTest.html +java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html +java/awt/List/SetFontTest/SetFontTest.html +java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java +java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html +java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html +java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html +java/awt/print/bug8023392/bug8023392.html +java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html +java/awt/print/Dialog/PrintApplet.java +java/awt/print/PageFormat/SetOrient.html +java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html +java/awt/TextArea/SelectionVisible/SelectionVisible.html +java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html +java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html +java/awt/TextField/SelectionVisible/SelectionVisible.html +java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh +java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html +java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html +java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html +com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java +com/sun/awt/Translucency/WindowOpacity.java +com/sun/java/swing/plaf/windows/8016551/bug8016551.java +java/awt/BasicStroke/DashOffset.java +java/awt/BasicStroke/DashScaleMinWidth.java +java/awt/BasicStroke/DashZeroWidth.java +java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java +java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java +java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java +java/awt/Choice/GrabLockTest/GrabLockTest.java +java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java +java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java +java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java +java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java +java/awt/Component/7097771/bug7097771.java +java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java +java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java +java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java +java/awt/Component/isLightweightCrash/IsLightweightCrash.java +java/awt/Component/NativeInLightShow/NativeInLightShow.java +java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java +java/awt/Component/PaintAll/PaintAll.java +java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java +java/awt/Component/Revalidate/Revalidate.java +java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java +java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java +java/awt/ComponentOrientation/BorderTest.java +java/awt/ComponentOrientation/FlowTest.java +java/awt/ComponentOrientation/WindowTest.java +java/awt/Container/CheckZOrderChange/CheckZOrderChange.java +java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java +java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java +java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java +java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java +java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java +java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java +java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java +java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java +java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java +java/awt/datatransfer/ImageTransfer/ImageTransferTest.java +java/awt/datatransfer/Independence/IndependenceAWTTest.java +java/awt/datatransfer/Independence/IndependenceSwingTest.java +java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java +java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java +java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java +java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java +java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java +java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java +java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java +java/awt/Dialog/ValidateOnShow/ValidateOnShow.java +java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java +java/awt/dnd/Button2DragTest/Button2DragTest.java +java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java +java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java +java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java +java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java +java/awt/dnd/ImageTransferTest/ImageTransferTest.java +java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java +java/awt/event/ComponentEvent/TextAreaTextEventTest.java +java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java +java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java +java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java +java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java +java/awt/event/KeyEvent/CorrectTime/CorrectTime.java +java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java +java/awt/event/KeyEvent/KeyChar/KeyCharTest.java +java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java +java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java +java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java +java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java +java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java +java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java +java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java +java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java +java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java +java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java +java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java +java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java +java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java +java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java +java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java +java/awt/event/OtherEvents/UngrabID/UngrabID.java +java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java +java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html +java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java +java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java +java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java +java/awt/Focus/6378278/InputVerifierTest.java +java/awt/Focus/6382144/EndlessLoopTest.java +java/awt/Focus/6401036/InputVerifierTest2.java +java/awt/Focus/6981400/Test1.java +java/awt/Focus/6981400/Test2.java +java/awt/Focus/6981400/Test3.java +java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java +java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java +java/awt/Focus/ChoiceFocus/ChoiceFocus.java +java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java +java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java +java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java +java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java +java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java +java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java +java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java +java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java +java/awt/Focus/FocusTraversalPolicy/InitialFTP.java +java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java +java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java +java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java +java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java +java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java +java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java +java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java +java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java +java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java +java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java +java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java +java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java +java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java +java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java +java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java +java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java +java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java +java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java +java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java +java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java +java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java +java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java +java/awt/font/Rotate/Shear.java +java/awt/font/Underline/UnderlineTest.java +java/awt/Frame/7024749/bug7024749.java +java/awt/Frame/DynamicLayout/DynamicLayout.java +java/awt/Frame/FrameLocation/FrameLocation.java +java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java +java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java +java/awt/Frame/FrameSize/TestFrameSize.java +java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java +java/awt/Frame/HideMaximized/HideMaximized.java +java/awt/Frame/HugeFrame/HugeFrame.java +java/awt/Frame/InvisibleOwner/InvisibleOwner.java +java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java +java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java +java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java +java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java +java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java +java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java +java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java +java/awt/Frame/MiscUndecorated/FrameCloseTest.java +java/awt/Frame/MiscUndecorated/RepaintTest.java +java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java +java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java +java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java +java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java +java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java +java/awt/FullScreen/8013581/bug8013581.java +java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java +java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java +java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java +java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java +java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java +java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java +java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java +java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java +java/awt/FullScreen/SetFSWindow/FSFrame.java +java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java +java/awt/GradientPaint/GradientTransformTest.java +java/awt/GradientPaint/LinearColorSpaceGradientTest.java +java/awt/Graphics/LineClipTest.java +java/awt/Graphics2D/DrawString/DrawStrSuper.java +java/awt/Graphics2D/DrawString/LCDTextSrcEa.java +java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java +java/awt/Graphics2D/DrawString/TextRenderingTest.java +java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java +java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java +java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java +java/awt/Graphics2D/TransformSetGet/TransformSetGet.java +java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java +java/awt/GraphicsDevice/CheckDisplayModes.java +java/awt/GraphicsDevice/CloneConfigsTest.java +java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java +java/awt/GraphicsEnvironment/LoadLock/GE_init3.java +java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java +java/awt/im/InputContext/bug4625203.java +java/awt/im/InputContext/InputContextTest.java +java/awt/im/InputContext/ReconnectTest.java +java/awt/im/memoryleak/InputContextMemoryLeakTest.java +java/awt/image/DrawImage/EABlitTest.java +java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java +java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java +java/awt/image/DrawImage/IncorrectBounds.java +java/awt/image/DrawImage/IncorrectClipSurface2SW.java +java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java +java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java +java/awt/image/DrawImage/IncorrectDestinationOffset.java +java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java +java/awt/image/DrawImage/IncorrectOffset.java +java/awt/image/DrawImage/IncorrectSourceOffset.java +java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java +java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java +java/awt/image/DrawImage/SimpleManagedImage.java +java/awt/image/DrawImage/SimpleUnmanagedImage.java +java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java +java/awt/image/MemoryLeakTest/MemoryLeakTest.java +java/awt/image/VolatileImage/BitmaskVolatileImage.java +java/awt/image/VolatileImage/VolatileImageBug.java +java/awt/Insets/CombinedTestApp1.java +java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java +java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java +java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java +java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java +java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java +java/awt/List/ActionAfterRemove/ActionAfterRemove.java +java/awt/List/ListFlickers/ListFlickers.java +java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java +java/awt/List/ListPeer/R2303044ListSelection.java +java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java +java/awt/List/ScrollOutside/ScrollOut.java +java/awt/List/SingleModeDeselect/SingleModeDeselect.java +java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java +java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java +java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java +java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java +java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java +java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java +java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java +java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java +java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java +java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java +java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java +java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java +java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java +java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java +java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JListOverlapping.java +java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java +java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java +java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java +java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java +java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java +java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java +java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java +java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JTableOverlapping.java +java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java +java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java +java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java +java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java +java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java +java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java +java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java +java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java +java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java +java/awt/Mixing/HWDisappear.java +java/awt/Mixing/JButtonInGlassPane.java +java/awt/Mixing/LWComboBox.java +java/awt/Mixing/LWPopupMenu.java +java/awt/Mixing/MixingInHwPanel.java +java/awt/Mixing/MixingOnDialog.java +java/awt/Mixing/MixingOnShrinkingHWButton.java +java/awt/Mixing/NonOpaqueInternalFrame.java +java/awt/Mixing/OpaqueTest.java +java/awt/Mixing/OverlappingButtons.java +java/awt/Mixing/setComponentZOrder.java +java/awt/Mixing/Validating.java +java/awt/Mixing/ValidBounds.java +java/awt/Modal/LWModalTest/LWModalTest.java +java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java +java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java +java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java +java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java +java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java +java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java +java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java +java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java +java/awt/Modal/NpeOnClose/NpeOnCloseTest.java +java/awt/Modal/SupportedTest/SupportedTest.java +java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java +java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java +java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java +java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java +java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java +java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java +java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java +java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java +java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java +java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java +java/awt/MouseInfo/GetPointerInfoTest.java +java/awt/MouseInfo/MultiscreenPointerInfo.java +java/awt/MultipleGradientPaint/MultiGradientTest.java +java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java +java/awt/Multiscreen/MouseEventTest/MouseEventTest.java +java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java +java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java +java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java +java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java +java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java +java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java +java/awt/Paint/ButtonRepaint.java +java/awt/Paint/CheckboxRepaint.java +java/awt/Paint/ExposeOnEDT.java +java/awt/Paint/LabelRepaint.java +java/awt/Paint/ListRepaint.java +java/awt/Paint/RepaintOnAWTShutdown.java +java/awt/print/Dialog/DestinationTest.java +java/awt/print/Dialog/PrintDialog.java +java/awt/print/PageFormat/CustomPaper.java +java/awt/print/PageFormat/ImageableAreaTest.java +java/awt/print/PageFormat/NullPaper.java +java/awt/print/PageFormat/Orient.java +java/awt/print/PageFormat/PageSetupDialog.java +java/awt/print/PageFormat/ReverseLandscapeTest.java +java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java +java/awt/print/PageFormat/WrongPaperPrintingTest.java +java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java +java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java +java/awt/print/PrinterJob/CustomFont/CustomFont.java +java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java +java/awt/print/PrinterJob/JobName/PrinterJobName.java +java/awt/print/PrinterJob/Legal/PrintTest.java +java/awt/print/PrinterJob/raster/RasterTest.java +java/awt/print/PrinterJob/ScaledText/ScaledText.java +java/awt/print/PrinterJob/SetCopies/Test.java +java/awt/print/PrinterJob/ValidatePage/ValidatePage.java +java/awt/print/PrinterJob/Collate2DPrintingTest.java +java/awt/print/PrinterJob/CompareImageable.java +java/awt/print/PrinterJob/DlgAttrsBug.java +java/awt/print/PrinterJob/DrawImage.java +java/awt/print/PrinterJob/DrawStringMethods.java +java/awt/print/PrinterJob/InvalidPage.java +java/awt/print/PrinterJob/LinearGradientPrintingTest.java +java/awt/print/PrinterJob/Margins.java +java/awt/print/PrinterJob/NumCopies.java +java/awt/print/PrinterJob/PageDialogMarginTest.java +java/awt/print/PrinterJob/PageDlgApp.java +java/awt/print/PrinterJob/PageDlgPrnButton.java +java/awt/print/PrinterJob/PageDlgStackOverflowTest.java +java/awt/print/PrinterJob/PrintAttributeUpdateTest.java +java/awt/print/PrinterJob/PrintAWTImage.java +java/awt/print/PrinterJob/PrintCompoundString.java +java/awt/print/PrinterJob/PrintDialog.java +java/awt/print/PrinterJob/PrintDialogCancel.java +java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java +java/awt/print/PrinterJob/PrintImage.java +java/awt/print/PrinterJob/PrintNullString.java +java/awt/print/PrinterJob/PrintParenString.java +java/awt/print/PrinterJob/PrintRotatedText.java +java/awt/print/PrinterJob/PrintToDir.java +java/awt/print/PrinterJob/PrintTranslatedFont.java +java/awt/print/PrinterJob/PrintVolatileImage.java +java/awt/print/PrinterJob/RadialGradientPrintingTest.java +java/awt/print/PrinterJob/SecurityDialogTest.java +java/awt/print/PrinterJob/TexturePaintPrintingTest.java +java/awt/print/PrinterJob/ThinLines.java +java/awt/PrintJob/EdgeTest/EdgeTest.java +java/awt/PrintJob/MultipleEnd/MultipleEnd.java +java/awt/PrintJob/PrintArcTest/PrintArcTest.java +java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java +java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java +java/awt/PrintJob/Security/SecurityDialogTest.java +java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java +java/awt/Robot/CheckCommonColors/CheckCommonColors.java +java/awt/Robot/CtorTest/CtorTest.java +java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java +java/awt/Robot/RobotExtraButton/RobotExtraButton.java +java/awt/Robot/NonEmptyErrorStream.java +java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java +java/awt/ScrollPane/bug8077409Test.java +java/awt/security/Permissions.java +java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java +java/awt/TextArea/Mixing/TextAreaMixing.java +java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java +java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java +java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java +java/awt/TextArea/TextAreaEditing/TextAreaEditing.java +java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java +java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java +java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java +java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java +java/awt/Toolkit/DynamicLayout/bug7172833.java +java/awt/Toolkit/RealSync/RealSyncOnEDT.java +java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java +java/awt/Toolkit/SecurityTest/SecurityTest2.java +java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java +java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java +java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java +java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java +java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java +java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java +java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java +java/awt/TrayIcon/DragEventSource/DragEventSource.java +java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java +java/awt/Window/8027025/Test8027025.java +java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java +java/awt/Window/AlwaysOnTop/AutoTestOnTop.java +java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java +java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java +java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java +java/awt/Window/GetWindowsTest/GetWindowsTest.java +java/awt/Window/Grab/GrabTest.java +java/awt/Window/GrabSequence/GrabSequence.java +java/awt/Window/LocationByPlatform/LocationByPlatformTest.java +java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java +java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java +java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java +java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java +java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java +java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java +java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java +java/awt/Window/ShapedAndTranslucentWindows/SetShape.java +java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java +java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java +java/awt/Window/ShapedAndTranslucentWindows/Shaped.java +java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java +java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java +java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java +java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java +java/awt/Window/ShapedAndTranslucentWindows/Translucent.java +java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java +java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java +java/awt/Window/TopLevelLocation/TopLevelLocation.java +java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java +java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java +java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java +java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java +java/awt/Window/WindowType/WindowType.java +java/awt/xembed/server/RunTestXEmbed.java +java/awt/xembed/server/TestXEmbedServerJava.java +java/beans/XMLEncoder/java_awt_ScrollPane.java +java/util/TimeZone/DefaultTimeZoneTest.java +javax/accessibility/6192422/bug6192422.java +javax/accessibility/JList/AccessibleJListChildNPETest.java +javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java +javax/imageio/AppletResourceTest.java +javax/print/applet/AppletPrintLookup.sh +javax/print/DialogMargins.java +javax/sound/midi/MidiSystem/6411624/Test6411624.java +javax/sound/sampled/Lines/ClickInPlay/Test4218609.java +javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java +javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java +javax/swing/AncestorNotifier/7193219/bug7193219.java +javax/swing/border/Test4129681.java +javax/swing/border/Test4243289.java +javax/swing/border/Test4247606.java +javax/swing/border/Test4252164.java +javax/swing/border/Test4760089.java +javax/swing/border/Test6910490.java +javax/swing/dnd/7171812/bug7171812.java +javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java +javax/swing/JCheckBox/4449413/bug4449413.java +javax/swing/JCheckBox/8032667/bug8032667.java +javax/swing/JColorChooser/8065098/bug8065098.java +javax/swing/JColorChooser/Test4177735.java +javax/swing/JColorChooser/Test4222508.java +javax/swing/JColorChooser/Test4234761.java +javax/swing/JColorChooser/Test4319113.java +javax/swing/JColorChooser/Test4759306.java +javax/swing/JColorChooser/Test4759934.java +javax/swing/JColorChooser/Test4887836.java +javax/swing/JColorChooser/Test6348456.java +javax/swing/JColorChooser/Test6524757.java +javax/swing/JColorChooser/Test6559154.java +javax/swing/JColorChooser/Test6707406.java +javax/swing/JColorChooser/Test6977726.java +javax/swing/JComboBox/4199622/bug4199622.java +javax/swing/JComboBox/4515752/DefaultButtonTest.java +javax/swing/JComboBox/4523758/bug4523758.java +javax/swing/JComboBox/6236162/bug6236162.java +javax/swing/JComboBox/6559152/bug6559152.java +javax/swing/JComboBox/7195179/Test7195179.java +javax/swing/JComboBox/8019180/Test8019180.java +javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java +javax/swing/JComponent/4337267/bug4337267.java +javax/swing/JComponent/6683775/bug6683775.java +javax/swing/JComponent/8043610/bug8043610.java +javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java +javax/swing/JFileChooser/4150029/bug4150029.html +javax/swing/JFileChooser/6396844/TwentyThousandTest.java +javax/swing/JFileChooser/6489130/bug6489130.java +javax/swing/JFileChooser/6520101/bug6520101.java +javax/swing/JFileChooser/6698013/bug6698013.java +javax/swing/JFileChooser/6798062/bug6798062.java +javax/swing/JFileChooser/8013442/Test8013442.java +javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html +javax/swing/JFrame/4962534/bug4962534.html +javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java +javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java +javax/swing/JInternalFrame/4193219/IconCoord.java +javax/swing/JInternalFrame/4251301/bug4251301.java +javax/swing/JInternalFrame/6726866/bug6726866.java +javax/swing/JLabel/7004134/bug7004134.java +javax/swing/JLayer/6824395/bug6824395.java +javax/swing/JLayer/6872503/bug6872503.java +javax/swing/JMenu/6470128/bug6470128.java +javax/swing/JMenu/8071705/bug8071705.java +javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java +javax/swing/JMenuBar/4750590/bug4750590.java +javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java +javax/swing/JMenuItem/4171437/bug4171437.java +javax/swing/JMenuItem/6249972/bug6249972.java +javax/swing/JMenuItem/7036148/bug7036148.java +javax/swing/JMenuItem/8031573/bug8031573.java +javax/swing/JOptionPane/4174551/bug4174551.java +javax/swing/JOptionPane/6464022/bug6464022.java +javax/swing/JOptionPane/8024926/bug8024926.java +javax/swing/JPopupMenu/4458079/bug4458079.java +javax/swing/JPopupMenu/4634626/bug4634626.java +javax/swing/JPopupMenu/6580930/bug6580930.java +javax/swing/JPopupMenu/6583251/bug6583251.java +javax/swing/JPopupMenu/7160604/bug7160604.java +javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java +javax/swing/JRadioButton/8033699/bug8033699.java +javax/swing/JRadioButton/8041561/bug8041561.java +javax/swing/JRadioButton/8075609/bug8075609.java +javax/swing/JScrollBar/8039464/Test8039464.java +javax/swing/JScrollBar/bug4202954/bug4202954.java +javax/swing/JSlider/4987336/bug4987336.java +javax/swing/JSlider/6524424/bug6524424.java +javax/swing/JSlider/6587742/bug6587742.java +javax/swing/JSlider/6742358/bug6742358.java +javax/swing/JSlider/6794831/bug6794831.java +javax/swing/JSlider/6918861/bug6918861.java +javax/swing/JSlider/6923305/bug6923305.java +javax/swing/JSpinner/4973721/bug4973721.java +javax/swing/JSpinner/5012888/bug5012888.java +javax/swing/JSpinner/6532833/bug6532833.java +javax/swing/JSplitPane/4514858/bug4514858.java +javax/swing/JSplitPane/4816114/bug4816114.java +javax/swing/JSplitPane/4885629/bug4885629.java +javax/swing/JTabbedPane/4310381/bug4310381.java +javax/swing/JTabbedPane/4666224/bug4666224.html +javax/swing/JTabbedPane/7024235/Test7024235.java +javax/swing/JTable/6913768/bug6913768.java +javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java +javax/swing/JTextArea/TextViewOOM/TextViewOOM.java +javax/swing/JTextArea/Test6593649.java +javax/swing/JTextField/8036819/bug8036819.java +javax/swing/JTextPane/JTextPaneDocumentAlignment.java +javax/swing/JTextPane/JTextPaneDocumentWrapping.java +javax/swing/JTextPane/TestJTextPaneHTMLRendering.java +javax/swing/JToolBar/4529206/bug4529206.java +javax/swing/JToolTip/4644444/bug4644444.html +javax/swing/JTree/4314199/bug4314199.java +javax/swing/JTree/4633594/JTreeFocusTest.java +javax/swing/JTree/8003400/Test8003400.java +javax/swing/JTree/8038113/bug8038113.java +javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java +javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java +javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java +javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java +javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java +javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java +javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java +javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java +javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java +javax/swing/KeyboardManager/8013370/Test8013370.java +javax/swing/MultiUIDefaults/4300666/bug4300666.java +javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java +javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java +javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java +javax/swing/plaf/nimbus/8041642/bug8041642.java +javax/swing/plaf/nimbus/8041725/bug8041725.java +javax/swing/plaf/nimbus/Test6919629.java +javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java +javax/swing/plaf/synth/Test8015926.java +javax/swing/Popup/TaskbarPositionTest.java +javax/swing/PopupFactory/8048506/bug8048506.java +javax/swing/RepaintManager/6608456/bug6608456.java +javax/swing/SwingUtilities/7088744/bug7088744.java +javax/swing/SwingUtilities/7146377/bug7146377.java +javax/swing/SwingUtilities/7170657/bug7170657.java +javax/swing/text/AbstractDocument/6968363/Test6968363.java +javax/swing/text/FlowView/LayoutTest.java +javax/swing/text/GlyphView/4984669/bug4984669.java +javax/swing/text/html/8034955/bug8034955.java +javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java +javax/swing/text/html/parser/Parser/7165725/bug7165725.java +javax/swing/text/html/TableView/7030332/bug7030332.java +javax/swing/text/NavigationFilter/6735293/bug6735293.java +javax/swing/text/StyledEditorKit/4506788/bug4506788.java +javax/swing/text/Utilities/bug7045593.java +javax/swing/text/View/8015853/bug8015853.java +javax/swing/ToolTipManager/7123767/bug7123767.java +javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java +sun/awt/dnd/8024061/bug8024061.java +sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html +sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java +sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java +sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java +sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java +sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java +sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java +sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java +sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java +sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java +sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java +sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java +sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java +sun/java2d/GdiRendering/InsetClipping.java +sun/java2d/OpenGL/bug7181438.java +sun/java2d/OpenGL/CopyAreaOOB.java +sun/java2d/OpenGL/CustomCompositeTest.java +sun/java2d/OpenGL/DrawBufImgOp.java +sun/java2d/OpenGL/DrawHugeImageTest.java +sun/java2d/OpenGL/GradientPaints.java +sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java +sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java +sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java +sun/java2d/pipe/MutableColorTest/MutableColorTest.java +sun/java2d/pipe/InterpolationQualityTest.java +sun/java2d/SunGraphics2D/CoordinateTruncationBug.java +sun/java2d/SunGraphics2D/DrawImageBilinear.java +sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java +sun/java2d/SunGraphics2D/PolyVertTest.java +sun/java2d/SunGraphics2D/SimplePrimQuality.java +sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java +sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh +sun/java2d/AcceleratedXORModeTest.java +sun/java2d/ClassCastExceptionForInvalidSurface.java +sun/java2d/DrawCachedImageAndTransform.java +sun/java2d/DrawXORModeTest.java +sun/java2d/XRenderBlitsTest.java +# Following tests are related to SecurityManager, ignore for now +com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java +java/lang/invoke/8022701/MHIllegalAccess.java +java/lang/management/CompositeData/ThreadInfoCompositeData.java +sun/security/tools/policytool/Alias.sh +sun/security/tools/policytool/ChangeUI.sh +sun/security/tools/policytool/OpenPolicy.sh +sun/security/tools/policytool/SaveAs.sh +sun/security/tools/policytool/UpdatePermissions.sh +sun/security/tools/policytool/UsePolicy.sh +sun/security/tools/policytool/i18n.sh +# Ignore tests for hprof agent +demo/jvmti/hprof/CpuOldTest.java +demo/jvmti/hprof/CpuSamplesTest.java +demo/jvmti/hprof/CpuTimesDefineClassTest.java +demo/jvmti/hprof/CpuTimesTest.java +demo/jvmti/hprof/HeapAllTest.java +demo/jvmti/hprof/HeapBinaryFormatTest.java +demo/jvmti/hprof/HeapDumpTest.java +demo/jvmti/hprof/HeapSitesTest.java +demo/jvmti/hprof/MonitorTest.java +demo/jvmti/hprof/OptionsTest.java +demo/jvmti/hprof/StackMapTableTest.java +sun/tools/jhat/HatHeapDump1Test.java +# Ignore for implementation difference between jdk8 and jdk17 +com/sun/jdi/BacktraceFieldTest.java +com/sun/jdi/ClassesByName2Test.java +com/sun/management/HotSpotDiagnosticMXBean/SetVMOption.java +sun/tools/clhsdb/Basic.sh +sun/tools/jinfo/Basic.sh +sun/tools/jstat/jstatClassloadOutput1.sh +# Ignore for bug of jdk8u +com/sun/jdi/InterfaceMethodsTest.java +jdk/lambda/vm/InterfaceAccessFlagsTest.java +sun/tools/jps/TestJpsJarRelative.java + +# Following tests are due to implementation difference in JVM8 and 17. We may modify the +# expected result in test cases to reflect the details, but for now just ignore them since it's not of high priority. + +# Problems need to be investigated later +tools/javac/defaultMethods/Assertions.java +tools/javac/Paths/Diagnostics.sh +tools/javac/Paths/MineField.sh +tools/jdeps/DotFileTest.java diff --git a/hotspot/test/compiler/6859338/Test6859338.java b/hotspot/test/compiler/6859338/Test6859338.java index 03d68126f66..73576840db1 100644 --- a/hotspot/test/compiler/6859338/Test6859338.java +++ b/hotspot/test/compiler/6859338/Test6859338.java @@ -27,7 +27,7 @@ * @bug 6859338 * @summary Assertion failure in sharedRuntime.cpp * - * @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:-InlineObjectHash -Xbatch -XX:-ProfileInterpreter Test6859338 + * @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-InlineObjectHash -Xbatch -XX:-ProfileInterpreter Test6859338 */ public class Test6859338 { diff --git a/hotspot/test/compiler/7196199/Test7196199.java b/hotspot/test/compiler/7196199/Test7196199.java index 6aa35369a31..8f0c520df0e 100644 --- a/hotspot/test/compiler/7196199/Test7196199.java +++ b/hotspot/test/compiler/7196199/Test7196199.java @@ -27,7 +27,7 @@ * @bug 7196199 * @summary java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect * - * @run main/othervm/timeout=400 -Xmx32m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -XX:CompileCommand=exclude,Test7196199.test -XX:+SafepointALot -XX:GuaranteedSafepointInterval=100 Test7196199 + * @run main/othervm/timeout=400 -Xmx32m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:CompileCommand=exclude,Test7196199.test -XX:+SafepointALot -XX:GuaranteedSafepointInterval=100 Test7196199 */ diff --git a/hotspot/test/compiler/8004741/Test8004741.java b/hotspot/test/compiler/8004741/Test8004741.java index baacc34763d..7e64ff14d6e 100644 --- a/hotspot/test/compiler/8004741/Test8004741.java +++ b/hotspot/test/compiler/8004741/Test8004741.java @@ -25,8 +25,8 @@ * @test Test8004741.java * @bug 8004741 * @summary Missing compiled exception handle table entry for multidimensional array allocation - * @run main/othervm -Xmx64m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -XX:+StressCompiledExceptionHandlers -XX:+SafepointALot -XX:GuaranteedSafepointInterval=100 Test8004741 - * @run main/othervm -Xmx64m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -XX:+StressCompiledExceptionHandlers Test8004741 + * @run main/othervm -Xmx64m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressCompiledExceptionHandlers -XX:+SafepointALot -XX:GuaranteedSafepointInterval=100 Test8004741 + * @run main/othervm -Xmx64m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressCompiledExceptionHandlers Test8004741 */ import java.util.*; diff --git a/hotspot/test/compiler/stable/StableConfiguration.java b/hotspot/test/compiler/stable/StableConfiguration.java index aabb99cee0e..8cfc181bc69 100644 --- a/hotspot/test/compiler/stable/StableConfiguration.java +++ b/hotspot/test/compiler/stable/StableConfiguration.java @@ -36,9 +36,8 @@ public class StableConfiguration { static { Boolean value = WB.getBooleanVMFlag("FoldStableValues"); isStableEnabled = (value == null ? false : value); - isServerWithStable = isStableEnabled && get(); + isServerWithStable = isStableEnabled; System.out.println("@Stable: " + (isStableEnabled ? "enabled" : "disabled")); - System.out.println("Server Compiler: " + get()); } // The method 'get' below returns true if the method is server compiled diff --git a/hotspot/test/gc/arguments/TestAggressiveHeap.java b/hotspot/test/gc/arguments/TestAggressiveHeap.java index c2ac3c0fc6c..8e11bcb196c 100644 --- a/hotspot/test/gc/arguments/TestAggressiveHeap.java +++ b/hotspot/test/gc/arguments/TestAggressiveHeap.java @@ -57,9 +57,10 @@ public static void main(String args[]) throws Exception { // half of the required size instead. private static final String heapSizeOption = "-Xmx128M"; - // bool UseParallelGC := true {product} + // JDK 8 used ':=' for ergonomic updates while the JDK 17 kernel prints + // '=' when the value originates from the command line. private static final String parallelGCPattern = - " *bool +UseParallelGC *:= *true +\\{product\\}"; + " *bool +UseParallelGC +:?= *true +\\{product\\}.*"; private static void testFlag() throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( @@ -92,4 +93,3 @@ private static boolean canUseAggressiveHeapOption() throws Exception { return true; } } - diff --git a/hotspot/test/gc/arguments/TestG1ConcRefinementThreads.java b/hotspot/test/gc/arguments/TestG1ConcRefinementThreads.java index 1d73b1c74c6..2baabff85b2 100644 --- a/hotspot/test/gc/arguments/TestG1ConcRefinementThreads.java +++ b/hotspot/test/gc/arguments/TestG1ConcRefinementThreads.java @@ -41,22 +41,26 @@ public class TestG1ConcRefinementThreads { public static void main(String args[]) throws Exception { // default case runG1ConcRefinementThreadsTest( - new String[]{}, // automatically selected - AUTO_SELECT_THREADS_COUNT /* use default setting */); + new String[]{}, + AUTO_SELECT_THREADS_COUNT, + false); - // zero setting case + // zero setting case: the JDK 17 kernel preserves the explicit zero instead + // of replacing it with the ergonomic ParallelGCThreads value. runG1ConcRefinementThreadsTest( - new String[]{"-XX:G1ConcRefinementThreads=0"}, // automatically selected - AUTO_SELECT_THREADS_COUNT /* set to zero */); + new String[]{"-XX:G1ConcRefinementThreads=0"}, + AUTO_SELECT_THREADS_COUNT, + true); - // non-zero sestting case + // non-zero setting case runG1ConcRefinementThreadsTest( - new String[]{"-XX:G1ConcRefinementThreads="+Integer.toString(PASSED_THREADS_COUNT)}, - PASSED_THREADS_COUNT); + new String[]{"-XX:G1ConcRefinementThreads=" + Integer.toString(PASSED_THREADS_COUNT)}, + PASSED_THREADS_COUNT, + false); } private static void runG1ConcRefinementThreadsTest(String[] passedOpts, - int expectedValue) throws Exception { + int expectedValue, boolean explicitZero) throws Exception { List vmOpts = new ArrayList<>(); if (passedOpts.length > 0) { Collections.addAll(vmOpts, passedOpts); @@ -68,13 +72,16 @@ private static void runG1ConcRefinementThreadsTest(String[] passedOpts, output.shouldHaveExitValue(0); String stdout = output.getStdout(); - checkG1ConcRefinementThreadsConsistency(stdout, expectedValue); + checkG1ConcRefinementThreadsConsistency(stdout, expectedValue, explicitZero); } - private static void checkG1ConcRefinementThreadsConsistency(String output, int expectedValue) { + private static void checkG1ConcRefinementThreadsConsistency(String output, int expectedValue, + boolean explicitZero) { int actualValue = getIntValue("G1ConcRefinementThreads", output); - if (expectedValue == 0) { + if (explicitZero) { + expectedValue = 0; + } else if (expectedValue == 0) { // If expectedValue is automatically selected, set it same as ParallelGCThreads. expectedValue = getIntValue("ParallelGCThreads", output); } diff --git a/hotspot/test/gc/arguments/TestG1HeapRegionSize.java b/hotspot/test/gc/arguments/TestG1HeapRegionSize.java index 0442d2c61bf..90e1cd5b4f8 100644 --- a/hotspot/test/gc/arguments/TestG1HeapRegionSize.java +++ b/hotspot/test/gc/arguments/TestG1HeapRegionSize.java @@ -29,7 +29,7 @@ * @run main/othervm -Xmx64m TestG1HeapRegionSize 1048576 * @run main/othervm -XX:G1HeapRegionSize=2m -Xmx64m TestG1HeapRegionSize 2097152 * @run main/othervm -XX:G1HeapRegionSize=3m -Xmx64m TestG1HeapRegionSize 2097152 - * @run main/othervm -XX:G1HeapRegionSize=64m -Xmx256m TestG1HeapRegionSize 33554432 + * @run main/othervm -XX:G1HeapRegionSize=32m -Xmx256m TestG1HeapRegionSize 33554432 */ import sun.management.ManagementFactoryHelper; diff --git a/hotspot/test/gc/arguments/TestHeapFreeRatio.java b/hotspot/test/gc/arguments/TestHeapFreeRatio.java index 11e259df038..ea75c0b3bdb 100644 --- a/hotspot/test/gc/arguments/TestHeapFreeRatio.java +++ b/hotspot/test/gc/arguments/TestHeapFreeRatio.java @@ -54,12 +54,12 @@ private static void testMinMaxFreeRatio(String min, String max, Validation type) output.shouldHaveExitValue(0); break; case MIN_INVALID: - output.shouldContain("Bad min heap free percentage size: -Xminf" + min); + output.shouldMatch("(?s).*(MinHeapFreeRatio|Bad min heap free percentage size).*"); output.shouldContain("Error"); output.shouldHaveExitValue(1); break; case MAX_INVALID: - output.shouldContain("Bad max heap free percentage size: -Xmaxf" + max); + output.shouldMatch("(?s).*(MaxHeapFreeRatio|Bad max heap free percentage size).*"); output.shouldContain("Error"); output.shouldHaveExitValue(1); break; diff --git a/hotspot/test/gc/arguments/TestInitialTenuringThreshold.java b/hotspot/test/gc/arguments/TestInitialTenuringThreshold.java index 2c97ccd8fff..4309ff960f6 100644 --- a/hotspot/test/gc/arguments/TestInitialTenuringThreshold.java +++ b/hotspot/test/gc/arguments/TestInitialTenuringThreshold.java @@ -63,13 +63,12 @@ public static void main(String args[]) throws Exception { // successful tests runWithThresholds(0, 10, false); runWithThresholds(5, 5, false); + runWithThresholds(8, 16, false); // failing tests runWithThresholds(10, 0, true); runWithThresholds(9, 8, true); runWithThresholds(-1, 8, true); runWithThresholds(8, -1, true); - runWithThresholds(8, 16, true); runWithThresholds(16, 8, true); } } - diff --git a/hotspot/test/gc/arguments/TestUnrecognizedVMOptionsHandling.java b/hotspot/test/gc/arguments/TestUnrecognizedVMOptionsHandling.java index a61b5f30940..cb5a087417c 100644 --- a/hotspot/test/gc/arguments/TestUnrecognizedVMOptionsHandling.java +++ b/hotspot/test/gc/arguments/TestUnrecognizedVMOptionsHandling.java @@ -35,35 +35,29 @@ public class TestUnrecognizedVMOptionsHandling { public static void main(String args[]) throws Exception { - // The first two JAVA processes are expected to fail, but with a correct VM option suggestion + // CompoundVM on top of the JDK 17 kernel accepts these legacy spellings, + // so the compatibility expectation differs from the old JDK 8 suggestion + // text checks. ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( "-XX:+PrintGc", "-version" ); - OutputAnalyzer outputWithError = new OutputAnalyzer(pb.start()); - outputWithError.shouldContain("Did you mean '(+/-)PrintGC'?"); - if (outputWithError.getExitValue() == 0) { - throw new RuntimeException("Not expected to get exit value 0"); - } + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + output.shouldHaveExitValue(0); pb = ProcessTools.createJavaProcessBuilder( "-XX:MaxiumHeapSize=500m", "-version" ); - outputWithError = new OutputAnalyzer(pb.start()); - outputWithError.shouldContain("Did you mean 'MaxHeapSize='?"); - if (outputWithError.getExitValue() == 0) { - throw new RuntimeException("Not expected to get exit value 0"); - } + output = new OutputAnalyzer(pb.start()); + output.shouldHaveExitValue(0); - // The last JAVA process should run successfully for the purpose of sanity check + // Sanity check with the canonical spelling. pb = ProcessTools.createJavaProcessBuilder( "-XX:+PrintGC", "-version" ); OutputAnalyzer outputWithNoError = new OutputAnalyzer(pb.start()); - outputWithNoError.shouldNotContain("Did you mean '(+/-)PrintGC'?"); outputWithNoError.shouldHaveExitValue(0); } } - diff --git a/hotspot/test/gc/arguments/TestUseCompressedOopsErgoTools.java b/hotspot/test/gc/arguments/TestUseCompressedOopsErgoTools.java index 54c70672d04..edceda3fcc4 100644 --- a/hotspot/test/gc/arguments/TestUseCompressedOopsErgoTools.java +++ b/hotspot/test/gc/arguments/TestUseCompressedOopsErgoTools.java @@ -52,7 +52,13 @@ private static long getCompressedClassSpaceSize() { public static long getMaxHeapForCompressedOops(String[] vmargs) throws Exception { OutputAnalyzer output = runWhiteBoxTest(vmargs, DetermineMaxHeapForCompressedOops.class.getName(), new String[] {}, false); - return Long.parseLong(output.getStdout()); + String stdout = output.getStdout(); + Matcher m = Pattern.compile("(-?\\d+)").matcher(stdout); + long res = 0; + while (m.find()) { + res = Long.parseLong(m.group(1)); // get the last number in stdout + } + return res; } public static boolean is64bitVM() { @@ -174,4 +180,3 @@ private static String expectValid(String[] flags) throws Exception { return expect(flags, false, false, 0); } } - diff --git a/hotspot/test/gc/startup_warnings/TestDefaultMaxRAMFraction.java b/hotspot/test/gc/startup_warnings/TestDefaultMaxRAMFraction.java index 059a526acf4..f8af69d3d85 100644 --- a/hotspot/test/gc/startup_warnings/TestDefaultMaxRAMFraction.java +++ b/hotspot/test/gc/startup_warnings/TestDefaultMaxRAMFraction.java @@ -36,7 +36,7 @@ public class TestDefaultMaxRAMFraction { public static void main(String[] args) throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:DefaultMaxRAMFraction=4", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); - output.shouldContain("warning: DefaultMaxRAMFraction is deprecated and will likely be removed in a future release. Use MaxRAMFraction instead."); + output.shouldContain("warning: Option DefaultMaxRAMFraction was deprecated in version 8.0 and will likely be removed in a future release. Use option MaxRAMFraction instead."); output.shouldNotContain("error"); output.shouldHaveExitValue(0); } diff --git a/hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java b/hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java index 6a14079347f..56391019bc6 100644 --- a/hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java +++ b/hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java @@ -1,3 +1,5 @@ +// This project is a modified version of OpenJDK, licensed under GPL v2. +// Modifications Copyright (C) 2025 ByteDance Inc. /* * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -43,6 +45,10 @@ public static boolean isServer() { return vmName.endsWith(" Server VM"); } + public static boolean isCVM() { + return vmName.contains("CompoundVM"); + } + public static boolean isGraal() { return vmName.endsWith(" Graal VM"); } diff --git a/hotspot/test/testlibrary/com/oracle/java/testlibrary/cli/CommandLineOptionTest.java b/hotspot/test/testlibrary/com/oracle/java/testlibrary/cli/CommandLineOptionTest.java index 8da6c0264ef..f12bd15908a 100644 --- a/hotspot/test/testlibrary/com/oracle/java/testlibrary/cli/CommandLineOptionTest.java +++ b/hotspot/test/testlibrary/com/oracle/java/testlibrary/cli/CommandLineOptionTest.java @@ -1,3 +1,5 @@ +// This project is a modified version of OpenJDK, licensed under GPL v2. +// Modifications Copyright (C) 2025 ByteDance Inc. /* * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -299,6 +301,8 @@ private static String getVMTypeOption() { return "-minimal"; } else if (Platform.isGraal()) { return "-graal"; + } else if (Platform.isCVM()) { + return "-cvm"; } throw new RuntimeException("Unknown VM mode."); } diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java index 393f3b1ca8d..d5463d12fcc 100644 --- a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java +++ b/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java @@ -86,9 +86,9 @@ public synchronized static WhiteBox getWhiteBox() { // Runtime // Make sure class name is in the correct format public boolean isClassAlive(String name) { - return isClassAlive0(name.replace('.', '/')); + return countAliveClasses0(name.replace('.', '/')) != 0; } - private native boolean isClassAlive0(String name); + private native int countAliveClasses0(String name); public native boolean isMonitorInflated(Object obj); public native void forceSafepoint(); diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/NMethod.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/NMethod.java index 7cd36c25ac8..4739bca7409 100644 --- a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/NMethod.java +++ b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/NMethod.java @@ -34,21 +34,25 @@ public static NMethod get(Executable method, boolean isOsr) { return obj == null ? null : new NMethod(obj); } private NMethod(Object[] obj) { - assert obj.length == 3; - comp_level = (Integer) obj[0]; - compile_id = (Integer) obj[1]; + assert obj.length == 5; + comp_level = (Integer) obj[1]; insts = (byte[]) obj[2]; + compile_id = (Integer) obj[3]; + entry_point = (Long) obj[4]; } public final byte[] insts; public final int comp_level; public final int compile_id; + public final long entry_point; @Override public String toString() { - return "NMethod{" + - "insts=" + insts + - ", comp_level=" + comp_level + - ", compile_id=" + compile_id + - '}'; + return "NMethod{" + + super.toString() + + ", insts=" + insts + + ", comp_level=" + comp_level + + ", compile_id=" + compile_id + + ", entry_point=" + entry_point + + '}'; } } diff --git a/jdk/test/com/sun/jdi/BreakpointWithFullGC.sh b/jdk/test/com/sun/jdi/BreakpointWithFullGC.sh index e358487d3be..27cfcb1bee1 100644 --- a/jdk/test/com/sun/jdi/BreakpointWithFullGC.sh +++ b/jdk/test/com/sun/jdi/BreakpointWithFullGC.sh @@ -120,7 +120,7 @@ jdbFailIfNotPresent 'System\..*bottom of loop' jdbFailIfNotPresent 'System\..*end of test' # make sure we had at least one full GC -debuggeeFailIfNotPresent 'Full GC' +debuggeeFailIfNotPresent 'Full GC|Pause Full' # check for error message due to thread ID change debuggeeFailIfPresent \ diff --git a/jdk/test/com/sun/jdi/RedefineCrossEvent.java b/jdk/test/com/sun/jdi/RedefineCrossEvent.java index 19c04a94473..e7a71a14143 100644 --- a/jdk/test/com/sun/jdi/RedefineCrossEvent.java +++ b/jdk/test/com/sun/jdi/RedefineCrossEvent.java @@ -32,8 +32,6 @@ * @run compile -g AccessSpecifierTest.java * @run compile -g AfterThreadDeathTest.java * @run compile -g ArrayRangeTest.java - * @run compile -g BacktraceFieldTest.java - * @run compile -g ClassesByName2Test.java * @run compile -g DebuggerThreadTest.java * @run compile -g DeleteEventRequestsTest.java * @run compile -g ExceptionEvents.java @@ -49,8 +47,6 @@ * @run main AccessSpecifierTest -redefstart -redefevent * @run main AfterThreadDeathTest -redefstart -redefevent * @run main ArrayRangeTest -redefstart -redefevent - * @run main BacktraceFieldTest -redefstart -redefevent - * @run main ClassesByName2Test -redefstart -redefevent * @run main DebuggerThreadTest -redefstart -redefevent * @run main DeleteEventRequestsTest -redefstart -redefevent * @run main/othervm ExceptionEvents -redefstart -redefevent N A StackOverflowCaughtTarg java.lang.Exception diff --git a/jdk/test/java/lang/System/Versions.java b/jdk/test/java/lang/System/Versions.java index 3ba41e1b1f3..308a9886de0 100644 --- a/jdk/test/java/lang/System/Versions.java +++ b/jdk/test/java/lang/System/Versions.java @@ -72,10 +72,12 @@ static void checkClassVersion(int major, int minor, boolean expectSupported) public static void main(String [] args) throws Exception { String classVersion = getProperty("java.class.version"); String javaVersion = getProperty("java.version"); - String VMVersion = getProperty("java.vm.version"); + String VMSpecVersion = getProperty("java.vm.specification.version"); String runtimeVersion = getProperty("java.runtime.version"); String specVersion = getProperty("java.specification.version"); + boolean isCVM = VMSpecVersion.equals("17"); + if (! (javaVersion.startsWith(specVersion) && runtimeVersion.startsWith(specVersion))) throw new Exception("Invalid version-related system properties"); @@ -95,7 +97,7 @@ public static void main(String [] args) throws Exception { cl = new URLClassLoader(new URL[]{new File("./").toURL()}, null); checkClassVersion(majorVersion , minorVersion , true ); - checkClassVersion(majorVersion + 1, minorVersion , false); - checkClassVersion(majorVersion , minorVersion + 1, false); + checkClassVersion(majorVersion + 1, minorVersion , isCVM); + checkClassVersion(majorVersion , minorVersion + 1, isCVM); } } diff --git a/jdk/test/sun/misc/Version/Version.java b/jdk/test/sun/misc/Version/Version.java index 10f5c226bbe..896603e0725 100644 --- a/jdk/test/sun/misc/Version/Version.java +++ b/jdk/test/sun/misc/Version/Version.java @@ -46,7 +46,9 @@ public static void main(String[] args) throws Exception { if (!jdk.equals(v1)) { throw new RuntimeException("Unmatched version: " + jdk + " vs " + v1); } - VersionInfo jvm = jvmVersionInfo(System.getProperty("java.vm.version")); + VersionInfo jvm = System.getProperty("java.vm.specification.version").equals("17") ? + jvm17VersionInfo(System.getProperty("java.vm.version")) + : jvmVersionInfo(System.getProperty("java.vm.version")); VersionInfo v2 = new VersionInfo(jvmMajorVersion(), jvmMinorVersion(), jvmMicroVersion(), @@ -136,6 +138,36 @@ private static VersionInfo jdkVersionInfo(String version) throws Exception { return vi; } + private static VersionInfo jvm17VersionInfo(String version) throws Exception { + // According to jdk-version.m4 in jdk17u + // valid format of the version string is: + // [.][.][.[-]+[-] + int major = 0; + int minor = 0; + int build = 0; + + String regex = "^(?[0-9]{1,2})"; // major + regex += "(\\."; // separator + regex += "(?[0-9]{1,3})"; // minor + regex += ")?"; // minor '0' might be stripped + regex += "(\\.[0-9]{1,3})?(\\.[0-9]{1,3})?"; // (not important) update, patch + regex += "(\\-[a-zA-Z0-9]+)?"; // (not important) version_pre + regex += "\\+(?[0-9]{1,3})"; // build + regex += "(\\-[a-zA-Z0-9\\.\\-]+)?$"; // (not important) version_opt + + Pattern p = Pattern.compile(regex); + Matcher m = p.matcher(version); + m.matches(); + + major = Integer.parseInt(m.group("major")); + minor = m.group("minor") == null ? 0 : Integer.parseInt(m.group("minor")); + build = Integer.parseInt(m.group("build")); + + VersionInfo vi = new VersionInfo(major, minor, 0, 0, "", build); + System.out.printf("jvmVersionInfo: input=%s output=%s\n", version, vi); + return vi; + } + private static VersionInfo jvmVersionInfo(String version) throws Exception { try { // valid format of the version string is: diff --git a/langtools/test/tools/javac/6508981/TestInferBinaryName.java b/langtools/test/tools/javac/6508981/TestInferBinaryName.java index e94ba29b4dc..bdac000159e 100644 --- a/langtools/test/tools/javac/6508981/TestInferBinaryName.java +++ b/langtools/test/tools/javac/6508981/TestInferBinaryName.java @@ -77,7 +77,8 @@ void testDirectory() throws IOException { } void testSymbolArchive() throws IOException { - String testClassName = "java.lang.String"; + String testClassName = "8".equals(System.getProperty("java.vm.specification.version")) ? + "java.lang.String" : "java.lang.StringBuilder"; JavaFileManager fm = getFileManager("sun.boot.class.path", USE_SYMBOL_FILE, DONT_USE_ZIP_FILE_INDEX); test("testSymbolArchive", diff --git a/langtools/test/tools/javac/annotations/8218152/MalformedAnnotationProcessorTests.java b/langtools/test/tools/javac/annotations/8218152/MalformedAnnotationProcessorTests.java index 19b8c60c516..24a3541aff3 100644 --- a/langtools/test/tools/javac/annotations/8218152/MalformedAnnotationProcessorTests.java +++ b/langtools/test/tools/javac/annotations/8218152/MalformedAnnotationProcessorTests.java @@ -133,6 +133,10 @@ public void testWrongClassFileVersion(Path base) throws Exception { .setErrOutput(actualErrors); ToolBox.javac(args); + // cvm supports a higher bytecode version, so the test would not fail. Keep + // the higher version support and skip the test. + if (!System.getProperty("java.vm.specification.version").equals("8")) + return; if (!actualErrors.get(0).contains("- compiler.err.proc.cant.load.class: " + "WrongClassFileVersion has been compiled by a more recent version")) { throw new AssertionError("Unexpected errors reported: " + actualErrors); diff --git a/test/jtreg-ext/requires/VMProps.java b/test/jtreg-ext/requires/VMProps.java index 1d7652be08b..ba88618da2d 100644 --- a/test/jtreg-ext/requires/VMProps.java +++ b/test/jtreg-ext/requires/VMProps.java @@ -69,7 +69,7 @@ protected String vmFlavor() { Pattern startP = Pattern.compile(".* (\\S+) VM"); Matcher m = startP.matcher(vmName); - if (m.matches()) { + if (m.find()) { return m.group(1).toLowerCase(); } return null; From 83e0b1d7c094a0f5ad454acdb650570f352d06d2 Mon Sep 17 00:00:00 2001 From: Lu Chuansheng Date: Fri, 22 May 2026 11:45:42 +0800 Subject: [PATCH 2/3] added .github --- .github/actions/config/action.yml | 46 ++++ .github/actions/do-build/action.yml | 80 +++++++ .github/actions/get-bootjdk/action.yml | 109 ++++++++++ .github/actions/get-bundles/action.yml | 109 ++++++++++ .github/actions/get-gtest/action.yml | 54 +++++ .github/actions/get-jtreg/action.yml | 72 +++++++ .github/actions/get-msys2/action.yml | 44 ++++ .github/actions/upload-bundles/action.yml | 77 +++++++ .github/scripts/gen-build-failure-report.sh | 51 +++++ .github/scripts/gen-test-results.sh | 92 ++++++++ .github/scripts/gen-test-summary.sh | 70 ++++++ .github/workflows/build-cross-compile.yml | 154 ++++++++++++++ .github/workflows/build-linux.yml | 134 ++++++++++++ .github/workflows/build-macos.yml | 114 ++++++++++ .github/workflows/build-windows.yml | 145 +++++++++++++ .github/workflows/gtest-linux.yml | 125 +++++++++++ .github/workflows/main.yml | 224 ++++++++++++++++++++ .github/workflows/test-cvm8+17.yml | 120 +++++++++++ .github/workflows/test.yml | 205 ++++++++++++++++++ 19 files changed, 2025 insertions(+) create mode 100644 .github/actions/config/action.yml create mode 100644 .github/actions/do-build/action.yml create mode 100644 .github/actions/get-bootjdk/action.yml create mode 100644 .github/actions/get-bundles/action.yml create mode 100644 .github/actions/get-gtest/action.yml create mode 100644 .github/actions/get-jtreg/action.yml create mode 100644 .github/actions/get-msys2/action.yml create mode 100644 .github/actions/upload-bundles/action.yml create mode 100644 .github/scripts/gen-build-failure-report.sh create mode 100644 .github/scripts/gen-test-results.sh create mode 100644 .github/scripts/gen-test-summary.sh create mode 100644 .github/workflows/build-cross-compile.yml create mode 100644 .github/workflows/build-linux.yml create mode 100644 .github/workflows/build-macos.yml create mode 100644 .github/workflows/build-windows.yml create mode 100644 .github/workflows/gtest-linux.yml create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/test-cvm8+17.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/actions/config/action.yml b/.github/actions/config/action.yml new file mode 100644 index 00000000000..5f648ffc022 --- /dev/null +++ b/.github/actions/config/action.yml @@ -0,0 +1,46 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Config' +description: 'Read JDK Configuration Variables' +inputs: + var: + description: 'The name of the variable to read' + required: true +outputs: + value: + description: 'The value of the configuration variable' + value: ${{ steps.read-config.outputs.value }} + +runs: + using: composite + steps: + - name: 'Read configuration variable from repo' + id: read-config + run: | + # Extract value from configuration file + value="$(grep -h ${{ inputs.var }}= make/conf/github-actions.conf | cut -d '=' -f 2-)" + echo "value=$value" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/do-build/action.yml b/.github/actions/do-build/action.yml new file mode 100644 index 00000000000..3deb7f4b8f8 --- /dev/null +++ b/.github/actions/do-build/action.yml @@ -0,0 +1,80 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Do build' +description: 'Build the JDK using make' +inputs: + make-target: + description: 'Make target(s)' + required: true + platform: + description: 'Platform name' + required: true + debug-suffix: + description: 'File name suffix denoting debug level, possibly empty' + required: false + +runs: + using: composite + steps: + - name: 'Build' + id: build + run: > + make LOG=info ${{ inputs.make-target }} + || bash ./.github/scripts/gen-build-failure-report.sh "$GITHUB_STEP_SUMMARY" + shell: bash + + - name: 'Check for failure' + id: check + run: | + # Check for failure marker file + build_dir="$(ls -d build/*)" + if [[ -e $build_dir/build-failure ]]; then + # Collect relevant log files + mkdir failure-logs + cp \ + $build_dir/spec.gmk \ + $build_dir/build.log \ + $build_dir/configure.log \ + $build_dir/make-support/failure-summary.log \ + $build_dir/make-support/failure-logs/* \ + failure-logs/ 2> /dev/null || true + echo 'failure=true' >> $GITHUB_OUTPUT + fi + shell: bash + + - name: 'Upload build logs' + uses: actions/upload-artifact@v3 + with: + name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }} + path: failure-logs + if: steps.check.outputs.failure == 'true' + + # This is the best way I found to abort the job with an error message + - name: 'Notify about build failures' + uses: actions/github-script@v6 + with: + script: core.setFailed('Build failed. See summary for details.') + if: steps.check.outputs.failure == 'true' diff --git a/.github/actions/get-bootjdk/action.yml b/.github/actions/get-bootjdk/action.yml new file mode 100644 index 00000000000..19c3a0128f4 --- /dev/null +++ b/.github/actions/get-bootjdk/action.yml @@ -0,0 +1,109 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Get BootJDK' +description: 'Download the BootJDK from cache or source location' +inputs: + platform: + description: 'Platform' + required: true +outputs: + path: + description: 'Path to the installed BootJDK' + value: ${{ steps.path-name.outputs.path }} + +runs: + using: composite + steps: + - name: 'Determine platform prefix' + id: platform-prefix + run: | + # Convert platform name to upper case + platform_prefix="$(echo ${{ inputs.platform }} | tr [a-z-] [A-Z_])" + echo "value=$platform_prefix" >> $GITHUB_OUTPUT + shell: bash + + - name: 'Get URL configuration' + id: url + uses: ./.github/actions/config + with: + var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_URL + + - name: 'Get SHA256 configuration' + id: sha256 + uses: ./.github/actions/config + with: + var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_SHA256 + + - name: 'Get file extension configuration' + id: ext + uses: ./.github/actions/config + with: + var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_EXT + + - name: 'Check cache for BootJDK' + id: get-cached-bootjdk + uses: actions/cache@v3 + with: + path: bootjdk/jdk + key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }} + + # macOS is missing sha256sum + - name: 'Install sha256sum' + run: | + # Run Homebrew installation + brew install coreutils + shell: bash + if: steps.get-cached-bootjdk.outputs.cache-hit != 'true' && runner.os == 'macOS' + + - name: 'Download BootJDK' + run: | + # Download BootJDK and verify checksum + mkdir -p bootjdk/jdk + mkdir -p bootjdk/unpacked + wget --progress=dot:mega -O bootjdk/jdk.${{ steps.ext.outputs.value }} '${{ steps.url.outputs.value }}' + echo '${{ steps.sha256.outputs.value }} bootjdk/jdk.${{ steps.ext.outputs.value }}' | sha256sum -c >/dev/null - + shell: bash + if: steps.get-cached-bootjdk.outputs.cache-hit != 'true' + + - name: 'Unpack BootJDK' + run: | + # Unpack the BootJDK and move files to a common location + if [[ '${{ steps.ext.outputs.value }}' == 'tar.gz' ]]; then + tar -xf bootjdk/jdk.${{ steps.ext.outputs.value }} -C bootjdk/unpacked + else + unzip -q bootjdk/jdk.${{ steps.ext.outputs.value }} -d bootjdk/unpacked + fi + jdk_root="$(dirname $(find bootjdk/unpacked -name bin -type d))" + mv "$jdk_root"/* bootjdk/jdk/ + shell: bash + if: steps.get-cached-bootjdk.outputs.cache-hit != 'true' + + - name: 'Export path to where BootJDK is installed' + id: path-name + run: | + # Export the path + echo 'path=bootjdk/jdk' >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/get-bundles/action.yml b/.github/actions/get-bundles/action.yml new file mode 100644 index 00000000000..956e1520cfb --- /dev/null +++ b/.github/actions/get-bundles/action.yml @@ -0,0 +1,109 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Get bundles' +description: 'Download resulting JDK bundles' +inputs: + platform: + description: 'Platform name' + required: true + debug-suffix: + description: 'File name suffix denoting debug level, possibly empty' + required: false +outputs: + jdk-path: + description: 'Path to the installed JDK bundle' + value: ${{ steps.path-name.outputs.jdk }} + symbols-path: + description: 'Path to the installed symbols bundle' + value: ${{ steps.path-name.outputs.symbols }} + tests-path: + description: 'Path to the installed tests bundle' + value: ${{ steps.path-name.outputs.tests }} + +runs: + using: composite + steps: + - name: 'Download bundles artifact' + id: download-bundles + uses: actions/download-artifact@v3 + with: + name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }} + path: bundles + continue-on-error: true + + - name: 'Download bundles artifact (retry)' + uses: actions/download-artifact@v3 + with: + name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }} + path: bundles + if: steps.download-bundles.outcome == 'failure' + + - name: 'Unpack bundles' + run: | + if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip ]]; then + echo 'Unpacking jdk bundle...' + mkdir -p bundles/jdk + unzip -q bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip -d bundles/jdk + fi + + if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then + echo 'Unpacking jdk bundle...' + mkdir -p bundles/jdk + tar -xf bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/jdk + fi + + if [[ -e bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then + echo 'Unpacking symbols bundle...' + mkdir -p bundles/symbols + tar -xf bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/symbols + fi + + if [[ -e bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then + echo 'Unpacking tests bundle...' + mkdir -p bundles/tests + tar -xf bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/tests + fi + shell: bash + + - name: 'Export paths to where bundles are installed' + id: path-name + run: | + # Export the paths + + jdk_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/jdk -name bin -type d))" + symbols_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/symbols -name bin -type d))" + tests_dir="$GITHUB_WORKSPACE/bundles/tests" + + if [[ '${{ runner.os }}' == 'Windows' ]]; then + jdk_dir="$(cygpath $jdk_dir)" + symbols_dir="$(cygpath $symbols_dir)" + tests_dir="$(cygpath $tests_dir)" + fi + + echo "jdk=$jdk_dir" >> $GITHUB_OUTPUT + echo "symbols=$symbols_dir" >> $GITHUB_OUTPUT + echo "tests=$tests_dir" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/get-gtest/action.yml b/.github/actions/get-gtest/action.yml new file mode 100644 index 00000000000..1df1052285d --- /dev/null +++ b/.github/actions/get-gtest/action.yml @@ -0,0 +1,54 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Get GTest' +description: 'Download GTest source' +outputs: + path: + description: 'Path to the installed GTest' + value: ${{ steps.path-name.outputs.path }} + +runs: + using: composite + steps: + - name: 'Get GTest version configuration' + id: version + uses: ./.github/actions/config + with: + var: GTEST_VERSION + + - name: 'Checkout GTest source' + uses: actions/checkout@v4 + with: + repository: google/googletest + ref: 'release-${{ steps.version.outputs.value }}' + path: gtest + + - name: 'Export path to where GTest is installed' + id: path-name + run: | + # Export the path + echo 'path=gtest' >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/get-jtreg/action.yml b/.github/actions/get-jtreg/action.yml new file mode 100644 index 00000000000..7c49b1054ec --- /dev/null +++ b/.github/actions/get-jtreg/action.yml @@ -0,0 +1,72 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Get JTReg' +description: 'Download JTReg from cache or source location' +outputs: + path: + description: 'Path to the installed JTReg' + value: ${{ steps.path-name.outputs.path }} + +runs: + using: composite + steps: + - name: 'Get JTReg version configuration' + id: version + uses: ./.github/actions/config + with: + var: JTREG_VERSION + + - name: 'Check cache for JTReg' + id: get-cached-jtreg + uses: actions/cache@v3 + with: + path: jtreg/installed + key: jtreg-${{ steps.version.outputs.value }} + + - name: 'Checkout the JTReg source' + uses: actions/checkout@v3 + with: + repository: openjdk/jtreg + ref: jtreg-${{ steps.version.outputs.value }} + path: jtreg/src + if: steps.get-cached-jtreg.outputs.cache-hit != 'true' + + - name: 'Build JTReg' + run: | + # Build JTReg and move files to the proper locations + bash make/build.sh --jdk "$JAVA_HOME_11_X64" + mkdir ../installed + mv build/images/jtreg/* ../installed + working-directory: jtreg/src + shell: bash + if: steps.get-cached-jtreg.outputs.cache-hit != 'true' + + - name: 'Export path to where JTReg is installed' + id: path-name + run: | + # Export the path + echo 'path=jtreg/installed' >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/get-msys2/action.yml b/.github/actions/get-msys2/action.yml new file mode 100644 index 00000000000..3e6c3417a31 --- /dev/null +++ b/.github/actions/get-msys2/action.yml @@ -0,0 +1,44 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Get MSYS2' +description: 'Download MSYS2 and prepare a Windows host' + +runs: + using: composite + steps: + - name: 'Install MSYS2' + uses: msys2/setup-msys2@v2 + with: + install: 'autoconf tar unzip zip make' + path-type: minimal + location: msys2 + + # We can't run bash until this is completed, so stick with pwsh + - name: 'Set MSYS2 path' + run: | + # Prepend msys2/msys64/usr/bin to the PATH + echo "$env:GITHUB_WORKSPACE/msys2/msys64/usr/bin" >> $env:GITHUB_PATH + shell: pwsh diff --git a/.github/actions/upload-bundles/action.yml b/.github/actions/upload-bundles/action.yml new file mode 100644 index 00000000000..88f7f6e8107 --- /dev/null +++ b/.github/actions/upload-bundles/action.yml @@ -0,0 +1,77 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Upload bundles' +description: 'Upload resulting JDK bundles' +inputs: + platform: + description: 'Platform name' + required: true + debug-suffix: + description: 'File name suffix denoting debug level, possibly empty' + required: false + +runs: + using: composite + steps: + + - name: 'Determine bundle names' + id: bundles + run: | + # Rename bundles to consistent names + jdk_bundle_zip="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)" + jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)" + symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)" + tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)" + + mkdir bundles + + if [[ "$jdk_bundle_zip" != "" ]]; then + mv "$jdk_bundle_zip" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip" + fi + if [[ "$jdk_bundle_tar_gz" != "" ]]; then + mv "$jdk_bundle_tar_gz" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz" + fi + if [[ "$symbols_bundle" != "" ]]; then + mv "$symbols_bundle" "bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz" + fi + if [[ "$tests_bundle" != "" ]]; then + mv "$tests_bundle" "bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz" + fi + + if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle" != "" ]]; then + echo 'bundles-found=true' >> $GITHUB_OUTPUT + else + echo 'bundles-found=false' >> $GITHUB_OUTPUT + fi + shell: bash + + - name: 'Upload bundles artifact' + uses: actions/upload-artifact@v3 + with: + name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }} + path: bundles + retention-days: 1 + if: steps.bundles.outputs.bundles-found == 'true' diff --git a/.github/scripts/gen-build-failure-report.sh b/.github/scripts/gen-build-failure-report.sh new file mode 100644 index 00000000000..fd3215fc7fe --- /dev/null +++ b/.github/scripts/gen-build-failure-report.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +GITHUB_STEP_SUMMARY="$1" +BUILD_DIR="$(ls -d build/*)" + +# Send signal to the do-build action that we failed +touch "$BUILD_DIR/build-failure" + +( + echo '### :boom: Build failure summary' + echo '' + echo 'The build failed. Here follows the failure summary from the build.' + echo '
View build failure summary' + echo '' + echo '```' + if [[ -f "$BUILD_DIR/make-support/failure-summary.log" ]]; then + cat "$BUILD_DIR/make-support/failure-summary.log" + else + echo "Failure summary ($BUILD_DIR/make-support/failure-summary.log) not found" + fi + echo '```' + echo '
' + echo '' + + echo '' + echo ':arrow_right: To see the entire test log, click the job in the list to the left. To download logs, see the `failure-logs` [artifact above](#artifacts).' +) >> $GITHUB_STEP_SUMMARY diff --git a/.github/scripts/gen-test-results.sh b/.github/scripts/gen-test-results.sh new file mode 100644 index 00000000000..73edb8b3d11 --- /dev/null +++ b/.github/scripts/gen-test-results.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +GITHUB_STEP_SUMMARY="$1" + +test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt) +results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text +report_dir=build/run-test-prebuilt/test-support/$test_suite_name + +failures=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/newfailures.txt 2> /dev/null || true) +errors=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/other_errors.txt 2> /dev/null || true) + +if [[ "$failures" = "" && "$errors" = "" ]]; then + # If we have nothing to report, exit this step now + exit 0 +fi + +echo "### Test output for failed tests" >> $GITHUB_STEP_SUMMARY +for test in $failures $errors; do + anchor="$(echo "$test" | tr [A-Z/] [a-z_])" + base_path="$(echo "$test" | tr '#' '_')" + report_file="$report_dir/$base_path.jtr" + hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true) + echo "#### $test" + + echo '
View test results' + echo '' + echo '```' + if [[ -f "$report_file" ]]; then + cat "$report_file" + else + echo "Error: Result file $report_file not found" + fi + echo '```' + echo '
' + echo '' + + if [[ "$hs_err_files" != "" ]]; then + echo '
View HotSpot error log' + echo '' + for hs_err in $hs_err_files; do + echo '```' + echo "$hs_err:" + echo '' + cat "$hs_err" + echo '```' + done + + echo '
' + echo '' + fi + +done >> $GITHUB_STEP_SUMMARY + +# With many failures, the summary can easily exceed 1024 kB, the limit set by Github +# Trim it down if so. +summary_size=$(wc -c < $GITHUB_STEP_SUMMARY) +if [[ $summary_size -gt 1000000 ]]; then + # Trim to below 1024 kB, and cut off after the last detail group + head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp + mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY + ( + echo '' + echo ':x: **WARNING: Summary is too large and has been truncated.**' + echo '' + ) >> $GITHUB_STEP_SUMMARY +fi + +echo ':arrow_right: To see the entire test log, click the job in the list to the left.' >> $GITHUB_STEP_SUMMARY diff --git a/.github/scripts/gen-test-summary.sh b/.github/scripts/gen-test-summary.sh new file mode 100644 index 00000000000..d016cb38649 --- /dev/null +++ b/.github/scripts/gen-test-summary.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +GITHUB_STEP_SUMMARY="$1" +GITHUB_OUTPUT="$2" + +test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt) +results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text + +if [[ ! -f build/run-test-prebuilt/make-support/exit-with-error ]]; then + # There were no failures, exit now + exit +fi + +failures=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/newfailures.txt 2> /dev/null || true) +errors=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/other_errors.txt 2> /dev/null || true) +failure_count=$(echo $failures | wc -w || true) +error_count=$(echo $errors | wc -w || true) + +if [[ "$failures" = "" && "$errors" = "" ]]; then + # We know something went wrong, but not what + echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT + exit 0 +fi + +echo 'failure=true' >> $GITHUB_OUTPUT +echo "error-message=Test run reported $failure_count test failure(s) and $error_count error(s). See summary for details." >> $GITHUB_OUTPUT + +echo '### :boom: Test failures summary' >> $GITHUB_STEP_SUMMARY + +if [[ "$failures" != "" ]]; then + echo '' >> $GITHUB_STEP_SUMMARY + echo 'These tests reported failure:' >> $GITHUB_STEP_SUMMARY + for test in $failures; do + anchor="$(echo "$test" | tr [A-Z/] [a-z_])" + echo "* [$test](#user-content-$anchor)" + done >> $GITHUB_STEP_SUMMARY +fi + +if [[ "$errors" != "" ]]; then + echo '' >> $GITHUB_STEP_SUMMARY + echo 'These tests reported errors:' >> $GITHUB_STEP_SUMMARY + for test in $errors; do + anchor="$(echo "$test" | tr [A-Z/] [a-z_])" + echo "* [$test](#user-content-$anchor)" + done >> $GITHUB_STEP_SUMMARY +fi diff --git a/.github/workflows/build-cross-compile.yml b/.github/workflows/build-cross-compile.yml new file mode 100644 index 00000000000..168c5924d86 --- /dev/null +++ b/.github/workflows/build-cross-compile.yml @@ -0,0 +1,154 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Build (cross-compile)' + +on: + workflow_call: + inputs: + gcc-major-version: + required: false + type: string + default: '10' + apt-gcc-version: + required: false + type: string + default: '10.3.0-1ubuntu1~20.04' + apt-gcc-cross-suffix: + required: false + type: string + default: 'cross1' + +jobs: + build-cross-compile: + name: build + runs-on: ubuntu-20.04 + + strategy: + fail-fast: false + matrix: + target-cpu: + - aarch64 + - arm + - s390x + - ppc64le + include: + - target-cpu: aarch64 + debian-arch: arm64 + gnu-arch: aarch64 + - target-cpu: arm + debian-arch: armhf + gnu-arch: arm + gnu-abi: eabihf + - target-cpu: s390x + debian-arch: s390x + gnu-arch: s390x + - target-cpu: ppc64le + debian-arch: ppc64el + gnu-arch: powerpc64le + + steps: + - name: 'Checkout the JDK source' + uses: actions/checkout@v3 + + - name: 'Get the BootJDK' + id: bootjdk + uses: ./.github/actions/get-bootjdk + with: + platform: linux-x64 + + # Use linux-x64 JDK bundle as build JDK + - name: 'Get build JDK' + id: buildjdk + uses: ./.github/actions/get-bundles + with: + platform: linux-x64 + + # Upgrading apt to solve libc6 installation bugs, see JDK-8260460. + - name: 'Install toolchain and dependencies' + run: | + # Install dependencies using apt-get + sudo apt-get update + sudo apt-get install --only-upgrade apt + sudo apt-get install \ + gcc-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \ + g++-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \ + gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-version }}${{ inputs.apt-gcc-cross-suffix }} \ + g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-version }}${{ inputs.apt-gcc-cross-suffix }} \ + libxrandr-dev libxtst-dev libcups2-dev libasound2-dev + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }} + + - name: 'Check cache for sysroot' + id: get-cached-sysroot + uses: actions/cache@v3 + with: + path: sysroot + key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }} + + - name: 'Install sysroot dependencies' + run: sudo apt-get install debootstrap qemu-user-static + if: steps.get-cached-sysroot.outputs.cache-hit != 'true' + + - name: 'Create sysroot' + run: > + sudo qemu-debootstrap + --arch=${{ matrix.debian-arch }} + --verbose + --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev + --resolve-deps + buster + sysroot + https://httpredir.debian.org/debian/ + if: steps.get-cached-sysroot.outputs.cache-hit != 'true' + + - name: 'Prepare sysroot' + run: | + # Prepare sysroot and remove unused files to minimize cache + sudo chroot sysroot symlinks -cr . + sudo chown ${USER} -R sysroot + rm -rf sysroot/{dev,proc,run,sys} + if: steps.get-cached-sysroot.outputs.cache-hit != 'true' + + - name: 'Configure' + run: > + bash configure + --with-conf-name=linux-${{ matrix.target-cpu }} + --with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA} + --with-boot-jdk=${{ steps.bootjdk.outputs.path }} + --with-zlib=system + --enable-debug + --disable-precompiled-headers + --openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} + --with-sysroot=sysroot + --with-build-jdk=${{ steps.buildjdk.outputs.jdk-path }} + CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-10 + CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-10 + + - name: 'Build' + id: build + uses: ./.github/actions/do-build + with: + make-target: 'hotspot' + platform: linux-${{ matrix.target-cpu }} diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml new file mode 100644 index 00000000000..863005dca0d --- /dev/null +++ b/.github/workflows/build-linux.yml @@ -0,0 +1,134 @@ +# This project is a modified version of OpenJDK, licensed under GPL v2. +# Modifications Copyright (C) 2025 ByteDance Inc. +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Build (linux)' + +on: + workflow_call: + inputs: + platform: + required: true + type: string + runs-on: + required: true + type: string + make-target: + required: false + type: string + default: 'cvm8default17' + debug-levels: + required: false + type: string + default: '[ "fastdebug", "release" ]' + apt-gcc-version: + required: true + type: string + apt-architecture: + required: false + type: string + apt-extra-packages: + required: false + type: string + +jobs: + build-linux: + name: build + runs-on: ${{ inputs.runs-on }} + + strategy: + fail-fast: false + matrix: + debug-level: ${{ fromJSON(inputs.debug-levels) }} + + steps: + - name: 'Checkout the jdk8u source' + uses: actions/checkout@v3 + with: + path: cvm/jdk8u + + - name: 'Checkout the jdk17u-target8 source' + uses: actions/checkout@v3 + with: + ref: dev/v2/jdk17u-target8 + path: . + + - name: 'Determine version' + id: version + run: echo "::set-output name=version::$(cat ./cvm/conf/version)" + + - name: 'Set architecture' + id: arch + run: | + # Set a proper suffix for packages if using a different architecture + if [[ '${{ inputs.apt-architecture }}' != '' ]]; then + echo 'suffix=:${{ inputs.apt-architecture }}' >> $GITHUB_OUTPUT + fi + + # Upgrading apt to solve libc6 installation bugs, see JDK-8260460. + - name: 'Install toolchain and dependencies' + run: | + # Install dependencies using apt-get + if [[ '${{ inputs.apt-architecture }}' != '' ]]; then + sudo dpkg --add-architecture ${{ inputs.apt-architecture }} + fi + sudo apt-get update + sudo apt-get install --only-upgrade apt + sudo apt-get install gcc-${{ inputs.apt-gcc-version }} g++-${{ inputs.apt-gcc-version }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }} + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.apt-gcc-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.apt-gcc-version }} + + - name: 'Build' + run: | + make -f cvm.mk ${{ inputs.make-target }} MODE=${{ matrix.debug-level}} + if [[ '${{ matrix.debug-level }}' == 'release' ]]; then + make -f cvm.mk jvm-patch MODE=release SKIP_BUILD=true + fi + shell: bash + + - name: 'Pack bundles' + run: | + tar czf CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz -C output CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }} + tar czf CompoundVM_${{ steps.version.outputs.version }}_jvm_patch_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz -C output/CompoundVM_${{ steps.version.outputs.version }}_jvm_patch_${{ inputs.platform }} . + shell: bash + + - name: 'Upload bundles' + uses: actions/upload-artifact@v4 + with: + name: CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz + path: CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz + retention-days: 1 + if-no-files-found: error + overwrite: true + + - name: 'Upload bundles jvm patch' + uses: actions/upload-artifact@v4 + if: matrix.debug-level == 'release' + with: + name: CompoundVM_${{ steps.version.outputs.version }}_jvm_patch_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz + path: CompoundVM_${{ steps.version.outputs.version }}_jvm_patch_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz + retention-days: 1 + if-no-files-found: error + overwrite: true diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml new file mode 100644 index 00000000000..a19dcc3140d --- /dev/null +++ b/.github/workflows/build-macos.yml @@ -0,0 +1,114 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Build (macos)' + +on: + workflow_call: + inputs: + platform: + required: true + type: string + extra-conf-options: + required: false + type: string + make-target: + required: false + type: string + default: 'product-bundles test-bundles' + debug-levels: + required: false + type: string + default: '[ "debug", "release" ]' + xcode-toolset-version: + required: true + type: string + +jobs: + build-macos: + name: build + runs-on: macos-11 + + strategy: + fail-fast: false + matrix: + debug-level: ${{ fromJSON(inputs.debug-levels) }} + include: + - debug-level: debug + flags: --with-debug-level=fastdebug + suffix: -debug + + steps: + - name: 'Checkout the JDK source' + uses: actions/checkout@v3 + + - name: 'Get the BootJDK' + id: bootjdk + uses: ./.github/actions/get-bootjdk + with: + platform: macos-x64 + + - name: 'Get JTReg' + id: jtreg + uses: ./.github/actions/get-jtreg + + - name: 'Get GTest' + id: gtest + uses: ./.github/actions/get-gtest + + - name: 'Install toolchain and dependencies' + run: | + # Run Homebrew installation and xcode-select + brew install make + sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer + # This will make GNU make available as 'make' and not only as 'gmake' + echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH + + - name: 'Configure' + run: > + bash configure + --with-conf-name=${{ inputs.platform }} + ${{ matrix.flags }} + --with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA} + --with-boot-jdk=${{ steps.bootjdk.outputs.path }} + --with-jtreg=${{ steps.jtreg.outputs.path }} + --with-gtest=${{ steps.gtest.outputs.path }} + --enable-jtreg-failure-handler + --with-zlib=system + ${{ inputs.extra-conf-options }} + + - name: 'Build' + id: build + uses: ./.github/actions/do-build + with: + make-target: '${{ inputs.make-target }}' + platform: ${{ inputs.platform }} + debug-suffix: '${{ matrix.suffix }}' + + - name: 'Upload bundles' + uses: ./.github/actions/upload-bundles + with: + platform: ${{ inputs.platform }} + debug-suffix: '${{ matrix.suffix }}' diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml new file mode 100644 index 00000000000..d8ff9671259 --- /dev/null +++ b/.github/workflows/build-windows.yml @@ -0,0 +1,145 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Build (windows)' + +on: + workflow_call: + inputs: + platform: + required: true + type: string + extra-conf-options: + required: false + type: string + make-target: + required: false + type: string + default: 'product-bundles test-bundles' + debug-levels: + required: false + type: string + default: '[ "debug", "release" ]' + msvc-toolset-version: + required: true + type: string + msvc-toolset-architecture: + required: true + type: string + +env: + # These are needed to make the MSYS2 bash work properly + MSYS2_PATH_TYPE: minimal + CHERE_INVOKING: 1 + +jobs: + build-windows: + name: build + runs-on: windows-2019 + defaults: + run: + shell: bash + + strategy: + fail-fast: false + matrix: + debug-level: ${{ fromJSON(inputs.debug-levels) }} + include: + - debug-level: debug + flags: --with-debug-level=fastdebug + suffix: -debug + + steps: + - name: 'Checkout the JDK source' + uses: actions/checkout@v3 + + - name: 'Get MSYS2' + uses: ./.github/actions/get-msys2 + + - name: 'Get the BootJDK' + id: bootjdk + uses: ./.github/actions/get-bootjdk + with: + platform: windows-x64 + + - name: 'Get JTReg' + id: jtreg + uses: ./.github/actions/get-jtreg + + - name: 'Get GTest' + id: gtest + uses: ./.github/actions/get-gtest + + - name: 'Check toolchain installed' + id: toolchain-check + run: | + set +e + '/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }} + if [ $? -eq 0 ]; then + echo "Toolchain is already installed" + echo "toolchain-installed=true" >> $GITHUB_OUTPUT + else + echo "Toolchain is not yet installed" + echo "toolchain-installed=false" >> $GITHUB_OUTPUT + fi + + - name: 'Install toolchain and dependencies' + run: | + # Run Visual Studio Installer + '/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \ + modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \ + --add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }} + if: steps.toolchain-check.outputs.toolchain-installed != 'true' + + - name: 'Configure' + run: > + bash configure + --with-conf-name=${{ inputs.platform }} + ${{ matrix.flags }} + --with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA} + --with-boot-jdk=${{ steps.bootjdk.outputs.path }} + --with-jtreg=${{ steps.jtreg.outputs.path }} + --with-gtest=${{ steps.gtest.outputs.path }} + --enable-jtreg-failure-handler + --with-msvc-toolset-version=${{ inputs.msvc-toolset-version }} + ${{ inputs.extra-conf-options }} + env: + # We need a minimal PATH on Windows + # Set PATH to "", so just GITHUB_PATH is included + PATH: '' + + - name: 'Build' + id: build + uses: ./.github/actions/do-build + with: + make-target: '${{ inputs.make-target }}' + platform: ${{ inputs.platform }} + debug-suffix: '${{ matrix.suffix }}' + + - name: 'Upload bundles' + uses: ./.github/actions/upload-bundles + with: + platform: ${{ inputs.platform }} + debug-suffix: '${{ matrix.suffix }}' diff --git a/.github/workflows/gtest-linux.yml b/.github/workflows/gtest-linux.yml new file mode 100644 index 00000000000..98da03c2c98 --- /dev/null +++ b/.github/workflows/gtest-linux.yml @@ -0,0 +1,125 @@ +# This project is a modified version of OpenJDK, licensed under GPL v2. +# Modifications Copyright (C) 2025 ByteDance Inc. +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'GTest (linux)' + +permissions: + contents: read + pull-requests: write + +on: + workflow_call: + inputs: + platform: + required: true + type: string + runs-on: + required: true + type: string + debug-levels: + required: false + type: string + default: '[ "fastdebug", "release" ]' + apt-gcc-version: + required: true + type: string + apt-architecture: + required: false + type: string + apt-extra-packages: + required: false + type: string + +jobs: + gtest-linux: + name: gtest + runs-on: ${{ inputs.runs-on }} + + strategy: + fail-fast: false + matrix: + debug-level: ${{ fromJSON(inputs.debug-levels) }} + + steps: + - name: 'Checkout the jdk8u source' + uses: actions/checkout@v3 + with: + path: cvm/jdk8u + + - name: 'Checkout the jdk17u-target8 source' + uses: actions/checkout@v3 + with: + ref: dev/v2/jdk17u-target8 + path: . + + + - name: 'Determine version' + id: version + run: echo "::set-output name=version::$(cat ./cvm/conf/version)" + + - name: 'Set architecture' + id: arch + run: | + # Set a proper suffix for packages if using a different architecture + if [[ '${{ inputs.apt-architecture }}' != '' ]]; then + echo 'suffix=:${{ inputs.apt-architecture }}' >> $GITHUB_OUTPUT + fi + + # Upgrading apt to solve libc6 installation bugs, see JDK-8260460. + - name: 'Install toolchain and dependencies' + run: | + # Install dependencies using apt-get + if [[ '${{ inputs.apt-architecture }}' != '' ]]; then + sudo dpkg --add-architecture ${{ inputs.apt-architecture }} + fi + sudo apt-get update + sudo apt-get install --only-upgrade apt + sudo apt-get install gcc-${{ inputs.apt-gcc-version }} g++-${{ inputs.apt-gcc-version }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }} + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.apt-gcc-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.apt-gcc-version }} + + - name: 'Build' + run: | + make -f cvm.mk build_gtest_hotspot17 MODE=${{ matrix.debug-level}} SKIP_BUILD=true + shell: bash + + - name: 'Get bundles' + uses: actions/download-artifact@v4 + with: + name: CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz + path: . + + - name: 'Unpack bundles' + run: | + rm -rf gtest-jdk + mkdir gtest-jdk + tar xzvf CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ matrix.debug-level }}.tar.gz -C gtest-jdk --strip-components=1 + shell: bash + + - name: 'Run gtests' + run: | + make -f cvm.mk test_gtest_hotspot17 MODE=${{ matrix.debug-level}} SKIP_BUILD=true HOTSPOT_GTEST_JDKDIR=${PWD}/gtest-jdk + shell: bash diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000000..53ce93027db --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,224 @@ +# This project is a modified version of OpenJDK, licensed under GPL v2. +# Modifications Copyright (C) 2025 ByteDance Inc. +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'CVM build and test' + +permissions: + contents: read + pull-requests: write + +on: + pull_request: + branches: + - jdk17u-target8 + - jdk25u-target8 + workflow_dispatch: + inputs: + platforms: + description: 'Platform(s) to execute on (comma separated, e.g. "linux-x64, macos, aarch64")' + required: true + default: 'linux-x64, linux-aarch64' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + + ### + ### Determine platforms to include + ### + + select: + name: 'Select platforms' + runs-on: ubuntu-22.04 + outputs: + linux-x64: ${{ steps.include.outputs.linux-x64 }} + linux-aarch64: ${{ steps.include.outputs.linux-aarch64 }} + + steps: + # This function must be inlined in main.yml, or we'd be forced to checkout the repo + - name: 'Check what jobs to run' + id: include + run: | + # Determine which platform jobs to run + + # Returns 'true' if the input platform list matches any of the platform monikers given as argument, + # 'false' otherwise. + # arg $1: platform name or names to look for + function check_platform() { + if [[ '${{ !secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/') }}' == 'false' ]]; then + # If JDK_SUBMIT_FILTER is set, and this is not a "submit/" branch, don't run anything + echo 'false' + return + fi + + if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then + input='${{ github.event.inputs.platforms }}' + elif [[ $GITHUB_EVENT_NAME == pull_request ]]; then + input='${{ secrets.JDK_SUBMIT_PLATFORMS }}' + else + echo 'Internal error in GHA' + exit 1 + fi + + normalized_input="$(echo ,$input, | tr -d ' ')" + if [[ "$normalized_input" == ",," ]]; then + # For an empty input, assume all platforms should run + echo 'true' + return + else + # Check for all acceptable platform names + for part in $* ; do + if echo "$normalized_input" | grep -q -e ",$part," ; then + echo 'true' + return + fi + done + fi + + echo 'false' + } + + echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT + echo "linux-aarch64=$(check_platform linux-aarch64 linux aarch64)" >> $GITHUB_OUTPUT + ### + ### Build jobs + ### + + build-linux-x64: + name: linux-x64 + needs: select + uses: ./.github/workflows/build-linux.yml + with: + platform: linux_x64 + apt-gcc-version: '9' + runs-on: ubuntu-22.04 + # The linux-x64 jdk bundle is used as buildjdk for the cross-compile job + if: needs.select.outputs.linux-x64 == 'true' || needs.select.outputs.linux-cross-compile == 'true' + + build-linux-aarch64: + name: linux-aarch64 + needs: select + uses: ./.github/workflows/build-linux.yml + with: + platform: linux_aarch64 + apt-gcc-version: '9' + runs-on: ubuntu-22.04-arm + # The linux-aarch64 jdk bundle is used as buildjdk for the cross-compile job + if: needs.select.outputs.linux-aarch64 == 'true' || needs.select.outputs.linux-cross-compile == 'true' + + ### + ### GTest jobs + ### + + gtest-linux-x64: + name: linux-x64 + needs: + - build-linux-x64 + uses: ./.github/workflows/gtest-linux.yml + with: + platform: linux_x64 + apt-gcc-version: '9' + runs-on: ubuntu-22.04 + + gtest-linux-aarch64: + name: linux-aarch64 + needs: + - build-linux-aarch64 + uses: ./.github/workflows/gtest-linux.yml + with: + platform: linux_aarch64 + apt-gcc-version: '9' + runs-on: ubuntu-22.04-arm + + ### + ### Test jobs + ### + + test-linux-x64: + name: linux-x64 + needs: + - build-linux-x64 + uses: ./.github/workflows/test-cvm8+17.yml + with: + platform: linux_x64 + arch: x64 + runs-on: ubuntu-22.04 + debug-level: release + + test-linux-aarch64: + name: linux-aarch64 + needs: + - build-linux-aarch64 + uses: ./.github/workflows/test-cvm8+17.yml + with: + platform: linux_aarch64 + arch: aarch64 + runs-on: ubuntu-22.04-arm + debug-level: release + + # Remove bundles so they are not misconstrued as binary distributions from the JDK project + remove-bundles: + name: 'Remove bundle artifacts' + runs-on: ubuntu-22.04 + if: always() + needs: + - build-linux-x64 + - gtest-linux-x64 + - test-linux-x64 + - build-linux-aarch64 + - gtest-linux-aarch64 + - test-linux-aarch64 + + steps: + # Hack to get hold of the api environment variables that are only defined for actions + - name: 'Get API configuration' + id: api + uses: actions/github-script@v6 + with: + script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }' + + - name: 'Remove bundle artifacts' + run: | + # Find and remove all bundle artifacts + ALL_ARTIFACT_IDS="$(curl -sL \ + -H 'Accept: application/vnd.github+json' \ + -H 'Authorization: Bearer ${{ github.token }}' \ + -H 'X-GitHub-Api-Version: 2022-11-28' \ + '${{ github.api_url }}/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts?per_page=100')" + BUNDLE_ARTIFACT_IDS="$(echo "$ALL_ARTIFACT_IDS" | jq -r -c '.artifacts | map(select(.name|startswith("cvm"))) | .[].id')" + for id in $BUNDLE_ARTIFACT_IDS; do + echo "Removing $id" + curl -sL \ + -X DELETE \ + -H 'Accept: application/vnd.github+json' \ + -H 'Authorization: Bearer ${{ github.token }}' \ + -H 'X-GitHub-Api-Version: 2022-11-28' \ + "${{ github.api_url }}/repos/${{ github.repository }}/actions/artifacts/$id" \ + || echo "Failed to remove bundle" + done diff --git a/.github/workflows/test-cvm8+17.yml b/.github/workflows/test-cvm8+17.yml new file mode 100644 index 00000000000..65fd11ca09c --- /dev/null +++ b/.github/workflows/test-cvm8+17.yml @@ -0,0 +1,120 @@ +# This project is a modified version of OpenJDK, licensed under GPL v2. +# Modifications Copyright (C) 2025 ByteDance Inc. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +name: 'Run tests' + +on: + workflow_call: + inputs: + platform: + required: true + type: string + arch: + required: true + type: string + runs-on: + required: true + type: string + debug-level: + required: true + type: string + +env: + # These are needed to make the MSYS2 bash work properly + MSYS2_PATH_TYPE: minimal + CHERE_INVOKING: 1 + +jobs: + test: + name: test + runs-on: ${{ inputs.runs-on }} + defaults: + run: + shell: bash + + strategy: + fail-fast: false + matrix: + test-name: + - 'jdk/tier1' + - 'langtools' + - 'cvm8' + - 'hotspot8' + + include: + - test-name: 'jdk/tier1' + test-suite: 'jdk_tier1' + + - test-name: 'langtools' + test-suite: 'langtools' + + - test-name: 'cvm8' + test-suite: 'cvm8' + + - test-name: 'hotspot8' + test-suite: 'hotspot8' + + steps: + - name: 'Checkout the jdk8u source' + uses: actions/checkout@v3 + with: + path: cvm/jdk8u + + - name: 'Checkout the jdk17u-target8 source' + uses: actions/checkout@v3 + with: + ref: dev/v2/jdk17u-target8 + path: . + + - name: 'Determine version' + id: version + run: echo "::set-output name=version::$(cat ./cvm/conf/version)" + + - name: 'Get bundles' + uses: actions/download-artifact@v4 + with: + name: CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ inputs.debug-level }}.tar.gz + path: . + + - name: 'Unpack bundles' + run: | + rm -rf cvm/build/jdk8 + mkdir -p cvm/build/jdk8 + tar xzvf CompoundVM_${{ steps.version.outputs.version }}_${{ inputs.platform }}_${{ inputs.debug-level }}.tar.gz -C cvm/build/jdk8 --strip-components=1 + shell: bash + + - name: 'Run tests' + id: run-tests + run: | + make -f cvm.mk test_jtreg8_${{ matrix.test-suite }} SKIP_BUILD=true MODE=${{ inputs.debug-level }} + shell: bash + + - name: 'Get bundles jvm patch' + uses: actions/download-artifact@v4 + with: + name: CompoundVM_${{ steps.version.outputs.version }}_jvm_patch_${{ inputs.platform }}_${{ inputs.debug-level }}.tar.gz + path: . + + - name: 'Run sanity test jvm patch' + run: | + wget -nc https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_${{ inputs.arch }}_linux_hotspot_8u372b07.tar.gz + tar xzf OpenJDK8U-jdk_${{ inputs.arch }}_linux_hotspot_8u372b07.tar.gz + tar xzf CompoundVM_${{ steps.version.outputs.version }}_jvm_patch_${{ inputs.platform }}_${{ inputs.debug-level }}.tar.gz -C jdk8u372-b07/ + jdk8u372-b07/bin/java -version 2>&1 | grep "CompoundVM" + shell: bash diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000000..81735dd71e6 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,205 @@ +# +# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Run tests' + +on: + workflow_call: + inputs: + platform: + required: true + type: string + bootjdk-platform: + required: true + type: string + runs-on: + required: true + type: string + +env: + # These are needed to make the MSYS2 bash work properly + MSYS2_PATH_TYPE: minimal + CHERE_INVOKING: 1 + +jobs: + test: + name: test + runs-on: ${{ inputs.runs-on }} + defaults: + run: + shell: bash + + strategy: + fail-fast: false + matrix: + test-name: + - 'jdk/tier1 part 1' + - 'jdk/tier1 part 2' + - 'jdk/tier1 part 3' + - 'langtools/tier1' + - 'hs/tier1 common' + - 'hs/tier1 compiler' + - 'hs/tier1 gc' + - 'hs/tier1 runtime' + - 'hs/tier1 serviceability' + + include: + - test-name: 'jdk/tier1 part 1' + test-suite: 'test/jdk/:tier1_part1' + + - test-name: 'jdk/tier1 part 2' + test-suite: 'test/jdk/:tier1_part2' + + - test-name: 'jdk/tier1 part 3' + test-suite: 'test/jdk/:tier1_part3' + + - test-name: 'langtools/tier1' + test-suite: 'test/langtools/:tier1' + + - test-name: 'hs/tier1 common' + test-suite: 'test/hotspot/jtreg/:tier1_common' + debug-suffix: -debug + + - test-name: 'hs/tier1 compiler' + test-suite: 'test/hotspot/jtreg/:tier1_compiler' + debug-suffix: -debug + + - test-name: 'hs/tier1 gc' + test-suite: 'test/hotspot/jtreg/:tier1_gc' + debug-suffix: -debug + + - test-name: 'hs/tier1 runtime' + test-suite: 'test/hotspot/jtreg/:tier1_runtime' + debug-suffix: -debug + + - test-name: 'hs/tier1 serviceability' + test-suite: 'test/hotspot/jtreg/:tier1_serviceability' + debug-suffix: -debug + + steps: + - name: 'Checkout the JDK source' + uses: actions/checkout@v3 + + - name: 'Get MSYS2' + uses: ./.github/actions/get-msys2 + if: runner.os == 'Windows' + + - name: 'Get the BootJDK' + id: bootjdk + uses: ./.github/actions/get-bootjdk + with: + platform: ${{ inputs.bootjdk-platform }} + + - name: 'Get JTReg' + id: jtreg + uses: ./.github/actions/get-jtreg + + - name: 'Get bundles' + id: bundles + uses: ./.github/actions/get-bundles + with: + platform: ${{ inputs.platform }} + debug-suffix: ${{ matrix.debug-suffix }} + + - name: 'Install dependencies' + run: | + # On macOS we need to install some dependencies for testing + brew install make + sudo xcode-select --switch /Applications/Xcode_11.7.app/Contents/Developer + # This will make GNU make available as 'make' and not only as 'gmake' + echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH + if: runner.os == 'macOS' + + - name: 'Set PATH' + id: path + run: | + # We need a minimal PATH on Windows + # Set PATH to "", so just GITHUB_PATH is included + if [[ '${{ runner.os }}' == 'Windows' ]]; then + echo "value=" >> $GITHUB_OUTPUT + else + echo "value=$PATH" >> $GITHUB_OUTPUT + fi + + - name: 'Run tests' + id: run-tests + run: > + make test-prebuilt + TEST='${{ matrix.test-suite }}' + BOOT_JDK=${{ steps.bootjdk.outputs.path }} + JT_HOME=${{ steps.jtreg.outputs.path }} + JDK_IMAGE_DIR=${{ steps.bundles.outputs.jdk-path }} + SYMBOLS_IMAGE_DIR=${{ steps.bundles.outputs.symbols-path }} + TEST_IMAGE_DIR=${{ steps.bundles.outputs.tests-path }} + JTREG='JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash;VERBOSE=fail,error,time;KEYWORDS=!headful' + && bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY" "$GITHUB_OUTPUT" + env: + PATH: ${{ steps.path.outputs.value }} + + # This is a separate step, since if the markdown from a step gets bigger than + # 1024 kB it is skipped, but then the short summary above is still generated + - name: 'Generate test report' + run: bash ./.github/scripts/gen-test-results.sh "$GITHUB_STEP_SUMMARY" + if: always() + + - name: 'Package test results' + id: package + run: | + # Package test-results and relevant parts of test-support + mkdir results + + if [[ -d build/run-test-prebuilt/test-results ]]; then + cd build/run-test-prebuilt/test-results/ + zip -r -9 "$GITHUB_WORKSPACE/results/test-results.zip" . + cd $GITHUB_WORKSPACE + else + echo '::warning ::Missing test-results directory' + fi + + if [[ -d build/run-test-prebuilt/test-support ]]; then + cd build/run-test-prebuilt/test-support/ + zip -r -9 "$GITHUB_WORKSPACE/results/test-support.zip" . -i *.jtr -i */hs_err*.log -i */replay*.log + cd $GITHUB_WORKSPACE + else + echo '::warning ::Missing test-support directory' + fi + + artifact_name="results-${{ inputs.platform }}-$(echo ${{ matrix.test-name }} | tr '/ ' '__')" + echo "artifact-name=$artifact_name" >> $GITHUB_OUTPUT + if: always() + + - name: 'Upload test results' + uses: actions/upload-artifact@v3 + with: + path: results + name: ${{ steps.package.outputs.artifact-name }} + if: always() + + # This is the best way I found to abort the job with an error message + - name: 'Notify about test failures' + uses: actions/github-script@v6 + with: + script: core.setFailed('${{ steps.run-tests.outputs.error-message }}') + if: steps.run-tests.outputs.failure == 'true' From 72c916ca0f5cc430a1e49f733282041d314e3ae7 Mon Sep 17 00:00:00 2001 From: Lu Chuansheng Date: Fri, 22 May 2026 14:46:40 +0800 Subject: [PATCH 3/3] trying to fix github actions --- .github/workflows/build-linux.yml | 10 +++++----- .github/workflows/gtest-linux.yml | 9 ++++----- .github/workflows/test-cvm8+17.yml | 10 +++++----- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 863005dca0d..1304e4c4a56 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -65,17 +65,17 @@ jobs: debug-level: ${{ fromJSON(inputs.debug-levels) }} steps: - - name: 'Checkout the jdk8u source' - uses: actions/checkout@v3 - with: - path: cvm/jdk8u - - name: 'Checkout the jdk17u-target8 source' uses: actions/checkout@v3 with: ref: dev/v2/jdk17u-target8 path: . + - name: 'Checkout the jdk8u source' + uses: actions/checkout@v3 + with: + path: cvm/jdk8u + - name: 'Determine version' id: version run: echo "::set-output name=version::$(cat ./cvm/conf/version)" diff --git a/.github/workflows/gtest-linux.yml b/.github/workflows/gtest-linux.yml index 98da03c2c98..9499b52649f 100644 --- a/.github/workflows/gtest-linux.yml +++ b/.github/workflows/gtest-linux.yml @@ -65,17 +65,16 @@ jobs: debug-level: ${{ fromJSON(inputs.debug-levels) }} steps: - - name: 'Checkout the jdk8u source' - uses: actions/checkout@v3 - with: - path: cvm/jdk8u - - name: 'Checkout the jdk17u-target8 source' uses: actions/checkout@v3 with: ref: dev/v2/jdk17u-target8 path: . + - name: 'Checkout the jdk8u source' + uses: actions/checkout@v3 + with: + path: cvm/jdk8u - name: 'Determine version' id: version diff --git a/.github/workflows/test-cvm8+17.yml b/.github/workflows/test-cvm8+17.yml index 65fd11ca09c..2ac76c673aa 100644 --- a/.github/workflows/test-cvm8+17.yml +++ b/.github/workflows/test-cvm8+17.yml @@ -71,17 +71,17 @@ jobs: test-suite: 'hotspot8' steps: - - name: 'Checkout the jdk8u source' - uses: actions/checkout@v3 - with: - path: cvm/jdk8u - - name: 'Checkout the jdk17u-target8 source' uses: actions/checkout@v3 with: ref: dev/v2/jdk17u-target8 path: . + - name: 'Checkout the jdk8u source' + uses: actions/checkout@v3 + with: + path: cvm/jdk8u + - name: 'Determine version' id: version run: echo "::set-output name=version::$(cat ./cvm/conf/version)"