diff options
Diffstat (limited to 'common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java')
-rw-r--r-- | common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java deleted file mode 100644 index 10ac313cc0..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.ArrayList; -import java.util.Vector; -import java.util.concurrent.ThreadFactory; - -import org.eclipse.jpt.common.utility.internal.CompositeException; - -import junit.framework.TestCase; - -/** - * This test case helps simplify the testing of multi-threaded code. - */ -@SuppressWarnings("nls") -public abstract class MultiThreadedTestCase - extends TestCase -{ - private final ArrayList<Thread> threads = new ArrayList<Thread>(); - /* private */ final Vector<Throwable> exceptions = new Vector<Throwable>(); - - /** - * The default "tick" is one second. - * Specify the appropriate system property to override. - */ - public static final String TICK_SYSTEM_PROPERTY_NAME = "org.eclipse.jpt.common.utility.tests.tick"; - public static final long TICK = Long.getLong(TICK_SYSTEM_PROPERTY_NAME, 1000).longValue(); - public static final long TWO_TICKS = 2 * TICK; - public static final long THREE_TICKS = 3 * TICK; - - /** - * Default constructor. - */ - public MultiThreadedTestCase() { - super(); - } - - /** - * Named constructor. - */ - public MultiThreadedTestCase(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - } - - /** - * Stop all the threads constructed during the test case. - * If any exceptions were thrown by the threads, re-throw them here. - */ - @Override - protected void tearDown() throws Exception { - for (Thread thread : this.threads) { - if (thread.isAlive()) { - throw new IllegalStateException("thread is still alive: " + thread); - } - } - if ( ! this.exceptions.isEmpty()) { - throw new CompositeException(this.exceptions); - } - TestTools.clear(this); - super.tearDown(); - } - - protected Thread buildThread(Runnable runnable) { - return this.buildThread(runnable, null); - } - - protected Thread buildThread(Runnable runnable, String name) { - Thread thread = new Thread(new RunnableWrapper(runnable)); - if (name != null) { - thread.setName(name); - } - this.threads.add(thread); - return thread; - } - - protected ThreadFactory buildThreadFactory() { - return new TestThreadFactory(); - } - - /** - * Convenience method that handles {@link InterruptedException}. - */ - public void sleep(long millis) { - TestTools.sleep(millis); - } - - - /** - * Wrap a runnable and log any exception it throws. - */ - public class TestThreadFactory implements ThreadFactory { - public Thread newThread(Runnable r) { - return MultiThreadedTestCase.this.buildThread(r); - } - } - - /** - * Simplify runnables that execute call that throws checked exceptions. - */ - public abstract class TestRunnable implements Runnable { - public final void run() { - try { - this.run_(); - } catch (Throwable ex) { - throw new RuntimeException(ex); - } - } - protected abstract void run_() throws Throwable; - } - - /** - * Wrap a runnable and log any exception it throws. - */ - private class RunnableWrapper implements Runnable { - private final Runnable runnable; - RunnableWrapper(Runnable runnable) { - super(); - this.runnable = runnable; - } - public void run() { - try { - this.runnable.run(); - } catch (Throwable ex) { - MultiThreadedTestCase.this.exceptions.add(ex); - } - } - } -} |