blob: db2b3b0df21649611367d0fd56bb4caf224029ba [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2015 IBM Corporation 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:
* IBM Corporation - initial API and implementation
* Jesper S. Møller - bug 422029: [1.8] Enable debug evaluation support for default methods
*******************************************************************************/
package org.eclipse.jdt.debug.tests;
import java.util.Enumeration;
import org.eclipse.jdt.debug.tests.eval.ArrayAllocationTests;
import org.eclipse.jdt.debug.tests.eval.ArrayAssignmentTests;
import org.eclipse.jdt.debug.tests.eval.ArrayValueTests;
import org.eclipse.jdt.debug.tests.eval.BlockStatementEvaluationTests;
import org.eclipse.jdt.debug.tests.eval.BooleanAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.BooleanOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.ByteAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.ByteOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.CharAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.CharOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.DebugShellVariableTests;
import org.eclipse.jdt.debug.tests.eval.DoubleAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.DoubleOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.FieldValueTests;
import org.eclipse.jdt.debug.tests.eval.FloatAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.FloatOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.IntAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.IntOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.Java8Tests;
import org.eclipse.jdt.debug.tests.eval.LabelTests;
import org.eclipse.jdt.debug.tests.eval.LocalVarAssignmentTests;
import org.eclipse.jdt.debug.tests.eval.LocalVarValueTests;
import org.eclipse.jdt.debug.tests.eval.LongAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.LongOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.LoopTests;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_120;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_145;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_155;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_179;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_203;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_214;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_252;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_279;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_304;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_315;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_354;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_381;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_406;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_417;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_455;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_481;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_506;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_517;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_529;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_566;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_592;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_616;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_65;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_69;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_690;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_714;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_724;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_739;
import org.eclipse.jdt.debug.tests.eval.NestedTypeFieldValue_94;
import org.eclipse.jdt.debug.tests.eval.NumericTypesCastTests;
import org.eclipse.jdt.debug.tests.eval.QualifiedFieldValueTests;
import org.eclipse.jdt.debug.tests.eval.QualifiedStaticFieldValueTests;
import org.eclipse.jdt.debug.tests.eval.QualifiedStaticFieldValueTests2;
import org.eclipse.jdt.debug.tests.eval.ShortAssignmentOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.ShortOperatorsTests;
import org.eclipse.jdt.debug.tests.eval.StaticFieldValueTests;
import org.eclipse.jdt.debug.tests.eval.StaticFieldValueTests2;
import org.eclipse.jdt.debug.tests.eval.StringPlusAssignmentOpTests;
import org.eclipse.jdt.debug.tests.eval.StringPlusOpTests;
import org.eclipse.jdt.debug.tests.eval.TestsAnonymousClassVariable;
import org.eclipse.jdt.debug.tests.eval.TestsArrays;
import org.eclipse.jdt.debug.tests.eval.TestsBreakpointConditions;
import org.eclipse.jdt.debug.tests.eval.TestsNestedTypes1;
import org.eclipse.jdt.debug.tests.eval.TestsNestedTypes2;
import org.eclipse.jdt.debug.tests.eval.TestsNumberLiteral;
import org.eclipse.jdt.debug.tests.eval.TestsOperators1;
import org.eclipse.jdt.debug.tests.eval.TestsOperators2;
import org.eclipse.jdt.debug.tests.eval.TestsTypeHierarchy1;
import org.eclipse.jdt.debug.tests.eval.TestsTypeHierarchy2;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_119_1;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_146_1;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_32_1;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_32_2;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_32_3;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_32_4;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_32_5;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_32_6;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_68_1;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_68_2;
import org.eclipse.jdt.debug.tests.eval.TypeHierarchy_68_3;
import org.eclipse.jdt.debug.tests.eval.VariableDeclarationTests;
import org.eclipse.jdt.debug.tests.eval.XfixOperatorsTests;
import org.eclipse.swt.widgets.Display;
import junit.framework.Test;
import junit.framework.TestResult;
import junit.framework.TestSuite;
/**
* Test all areas of the UI.
*/
public class EvalTestSuite extends TestSuite {
/**
* Flag that indicates test are in progress
*/
protected boolean fTesting = true;
/**
* Returns the suite. This is required to
* use the JUnit Launcher.
* @return the test suite
*/
public static Test suite() {
return new EvalTestSuite();
}
/**
* Construct the test suite.
*/
public EvalTestSuite() {
addTest(new TestSuite(ProjectCreationDecorator.class));
// Tests included in the automated suite
addTest(new TestSuite(Java8Tests.class));
addTest(new TestSuite(TestsOperators1.class));
addTest(new TestSuite(TestsOperators2.class));
addTest(new TestSuite(TestsArrays.class));
addTest(new TestSuite(TestsNestedTypes1.class));
addTest(new TestSuite(TestsNestedTypes2.class));
addTest(new TestSuite(TestsTypeHierarchy1.class));
addTest(new TestSuite(TestsTypeHierarchy2.class));
// Extended evaluation tests
addTest(new TestSuite(BooleanOperatorsTests.class));
addTest(new TestSuite(ByteOperatorsTests.class));
addTest(new TestSuite(CharOperatorsTests.class));
addTest(new TestSuite(ShortOperatorsTests.class));
addTest(new TestSuite(IntOperatorsTests.class));
addTest(new TestSuite(LongOperatorsTests.class));
addTest(new TestSuite(FloatOperatorsTests.class));
addTest(new TestSuite(DoubleOperatorsTests.class));
addTest(new TestSuite(StringPlusOpTests.class));
addTest(new TestSuite(LocalVarValueTests.class));
addTest(new TestSuite(LocalVarAssignmentTests.class));
addTest(new TestSuite(BooleanAssignmentOperatorsTests.class));
addTest(new TestSuite(ByteAssignmentOperatorsTests.class));
addTest(new TestSuite(CharAssignmentOperatorsTests.class));
addTest(new TestSuite(ShortAssignmentOperatorsTests.class));
addTest(new TestSuite(IntAssignmentOperatorsTests.class));
addTest(new TestSuite(LongAssignmentOperatorsTests.class));
addTest(new TestSuite(FloatAssignmentOperatorsTests.class));
addTest(new TestSuite(DoubleAssignmentOperatorsTests.class));
addTest(new TestSuite(StringPlusAssignmentOpTests.class));
addTest(new TestSuite(XfixOperatorsTests.class));
addTest(new TestSuite(NumericTypesCastTests.class));
addTest(new TestSuite(FieldValueTests.class));
addTest(new TestSuite(QualifiedFieldValueTests.class));
addTest(new TestSuite(StaticFieldValueTests.class));
addTest(new TestSuite(StaticFieldValueTests2.class));
addTest(new TestSuite(QualifiedStaticFieldValueTests.class));
addTest(new TestSuite(QualifiedStaticFieldValueTests2.class));
addTest(new TestSuite(ArrayAllocationTests.class));
addTest(new TestSuite(ArrayAssignmentTests.class));
addTest(new TestSuite(ArrayValueTests.class));
addTest(new TestSuite(NestedTypeFieldValue_65.class));
addTest(new TestSuite(NestedTypeFieldValue_69.class));
addTest(new TestSuite(NestedTypeFieldValue_94.class));
addTest(new TestSuite(NestedTypeFieldValue_120.class));
addTest(new TestSuite(NestedTypeFieldValue_145.class));
addTest(new TestSuite(NestedTypeFieldValue_155.class));
addTest(new TestSuite(NestedTypeFieldValue_179.class));
addTest(new TestSuite(NestedTypeFieldValue_203.class));
addTest(new TestSuite(NestedTypeFieldValue_214.class));
addTest(new TestSuite(NestedTypeFieldValue_252.class));
addTest(new TestSuite(NestedTypeFieldValue_279.class));
addTest(new TestSuite(NestedTypeFieldValue_304.class));
addTest(new TestSuite(NestedTypeFieldValue_315.class));
addTest(new TestSuite(NestedTypeFieldValue_354.class));
addTest(new TestSuite(NestedTypeFieldValue_381.class));
addTest(new TestSuite(NestedTypeFieldValue_406.class));
addTest(new TestSuite(NestedTypeFieldValue_417.class));
addTest(new TestSuite(NestedTypeFieldValue_455.class));
addTest(new TestSuite(NestedTypeFieldValue_481.class));
addTest(new TestSuite(NestedTypeFieldValue_506.class));
addTest(new TestSuite(NestedTypeFieldValue_517.class));
addTest(new TestSuite(NestedTypeFieldValue_529.class));
addTest(new TestSuite(NestedTypeFieldValue_566.class));
addTest(new TestSuite(NestedTypeFieldValue_592.class));
addTest(new TestSuite(NestedTypeFieldValue_616.class));
// addTest(new TestSuite(NestedTypeFieldValue_626.class));
// addTest(new TestSuite(NestedTypeFieldValue_664.class));
addTest(new TestSuite(NestedTypeFieldValue_690.class));
addTest(new TestSuite(NestedTypeFieldValue_714.class));
addTest(new TestSuite(NestedTypeFieldValue_724.class));
addTest(new TestSuite(NestedTypeFieldValue_739.class));
addTest(new TestSuite(TypeHierarchy_32_1.class));
addTest(new TestSuite(TypeHierarchy_32_2.class));
addTest(new TestSuite(TypeHierarchy_32_3.class));
addTest(new TestSuite(TypeHierarchy_32_4.class));
addTest(new TestSuite(TypeHierarchy_32_5.class));
addTest(new TestSuite(TypeHierarchy_32_6.class));
addTest(new TestSuite(TypeHierarchy_68_1.class));
addTest(new TestSuite(TypeHierarchy_68_2.class));
addTest(new TestSuite(TypeHierarchy_68_3.class));
addTest(new TestSuite(TypeHierarchy_119_1.class));
addTest(new TestSuite(TypeHierarchy_146_1.class));
addTest(new TestSuite(TestsNumberLiteral.class));
addTest(new TestSuite(VariableDeclarationTests.class));
addTest(new TestSuite(LoopTests.class));
addTest(new TestSuite(LabelTests.class));
addTest(new TestSuite(TestsAnonymousClassVariable.class));
addTest(new TestSuite(BlockStatementEvaluationTests.class));
addTest(new TestSuite(TestsBreakpointConditions.class));
addTest(new TestSuite(DebugShellVariableTests.class));
}
/**
* Runs the tests and collects their result in a TestResult.
* The debug tests cannot be run in the UI thread or the event
* waiter blocks the UI when a resource changes.
* @see junit.framework.TestSuite#run(junit.framework.TestResult)
*/
@Override
public void run(final TestResult result) {
final Display display = Display.getCurrent();
Thread thread = null;
try {
Runnable r = new Runnable() {
@Override
public void run() {
for (Enumeration<Test> e= tests(); e.hasMoreElements(); ) {
if (result.shouldStop() ) {
break;
}
runTest(e.nextElement(), result);
}
fTesting = false;
display.wake();
}
};
thread = new Thread(r);
thread.start();
} catch (Exception e) {
e.printStackTrace();
}
while (fTesting) {
try {
if (!display.readAndDispatch()) {
display.sleep();
}
} catch (Throwable e) {
e.printStackTrace();
}
}
}
}