diff options
| author | Simon Scholz | 2014-09-16 19:58:36 +0000 |
|---|---|---|
| committer | Lars Vogel | 2014-09-22 18:03:38 +0000 |
| commit | 35184ee92d89b073b5a487d5ce022b3b722b8af5 (patch) | |
| tree | 58e11d35acfbb94c18fc38a153e00e2394e596c0 | |
| parent | fcd08a701013187cefa73ef353b127967afd6c05 (diff) | |
| download | eclipse.platform.ui-35184ee92d89b073b5a487d5ce022b3b722b8af5.tar.gz eclipse.platform.ui-35184ee92d89b073b5a487d5ce022b3b722b8af5.tar.xz eclipse.platform.ui-35184ee92d89b073b5a487d5ce022b3b722b8af5.zip | |
Bug 443391 - [Tests] Migrate org.eclipse.ui.monitoring.tests to JUnit 4
Change-Id: I59ee24a158217f8915cfef1e38af2ab07de4e5e3
Signed-off-by: Simon Scholz <simon.scholz@vogella.com>
5 files changed, 68 insertions, 37 deletions
diff --git a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/DefaultLoggerTests.java b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/DefaultLoggerTests.java index 08b0147f08c..6b6035cecdb 100644 --- a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/DefaultLoggerTests.java +++ b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/DefaultLoggerTests.java @@ -7,10 +7,18 @@ * * Contributors: * Marcus Eng (Google) - initial API and implementation + * Simon Scholz <simon.scholz@vogella.com> - Bug 443391 *******************************************************************************/ package org.eclipse.ui.internal.monitoring; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.lang.management.ManagementFactory; +import java.lang.management.ThreadInfo; +import java.lang.management.ThreadMXBean; +import java.text.SimpleDateFormat; +import java.util.Date; import org.eclipse.core.runtime.ILogListener; import org.eclipse.core.runtime.IStatus; @@ -18,17 +26,13 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.ui.monitoring.PreferenceConstants; import org.eclipse.ui.monitoring.StackSample; import org.eclipse.ui.monitoring.UiFreezeEvent; - -import java.lang.management.ManagementFactory; -import java.lang.management.ThreadInfo; -import java.lang.management.ThreadMXBean; -import java.text.SimpleDateFormat; -import java.util.Date; +import org.junit.Before; +import org.junit.Test; /** * JUnit test for the {@link DefaultUiFreezeEventLogger}. */ -public class DefaultLoggerTests extends TestCase { +public class DefaultLoggerTests { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss.SSS"); private static final String RUNTIME_ID = "org.eclipse.core.runtime"; private static final long TIME = 120000000; @@ -37,7 +41,7 @@ public class DefaultLoggerTests extends TestCase { private ThreadInfo thread; private IStatus loggedStatus; - @Override + @Before public void setUp() { logger = new DefaultUiFreezeEventLogger(); createLogListener(); @@ -63,7 +67,8 @@ public class DefaultLoggerTests extends TestCase { return event; } - public void testLogEvent() throws Exception { + @Test + public void testLogEvent() { UiFreezeEvent event = createFreezeEvent(); String expectedTime = dateFormat.format(new Date(TIME)); String expectedHeader = diff --git a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadManualTests.java b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadManualTests.java index 813a2fd2157..70cca3541e3 100644 --- a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadManualTests.java +++ b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadManualTests.java @@ -9,9 +9,14 @@ * Steve Foreman (Google) - initial API and implementation * Marcus Eng (Google) * Sergey Prigogin (Google) + * Simon Scholz <simon.scholz@vogella.com> - Bug 443391 *******************************************************************************/ package org.eclipse.ui.internal.monitoring; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.lang.management.ManagementFactory; import java.lang.management.ThreadMXBean; import java.util.ArrayDeque; @@ -23,18 +28,19 @@ import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import junit.framework.TestCase; - import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.monitoring.PreferenceConstants; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; /** * A test that measures performance overhead of {@link EventLoopMonitorThread}. * This test is not included into {@link MonitoringTestSuite} due to its low reliability * and the amount of time it takes. */ -public class EventLoopMonitorThreadManualTests extends TestCase { +public class EventLoopMonitorThreadManualTests { /** Change to {@code true} to enable printing of detailed information to the console. */ private static final boolean PRINT_TO_CONSOLE = false; @@ -101,13 +107,13 @@ public class EventLoopMonitorThreadManualTests extends TestCase { */ protected static final long PN63_GENERATOR_POLY = (3L << 62) | 1; - @Override + @Before public void setUp() { getPreferences().setValue(PreferenceConstants.MONITORING_ENABLED, false); } - @Override - public void tearDown() throws Exception { + @After + public void tearDown() { getPreferences().setToDefault(PreferenceConstants.MONITORING_ENABLED); } @@ -150,7 +156,8 @@ public class EventLoopMonitorThreadManualTests extends TestCase { * Performance test for {@link EventLoopMonitorThread}. This test verifies that the monitoring * doesn't interfere too much with the real work being done. */ - public void testFixedWork() throws Exception { + @Test + public void testFixedWork() throws Exception{ final Display display = Display.getDefault(); assertNotNull("No SWT Display available.", display); diff --git a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadTests.java b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadTests.java index 5a58e4e42b0..8766fde8da2 100644 --- a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadTests.java +++ b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadTests.java @@ -9,22 +9,28 @@ * Steve Foreman (Google) - initial API and implementation * Marcus Eng (Google) * Sergey Prigogin (Google) + * Simon Scholz <simon.scholz@vogella.com> - Bug 443391 *******************************************************************************/ package org.eclipse.ui.internal.monitoring; -import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; -import junit.framework.TestCase; +import java.util.List; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.ui.internal.monitoring.EventLoopMonitorThread.Parameters; import org.eclipse.ui.monitoring.PreferenceConstants; import org.eclipse.ui.monitoring.UiFreezeEvent; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; /** * Tests for {@link EventLoopMonitorThread} class. */ -public class EventLoopMonitorThreadTests extends TestCase { +public class EventLoopMonitorThreadTests { /** * A mock event loop monitor thread used for JUnit tests. */ @@ -74,7 +80,7 @@ public class EventLoopMonitorThreadTests extends TestCase { private static long numSleeps; private static volatile long timestamp; - @Override + @Before public void setUp() { getPreferences().setValue(PreferenceConstants.MONITORING_ENABLED, false); logger = new MockUiFreezeEventLogger(); @@ -84,7 +90,7 @@ public class EventLoopMonitorThreadTests extends TestCase { timestamp = 1; } - @Override + @After public void tearDown() throws Exception { if (monitoringThread != null) { shutdownMonitoringThread(); @@ -159,6 +165,7 @@ public class EventLoopMonitorThreadTests extends TestCase { return Math.min((int) (runningTimeMs / POLLING_RATE_MS), MIN_STACK_TRACES); } + @Test public void testStackDecimation() throws Exception { UiFreezeEvent event; @@ -219,6 +226,7 @@ public class EventLoopMonitorThreadTests extends TestCase { event.getStackTraceSamples().length); } + @Test public void testPublishPossibleDeadlock() throws Exception { monitoringThread = createTestThread(POLLING_RATE_MS * 4); monitoringThread.start(); @@ -257,6 +265,7 @@ public class EventLoopMonitorThreadTests extends TestCase { assertEquals("No more deadlock events should get logged", 1, loggedEvents.size()); } + @Test public void testPublishNoDeadlocksWhenSleeping() throws Exception { monitoringThread = createTestThread(THRESHOLD_MS); monitoringThread.start(); @@ -279,6 +288,7 @@ public class EventLoopMonitorThreadTests extends TestCase { assertTrue("No deadlock events should get logged", loggedEvents.isEmpty()); } + @Test public void testNoLoggingForSleep() throws Exception { int eventFactor = 5; monitoringThread = createTestThread(THRESHOLD_MS); @@ -295,6 +305,7 @@ public class EventLoopMonitorThreadTests extends TestCase { assertTrue("Sleeping should not trigger a long running event", loggedEvents.isEmpty()); } + @Test public void testEventLogging() throws Exception { int eventFactor = 5; long eventStartTime = 0; @@ -323,6 +334,7 @@ public class EventLoopMonitorThreadTests extends TestCase { expectedStackCount(eventStallDuration), event.getStackTraceSamples().length); } + @Test public void testNestedEventLogging() throws Exception { int eventFactor = 6; @@ -354,6 +366,7 @@ public class EventLoopMonitorThreadTests extends TestCase { expectedStackCount(eventStallDuration), event.getStackTraceSamples().length); } + @Test public void testDoublyNestedEventLogging() throws Exception { int eventFactor = 7; @@ -388,6 +401,7 @@ public class EventLoopMonitorThreadTests extends TestCase { expectedStackCount(eventStallDuration), event.getStackTraceSamples().length); } + @Test public void testSeeLongEventInContinuationAfterNestedCall() throws Exception { int eventFactor = 4; @@ -424,6 +438,7 @@ public class EventLoopMonitorThreadTests extends TestCase { expectedStackCount(eventStallDuration), event.getStackTraceSamples().length); } + @Test public void testSeeLongEventInTheMiddleOfNestedCalls() throws Exception { int eventFactor = 4; monitoringThread = createTestThread(THRESHOLD_MS); @@ -468,6 +483,7 @@ public class EventLoopMonitorThreadTests extends TestCase { expectedStackCount(eventStallDuration), event.getStackTraceSamples().length); } + @Test public void testSeeSleepInTheMiddleOfNestedCalls() throws Exception { int eventFactor = 4; monitoringThread = createTestThread(THRESHOLD_MS); @@ -505,6 +521,7 @@ public class EventLoopMonitorThreadTests extends TestCase { loggedEvents.isEmpty()); } + @Test public void testConsecutiveSleeps() throws Exception { int eventFactor = 5; long eventStartTime = 0; diff --git a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/FilterHandlerTests.java b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/FilterHandlerTests.java index e6976e5f948..250b77c7a52 100644 --- a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/FilterHandlerTests.java +++ b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/FilterHandlerTests.java @@ -9,23 +9,26 @@ * Steve Foreman (Google) - initial API and implementation * Marcus Eng (Google) * Sergey Prigogin (Google) + * Simon Scholz <simon.scholz@vogella.com> - Bug 443391 *******************************************************************************/ package org.eclipse.ui.internal.monitoring; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; import java.lang.reflect.Field; import java.util.Arrays; -import junit.framework.TestCase; - import org.eclipse.ui.monitoring.StackSample; +import org.junit.Test; /** * Tests for {@link FilterHandler} class. */ -public class FilterHandlerTests extends TestCase { +public class FilterHandlerTests { private static final String FILTER_TRACES = "org.eclipse.ui.internal.monitoring.FilterHandlerTests.createFilteredStackSamples"; private static final long THREAD_ID = Thread.currentThread().getId(); @@ -59,12 +62,14 @@ public class FilterHandlerTests extends TestCase { return createStackSamples(); } + @Test public void testUnfilteredEventLogging() throws Exception { FilterHandler filterHandler = new FilterHandler(FILTER_TRACES); StackSample[] samples = createUnfilteredStackSamples(); assertTrue(filterHandler.shouldLogEvent(samples, samples.length, THREAD_ID)); } + @Test public void testFilteredEventLogging() throws Exception { FilterHandler filterHandler = new FilterHandler(FILTER_TRACES); StackSample[] samples = createFilteredStackSamples(); diff --git a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/MonitoringTestSuite.java b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/MonitoringTestSuite.java index d395aecf20e..5ca492b708c 100644 --- a/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/MonitoringTestSuite.java +++ b/tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/MonitoringTestSuite.java @@ -7,25 +7,22 @@ * * Contributors: * Sergey Prigogin (Google) - initial API and implementation + * Simon Scholz <simon.scholz@vogella.com> - Bug 443391 *******************************************************************************/ package org.eclipse.ui.internal.monitoring; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; /** * Test suite for {@code org.eclipse.ui.monitoring} plug-in. * The tests in {@link EventLoopMonitorThreadManualTests} are not included in this * suite due to their flakiness. */ -public class MonitoringTestSuite extends TestSuite { - public static Test suite() { - return new MonitoringTestSuite(); - } - - public MonitoringTestSuite() { - addTestSuite(EventLoopMonitorThreadTests.class); - addTestSuite(FilterHandlerTests.class); - addTestSuite(DefaultLoggerTests.class); - } +@RunWith(Suite.class) +@Suite.SuiteClasses({ + EventLoopMonitorThreadTests.class, + FilterHandlerTests.class, + DefaultLoggerTests.class}) +public class MonitoringTestSuite { } |
