diff --git a/debug/org.eclipse.debug.tests/META-INF/MANIFEST.MF b/debug/org.eclipse.debug.tests/META-INF/MANIFEST.MF index 9d504e7802c..6a088ba6083 100644 --- a/debug/org.eclipse.debug.tests/META-INF/MANIFEST.MF +++ b/debug/org.eclipse.debug.tests/META-INF/MANIFEST.MF @@ -32,6 +32,9 @@ Export-Package: org.eclipse.debug.tests, Import-Package: org.assertj.core.api;version="3.24.2", org.assertj.core.api.iterable, org.junit.jupiter.api;version="[5.14.0,6.0.0)", + org.junit.jupiter.api.io;version="[5.14.0,6.0.0)", + org.junit.jupiter.api.extension;version="[5.14.0,6.0.0)", + org.junit.jupiter.params;version="[5.14.0,6.0.0)", org.junit.platform.suite.api;version="[1.14.0,2.0.0)" Eclipse-BundleShape: dir Automatic-Module-Name: org.eclipse.debug.tests diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java deleted file mode 100644 index f44ad89e5ff..00000000000 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2017 Andrey Loskutov and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Andrey Loskutov - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.tests; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.intro.IIntroManager; -import org.eclipse.ui.intro.IIntroPart; -import org.eclipse.ui.progress.UIJob; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.rules.TestName; - -public class AbstractDebugTest { - - private static boolean welcomeClosed; - - @Rule - public TestName name = new TestName(); - - - @Before - public void setUp() throws Exception { - TestUtil.log(IStatus.INFO, name.getMethodName(), "setUp"); - assertWelcomeScreenClosed(); - } - - @After - public void tearDown() throws Exception { - TestUtil.log(IStatus.INFO, name.getMethodName(), "tearDown"); - TestUtil.cleanUp(name.getMethodName()); - } - - /** - * Ensure the welcome screen is closed because in 4.x the debug perspective - * opens a giant fast-view causing issues - */ - protected final void assertWelcomeScreenClosed() throws Exception { - if (!welcomeClosed && PlatformUI.isWorkbenchRunning()) { - final IWorkbench wb = PlatformUI.getWorkbench(); - if (wb == null) { - return; - } - // In UI thread we don't need to run a job - if (Display.getCurrent() != null) { - closeIntro(wb); - return; - } - - UIJob job = new UIJob("close welcome screen for debug test suite") { - @Override - public IStatus runInUIThread(IProgressMonitor monitor) { - closeIntro(wb); - return Status.OK_STATUS; - } - - }; - job.setPriority(Job.INTERACTIVE); - job.setSystem(true); - job.schedule(); - } - } - - private static void closeIntro(final IWorkbench wb) { - IWorkbenchWindow window = wb.getActiveWorkbenchWindow(); - if (window != null) { - IIntroManager im = wb.getIntroManager(); - IIntroPart intro = im.getIntro(); - if (intro != null) { - welcomeClosed = im.closeIntro(intro); - } - } - } - -} diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/DebugTestExtension.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/DebugTestExtension.java new file mode 100644 index 00000000000..01c133fdcdb --- /dev/null +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/DebugTestExtension.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * Copyright (c) 2026 Vector Informatik GmbH and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.debug.tests; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.intro.IIntroManager; +import org.eclipse.ui.intro.IIntroPart; +import org.eclipse.ui.progress.UIJob; +import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +public class DebugTestExtension implements BeforeEachCallback, AfterEachCallback { + + private boolean welcomeClosed = false; + + @Override + public void beforeEach(ExtensionContext context) throws Exception { + TestUtil.log(IStatus.INFO, context.getDisplayName(), "setUp"); + assertWelcomeScreenClosed(); + } + + @Override + public void afterEach(ExtensionContext context) throws Exception { + TestUtil.log(IStatus.INFO, context.getDisplayName(), "tearDown"); + TestUtil.cleanUp(context.getDisplayName()); + } + + /** + * Ensure the welcome screen is closed because in 4.x the debug perspective + * opens a giant fast-view causing issues + */ + public void assertWelcomeScreenClosed() throws Exception { + if (!welcomeClosed && PlatformUI.isWorkbenchRunning()) { + final IWorkbench wb = PlatformUI.getWorkbench(); + if (wb != null) { + UIJob job = new UIJob("close welcome screen for Ant test suite") { //$NON-NLS-1$ + @Override + public IStatus runInUIThread(IProgressMonitor monitor) { + IWorkbenchWindow window = wb.getActiveWorkbenchWindow(); + if (window != null) { + IIntroManager im = wb.getIntroManager(); + IIntroPart intro = im.getIntro(); + if (intro != null) { + welcomeClosed = im.closeIntro(intro); + } + } + return Status.OK_STATUS; + } + }; + job.setPriority(Job.INTERACTIVE); + job.setSystem(true); + job.schedule(); + } + } + } + +} diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointOrderingTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointOrderingTests.java index 91a3d93187e..105a785e383 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointOrderingTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointOrderingTests.java @@ -24,7 +24,7 @@ import org.eclipse.debug.core.model.ILineBreakpoint; import org.eclipse.debug.core.model.IValue; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsComparator; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.ui.IDebugModelPresentation; import org.eclipse.debug.ui.IValueDetailListener; import org.eclipse.jface.viewers.IBaseLabelProvider; @@ -34,14 +34,16 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Widget; import org.eclipse.ui.IEditorInput; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Test the ordering used in the breakpoints view. * * Using a special Comparator which sorts breakpoint texts like file:1, file:2 and file:11 in a numerical ordering. */ -public class BreakpointOrderingTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class BreakpointOrderingTests { /** * Test only implementation of ILineBreakpoint. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java index 148f63bb664..1809b8f459a 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java @@ -29,21 +29,23 @@ import org.eclipse.debug.internal.core.BreakpointManager; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.swt.widgets.TreeItem; import org.eclipse.ui.PlatformUI; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; -public class BreakpointTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class BreakpointTests { private final IBreakpointManager bpm = DebugPlugin.getDefault().getBreakpointManager(); - @Override + @AfterEach public void tearDown() throws Exception { - super.tearDown(); for (IBreakpoint bp : getTestBreakpoints()) { bp.delete(); } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/SerialExecutorTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/SerialExecutorTest.java index 540b7875689..1f099187b45 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/SerialExecutorTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/SerialExecutorTest.java @@ -23,14 +23,17 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.debug.internal.ui.model.elements.SerialExecutor; -import org.eclipse.debug.tests.AbstractDebugTest; -import org.junit.Test; +import org.eclipse.debug.tests.DebugTestExtension; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; -public class SerialExecutorTest extends AbstractDebugTest { - @Override +@ExtendWith(DebugTestExtension.class) +public class SerialExecutorTest { + + @AfterEach public void tearDown() throws Exception { Job.getJobManager().cancel(this); - super.tearDown(); } @Test diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleDocumentAdapterTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleDocumentAdapterTests.java index 35d88afd32d..99577b31e9d 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleDocumentAdapterTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleDocumentAdapterTests.java @@ -30,7 +30,7 @@ import org.eclipse.core.runtime.ILogListener; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentAdapter; @@ -38,7 +38,8 @@ import org.eclipse.swt.custom.TextChangedEvent; import org.eclipse.swt.custom.TextChangingEvent; import org.eclipse.ui.internal.console.ConsoleDocumentAdapter; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests {@link ConsoleDocumentAdapter}. @@ -46,7 +47,8 @@ * Primary tests fixed width mode and calculation of {@link TextChangingEvent}s. *

*/ -public class ConsoleDocumentAdapterTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ConsoleDocumentAdapterTests { /** * Test {@link ConsoleDocumentAdapter#setText(String)}. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleManagerTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleManagerTests.java index 71fb993cf21..2eb9d12625f 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleManagerTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleManagerTests.java @@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.util.IPropertyChangeListener; @@ -40,14 +40,17 @@ import org.eclipse.ui.internal.console.ConsoleManager; import org.eclipse.ui.part.IPageBookViewPage; import org.eclipse.ui.part.MessagePage; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests console manager */ -public class ConsoleManagerTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ConsoleManagerTests { private ExecutorService executorService; private IConsoleManager manager; @@ -56,10 +59,8 @@ public class ConsoleManagerTests extends AbstractDebugTest { private ConsoleMock[] consoles; ConsoleMock firstConsole; - @Override - @Before - public void setUp() throws Exception { - super.setUp(); + @BeforeEach + public void setUp(TestInfo testInfo) throws Exception { assertNotNull("Must run in UI thread, but was in: " + Thread.currentThread().getName(), //$NON-NLS-1$ Display.getCurrent()); count = 20; @@ -86,18 +87,17 @@ public void setUp() throws Exception { firstConsole = new ConsoleMock(0); manager.addConsoles(new ConsoleMock[] { firstConsole }); manager.showConsoleView(firstConsole); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); TestUtil.processUIEvents(100); ConsoleMock.allShownConsoles.set(0); } - @Override @After + @AfterEach public void tearDown() throws Exception { executorService.shutdownNow(); manager.removeConsoles(consoles); manager.removeConsoles(new ConsoleMock[] { firstConsole }); TestUtil.processUIEvents(100); - super.tearDown(); } /** @@ -108,18 +108,18 @@ public void tearDown() throws Exception { * See bug 489546. */ @Test - public void testShowAllConsoles() throws Exception { + public void testShowAllConsoles(TestInfo testInfo) throws Exception { // Create a number of threads which will start and wait for the last one // created to call ConsoleManager.show. for (ConsoleMock console : consoles) { - showConsole(console); + showConsole(console, testInfo.getDisplayName()); } System.out.println("All tasks scheduled, processing UI events now..."); //$NON-NLS-1$ TestUtil.processUIEvents(1000); // Console manager starts a job with delay, let wait for him a bit System.out.println("Waiting on jobs now..."); //$NON-NLS-1$ - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); // Give UI a chance to proceed pending console manager jobs System.out.println("Done with jobs, processing UI events again..."); //$NON-NLS-1$ @@ -153,7 +153,7 @@ private boolean waitForExecutorService() throws Exception { return false; } - private void showConsole(final ConsoleMock console) { + private void showConsole(final ConsoleMock console, String testName) { executorService.execute(() -> { // last one arriving here triggers execution for all at same // time @@ -162,7 +162,7 @@ private void showConsole(final ConsoleMock console) { latch.await(1, TimeUnit.MINUTES); System.out.println("Requesting to show: " + console); //$NON-NLS-1$ manager.showConsoleView(console); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testName, ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); } catch (InterruptedException e) { e.printStackTrace(); Thread.interrupted(); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java index a08a5996776..e05f0b7b02a 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java @@ -24,7 +24,7 @@ import java.nio.charset.StandardCharsets; import org.eclipse.core.commands.Command; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.jface.text.IDocument; import org.eclipse.ui.IViewPart; @@ -41,13 +41,15 @@ import org.eclipse.ui.console.MessageConsole; import org.eclipse.ui.internal.console.ConsoleManager; import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; - -public class ConsoleTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ConsoleTests { @Test - public void testConsoleOutputStreamEncoding() throws IOException { + public void testConsoleOutputStreamEncoding(TestInfo testInfo) throws IOException { String testString = "abc\u00e4\u00f6\u00fcdef"; //$NON-NLS-1$ // abcdef need 1 byte in UTF-8 each // äöü (\u00e4\u00f6\u00fc) need 2 bytes each @@ -56,43 +58,43 @@ public void testConsoleOutputStreamEncoding() throws IOException { MessageConsole console = new MessageConsole("Test Console", //$NON-NLS-1$ IConsoleConstants.MESSAGE_CONSOLE_TYPE, null, StandardCharsets.UTF_8.name(), true); IDocument document = console.getDocument(); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); assertEquals("Document should be empty", "", document.get()); //$NON-NLS-1$ //$NON-NLS-2$ try (IOConsoleOutputStream outStream = console.newOutputStream()) { outStream.write(testStringBuffer, 0, 6); // half of ö (\u00f6) is written so we don't expect this char in // output but all previous chars can be decoded - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); assertEquals("First 4 chars should be written", testString.substring(0, 4), document.get()); //$NON-NLS-1$ outStream.write(testStringBuffer, 6, 6); // all remaining bytes are written so we expect the whole string // including the ö (\u00f6) which was at buffer boundary - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); assertEquals("whole test string should be written", testString, document.get()); //$NON-NLS-1$ } - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); // after closing the stream, the document content should still be the // same assertEquals("closing the stream should not alter the document", testString, document.get()); //$NON-NLS-1$ } @Test - public void testConsoleOutputStreamLastR() throws IOException { + public void testConsoleOutputStreamLastR(TestInfo testInfo) throws IOException { String testString = "a\r"; //$NON-NLS-1$ byte[] testStringBuffer = testString.getBytes(StandardCharsets.UTF_8); assertThat(testStringBuffer).as("Test string \"" + testString + "\" should consist of 2 UTF-8 bytes").hasSize(2); MessageConsole console = new MessageConsole("Test Console 2", //$NON-NLS-1$ IConsoleConstants.MESSAGE_CONSOLE_TYPE, null, StandardCharsets.UTF_8.name(), true); IDocument document = console.getDocument(); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); assertEquals("Document should be empty", "", document.get()); //$NON-NLS-1$ //$NON-NLS-2$ try (IOConsoleOutputStream outStream = console.newOutputStream()) { outStream.write(testStringBuffer); // everything but pending \r should be written - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); assertEquals("First char should be written", testString.substring(0, 1), document.get()); //$NON-NLS-1$ } - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 200, 5000); // after closing the stream, the document content should still be the // same assertEquals("closing the stream should write the pending \\r", testString, document.get()); //$NON-NLS-1$ @@ -170,7 +172,7 @@ public void testSetNullEncoding() throws IOException { * 268608 */ @Test - public void testFindCommandsAreEnabledOnConsoleOpen() throws Exception { + public void testFindCommandsAreEnabledOnConsoleOpen(TestInfo testInfo) throws Exception { IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IViewPart consoleView = activePage.showView(IConsoleConstants.ID_CONSOLE_VIEW); @@ -183,7 +185,7 @@ public void testFindCommandsAreEnabledOnConsoleOpen() throws Exception { try { consoleManager.addConsoles(consoles); consoleManager.showConsoleView(console); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 100, 3000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 100, 3000); ICommandService commandService = PlatformUI.getWorkbench().getService(ICommandService.class); Command commandFindReplace = commandService.getCommand(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/FileLinkTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/FileLinkTests.java index 9042f27b34b..bd047fd5ce9 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/FileLinkTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/FileLinkTests.java @@ -26,27 +26,29 @@ import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.ui.console.FileLink; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests for {@link FileLink}. */ -public class FileLinkTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class FileLinkTests { private IProject testProject; private IFile testFile; - @Override + @BeforeEach public void setUp() throws Exception { - super.setUp(); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); testProject = workspace.getRoot().getProject("FileLinkTest-" + UUID.randomUUID()); testProject.create(null); @@ -55,13 +57,11 @@ public void setUp() throws Exception { setTestContent("Test file\nSecond line"); } - @Override + @AfterEach public void tearDown() throws Exception { if (testProject.exists()) { testProject.delete(true, true, null); } - - super.tearDown(); } private void setTestContent(String fileContent) throws UnsupportedEncodingException, CoreException { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleFixedWidthTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleFixedWidthTests.java index 1bee1afeddc..c321658ea12 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleFixedWidthTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleFixedWidthTests.java @@ -30,7 +30,7 @@ protected IOConsoleTestUtil getTestUtil(String title) { c.getConsole().setConsoleWidth(3); c.setIgnoreFixedConsole(true); // console width is applied asynchronous - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 50, 1000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 50, 1000); return c; } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java index 08df8018271..2682c21c45a 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java @@ -49,7 +49,7 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.TestsPlugin; import org.eclipse.jface.util.PropertyChangeEvent; @@ -69,14 +69,17 @@ import org.eclipse.ui.console.IOConsole; import org.eclipse.ui.console.IOConsoleOutputStream; import org.eclipse.ui.internal.console.ConsoleManager; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the {@link IOConsole}. Especially the partitioner and viewer parts. */ -public class IOConsoleTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class IOConsoleTests { /** * The console view used for the running test. Required to obtain access to * consoles {@link StyledText} widget to simulate user input. @@ -99,11 +102,11 @@ public class IOConsoleTests extends AbstractDebugTest { } }; - @Override - @Before - public void setUp() throws Exception { - super.setUp(); + protected TestInfo testInfo; + @BeforeEach + public void setUp(TestInfo testInfo) throws Exception { + this.testInfo = testInfo; // create or activate console view final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); assertNotNull(window); @@ -122,12 +125,9 @@ public void setUp() throws Exception { Platform.addLogListener(errorLogListener); } - @Override - @After + @AfterEach public void tearDown() throws Exception { Platform.removeLogListener(errorLogListener); - super.tearDown(); - assertNoError(); } @@ -161,11 +161,11 @@ protected IOConsoleTestUtil getTestUtil(String title) { }); final IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager(); consoleManager.addConsoles(new IConsole[] { console }); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 25, 10000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 25, 10000); consoleManager.showConsoleView(console); final org.eclipse.ui.internal.console.IOConsolePage page = (org.eclipse.ui.internal.console.IOConsolePage) consoleView.getCurrentPage(); final StyledText textPanel = (StyledText) page.getControl(); - return new IOConsoleTestUtil(console, textPanel, name.getMethodName()); + return new IOConsoleTestUtil(console, textPanel, testInfo.getDisplayName()); } /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/InputStreamMonitorTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/InputStreamMonitorTests.java index 9a02104bc9c..89dc865df18 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/InputStreamMonitorTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/InputStreamMonitorTests.java @@ -24,15 +24,17 @@ import org.eclipse.core.runtime.ILog; import org.eclipse.debug.internal.core.InputStreamMonitor; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.TestsPlugin; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the {@link InputStreamMonitor}. */ -public class InputStreamMonitorTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class InputStreamMonitorTests { private static int CONDITION_TIMEOUT_IN_MILLIS = 1_000; /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/OutputStreamMonitorTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/OutputStreamMonitorTests.java index b96d24e9b27..639d5b5df07 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/OutputStreamMonitorTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/OutputStreamMonitorTests.java @@ -33,16 +33,18 @@ import org.eclipse.debug.core.model.IBinaryStreamMonitor; import org.eclipse.debug.core.model.IStreamMonitor; import org.eclipse.debug.internal.core.OutputStreamMonitor; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the {@link OutputStreamMonitor}. */ -public class OutputStreamMonitorTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class OutputStreamMonitorTests { private static final Duration TIMEOUT = Duration.ofSeconds(10); /** The {@link OutputStreamMonitor} used for the test runs. */ @@ -101,14 +103,14 @@ public String getRecordedChars() { } } - @Before + @BeforeEach public void setupStreams() throws IOException { sysout = new PipedOutputStream(); inputFromSysout = new PipedInputStream(sysout); monitor = new TestOutputStreamMonitor(inputFromSysout, StandardCharsets.UTF_8); } - @After + @AfterEach public void closeStreams() throws IOException { inputFromSysout.close(); sysout.close(); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleManagerTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleManagerTests.java index d3c12fcf536..053b0082222 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleManagerTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleManagerTests.java @@ -34,24 +34,27 @@ import org.eclipse.debug.internal.ui.views.console.ConsoleRemoveAllTerminatedAction; import org.eclipse.debug.internal.ui.views.console.ProcessConsole; import org.eclipse.debug.internal.ui.views.console.ProcessConsoleManager; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.preference.PreferenceMemento; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleManager; -import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the ProcessConsoleManager. */ -public class ProcessConsoleManagerTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ProcessConsoleManagerTests { private final PreferenceMemento prefMemento = new PreferenceMemento(); - @After + @AfterEach public void restorePreferences() { prefMemento.resetPreferences(); } @@ -62,7 +65,7 @@ public void restorePreferences() { * through an {@link ILaunchListener} which is honored by this test. */ @Test - public void testProcessConsoleLifecycle() throws Exception { + public void testProcessConsoleLifecycle(TestInfo testInfo) throws Exception { // ensure debug UI plugin is started before adding first launch DebugUIPlugin.getDefault(); final ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); @@ -71,7 +74,7 @@ public void testProcessConsoleLifecycle() throws Exception { if (existingNumConsoles > 0) { // existing consoles must not harm this test but it may be // interesting in case the test fails - TestUtil.log(IStatus.INFO, name.getMethodName(), "Found " + existingNumConsoles + " existing consoles on test start."); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Found " + existingNumConsoles + " existing consoles on test start."); } ILaunch launch = null; @@ -81,7 +84,7 @@ public void testProcessConsoleLifecycle() throws Exception { launch = process.getLaunch(); launchManager.addLaunch(launch); // do not wait on input read job - TestUtil.waitForJobs(name.getMethodName(), ProcessConsoleManager.class, 0, 10000, ProcessConsole.class); + TestUtil.waitForJobs(testInfo.getDisplayName(), ProcessConsoleManager.class, 0, 10000, ProcessConsole.class); assertThat(consoleManager.getConsoles()).as("console has been added").hasSize(1); } finally { mockProcess.destroy(); @@ -89,7 +92,7 @@ public void testProcessConsoleLifecycle() throws Exception { if (launch != null) { launchManager.removeLaunch(launch); - TestUtil.waitForJobs(name.getMethodName(), ProcessConsoleManager.class, 0, 10000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ProcessConsoleManager.class, 0, 10000); assertThat(consoleManager.getConsoles()).as("console has been removed").isEmpty(); } } @@ -99,7 +102,7 @@ public void testProcessConsoleLifecycle() throws Exception { * is created. see https://bugs.eclipse.org/bugs/show_bug.cgi?id=546710#c13 */ @Test - public void testBug546710_ConsoleCreationRaceCondition() throws Exception { + public void testBug546710_ConsoleCreationRaceCondition(TestInfo testInfo) throws Exception { final ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); for (ILaunch existingLaunch : launchManager.getLaunches()) { assertTrue("Found existing not terminated launch. This should not happen and can interfere this test. Check for leakages in previous run tests.", existingLaunch.isTerminated()); @@ -114,7 +117,7 @@ public void testBug546710_ConsoleCreationRaceCondition() throws Exception { prefMemento.setValue(DebugUIPlugin.getDefault().getPreferenceStore(), IDebugUIConstants.PREF_AUTO_REMOVE_OLD_LAUNCHES, true); // Stop the JobManager to reliable trigger the tested race // condition. - TestUtil.waitForJobs(name.getMethodName(), ProcessConsoleManager.class, 0, 10000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ProcessConsoleManager.class, 0, 10000); Job.getJobManager().suspend(); launchManager.addLaunch(process1.getLaunch()); launchManager.addLaunch(process2.getLaunch()); @@ -122,7 +125,7 @@ public void testBug546710_ConsoleCreationRaceCondition() throws Exception { Job.getJobManager().resume(); } - TestUtil.waitForJobs(name.getMethodName(), ProcessConsoleManager.class, 0, 10000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ProcessConsoleManager.class, 0, 10000); ProcessConsoleManager processConsoleManager = DebugUIPlugin.getDefault().getProcessConsoleManager(); ILaunch[] launches = launchManager.getLaunches(); Set openConsoles = new HashSet<>(); @@ -143,7 +146,7 @@ public void testBug546710_ConsoleCreationRaceCondition() throws Exception { assertThat(removeAction).matches(ConsoleRemoveAllTerminatedAction::isEnabled, "is enabled"); } removeAction.run(); - TestUtil.waitForJobs(name.getMethodName(), ProcessConsoleManager.class, 0, 10000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ProcessConsoleManager.class, 0, 10000); assertNull("First console not removed.", processConsoleManager.getConsole(process1)); assertNull("Second console not removed.", processConsoleManager.getConsole(process1)); } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java index b2885ff4e49..e58ab9b85bb 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java @@ -55,7 +55,7 @@ import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.views.console.ProcessConsole; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.launching.LaunchConfigurationTests; import org.eclipse.debug.ui.IDebugUIConstants; @@ -70,14 +70,17 @@ import org.eclipse.ui.console.IOConsole; import org.eclipse.ui.console.IOConsoleInputStream; import org.eclipse.ui.internal.console.ConsoleManager; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the ProcessConsole. */ -public class ProcessConsoleTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ProcessConsoleTests { /** * Log messages with severity error received while running a single test * method. @@ -94,16 +97,16 @@ public class ProcessConsoleTests extends AbstractDebugTest { /** Temporary test files created by a test. Will be deleted on teardown. */ private final ArrayList tmpFiles = new ArrayList<>(); - @Override - @Before - public void setUp() throws Exception { - super.setUp(); + private TestInfo testInfo; + + @BeforeEach + public void setUp(TestInfo testInfo) throws Exception { + this.testInfo = testInfo; loggedErrors.clear(); Platform.addLogListener(errorLogListener); } - @Override - @After + @AfterEach public void tearDown() throws Exception { Platform.removeLogListener(errorLogListener); for (File tmpFile : tmpFiles) { @@ -111,8 +114,6 @@ public void tearDown() throws Exception { } tmpFiles.clear(); - super.tearDown(); - assertThat(errorsToStrings()).as("logged errors").isEmpty(); } @@ -229,7 +230,7 @@ public void testInputReadJobCancel() throws Exception { final Class jobFamily = org.eclipse.debug.internal.ui.views.console.ProcessConsole.class; assertThat(Job.getJobManager().find(jobFamily)).as("check input read job started").hasSizeGreaterThan(0); Job.getJobManager().cancel(jobFamily); - TestUtil.waitForJobs(name.getMethodName(), ProcessConsole.class, 0, 1000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ProcessConsole.class, 0, 1000); assertThat(Job.getJobManager().find(jobFamily)).as("check input read job is canceled").isEmpty(); } finally { console.destroy(); @@ -244,9 +245,9 @@ public void testInputReadJobCancel() throws Exception { */ @Test public void testProcessTerminationNotification() throws Exception { - TestUtil.log(IStatus.INFO, name.getMethodName(), "Process terminates after Console is initialized."); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Process terminates after Console is initialized."); processTerminationTest(null, false); - TestUtil.log(IStatus.INFO, name.getMethodName(), "Process terminates before Console is initialized."); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Process terminates before Console is initialized."); processTerminationTest(null, true); } @@ -261,11 +262,11 @@ public void testProcessTerminationNotificationWithInputFile() throws Exception { assertTrue("Failed to prepare input file.", fileCreated); try { ILaunchConfigurationType launchType = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(LaunchConfigurationTests.ID_TEST_LAUNCH_TYPE); - ILaunchConfigurationWorkingCopy launchConfiguration = launchType.newInstance(null, name.getMethodName()); + ILaunchConfigurationWorkingCopy launchConfiguration = launchType.newInstance(null, testInfo.getDisplayName()); launchConfiguration.setAttribute(IDebugUIConstants.ATTR_CAPTURE_STDIN_FILE, inFile.getAbsolutePath()); - TestUtil.log(IStatus.INFO, name.getMethodName(), "Process terminates after Console is initialized."); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Process terminates after Console is initialized."); processTerminationTest(launchConfiguration, false); - TestUtil.log(IStatus.INFO, name.getMethodName(), "Process terminates before Console is initialized."); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Process terminates before Console is initialized."); processTerminationTest(launchConfiguration, true); } finally { inFile.delete(); @@ -284,7 +285,7 @@ public void testProcessTerminationNotificationWithInputFile() throws Exception { public void processTerminationTest(ILaunchConfiguration launchConfig, boolean terminateBeforeConsoleInitialization) throws Exception { final AtomicBoolean terminationSignaled = new AtomicBoolean(false); final Process mockProcess = new MockProcess(null, null, terminateBeforeConsoleInitialization ? 0 : -1); - final IProcess process = DebugPlugin.newProcess(new Launch(launchConfig, ILaunchManager.RUN_MODE, null), mockProcess, name.getMethodName()); + final IProcess process = DebugPlugin.newProcess(new Launch(launchConfig, ILaunchManager.RUN_MODE, null), mockProcess, testInfo.getDisplayName()); final org.eclipse.debug.internal.ui.views.console.ProcessConsole console = new org.eclipse.debug.internal.ui.views.console.ProcessConsole(process, new ConsoleColorProvider()); console.addPropertyChangeListener(event -> { if (event.getSource() == console && IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE.equals(event.getProperty())) { @@ -300,7 +301,7 @@ public void processTerminationTest(ILaunchConfiguration launchConfig, boolean te waitWhile(() -> !terminationSignaled.get(), () -> "No console complete notification received."); } finally { consoleManager.removeConsoles(new IConsole[] { console }); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 0, 10000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 0, 10000); } } @@ -418,7 +419,7 @@ private IOConsole doConsoleOutputTest(byte[] testContent, Map la process.terminate(); } consoleManager.removeConsoles(new IConsole[] { console }); - TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 0, 1000); + TestUtil.waitForJobs(testInfo.getDisplayName(), ConsoleManager.CONSOLE_JOB_FAMILY, 0, 1000); } } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java index ab271b7a4fd..f8168a834f9 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java @@ -32,20 +32,23 @@ import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.core.model.RuntimeProcess; import org.eclipse.debug.internal.core.DebugCoreMessages; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.sourcelookup.TestLaunch; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; -public class RuntimeProcessTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class RuntimeProcessTests { /** * Test behavior of {@link RuntimeProcess} if the wrapped process * terminates. */ @Test - public void testProcessTerminated() throws Exception { + public void testProcessTerminated(TestInfo testInfo) throws Exception { AtomicInteger processTerminateEvents = new AtomicInteger(); DebugPlugin.getDefault().addDebugEventListener(events -> { for (DebugEvent event : events) { @@ -65,14 +68,14 @@ public void testProcessTerminated() throws Exception { mockProcess.destroy(); TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); - TestUtil.waitForJobs(name.getMethodName(), 25, TestUtil.DEFAULT_TIMEOUT); + TestUtil.waitForJobs(testInfo.getDisplayName(), 25, TestUtil.DEFAULT_TIMEOUT); assertEquals("Wrong number of terminate events.", 1, processTerminateEvents.get()); assertEquals("RuntimeProcess reported wrong exit code.", 1, runtimeProcess.getExitValue()); } /** Test {@link RuntimeProcess} terminating the wrapped process. */ @Test - public void testTerminateProcess() throws Exception { + public void testTerminateProcess(TestInfo testInfo) throws Exception { AtomicInteger processTerminateEvents = new AtomicInteger(); DebugPlugin.getDefault().addDebugEventListener(events -> { for (DebugEvent event : events) { @@ -93,7 +96,7 @@ public void testTerminateProcess() throws Exception { assertFalse("RuntimeProcess failed to terminate wrapped process.", mockProcess.isAlive()); TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); - TestUtil.waitForJobs(name.getMethodName(), 25, TestUtil.DEFAULT_TIMEOUT); + TestUtil.waitForJobs(testInfo.getDisplayName(), 25, TestUtil.DEFAULT_TIMEOUT); assertEquals("Wrong number of terminate events.", 1, processTerminateEvents.get()); assertEquals("RuntimeProcess reported wrong exit code.", 1, runtimeProcess.getExitValue()); } @@ -216,19 +219,19 @@ public void testTerminateProcessWithDescendentExceedingTimeoutForTermination() { * for why this test fails */ @Test - @Ignore("See https://bugs.eclipse.org/bugs/show_bug.cgi?id=577189") - public void testOutputAfterDestroy() throws Exception { + @Disabled("See https://bugs.eclipse.org/bugs/show_bug.cgi?id=577189") + public void testOutputAfterDestroy(TestInfo testInfo) throws Exception { MockProcess proc = new MockProcess(); IProcess iProc = new RuntimeProcess(new TestLaunch(), proc, "foo", Collections.emptyMap()); iProc.terminate(); String str = iProc.getStreamsProxy().getOutputStreamMonitor().getContents(); - TestUtil.log(IStatus.INFO, name.getMethodName(), "Stream result: "); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Stream result: "); for (int i = 0; i < str.length(); i += 100) { - TestUtil.log(IStatus.INFO, name.getMethodName(), str.substring(i, Math.min(i + 100, str.length()))); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), str.substring(i, Math.min(i + 100, str.length()))); } - TestUtil.log(IStatus.INFO, name.getMethodName(), "Stream done."); + TestUtil.log(IStatus.INFO, testInfo.getDisplayName(), "Stream done."); // Make sure that the inputstream (process's stdout) has been fully read // and is at EOF @SuppressWarnings("resource") diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/StreamsProxyTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/StreamsProxyTests.java index 571da15c6a7..6795a794022 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/StreamsProxyTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/StreamsProxyTests.java @@ -20,13 +20,15 @@ import java.util.Collections; import org.eclipse.debug.internal.core.StreamsProxy; -import org.eclipse.debug.tests.AbstractDebugTest; -import org.junit.Test; +import org.eclipse.debug.tests.DebugTestExtension; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the {@link StreamsProxy}. */ -public class StreamsProxyTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class StreamsProxyTests { /** * Test console receiving UTF-8 output from process where two-byte UTF-8 diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/TextConsoleViewerTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/TextConsoleViewerTest.java index 696bc6357e0..e332d53d72a 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/TextConsoleViewerTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/TextConsoleViewerTest.java @@ -22,17 +22,19 @@ import java.util.ArrayList; import java.util.List; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.graphics.Color; import org.eclipse.ui.console.TextConsoleViewer; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Not really a test for {@link TextConsoleViewer} yet since it only test one * private method of it. */ -public class TextConsoleViewerTest extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class TextConsoleViewerTest { /** * Test override of existing styles with a new style. Typically used to diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/expressions/ExpressionManagerTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/expressions/ExpressionManagerTests.java index 3c9aede289a..a6872b2e02f 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/expressions/ExpressionManagerTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/expressions/ExpressionManagerTests.java @@ -29,14 +29,16 @@ import org.eclipse.debug.core.model.IWatchExpression; import org.eclipse.debug.internal.core.ExpressionManager; import org.eclipse.debug.internal.core.IExpressionsListener2; -import org.eclipse.debug.tests.AbstractDebugTest; -import org.junit.After; -import org.junit.Test; +import org.eclipse.debug.tests.DebugTestExtension; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests expression manager and listener call backs */ -public class ExpressionManagerTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ExpressionManagerTests { static class SinlgeListener implements IExpressionListener { @@ -129,12 +131,10 @@ protected IExpressionManager getManager() { return DebugPlugin.getDefault().getExpressionManager(); } - @Override - @After + @AfterEach public void tearDown() throws Exception { // remove all expressions from the manager getManager().removeExpressions(getManager().getExpressions()); - super.tearDown(); } /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AbstractLaunchTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AbstractLaunchTest.java index 892283704ea..f143c8694d9 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AbstractLaunchTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AbstractLaunchTest.java @@ -21,12 +21,11 @@ import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager; -import org.eclipse.debug.tests.AbstractDebugTest; /** * Common function for launch related tests. */ -public abstract class AbstractLaunchTest extends AbstractDebugTest { +public abstract class AbstractLaunchTest { /** * Returns the launch manager. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AcceleratorSubstitutionTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AcceleratorSubstitutionTests.java index 04f1c94595d..bc79570a4df 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AcceleratorSubstitutionTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/AcceleratorSubstitutionTests.java @@ -16,8 +16,9 @@ import static org.junit.Assert.assertEquals; import org.eclipse.debug.internal.ui.DebugUIPlugin; -import org.eclipse.debug.tests.AbstractDebugTest; -import org.junit.Test; +import org.eclipse.debug.tests.DebugTestExtension; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests accelerator adjustments for DBCS languages. @@ -25,7 +26,8 @@ * * @since 3.3 */ -public class AcceleratorSubstitutionTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class AcceleratorSubstitutionTests { /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/ArgumentParsingTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/ArgumentParsingTests.java index 63a27d1477a..997d94a2122 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/ArgumentParsingTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/ArgumentParsingTests.java @@ -31,15 +31,17 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.URIUtil; import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.osgi.service.environment.Constants; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests {@link org.eclipse.debug.core.DebugPlugin#parseArguments(String)} and * {@link org.eclipse.debug.core.DebugPlugin#renderArguments(String[], int[])}. */ -public class ArgumentParsingTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ArgumentParsingTests { private void execute1Arg(String cmdLine) throws Exception { execute1Arg(cmdLine, cmdLine); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java index 7fed5aeb080..49c67f23367 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java @@ -84,7 +84,7 @@ import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.osgi.framework.Bundle; import org.osgi.service.prefs.Preferences; diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java index a8ccf2032f0..41823b25366 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java @@ -26,9 +26,10 @@ import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.internal.ui.launchConfigurations.LaunchHistory; import org.eclipse.debug.ui.IDebugUIConstants; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; /** * Test the launch history favorites get updated properly as configurations as @@ -58,25 +59,21 @@ private LaunchHistory getDebugLaunchHistory() { return getLaunchConfigurationManager().getLaunchHistory(IDebugUIConstants.ID_DEBUG_LAUNCH_GROUP); } - @Override - @Before - public void setUp() throws Exception { - super.setUp(); + @BeforeEach + public void setUp(TestInfo testInfo) throws Exception { // clear the favorites getRunLaunchHistory().setFavorites(new ILaunchConfiguration[0]); getDebugLaunchHistory().setFavorites(new ILaunchConfiguration[0]); - fConfig = getLaunchConfiguration(name.getMethodName()); + fConfig = getLaunchConfiguration(testInfo.getDisplayName()); } - @Override - @After + @AfterEach public void tearDown() throws Exception { // delete the configuration used during this test ILaunchConfiguration configuration = getLaunchConfiguration(); if (configuration.exists()) { configuration.delete(); } - super.tearDown(); } /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchGroupTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchGroupTests.java index fd061f96636..49ff8588033 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchGroupTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchGroupTests.java @@ -52,9 +52,10 @@ import org.eclipse.debug.internal.ui.launchConfigurations.LaunchHistory; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.ui.IDebugUIConstants; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; public class LaunchGroupTests extends AbstractLaunchTest { @@ -80,18 +81,14 @@ public void launchAdded(ILaunch launch) { } }; - @Override - @Before + @BeforeEach public void setUp() throws Exception { - super.setUp(); - // reset count launchCount.set(0); } - @Override - @After - public void tearDown() throws Exception { + @AfterEach + public void tearDown(TestInfo testInfo) throws Exception { // make sure listener is removed getLaunchManager().removeLaunchListener(lcListener); ILaunch[] launches = getLaunchManager().getLaunches(); @@ -105,10 +102,9 @@ public void tearDown() throws Exception { launch.terminate(); } } catch (Exception e) { - TestUtil.log(IStatus.ERROR, name.getMethodName(), "Error terminating launch: " + launch, e); + TestUtil.log(IStatus.ERROR, testInfo.getDisplayName(), "Error terminating launch: " + launch, e); } } - super.tearDown(); } private ILaunchConfiguration createLaunchGroup(String groupName, GroupLaunchElement... children) throws CoreException { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchHistoryTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchHistoryTests.java index 2bfad4e7155..f28177bda97 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchHistoryTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchHistoryTests.java @@ -27,8 +27,8 @@ import org.eclipse.debug.internal.ui.launchConfigurations.LaunchHistory; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.preference.PreferenceMemento; -import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; /** * Test the utilization of launch histories: sizing, ordering, completeness and correctness @@ -44,7 +44,7 @@ public class LaunchHistoryTests extends AbstractLaunchTest { private final PreferenceMemento prefMemento = new PreferenceMemento(); - @After + @AfterEach public void restorePreferences() { prefMemento.resetPreferences(); } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchManagerTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchManagerTests.java index 7c4e305ff5d..139f0afaae0 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchManagerTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchManagerTests.java @@ -41,7 +41,7 @@ import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Shell; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchTests.java index f7f2eff48e3..767de923458 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchTests.java @@ -24,7 +24,8 @@ import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; -import java.util.Collections; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ConcurrentModificationException; import java.util.List; import java.util.Locale; @@ -46,10 +47,10 @@ import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IDisconnect; import org.eclipse.debug.core.model.IProcess; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.io.TempDir; /** * Tests for the {@link Launch} class @@ -75,11 +76,11 @@ public class LaunchTests extends AbstractLaunchTest { private Runnable readIsDisconnectedTask; private Runnable writeProcessesTask; private Runnable writeDebugTargetsTask; + private TestInfo testInfo; - @Override - @Before - public void setUp() throws Exception { - super.setUp(); + @BeforeEach + public void setUp(TestInfo testInfo) throws Exception { + this.testInfo = testInfo; final Launch launch = new Launch(null, ILaunchManager.RUN_MODE, null); handler = (proxy, method, args) -> { @@ -153,17 +154,18 @@ public void testDisconnectedAndWriteProcesses() throws Exception { assertTrue(testExecution(readIsDisconnectedTask, writeProcessesTask)); } - @ClassRule - public static TemporaryFolder tempFolder = new TemporaryFolder(); - @Test - public void testProcessLaunchWithLongWorkingDirectory() throws CoreException, IOException { + public void testProcessLaunchWithLongWorkingDirectory(@TempDir Path tempDir) throws CoreException, IOException { assumeTrue(Platform.OS.isWindows()); - int rootLength = tempFolder.getRoot().toString().length(); + int rootLength = tempDir.toAbsolutePath().toString().length(); String subPathElementsName = "subfolder-with-relatively-long-name"; - String[] segments = Collections.nCopies((LONG_PATH_LENGTH_TARGET - rootLength) / subPathElementsName.length(), subPathElementsName).toArray(String[]::new); - File workingDirectory = tempFolder.newFolder(segments); + Path folder = tempDir; + int segmentsToWrite = (LONG_PATH_LENGTH_TARGET - rootLength) / subPathElementsName.length(); + for (int i = 0; i < segmentsToWrite; i++) { + folder = folder.resolve(subPathElementsName); + } + File workingDirectory = Files.createDirectories(folder).toFile(); assertTrue(workingDirectory.toString().length() > WINDOWS_MAX_PATH); // Just launch any process in a directory with a path longer than @@ -173,13 +175,17 @@ public void testProcessLaunchWithLongWorkingDirectory() throws CoreException, IO } @Test - public void testProcessLaunchWithLongExecutablePath() throws CoreException, IOException { + public void testProcessLaunchWithLongExecutablePath(@TempDir Path tempDir) throws CoreException, IOException { assumeTrue(Platform.OS.isWindows()); - int rootLength = tempFolder.getRoot().toString().length(); + int rootLength = tempDir.toAbsolutePath().toString().length(); String subPathElementsName = "another-one-with-a-long-path-name-2"; - String[] segments = Collections.nCopies((LONG_PATH_LENGTH_TARGET - rootLength) / subPathElementsName.length(), subPathElementsName).toArray(String[]::new); - File workingDirectory = tempFolder.newFolder(segments); + Path folder = tempDir; + int segmentsToWrite = (LONG_PATH_LENGTH_TARGET - rootLength) / subPathElementsName.length(); + for (int i = 0; i < segmentsToWrite; i++) { + folder = folder.resolve(subPathElementsName); + } + File workingDirectory = Files.createDirectories(folder).toFile(); assertTrue(workingDirectory.toString().length() > WINDOWS_MAX_PATH); File jar = new File(workingDirectory, "dummy.jar"); try (JarOutputStream stream = new JarOutputStream(new FileOutputStream(jar))) { @@ -250,7 +256,7 @@ protected IStatus run(IProgressMonitor monitor) { } } } finally { - System.out.println(name.getMethodName() + " runs: " + runs); //$NON-NLS-1$ + System.out.println(testInfo.getDisplayName() + " runs: " + runs); //$NON-NLS-1$ job.cancel(); } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/RefreshTabTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/RefreshTabTests.java index 10fd6501998..f6437ba9e2e 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/RefreshTabTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/RefreshTabTests.java @@ -39,7 +39,7 @@ import org.eclipse.ui.IWorkbenchPartSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests the refresh tab. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/logicalstructure/LogicalStructureCacheTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/logicalstructure/LogicalStructureCacheTest.java index ed58260c864..3c13f6cfd8e 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/logicalstructure/LogicalStructureCacheTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/logicalstructure/LogicalStructureCacheTest.java @@ -13,15 +13,19 @@ *******************************************************************************/ package org.eclipse.debug.tests.logicalstructure; -import static org.junit.Assert.*; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILogicalStructureType; import org.eclipse.debug.core.model.IValue; import org.eclipse.debug.internal.ui.views.variables.LogicalStructureCache; -import org.eclipse.debug.tests.AbstractDebugTest; -import org.junit.Test; +import org.eclipse.debug.tests.DebugTestExtension; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; -public class LogicalStructureCacheTest extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class LogicalStructureCacheTest { @Test public void testReleaseValuesOnClear() throws Exception { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/sourcelookup/SourceLookupFacilityTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/sourcelookup/SourceLookupFacilityTests.java index 399e53b5bb2..7365f02063d 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/sourcelookup/SourceLookupFacilityTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/sourcelookup/SourceLookupFacilityTests.java @@ -28,16 +28,18 @@ import org.eclipse.debug.core.model.IStackFrame; import org.eclipse.debug.internal.ui.sourcelookup.SourceLookupFacility; import org.eclipse.debug.internal.ui.sourcelookup.SourceLookupResult; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.ui.sourcelookup.ISourceLookupResult; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests {@link SourceLookupFacility} * * @since 3.9.200 */ -public class SourceLookupFacilityTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class SourceLookupFacilityTests { /** * {@link IStackFrame} to be reused diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/statushandlers/StatusHandlerTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/statushandlers/StatusHandlerTests.java index 9e138b5f8e6..aad449a84c5 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/statushandlers/StatusHandlerTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/statushandlers/StatusHandlerTests.java @@ -24,14 +24,16 @@ import org.eclipse.debug.core.IStatusHandler; import org.eclipse.debug.internal.core.IInternalDebugCoreConstants; import org.eclipse.debug.internal.core.Preferences; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestsPlugin; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests status handlers */ -public class StatusHandlerTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class StatusHandlerTests { /** * Status for which a handler is registered. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/stepfilters/StepFiltersTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/stepfilters/StepFiltersTests.java index 9ecba714c07..a89e8a02179 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/stepfilters/StepFiltersTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/stepfilters/StepFiltersTests.java @@ -17,13 +17,15 @@ import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.model.IStepFilter; -import org.eclipse.debug.tests.AbstractDebugTest; -import org.junit.Test; +import org.eclipse.debug.tests.DebugTestExtension; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests step filters */ -public class StepFiltersTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class StepFiltersTests { @Test public void testStepFitlersExtension_01() { IStepFilter[] stepFilters = DebugPlugin.getStepFilters("com.example.lalala.model"); //$NON-NLS-1$ diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/LaunchConfigurationTabGroupViewerTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/LaunchConfigurationTabGroupViewerTest.java index b5cb36a97a2..615f0724f55 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/LaunchConfigurationTabGroupViewerTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/LaunchConfigurationTabGroupViewerTest.java @@ -30,8 +30,8 @@ import org.eclipse.debug.ui.ILaunchConfigurationTab; import org.eclipse.debug.ui.ILaunchConfigurationTabGroup; import org.eclipse.swt.widgets.Display; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class LaunchConfigurationTabGroupViewerTest { @@ -44,7 +44,7 @@ private static interface ThrowingRunnable { private ILaunchConfigurationType fLaunchConfigurationType; private LaunchConfigurationsDialog fLaunchConfigurationsDialog; - @Before + @BeforeEach public void createDialog() throws CoreException { fLaunchConfigurationType = getLaunchManager().getLaunchConfigurationType(LAUNCH_CONFIG_TYPE_ID); ILaunchConfigurationTabGroup tabGroup = getLaunchConfigurationTabGroup(fLaunchConfigurationType); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/VariableValueEditorManagerTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/VariableValueEditorManagerTests.java index bbb07de0149..d9da8ca6884 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/VariableValueEditorManagerTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/ui/VariableValueEditorManagerTests.java @@ -16,14 +16,16 @@ import static org.junit.Assert.assertEquals; import org.eclipse.debug.internal.ui.VariableValueEditorManager; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.ui.actions.IVariableValueEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests status handlers */ -public class VariableValueEditorManagerTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class VariableValueEditorManagerTests { @Test public void testHighestPriorityEditorUsed() { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/MemoryRenderingTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/MemoryRenderingTests.java index 6be23ba1bd5..002d3622ec3 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/MemoryRenderingTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/MemoryRenderingTests.java @@ -20,17 +20,19 @@ import static org.junit.Assert.assertTrue; import org.eclipse.debug.core.model.IMemoryBlock; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener; import org.eclipse.debug.ui.memory.IMemoryRenderingManager; import org.eclipse.debug.ui.memory.IMemoryRenderingType; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests memory rendering manager */ -public class MemoryRenderingTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class MemoryRenderingTests { @Test public void testRenderingTypes() { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/TableRenderingTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/TableRenderingTests.java index 37ef9950d92..9e0d57163c8 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/TableRenderingTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/view/memory/TableRenderingTests.java @@ -26,7 +26,7 @@ import org.eclipse.debug.internal.ui.views.memory.renderings.RenderingsUtil; import org.eclipse.debug.internal.ui.views.memory.renderings.SignedIntegerRendering; import org.eclipse.debug.internal.ui.views.memory.renderings.UnsignedIntegerRendering; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests for translation of memory bytes between in-memory representation and UI diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java index 6b5355fcf4a..2b61f754ec5 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java @@ -16,26 +16,26 @@ import java.util.function.Supplier; import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; -public abstract class AbstractViewerModelTest extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public abstract class AbstractViewerModelTest { Display fDisplay; Shell fShell; IInternalTreeModelViewer fViewer; TestModelUpdatesListener fListener; - @Override - @Before + @BeforeEach public void setUp() throws Exception { - super.setUp(); fDisplay = PlatformUI.getWorkbench().getDisplay(); fShell = new Shell(fDisplay); fShell.setMaximized(true); @@ -46,8 +46,7 @@ public void setUp() throws Exception { TestUtil.processUIEvents(); } - @Override - @After + @AfterEach public void tearDown() throws Exception { fListener.dispose(); fViewer.getPresentationContext().dispose(); @@ -55,7 +54,6 @@ public void tearDown() throws Exception { // Close the shell and exit. fShell.close(); TestUtil.processUIEvents(); - super.tearDown(); } abstract protected IInternalTreeModelViewer createViewer(Display display, Shell shell); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java index f0736277ffd..8e035c3a53f 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java @@ -21,7 +21,7 @@ import org.eclipse.debug.tests.viewer.model.TestModel.TestElement; import org.eclipse.jface.viewers.TreePath; import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests which verify the check box support. This test is very similar to the diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ChildrenUpdateTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ChildrenUpdateTests.java index a39ceebe258..55a7457ec44 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ChildrenUpdateTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ChildrenUpdateTests.java @@ -28,7 +28,7 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IStateUpdateListener; import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener; import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -38,14 +38,16 @@ import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Display; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests coalescing of children update requests. * * @since 3.3 */ -public class ChildrenUpdateTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class ChildrenUpdateTests { class BogusModelContentProvider extends TreeModelContentProvider { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java index 7b8e2060eb8..789898d5f86 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java @@ -26,7 +26,7 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; import org.eclipse.debug.internal.ui.viewers.model.provisional.PresentationContext; import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.viewer.model.TestModel.TestElement; import org.eclipse.jface.resource.ImageDescriptor; @@ -41,32 +41,30 @@ import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.XMLMemento; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests to verify that the viewer properly handles initial columns width. */ -public class ColumnPresentationTests extends AbstractDebugTest implements ITestModelUpdatesListenerConstants { +@ExtendWith(DebugTestExtension.class) +public class ColumnPresentationTests implements ITestModelUpdatesListenerConstants { private Display fDisplay; private Shell fShell; private TreeModelViewer fViewer; private TestModelUpdatesListener fListener; private boolean fResized = false; - @Override - @Before + @BeforeEach public void setUp() throws Exception { - super.setUp(); createViewer(); } - @Override - @After + @AfterEach public void tearDown() throws Exception { destroyViewer(); - super.tearDown(); } void createViewer() { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java index 7a0da8895f3..1ac7b44e040 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java @@ -33,7 +33,8 @@ import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.viewer.model.TestModel.TestElement; import org.eclipse.jface.viewers.TreePath; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; /** * Tests that verify that the viewer property retrieves all the content @@ -145,7 +146,7 @@ public void update(ILabelUpdate[] updates) { * See bug 210027 */ @Test - public void testLabelUpdatesCompletedOutOfSequence1() throws Exception { + public void testLabelUpdatesCompletedOutOfSequence1(TestInfo testInfo) throws Exception { TestModelWithCapturedUpdates model = new TestModelWithCapturedUpdates(); model.fCaptureLabelUpdates = true; @@ -157,7 +158,7 @@ public void testLabelUpdatesCompletedOutOfSequence1() throws Exception { // Set input into the view to update it, but block children updates. // Wait for view to start retrieving content. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); List firstUpdates = model.fCapturedUpdates; @@ -201,7 +202,7 @@ private Supplier createModelErrorMessage(TestModelWithCapturedUpdates mo * See bug 210027 */ @Test - public void testLabelUpdatesCompletedOutOfSequence2() throws Exception { + public void testLabelUpdatesCompletedOutOfSequence2(TestInfo testInfo) throws Exception { TestModelWithCapturedUpdates model = new TestModelWithCapturedUpdates(); model.fCaptureLabelUpdates = true; @@ -213,7 +214,7 @@ public void testLabelUpdatesCompletedOutOfSequence2() throws Exception { // Set input into the view to update it, but block children updates. // Wait for view to start retrieving content. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); List firstUpdates = model.fCapturedUpdates; model.fCapturedUpdates = Collections.synchronizedList(new ArrayList<>(2)); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java index 27f252dd537..a4f1ce0b63c 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java @@ -30,7 +30,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ITreeSelection; import org.eclipse.jface.viewers.TreePath; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests to verify that the viewer property retrieves and processes the diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java index dcae9b73c7b..c63297924e7 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java @@ -32,7 +32,9 @@ import org.eclipse.jface.viewers.TreeSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; /** * Tests that verify that the viewer property retrieves all the content @@ -42,6 +44,13 @@ */ abstract public class FilterTests extends AbstractViewerModelTest implements ITestModelUpdatesListenerConstants { + private TestInfo testInfo; + + @BeforeEach + void storeTestInfo(TestInfo info) { + this.testInfo = info; + } + @Override protected TestModelUpdatesListener createListener(IInternalTreeModelViewer viewer) { return new TestModelUpdatesListener(viewer, true, true); @@ -213,7 +222,7 @@ private void doTestReplacedUnrealizedFilteredElement(ViewerFilter[] filters) thr // Populate the view (all elements containing a "2" will be filtered out. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); @@ -262,7 +271,7 @@ private void doTestRefreshUnrealizedFilteredElement(ViewerFilter[] filters) thro // Populate the view (all elements containing a "2" will be filtered out. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); @@ -318,7 +327,7 @@ private void doTestRefreshToUnfilterElements(ViewerFilter[] filters) throws Exce // Populate the view (all elements containing a "2" will be filtered out. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTransformTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTransformTests.java index e1047b4fced..9b08527f52f 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTransformTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTransformTests.java @@ -20,16 +20,18 @@ import static org.junit.Assert.fail; import org.eclipse.debug.internal.ui.viewers.model.FilterTransform; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.jface.viewers.TreePath; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Tests the virtual viewer's filter transform * @since 3.3 */ -public class FilterTransformTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class FilterTransformTests { public Object root; public Object element0; @@ -48,10 +50,8 @@ public class FilterTransformTests extends AbstractDebugTest { * and elements 0, 2, 3, 6, 7 are filtered. Elements * 1, 4, 5 are visible. */ - @Override - @Before + @BeforeEach public void setUp() throws Exception { - super.setUp(); transform = new FilterTransform(); root = new Object(); element0 = new Object(); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerDeltaTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerDeltaTests.java index 6e131c8aecf..4a1a8b7e5a7 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerDeltaTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerDeltaTests.java @@ -20,7 +20,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * @since 3.6 diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java index 22f5abecd1c..b22f9f6ceaa 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java @@ -32,7 +32,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * @since 3.6 diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java index b96cf9bc0e2..ca34c24a477 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java @@ -24,7 +24,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.viewers.TreeSelection; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests that verify that the viewer property retrieves all the content diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java index c68ed147d7c..28b82e94d2e 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java @@ -26,8 +26,9 @@ import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.test.performance.Performance; import org.eclipse.test.performance.PerformanceMeter; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; /** * Tests to measure the performance of the viewer updates. @@ -36,8 +37,10 @@ abstract public class PerformanceTests extends AbstractViewerModelTest implement protected VisibleVirtualItemValidator fVirtualItemValidator; + private TestInfo testInfo; + public String getDefaultScenarioId() { - return this.getClass().getName() + '#' + name.getMethodName() + "()"; //$NON-NLS-1$ + return this.getClass().getName() + '#' + testInfo.getDisplayName() + "()"; //$NON-NLS-1$ } @Override @@ -45,10 +48,9 @@ protected TestModelUpdatesListener createListener(IInternalTreeModelViewer viewe return new TestModelUpdatesListener(viewer, false, false); } - @Override - @Before - public void setUp() throws Exception { - super.setUp(); + @BeforeEach + public void setUp(TestInfo testInfo) throws Exception { + this.testInfo = testInfo; fVirtualItemValidator = new VisibleVirtualItemValidator(0, Integer.MAX_VALUE); } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java index c5ed72b6254..ec7e04c599f 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java @@ -36,7 +36,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests to verify that the viewer property updates when created diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PresentationContextTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PresentationContextTests.java index 13c3a04c77c..704d8f5b34e 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PresentationContextTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PresentationContextTests.java @@ -18,17 +18,19 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.debug.internal.ui.viewers.model.provisional.PresentationContext; -import org.eclipse.debug.tests.AbstractDebugTest; +import org.eclipse.debug.tests.DebugTestExtension; import org.eclipse.ui.IPersistableElement; import org.eclipse.ui.XMLMemento; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; /** * Test the serialization of presentation context properties. * * @since 3.4 */ -public class PresentationContextTests extends AbstractDebugTest { +@ExtendWith(DebugTestExtension.class) +public class PresentationContextTests { /** * Tests saving and restoring presentation context properties. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java index 7d71fc5fbce..fe63e74118e 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java @@ -31,7 +31,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.viewers.TreeSelection; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests to verify that the viewer properly handles selection changes. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java index 30447cdc73b..e0f89aa949b 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java @@ -33,7 +33,8 @@ import org.eclipse.jface.viewers.ITreeSelection; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.viewers.TreeSelection; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; /** * Tests to verify that the viewer can save and restore correctly the expansion @@ -664,7 +665,7 @@ public void testPreserveExpandedOnContentStress() throws Exception { } @Test - public void testPreserveLargeModelOnContent() throws Exception { + public void testPreserveLargeModelOnContent(TestInfo testInfo) throws Exception { //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer); TestModel model = alternatingSubsreesModel(100); @@ -675,7 +676,7 @@ public void testPreserveLargeModelOnContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); expandAlternateElements(fListener, model, false); @@ -1054,7 +1055,7 @@ public void testSaveAndRestoreInputInstanceEquals() throws Exception { } @Test - public void testSaveAndRestoreLarge() throws Exception { + public void testSaveAndRestoreLarge(TestInfo testInfo) throws Exception { //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer); TestModel model = alternatingSubsreesModel(100); @@ -1065,7 +1066,7 @@ public void testSaveAndRestoreLarge() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); expandAlternateElements(fListener, model, false); @@ -1084,7 +1085,7 @@ public void testSaveAndRestoreLarge() throws Exception { fListener.addStateUpdates(getInternalViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Set the viewer input back to the model. When view updates are complete @@ -1092,7 +1093,7 @@ public void testSaveAndRestoreLarge() throws Exception { // Note: disable redundant updates because the reveal delta triggers one. fListener.reset(); fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Validate data (only select visible elements). @@ -1114,7 +1115,7 @@ public void testSaveAndRestoreLarge() throws Exception { * the saved state delta once all the elements are visible. */ @Test - public void testSaveAndRestorePartialStateLarge() throws Exception { + public void testSaveAndRestorePartialStateLarge(TestInfo testInfo) throws Exception { //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer); TestModel model = alternatingSubsreesModel(100); @@ -1125,7 +1126,7 @@ public void testSaveAndRestorePartialStateLarge() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); expandAlternateElements(fListener, model, false); @@ -1144,7 +1145,7 @@ public void testSaveAndRestorePartialStateLarge() throws Exception { fListener.addStateUpdates(getInternalViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); @@ -1158,7 +1159,7 @@ public void testSaveAndRestorePartialStateLarge() throws Exception { // Note: disable redundant updates because the reveal delta triggers one. fListener.reset(); fViewer.setInput(model.getRootElement()); - TestUtil.waitForJobs(name.getMethodName(), 300, 5000); + TestUtil.waitForJobs(testInfo.getDisplayName(), 300, 5000); // MONITOR FOR THE STATE RESTORE TO COMPLETE waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java index be41de2194b..cbf331483f4 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java @@ -31,7 +31,7 @@ import org.eclipse.debug.tests.viewer.model.TestModel.TestElement; import org.eclipse.jface.viewers.TreePath; import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests to verify that the viewer property updates following changes in the diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/VirtualViewerLazyModeTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/VirtualViewerLazyModeTests.java index fdc8acbaadc..824b3522f07 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/VirtualViewerLazyModeTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/VirtualViewerLazyModeTests.java @@ -20,7 +20,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests which verify the operation of the virtual viewer in the lazy mode.