From 577521c829f107ecca3f3cd13be89ea1ba136a68 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Wed, 24 Sep 2025 15:49:49 -0400 Subject: [PATCH 1/6] Sort all test names passed to @SelectClasses Also formats them so that they can be automatically formatted easily in the future with JDT Formatter by forcing line breaks with `//` The [AnyEdit Tools](https://marketplace.eclipse.org/content/anyedit-tools) can be used to sort the list in the future. This is being done to make it easier to identify if tests are missing from the lists. --- .../swt/tests/junit/AllGraphicsTests.java | 43 +++++----- .../swt/tests/junit/AllNonBrowserTests.java | 62 +++++++++----- .../swt/tests/junit/AllWidgetTests.java | 82 ++++++++++++------- 3 files changed, 116 insertions(+), 71 deletions(-) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java index e88b7f5fa84..4e30c2833d7 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java @@ -20,25 +20,28 @@ * Suite for testing all of the graphics test cases. */ @Suite -@SelectClasses({ Test_org_eclipse_swt_graphics_Color.class, - Test_org_eclipse_swt_graphics_Cursor.class, - Test_org_eclipse_swt_graphics_DeviceData.class, - Test_org_eclipse_swt_graphics_Font.class, - Test_org_eclipse_swt_graphics_FontData.class, - Test_org_eclipse_swt_graphics_FontMetrics.class, - Test_org_eclipse_swt_graphics_GC.class, - Test_org_eclipse_swt_graphics_Image.class, - Test_org_eclipse_swt_graphics_ImageData.class, - Test_org_eclipse_swt_graphics_PaletteData.class, - Test_org_eclipse_swt_graphics_Path.class, - Test_org_eclipse_swt_graphics_Point.class, - Test_org_eclipse_swt_graphics_Rectangle.class, - Test_org_eclipse_swt_graphics_Region.class, - Test_org_eclipse_swt_graphics_RGB.class, - Test_org_eclipse_swt_graphics_RGBA.class, - Test_org_eclipse_swt_graphics_TextLayout.class, - Test_org_eclipse_swt_graphics_ImageLoader.class, - Test_org_eclipse_swt_graphics_ImageLoaderEvent.class, - Test_org_eclipse_swt_graphics_Transform.class }) +@SelectClasses({ // + // Sorted list of tests + Test_org_eclipse_swt_graphics_Color.class, // + Test_org_eclipse_swt_graphics_Cursor.class, // + Test_org_eclipse_swt_graphics_DeviceData.class, // + Test_org_eclipse_swt_graphics_Font.class, // + Test_org_eclipse_swt_graphics_FontData.class, // + Test_org_eclipse_swt_graphics_FontMetrics.class, // + Test_org_eclipse_swt_graphics_GC.class, // + Test_org_eclipse_swt_graphics_Image.class, // + Test_org_eclipse_swt_graphics_ImageData.class, // + Test_org_eclipse_swt_graphics_ImageLoader.class, // + Test_org_eclipse_swt_graphics_ImageLoaderEvent.class, // + Test_org_eclipse_swt_graphics_PaletteData.class, // + Test_org_eclipse_swt_graphics_Path.class, // + Test_org_eclipse_swt_graphics_Point.class, // + Test_org_eclipse_swt_graphics_RGB.class, // + Test_org_eclipse_swt_graphics_RGBA.class, // + Test_org_eclipse_swt_graphics_Rectangle.class, // + Test_org_eclipse_swt_graphics_Region.class, // + Test_org_eclipse_swt_graphics_TextLayout.class, // + Test_org_eclipse_swt_graphics_Transform.class, // +}) public class AllGraphicsTests { } diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java index 91dfb12f400..19c1e822903 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java @@ -27,27 +27,47 @@ * Suite for running most SWT test cases (all except for browser tests). */ @Suite -@SelectClasses({ Test_org_eclipse_swt_SWT.class, Test_org_eclipse_swt_SWTException.class, - Test_org_eclipse_swt_SWTError.class, Test_org_eclipse_swt_widgets_Display.class, AllGraphicsTests.class, - AllWidgetTests.class, Test_org_eclipse_swt_layout_GridData.class, - Test_org_eclipse_swt_events_ControlEvent.class, Test_org_eclipse_swt_events_ModifyEvent.class, - Test_org_eclipse_swt_events_ArmEvent.class, Test_org_eclipse_swt_events_ShellEvent.class, - Test_org_eclipse_swt_events_TypedEvent.class, Test_org_eclipse_swt_events_PaintEvent.class, - Test_org_eclipse_swt_events_VerifyEvent.class, Test_org_eclipse_swt_events_KeyEvent.class, - Test_org_eclipse_swt_events_TraverseEvent.class, Test_org_eclipse_swt_events_DisposeEvent.class, - Test_org_eclipse_swt_events_SelectionEvent.class, Test_org_eclipse_swt_events_HelpEvent.class, - Test_org_eclipse_swt_events_FocusEvent.class, Test_org_eclipse_swt_events_MouseEvent.class, - Test_org_eclipse_swt_events_MenuEvent.class, Test_org_eclipse_swt_events_TreeEvent.class, - Test_org_eclipse_swt_layout_FormAttachment.class, Test_org_eclipse_swt_layout_BorderLayout.class, - Test_org_eclipse_swt_printing_PrintDialog.class, Test_org_eclipse_swt_printing_PrinterData.class, - Test_org_eclipse_swt_printing_Printer.class, Test_org_eclipse_swt_program_Program.class, - Test_org_eclipse_swt_accessibility_Accessible.class, - Test_org_eclipse_swt_accessibility_AccessibleControlEvent.class, - Test_org_eclipse_swt_accessibility_AccessibleEvent.class, - Test_org_eclipse_swt_accessibility_AccessibleTextEvent.class, - Test_org_eclipse_swt_internal_SVGRasterizer.class, - DPIUtilTests.class, - JSVGRasterizerTest.class}) +@SelectClasses({ // + // Basic tests + Test_org_eclipse_swt_SWT.class, // + Test_org_eclipse_swt_SWTException.class, // + Test_org_eclipse_swt_SWTError.class, // + Test_org_eclipse_swt_widgets_Display.class, // + // Groups of tests + AllGraphicsTests.class, // + AllWidgetTests.class, // + // Rest of tests alphabetically + DPIUtilTests.class, // + JSVGRasterizerTest.class, // + Test_org_eclipse_swt_accessibility_Accessible.class, // + Test_org_eclipse_swt_accessibility_AccessibleControlEvent.class, // + Test_org_eclipse_swt_accessibility_AccessibleEvent.class, // + Test_org_eclipse_swt_accessibility_AccessibleTextEvent.class, // + Test_org_eclipse_swt_events_ArmEvent.class, // + Test_org_eclipse_swt_events_ControlEvent.class, // + Test_org_eclipse_swt_events_DisposeEvent.class, // + Test_org_eclipse_swt_events_FocusEvent.class, // + Test_org_eclipse_swt_events_HelpEvent.class, // + Test_org_eclipse_swt_events_KeyEvent.class, // + Test_org_eclipse_swt_events_MenuEvent.class, // + Test_org_eclipse_swt_events_ModifyEvent.class, // + Test_org_eclipse_swt_events_MouseEvent.class, // + Test_org_eclipse_swt_events_PaintEvent.class, // + Test_org_eclipse_swt_events_SelectionEvent.class, // + Test_org_eclipse_swt_events_ShellEvent.class, // + Test_org_eclipse_swt_events_TraverseEvent.class, // + Test_org_eclipse_swt_events_TreeEvent.class, // + Test_org_eclipse_swt_events_TypedEvent.class, // + Test_org_eclipse_swt_events_VerifyEvent.class, // + Test_org_eclipse_swt_internal_SVGRasterizer.class, // + Test_org_eclipse_swt_layout_BorderLayout.class, // + Test_org_eclipse_swt_layout_FormAttachment.class, // + Test_org_eclipse_swt_layout_GridData.class, // + Test_org_eclipse_swt_printing_PrintDialog.class, // + Test_org_eclipse_swt_printing_Printer.class, // + Test_org_eclipse_swt_printing_PrinterData.class, // + Test_org_eclipse_swt_program_Program.class, // +}) public class AllNonBrowserTests { private static List leakedResources; diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java index f99b6f5055a..824d29b386a 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java @@ -21,35 +21,57 @@ * Suite for testing all of the widget test cases. */ @Suite -@SelectClasses({ Test_org_eclipse_swt_widgets_Shell.class, - Test_org_eclipse_swt_widgets_ExpandItem.class, Test_org_eclipse_swt_widgets_MenuItem.class, - Test_org_eclipse_swt_widgets_ToolItem.class, Test_org_eclipse_swt_widgets_TabItem.class, - Test_org_eclipse_swt_widgets_TableItem.class, Test_org_eclipse_swt_widgets_TableColumn.class, - Test_org_eclipse_swt_widgets_TreeItem.class, Test_org_eclipse_swt_widgets_Caret.class, - Test_org_eclipse_swt_widgets_Event.class, Test_org_eclipse_swt_widgets_Menu.class, - Test_org_eclipse_swt_widgets_Label.class, - Test_org_eclipse_swt_widgets_Button.class, Test_org_eclipse_swt_widgets_ExpandBar.class, - Test_org_eclipse_swt_widgets_List.class, Test_org_eclipse_swt_widgets_Text.class, - Test_org_eclipse_swt_widgets_ScrollBar.class, Test_org_eclipse_swt_widgets_Sash.class, - Test_org_eclipse_swt_widgets_Tree.class, Test_org_eclipse_swt_widgets_TabFolder.class, - Test_org_eclipse_swt_widgets_Combo.class, Test_org_eclipse_swt_widgets_Group.class, - Test_org_eclipse_swt_widgets_ToolBar.class, Test_org_eclipse_swt_widgets_Table.class, - Test_org_eclipse_swt_widgets_Canvas.class, Test_org_eclipse_swt_widgets_Scale.class, - Test_org_eclipse_swt_widgets_Slider.class, Test_org_eclipse_swt_widgets_ProgressBar.class, - Test_org_eclipse_swt_widgets_Composite.class, Test_org_eclipse_swt_widgets_Link.class, - Test_org_eclipse_swt_widgets_DateTime.class, Test_org_eclipse_swt_widgets_ColorDialog.class, - Test_org_eclipse_swt_widgets_FileDialog.class, Test_org_eclipse_swt_widgets_DirectoryDialog.class, - Test_org_eclipse_swt_widgets_FontDialog.class, Test_org_eclipse_swt_widgets_MessageBox.class, - Test_org_eclipse_swt_widgets_Monitor.class, - Test_org_eclipse_swt_custom_StyleRange.class, Test_org_eclipse_swt_custom_CCombo.class, - Test_org_eclipse_swt_custom_CLabel.class, - Test_org_eclipse_swt_custom_CTabItem.class, - Test_org_eclipse_swt_custom_StyledText.class, - Test_org_eclipse_swt_custom_StyledText_VariableLineHeight.class, - Test_org_eclipse_swt_custom_StyledText_multiCaretsSelections.class, - Test_org_eclipse_swt_custom_StyledTextLineSpacingProvider.class, - Test_org_eclipse_swt_custom_CTabFolder.class, Test_org_eclipse_swt_widgets_Spinner.class, - Test_org_eclipse_swt_widgets_ScrolledComposite.class, - Test_org_eclipse_swt_custom_BusyIndicator.class}) +@SelectClasses({ // + // Sorted list of tests + Test_org_eclipse_swt_custom_BusyIndicator.class, // + Test_org_eclipse_swt_custom_CCombo.class, // + Test_org_eclipse_swt_custom_CLabel.class, // + Test_org_eclipse_swt_custom_CTabFolder.class, // + Test_org_eclipse_swt_custom_CTabItem.class, // + Test_org_eclipse_swt_custom_StyleRange.class, // + Test_org_eclipse_swt_custom_StyledText.class, // + Test_org_eclipse_swt_custom_StyledTextLineSpacingProvider.class, // + Test_org_eclipse_swt_custom_StyledText_VariableLineHeight.class, // + Test_org_eclipse_swt_custom_StyledText_multiCaretsSelections.class, // + Test_org_eclipse_swt_widgets_Button.class, // + Test_org_eclipse_swt_widgets_Canvas.class, // + Test_org_eclipse_swt_widgets_Caret.class, // + Test_org_eclipse_swt_widgets_ColorDialog.class, // + Test_org_eclipse_swt_widgets_Combo.class, // + Test_org_eclipse_swt_widgets_Composite.class, // + Test_org_eclipse_swt_widgets_DateTime.class, // + Test_org_eclipse_swt_widgets_DirectoryDialog.class, // + Test_org_eclipse_swt_widgets_Event.class, // + Test_org_eclipse_swt_widgets_ExpandBar.class, // + Test_org_eclipse_swt_widgets_ExpandItem.class, // + Test_org_eclipse_swt_widgets_FileDialog.class, // + Test_org_eclipse_swt_widgets_FontDialog.class, // + Test_org_eclipse_swt_widgets_Group.class, // + Test_org_eclipse_swt_widgets_Label.class, // + Test_org_eclipse_swt_widgets_Link.class, // + Test_org_eclipse_swt_widgets_List.class, // + Test_org_eclipse_swt_widgets_Menu.class, // + Test_org_eclipse_swt_widgets_MenuItem.class, // + Test_org_eclipse_swt_widgets_MessageBox.class, // + Test_org_eclipse_swt_widgets_Monitor.class, // + Test_org_eclipse_swt_widgets_ProgressBar.class, // + Test_org_eclipse_swt_widgets_Sash.class, // + Test_org_eclipse_swt_widgets_Scale.class, // + Test_org_eclipse_swt_widgets_ScrollBar.class, // + Test_org_eclipse_swt_widgets_ScrolledComposite.class, // + Test_org_eclipse_swt_widgets_Shell.class, // + Test_org_eclipse_swt_widgets_Slider.class, // + Test_org_eclipse_swt_widgets_Spinner.class, // + Test_org_eclipse_swt_widgets_TabFolder.class, // + Test_org_eclipse_swt_widgets_TabItem.class, // + Test_org_eclipse_swt_widgets_Table.class, // + Test_org_eclipse_swt_widgets_TableColumn.class, // + Test_org_eclipse_swt_widgets_TableItem.class, // + Test_org_eclipse_swt_widgets_Text.class, // + Test_org_eclipse_swt_widgets_ToolBar.class, // + Test_org_eclipse_swt_widgets_ToolItem.class, // + Test_org_eclipse_swt_widgets_Tree.class, // + Test_org_eclipse_swt_widgets_TreeItem.class, // +}) public class AllWidgetTests { } From 5b3a3423ee8e59d56daf8f4ae63fc7647f6b3a32 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Wed, 24 Sep 2025 16:26:24 -0400 Subject: [PATCH 2/6] Add all missing tests to suite, mark abstract tests as such AllWidgetTests was missing a bunch of tests, some of them seem not very consequential (simple listener tests such as for example [Test_org_eclipse_swt_custom_VerifyKeyListener](https://github.com/eclipse-platform/eclipse.platform.swt/blob/d5dc66178647fa40b14165a7b54bc3be8e013174/tests/org.eclipse.swt.tests/JUnit%20Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_VerifyKeyListener.java) But other ones seem to test important functionality and are rather more substantial, such as [Test_org_eclipse_swt_widgets_TreeColumn](https://github.com/eclipse-platform/eclipse.platform.swt/blob/d5dc66178647fa40b14165a7b54bc3be8e013174/tests/org.eclipse.swt.tests/JUnit%20Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java) There are a few test classes which are super classes of other test classes and exist to match all the SWT classes. These have been marked as abstract so that it is obvious why they are not included. If you had try to run them they would have mostly failed. The secondary advantage of explicitly marking them abstract is that JDT won't run them as a test from within Eclipse IDE. There are three test classes that don't pass, I have added them to the list commented out for now, but if they are easy enough to resolve I will enable them too. Fixes #2542 --- .../org/eclipse/swt/tests/junit/AllWidgetTests.java | 10 ++++++++++ .../Test_org_eclipse_swt_widgets_Decorations.java | 2 +- .../junit/Test_org_eclipse_swt_widgets_Dialog.java | 2 +- .../tests/junit/Test_org_eclipse_swt_widgets_Item.java | 2 +- .../junit/Test_org_eclipse_swt_widgets_Scrollable.java | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java index 824d29b386a..442bff4d4d9 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java @@ -23,22 +23,31 @@ @Suite @SelectClasses({ // // Sorted list of tests + // Failing test: Test_org_eclipse_swt_custom_BidiSegmentListener.class, // Test_org_eclipse_swt_custom_BusyIndicator.class, // Test_org_eclipse_swt_custom_CCombo.class, // Test_org_eclipse_swt_custom_CLabel.class, // Test_org_eclipse_swt_custom_CTabFolder.class, // Test_org_eclipse_swt_custom_CTabItem.class, // + Test_org_eclipse_swt_custom_ExtendedModifyListener.class, // + Test_org_eclipse_swt_custom_LineBackgroundListener.class, // + Test_org_eclipse_swt_custom_LineStyleListener.class, // Test_org_eclipse_swt_custom_StyleRange.class, // Test_org_eclipse_swt_custom_StyledText.class, // + // Failing test: Test_org_eclipse_swt_custom_StyledTextContent.class, // Test_org_eclipse_swt_custom_StyledTextLineSpacingProvider.class, // Test_org_eclipse_swt_custom_StyledText_VariableLineHeight.class, // Test_org_eclipse_swt_custom_StyledText_multiCaretsSelections.class, // + Test_org_eclipse_swt_custom_TextChangeListener.class, // + Test_org_eclipse_swt_custom_VerifyKeyListener.class, // Test_org_eclipse_swt_widgets_Button.class, // Test_org_eclipse_swt_widgets_Canvas.class, // Test_org_eclipse_swt_widgets_Caret.class, // Test_org_eclipse_swt_widgets_ColorDialog.class, // Test_org_eclipse_swt_widgets_Combo.class, // Test_org_eclipse_swt_widgets_Composite.class, // + Test_org_eclipse_swt_widgets_CoolBar.class, // + // Failing test: Test_org_eclipse_swt_widgets_CoolItem.class, // Test_org_eclipse_swt_widgets_DateTime.class, // Test_org_eclipse_swt_widgets_DirectoryDialog.class, // Test_org_eclipse_swt_widgets_Event.class, // @@ -71,6 +80,7 @@ Test_org_eclipse_swt_widgets_ToolBar.class, // Test_org_eclipse_swt_widgets_ToolItem.class, // Test_org_eclipse_swt_widgets_Tree.class, // + Test_org_eclipse_swt_widgets_TreeColumn.class, // Test_org_eclipse_swt_widgets_TreeItem.class, // }) public class AllWidgetTests { diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Decorations.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Decorations.java index 935c83de3e0..b2cd47e1243 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Decorations.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Decorations.java @@ -39,7 +39,7 @@ * * @see org.eclipse.swt.widgets.Decorations */ -public class Test_org_eclipse_swt_widgets_Decorations extends Test_org_eclipse_swt_widgets_Canvas { +public abstract class Test_org_eclipse_swt_widgets_Decorations extends Test_org_eclipse_swt_widgets_Canvas { @Override @Test diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Dialog.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Dialog.java index e9516fc821d..a0ac9b3c71b 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Dialog.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Dialog.java @@ -28,7 +28,7 @@ * * @see org.eclipse.swt.widgets.Dialog */ -public class Test_org_eclipse_swt_widgets_Dialog { +public abstract class Test_org_eclipse_swt_widgets_Dialog { @BeforeEach public void setUp() { diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Item.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Item.java index f5b76eda131..bab1483fdbd 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Item.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Item.java @@ -33,7 +33,7 @@ * * @see org.eclipse.swt.widgets.Item */ -public class Test_org_eclipse_swt_widgets_Item extends Test_org_eclipse_swt_widgets_Widget { +public abstract class Test_org_eclipse_swt_widgets_Item extends Test_org_eclipse_swt_widgets_Widget { @Override @Before diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scrollable.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scrollable.java index b5bbe5b64fc..03665598eef 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scrollable.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scrollable.java @@ -22,7 +22,7 @@ * * @see org.eclipse.swt.widgets.Scrollable */ -public class Test_org_eclipse_swt_widgets_Scrollable extends Test_org_eclipse_swt_widgets_Control { +public abstract class Test_org_eclipse_swt_widgets_Scrollable extends Test_org_eclipse_swt_widgets_Control { @Override @Test From e7ffca9cf411d52b51cd09875c4aca620a76d3da Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Wed, 24 Sep 2025 16:49:16 -0400 Subject: [PATCH 3/6] Fix Test_org_eclipse_swt_custom_BidiSegmentListener Removed the part of the test that now fails. A specific combination of segments used to cause an exception, but between the pair of commits d3c0efa94b11c766b17f4670a7e8438e97a87bdc and b4dfa25ce1ddde6037308a5f9e2105a81151f900 this no longer causes an exception. Therefore I proceeded to remove the invalid test. --- .../JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java | 2 +- .../junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java index 442bff4d4d9..510bc78c7fc 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java @@ -23,7 +23,7 @@ @Suite @SelectClasses({ // // Sorted list of tests - // Failing test: Test_org_eclipse_swt_custom_BidiSegmentListener.class, // + Test_org_eclipse_swt_custom_BidiSegmentListener.class, // Test_org_eclipse_swt_custom_BusyIndicator.class, // Test_org_eclipse_swt_custom_CCombo.class, // Test_org_eclipse_swt_custom_CLabel.class, // diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java index 9d289a8c969..cb7d031a3c1 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java @@ -122,7 +122,6 @@ public void test_lineGetSegmentsLorg_eclipse_swt_custom_BidiSegmentEvent() { // should all cause an exception on a bidi platform if (SwtTestUtil.isBidi()) { - testListener(new int[] {lineLength / 2}, true); testListener(new int[] {0, 1, 1, lineLength / 2}, true); testListener(new int[] {0, 1, 2, lineLength + 1}, true); testListener(new int[] {0, 1, lineLength + 1, lineLength + 1}, true); From aefbdb42c599bf4d5d196b78d6fb4709e463bf2e Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Wed, 24 Sep 2025 17:02:48 -0400 Subject: [PATCH 4/6] Fix Test_org_eclipse_swt_custom_StyledTextContent This test had bitrotten significantly since it was written a long time ago. This commit fixes the behaviour by making test implementation of StyledTextContent behave reasonably so that other StyledText operations can complete successfully. --- .../swt/tests/junit/AllWidgetTests.java | 2 +- ..._eclipse_swt_custom_StyledTextContent.java | 26 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java index 510bc78c7fc..f45ea242277 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java @@ -34,7 +34,7 @@ Test_org_eclipse_swt_custom_LineStyleListener.class, // Test_org_eclipse_swt_custom_StyleRange.class, // Test_org_eclipse_swt_custom_StyledText.class, // - // Failing test: Test_org_eclipse_swt_custom_StyledTextContent.class, // + Test_org_eclipse_swt_custom_StyledTextContent.class, // Test_org_eclipse_swt_custom_StyledTextLineSpacingProvider.class, // Test_org_eclipse_swt_custom_StyledText_VariableLineHeight.class, // Test_org_eclipse_swt_custom_StyledText_multiCaretsSelections.class, // diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java index 5ccaa234e13..82917f3689b 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java @@ -33,21 +33,21 @@ * @see org.eclipse.swt.custom.StyledTextContent */ public class Test_org_eclipse_swt_custom_StyledTextContent { - int XINSET = 0; + private static final String INITIAL_TEXT = "initial text"; static class ContentImplementation implements StyledTextContent { - String textContent = ""; + String textContent = INITIAL_TEXT; @Override public void addTextChangeListener(TextChangeListener listener){ } @Override public int getCharCount() { - return 0; + return textContent.length(); } @Override public String getLine(int lineIndex) { - return "getLine"; + return textContent; } @Override public int getLineAtOffset(int offset) { @@ -55,7 +55,7 @@ public int getLineAtOffset(int offset) { } @Override public int getLineCount() { - return 0; + return 1; } @Override public String getLineDelimiter() { @@ -67,14 +67,14 @@ public int getOffsetAtLine(int lineIndex) { } @Override public String getTextRange(int start, int length) { - return textContent; + return textContent.substring(start, start + length); } @Override public void removeTextChangeListener(TextChangeListener listener) { } @Override public void replaceTextRange(int start, int replaceLength, String text) { - textContent = text; + textContent = textContent.substring(0, start) +text + textContent.substring(start + replaceLength); } @Override public void setText(String text) { @@ -87,8 +87,6 @@ public void setText(String text) { @Before public void setUp() { - if (SwtTestUtil.isBidi()) XINSET = 2; - else XINSET = 0; shell = new Shell(); styledText = new StyledText(shell, SWT.NULL); styledText.setContent(content); @@ -96,7 +94,7 @@ public void setUp() { @Test public void test_getCharCount() { - assertEquals(":a:", 0, styledText.getCharCount()); + assertEquals(":a:", INITIAL_TEXT.length(), styledText.getCharCount()); } @Test @@ -117,13 +115,13 @@ public void test_getLineDelimiter() { @Test public void test_getLineI() { // will indirectly cause getLine to be called - assertEquals(":b:", new Point(XINSET,0), styledText.getLocationAtOffset(0)); + assertEquals(":b:", new Point(0,0), styledText.getLocationAtOffset(0)); } @Test public void test_getOffsetAtLineI() { // will indirectly cause getOffsetAtLine to be called - assertEquals(":f:", new Point(XINSET,0), styledText.getLocationAtOffset(0)); + assertEquals(":f:", new Point(0,0), styledText.getLocationAtOffset(0)); } @Test @@ -134,13 +132,13 @@ public void test_getTextRangeII() { @Test public void test_replaceTextRangeIILjava_lang_String() { styledText.replaceTextRange(0,0,"test1"); - assertEquals(":h:", "test1", styledText.getText()); + assertEquals(":h:", "test1" + INITIAL_TEXT, styledText.getText()); } @Test public void test_setTextLjava_lang_String() { styledText.replaceTextRange(0,0,"test2"); - assertEquals(":i:", "test2", styledText.getText()); + assertEquals(":i:", "test2" + INITIAL_TEXT, styledText.getText()); } } From 27f3c8ac27af380d5e8894cd624c63719a058732 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Wed, 24 Sep 2025 20:55:11 -0400 Subject: [PATCH 5/6] Disable single failing test on macOS in recently reenabled tests Test_org_eclipse_swt_widgets_TreeColumn had been missing from the SWT test suite since the test was created. The test_getWidth fails on macOS so it has been disabled. It is unknown how long it has been failing for. --- .../tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java index fed29bfa2db..9a169337ea9 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java @@ -17,6 +17,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.junit.Assume.assumeFalse; import java.util.ArrayList; import java.util.List; @@ -108,6 +109,7 @@ public void test_addSelectionListenerWidgetSelectedAdapterLorg_eclipse_swt_event @Test public void test_getWidth() { + assumeFalse("getWidth() checks below fail on macOS", SwtTestUtil.isCocoa); int testWidth = 42; // try { From 5f08af7a2d74339170f5bbae681bbbfab76cdf88 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Thu, 25 Sep 2025 08:28:59 -0400 Subject: [PATCH 6/6] Convert Test_org_eclipse_swt_custom_StyledTextContent to JUnit5 --- ..._eclipse_swt_custom_StyledTextContent.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java index 82917f3689b..74c29173e9a 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java @@ -15,8 +15,8 @@ package org.eclipse.swt.tests.junit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; @@ -24,8 +24,8 @@ import org.eclipse.swt.custom.TextChangeListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Shell; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * Automated Test Suite for class org.eclipse.swt.custom.StyledTextContent @@ -85,7 +85,7 @@ public void setText(String text) { Shell shell; StyledText styledText; -@Before +@BeforeEach public void setUp() { shell = new Shell(); styledText = new StyledText(shell, SWT.NULL); @@ -94,51 +94,51 @@ public void setUp() { @Test public void test_getCharCount() { - assertEquals(":a:", INITIAL_TEXT.length(), styledText.getCharCount()); + assertEquals(INITIAL_TEXT.length(), styledText.getCharCount()); } @Test public void test_getLineAtOffsetI() { - assertEquals(":c:", 0, styledText.getLineAtOffset(0)); + assertEquals(0, styledText.getLineAtOffset(0)); } @Test public void test_getLineCount() { - assertEquals(":d:", 1, styledText.getLineCount()); + assertEquals(1, styledText.getLineCount()); } @Test public void test_getLineDelimiter() { - assertEquals(":e:", "getLineDelimiter", styledText.getLineDelimiter()); + assertEquals("getLineDelimiter", styledText.getLineDelimiter()); } @Test public void test_getLineI() { // will indirectly cause getLine to be called - assertEquals(":b:", new Point(0,0), styledText.getLocationAtOffset(0)); + assertEquals(new Point(0,0), styledText.getLocationAtOffset(0)); } @Test public void test_getOffsetAtLineI() { // will indirectly cause getOffsetAtLine to be called - assertEquals(":f:", new Point(0,0), styledText.getLocationAtOffset(0)); + assertEquals(new Point(0,0), styledText.getLocationAtOffset(0)); } @Test public void test_getTextRangeII() { - assertTrue(":g:", styledText.getTextRange(0,0).isEmpty()); + assertTrue(styledText.getTextRange(0,0).isEmpty()); } @Test public void test_replaceTextRangeIILjava_lang_String() { styledText.replaceTextRange(0,0,"test1"); - assertEquals(":h:", "test1" + INITIAL_TEXT, styledText.getText()); + assertEquals("test1" + INITIAL_TEXT, styledText.getText()); } @Test public void test_setTextLjava_lang_String() { styledText.replaceTextRange(0,0,"test2"); - assertEquals(":i:", "test2" + INITIAL_TEXT, styledText.getText()); + assertEquals("test2" + INITIAL_TEXT, styledText.getText()); } }