Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Scholz2014-09-16 19:58:36 +0000
committerLars Vogel2014-09-22 18:03:38 +0000
commit35184ee92d89b073b5a487d5ce022b3b722b8af5 (patch)
tree58e11d35acfbb94c18fc38a153e00e2394e596c0
parentfcd08a701013187cefa73ef353b127967afd6c05 (diff)
downloadeclipse.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>
-rw-r--r--tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/DefaultLoggerTests.java25
-rw-r--r--tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadManualTests.java21
-rw-r--r--tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/EventLoopMonitorThreadTests.java27
-rw-r--r--tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/FilterHandlerTests.java11
-rw-r--r--tests/org.eclipse.ui.monitoring.tests/src/org/eclipse/ui/internal/monitoring/MonitoringTestSuite.java21
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 {
}

Back to the top