blob: 8a17139c93dc62ae8564a8a898155428ae58748e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 Oakland Software and others. 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: Oakland Software (francisu@ieee.org) - initial API and
* implementation
******************************************************************************/
package org.eclipse.jface.tests.dialogs;
import junit.framework.TestCase;
import org.eclipse.core.runtime.ISafeRunnable;
import org.eclipse.jface.util.SafeRunnable;
/**
* NOTE - these tests are not really very good, in order to really test this you
* need to actually see what happens in the dialog, and therefore test it by
* hand.
*
* @since 3.4
*
*/
public class SafeRunnableErrorTest extends TestCase {
int count;
protected Thread runner() {
return new Thread(new Runnable() {
public void run() {
ISafeRunnable runnable = new SafeRunnable() {
public void run() throws Exception {
throw new RuntimeException("test exception " + ++count);
}
};
SafeRunnable.run(runnable);
}
});
}
public void testSafeRunnableHandler() {
// Just make sure that nothing bad happens when we throw here
SafeRunnable.run(new SafeRunnable() {
public void run() throws Exception {
throw new RuntimeException("test exception");
}
});
}
public void testSafeRunnableHandlerOtherThread() throws Exception {
Thread t = runner();
t.run();
t.join();
}
public void testSafeRunnableHandlerMulti() {
ISafeRunnable runnable = new SafeRunnable() {
public void run() throws Exception {
throw new RuntimeException("test exception " + ++count);
}
};
// Make sure these don't block
SafeRunnable.run(runnable);
SafeRunnable.run(runnable);
SafeRunnable.run(runnable);
assertEquals(3, count);
}
}