diff options
author | Peter Graves | 2003-07-03 18:21:15 +0000 |
---|---|---|
committer | Peter Graves | 2003-07-03 18:21:15 +0000 |
commit | 04b6ea96dee7751df27b0a1f581fb0e222499073 (patch) | |
tree | 0150648d45251cdad62e47eb6aaa37b8e1161475 /debug | |
parent | b2aacbd3c17dc95b203cd7758b3a8f27eee886e8 (diff) | |
download | org.eclipse.cdt-04b6ea96dee7751df27b0a1f581fb0e222499073.tar.gz org.eclipse.cdt-04b6ea96dee7751df27b0a1f581fb0e222499073.tar.xz org.eclipse.cdt-04b6ea96dee7751df27b0a1f581fb0e222499073.zip |
Major cleanup. Moved the resrouces out of the source tree and
fixed a problem where we were not terminating debug sessions.
Also removed a bunch of unused stuff.
Diffstat (limited to 'debug')
29 files changed, 325 insertions, 1995 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui.tests/.classpath b/debug/org.eclipse.cdt.debug.ui.tests/.classpath index 0da0fa34c8c..b406305c2d5 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/.classpath +++ b/debug/org.eclipse.cdt.debug.ui.tests/.classpath @@ -2,17 +2,45 @@ <classpath> <classpathentry kind="src" path="src/"/> <classpathentry kind="src" path="core/"/> - <classpathentry kind="src" path="/org.apache.xerces"/> - <classpathentry kind="src" path="/org.eclipse.core.boot"/> - <classpathentry kind="src" path="/org.eclipse.core.resources"/> - <classpathentry kind="src" path="/org.eclipse.core.runtime"/> - <classpathentry kind="src" path="/org.eclipse.swt"/> - <classpathentry kind="src" path="/org.junit"/> + <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar"/> + <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.apache.xerces_4.0.7/xercesImpl.jar"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.core.boot_2.1.0/boot.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.core.boot_2.1.0/bootsrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.core.resources_2.1.0/resources.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.core.resources_2.1.0/resourcessrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.core.runtime_2.1.0/runtimesrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.swt.win32_2.1.0/ws/win32/swt.jar" sourcepath="ORG_ECLIPSE_PLATFORM_WIN32_SOURCE_SRC/org.eclipse.swt.win32_2.1.0/ws/win32/swtsrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.junit_3.8.1/junit.jar" sourcepath="ORG_ECLIPSE_JDT_SOURCE_SRC/org.junit_3.8.1/junitsrc.zip"/> <classpathentry kind="src" path="/org.eclipse.cdt.debug.core"/> <classpathentry kind="src" path="/org.eclipse.cdt.debug.mi.core"/> <classpathentry kind="src" path="/org.eclipse.cdt.core"/> - <classpathentry kind="src" path="/org.eclipse.ui"/> - <classpathentry kind="src" path="/org.eclipse.update.core"/> - <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/> + <classpathentry kind="src" path="/org.eclipse.cdt.core.linux"/> + <classpathentry kind="src" path="/org.eclipse.cdt.core.qnx"/> + <classpathentry kind="src" path="/org.eclipse.cdt.core.solaris"/> + <classpathentry kind="src" path="/org.eclipse.cdt.core.win32"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.ui_2.1.0/ui.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.ui_2.1.0/uisrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.text_2.1.0/text.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.text_2.1.0/textsrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.jface_2.1.0/jface.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.jface_2.1.0/jfacesrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.jface.text_2.1.0/jfacetext.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.jface.text_2.1.0/jfacetextsrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.ui.views_2.1.0/views.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.ui.views_2.1.0/viewssrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.ui.workbench_2.1.0/workbenchsrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.ui.win32_2.1.0/workbenchwin32.jar" sourcepath="ORG_ECLIPSE_PLATFORM_WIN32_SOURCE_SRC/org.eclipse.ui.win32_2.1.0/workbenchwin32src.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench.texteditor_2.1.0/texteditor.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.ui.workbench.texteditor_2.1.0/texteditorsrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.ui.editors_2.1.0/editors.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.ui.editors_2.1.0/editorssrc.zip"/> + <classpathentry kind="var" + path="ECLIPSE_HOME/plugins/org.eclipse.update.core_2.1.0/updatecore.jar" sourcepath="ORG_ECLIPSE_PLATFORM_SOURCE_SRC/org.eclipse.update.core_2.1.0/updatecoresrc.zip"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/debug/org.eclipse.cdt.debug.ui.tests/.project b/debug/org.eclipse.cdt.debug.ui.tests/.project index 42d4b5e2d48..9ad345638b8 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/.project +++ b/debug/org.eclipse.cdt.debug.ui.tests/.project @@ -3,17 +3,13 @@ <name>org.eclipse.cdt.debug.ui.tests</name> <comment></comment> <projects> - <project>org.apache.xerces</project> <project>org.eclipse.cdt.core</project> + <project>org.eclipse.cdt.core.linux</project> + <project>org.eclipse.cdt.core.qnx</project> + <project>org.eclipse.cdt.core.solaris</project> + <project>org.eclipse.cdt.core.win32</project> <project>org.eclipse.cdt.debug.core</project> <project>org.eclipse.cdt.debug.mi.core</project> - <project>org.eclipse.core.boot</project> - <project>org.eclipse.core.resources</project> - <project>org.eclipse.core.runtime</project> - <project>org.eclipse.swt</project> - <project>org.eclipse.ui</project> - <project>org.eclipse.update.core</project> - <project>org.junit</project> </projects> <buildSpec> <buildCommand> diff --git a/debug/org.eclipse.cdt.debug.ui.tests/Changelog b/debug/org.eclipse.cdt.debug.ui.tests/Changelog index 98bd73f65ae..3276944b412 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/Changelog +++ b/debug/org.eclipse.cdt.debug.ui.tests/Changelog @@ -1,3 +1,13 @@ +2003-07-03 Peter Graves
+
+ Major cleanup. Pulled all resouces out of the source tree, and fixed the
+ tests to get them from the new location.
+ Made sure the debug sessions were all terminated before we try to delete the
+ the projects (if the tests failed, the session would not be terminated, and
+ then we would not be able to remove the projects.)
+ Also updated the breakpoint tests to only create and build the test project
+ once per run, not once per test method.
+
2003-04-04 Alain Magloire
* src/org/eclipse/cdt/debug/testplugin/util/VeryfyDialog.java:
diff --git a/debug/org.eclipse.cdt.debug.ui.tests/build.properties b/debug/org.eclipse.cdt.debug.ui.tests/build.properties index bf7b64208d0..21c6e6654de 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/build.properties +++ b/debug/org.eclipse.cdt.debug.ui.tests/build.properties @@ -2,6 +2,7 @@ source.cdtdebuguitests.jar = src/,\ core/ bin.includes = about.html,\ plugin.xml,\ + resources/,\ test.xml src.includes = about.html,\ plugin.xml,\ diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java index 29895cf4142..4831d0e5f64 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java @@ -34,7 +34,6 @@ public class AllDebugTests { suite.addTest(DebugTests.suite()); suite.addTest(BreakpointTests.suite()); suite.addTest(LocationTests.suite()); - suite.addTest(TargetTests.suite()); return suite; diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java index 11925668a1b..f6256621f86 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java @@ -8,16 +8,32 @@ package org.eclipse.cdt.debug.core.tests; import java.io.FileNotFoundException; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import junit.extensions.TestSetup; +import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; -import org.eclipse.cdt.debug.testplugin.*; -import org.eclipse.cdt.core.model.*; -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.*; -import org.eclipse.cdt.debug.mi.core.*; -import org.eclipse.cdt.debug.core.cdi.*; -import org.eclipse.cdt.debug.core.cdi.model.*; + +import org.eclipse.cdt.core.model.ICProject; +import org.eclipse.cdt.debug.core.cdi.CDIException; +import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointManager; +import org.eclipse.cdt.debug.core.cdi.ICDICondition; +import org.eclipse.cdt.debug.core.cdi.ICDILocation; +import org.eclipse.cdt.debug.core.cdi.ICDISession; +import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint; +import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint; +import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; +import org.eclipse.cdt.debug.mi.core.MIException; +import org.eclipse.cdt.debug.testplugin.CDebugHelper; +import org.eclipse.cdt.debug.testplugin.CProjectHelper; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.IncrementalProjectBuilder; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; /** * @author Peter Graves @@ -29,8 +45,10 @@ import org.eclipse.cdt.debug.core.cdi.model.*; public class BreakpointTests extends TestCase { IWorkspace workspace; IWorkspaceRoot root; - ICProject testProject; + static ICProject testProject=null; NullProgressMonitor monitor; + static ICDISession session=null; + static ICDITarget targets[] = null; /** @@ -62,33 +80,83 @@ public class BreakpointTests extends TestCase { * Example code test the packages in the project * "com.qnx.tools.ide.cdt.core" */ - protected void setUp() throws CoreException,FileNotFoundException { - - /*** - * Setup the various files, paths and projects that are needed by the - * tests - */ - testProject=CProjectHelper.createCProject("filetest", "none"); + protected static void oneTimeSetUp() throws CoreException, InvocationTargetException, IOException { + ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(false); + /*** + * Create a new project and import the test source. + */ + String pluginRoot=org.eclipse.core.runtime.Platform.getPlugin("org.eclipse.cdt.debug.ui.tests").find(new Path("/")).getFile(); + pluginRoot=pluginRoot+"resources/debugTest.zip"; + testProject=CProjectHelper.createCProjectWithImport("filetest", pluginRoot); if (testProject==null) fail("Unable to create project"); - } + /* Build the test project.. */ + + testProject.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null); + } + /** + * Tears down the test fixture. + * + * Called after every test case method. + */ + protected void tearDown() throws CoreException { + if (targets!=null) { + try { + targets[0].terminate(); + targets=null; + } catch (CDIException e) {} + } + if (session!=null) { + try { + session.terminate(); + session=null; + } catch (CDIException e) {} + } + } /** * Tears down the test fixture. * * Called after every test case method. */ - protected void tearDown() throws CoreException { + protected static void oneTimeTearDown() throws CoreException { + if (targets!=null) { + try { + targets[0].terminate(); + } catch (CDIException e) {} + } + if (session!=null) { + try { + session.terminate(); + } catch (CDIException e) {} + } CProjectHelper.delete(testProject); + } - public static TestSuite suite() { - return new TestSuite(BreakpointTests.class); + public static Test suite() { + TestSuite suite= new TestSuite(BreakpointTests.class); + /*** + * Create a wrapper suite around the test suite we created above to + * allow us to only do the general setup once for all the tests. This + * is needed because the creation of the source and target projects + * takes a long time and we really only need to do it once. We could + * do the setup in the constructor, but we need to be able to remove + * everything when we are done. + */ + TestSetup wrapper = new TestSetup(suite) { + + protected void setUp() throws FileNotFoundException, IOException, InterruptedException, InvocationTargetException, CoreException { + oneTimeSetUp(); + } + + protected void tearDown() throws FileNotFoundException, IOException, CoreException { + oneTimeTearDown(); + } + }; + return(wrapper); } - public static void main (String[] args){ - junit.textui.TestRunner.run(suite()); - } /*** @@ -99,9 +167,8 @@ public class BreakpointTests extends TestCase { ICDISession session; ICDIBreakpointManager breaks; ICDILocation location; - ICDITarget targets[]; boolean caught=false; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main", testProject); assertNotNull(session); breaks=session.getBreakpointManager(); assertNotNull(breaks); @@ -171,10 +238,19 @@ public class BreakpointTests extends TestCase { location=targets[0].getCurrentThread().getStackFrames()[0].getLocation(); assertTrue(location.getLineNumber()==6); assertTrue(location.getFunction().equals("func1")); - assertTrue(location.getFile().equals("../main.c")); + assertTrue(location.getFile().equals("main.c")); /* clean up the session */ + targets[0].terminate(); + int x=0; + while ((!targets[0].isTerminated()) && (x<30)) { + Thread.sleep(100); + } + if (!targets[0].isTerminated()) + targets[0].terminate(); session.terminate(); + session=null; + targets=null; } @@ -184,12 +260,10 @@ public class BreakpointTests extends TestCase { * expected. */ public void testLineBreak() throws CoreException, MIException, IOException, CDIException, InterruptedException { - ICDISession session; ICDIBreakpointManager breaks; ICDILocation location; - ICDITarget targets[]; boolean caught=false; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main", testProject); assertNotNull(session); breaks=session.getBreakpointManager(); assertNotNull(breaks); @@ -287,23 +361,24 @@ public class BreakpointTests extends TestCase { location=targets[0].getCurrentThread().getStackFrames()[0].getLocation(); assertTrue(location.getLineNumber()==7); assertTrue(location.getFunction().equals("func1")); - assertTrue(location.getFile().equals("../main.c")); + assertTrue(location.getFile().equals("main.c")); /* clean up the session */ session.terminate(); + session=null; + targets=null; } /*** * A couple tests to make sure getting breakpoints works as expected */ public void testGetBreak() throws CoreException, MIException, IOException, CDIException { - ICDISession session; ICDIBreakpointManager breaks; ICDILocation location; ICDIBreakpoint[] breakpoints; ICDILocationBreakpoint curbreak; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main", testProject); assertNotNull(session); breaks=session.getBreakpointManager(); assertNotNull(breaks); @@ -320,7 +395,7 @@ public class BreakpointTests extends TestCase { * from the system *********************************************************************/ /* Create a break point on a generic function */ - location=breaks.createLocation("../main.c", "func1", 0); + location=breaks.createLocation("main.c", "func1", 0); assertNotNull(location); breaks.setLocationBreakpoint(0, location, null, null); @@ -340,7 +415,7 @@ public class BreakpointTests extends TestCase { * get them all back from the system, **********************************************************************/ /* Create another break point on main */ - location=breaks.createLocation("../main.c", "main", 0); + location=breaks.createLocation("main.c", "main", 0); assertNotNull(location); breaks.setLocationBreakpoint(0, location, null, null); @@ -361,21 +436,20 @@ public class BreakpointTests extends TestCase { /* clean up the session */ session.terminate(); - - + session=null; + } /*** * A couple tests to make sure deleting breakpoints works as expected */ public void testDelBreak() throws CoreException, MIException, IOException, CDIException { - ICDISession session; ICDIBreakpointManager breaks; ICDILocation location, savedLocation; ICDIBreakpoint[] breakpoints, savedbreakpoints; ICDILocationBreakpoint curbreak; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main", testProject); assertNotNull(session); breaks=session.getBreakpointManager(); assertNotNull(breaks); @@ -393,10 +467,11 @@ public class BreakpointTests extends TestCase { **********************************************************************/ /* Create a break point on a generic function */ - location=breaks.createLocation("../main.c", "func1", 0); + location=breaks.createLocation("main.c", "func1", 0); assertNotNull(location); curbreak=breaks.setLocationBreakpoint(0, location, null, null); breaks.deleteBreakpoint(curbreak); + pause(); /** * we should not have any breakpoints left. */ @@ -411,16 +486,16 @@ public class BreakpointTests extends TestCase { **********************************************************************/ /* Create a break point on a generic function */ - location=breaks.createLocation("../main.c", "func1", 0); + location=breaks.createLocation("main.c", "func1", 0); assertNotNull(location); curbreak=breaks.setLocationBreakpoint(0, location, null, null); savedLocation=curbreak.getLocation(); - location=breaks.createLocation("../main.c", "main", 0); + location=breaks.createLocation("main.c", "main", 0); assertNotNull(location); curbreak=breaks.setLocationBreakpoint(0, location, null, null); breaks.deleteBreakpoint(curbreak); - + pause(); breakpoints=breaks.getBreakpoints(); /*** * Make sure there is only 1 breakpoint left, and it's the one we expect @@ -433,7 +508,7 @@ public class BreakpointTests extends TestCase { * Then delete the other breakpoint. */ breaks.deleteBreakpoint(curbreak); - + pause(); breakpoints=breaks.getBreakpoints(); assertTrue(breakpoints.length==0); @@ -442,12 +517,12 @@ public class BreakpointTests extends TestCase { **********************************************************************/ savedbreakpoints= new ICDIBreakpoint[1]; for (int x=0;x<10;x++) { - location=breaks.createLocation("../main.c", null, x+1); + location=breaks.createLocation("main.c", null, x+1); savedbreakpoints[0]=breaks.setLocationBreakpoint(0, location, null, null); assertNotNull(savedbreakpoints[0]); } breaks.deleteBreakpoints(savedbreakpoints); - + pause(); /* We should now have 9 breakpoints left. */ breakpoints=breaks.getBreakpoints(); assertTrue(breakpoints.length==9); @@ -457,6 +532,7 @@ public class BreakpointTests extends TestCase { assertTrue(curbreak.getLocation().getLineNumber()==x+1); } breaks.deleteAllBreakpoints(); + pause(); assertTrue(breaks.getBreakpoints().length==0); /********************************************************************** @@ -465,11 +541,12 @@ public class BreakpointTests extends TestCase { **********************************************************************/ savedbreakpoints= new ICDIBreakpoint[4]; for (int x=0;x<10;x++) { - location=breaks.createLocation("../main.c", null, x+1); + location=breaks.createLocation("main.c", null, x+1); savedbreakpoints[x%4]=breaks.setLocationBreakpoint(0, location, null, null); assertNotNull(savedbreakpoints[x%4]); } breaks.deleteBreakpoints(savedbreakpoints); + pause(); /* We should now have 6 breakpoints left. */ breakpoints=breaks.getBreakpoints(); @@ -480,6 +557,7 @@ public class BreakpointTests extends TestCase { assertTrue(curbreak.getLocation().getLineNumber()==x+1); } breaks.deleteAllBreakpoints(); + pause(); assertTrue(breaks.getBreakpoints().length==0); /********************************************************************** @@ -487,12 +565,12 @@ public class BreakpointTests extends TestCase { **********************************************************************/ savedbreakpoints= new ICDIBreakpoint[10]; for (int x=0;x<10;x++) { - location=breaks.createLocation("../main.c", null, x+1); + location=breaks.createLocation("main.c", null, x+1); savedbreakpoints[x]=breaks.setLocationBreakpoint(0, location, null, null); assertNotNull(savedbreakpoints[x]); } breaks.deleteBreakpoints(savedbreakpoints); - + pause(); /* We should now have 0 breakpoints left. */ breakpoints=breaks.getBreakpoints(); assertTrue(breakpoints.length==0); @@ -502,12 +580,12 @@ public class BreakpointTests extends TestCase { **********************************************************************/ for (int x=0;x<10;x++) { - location=breaks.createLocation("../main.c", null, x+1); + location=breaks.createLocation("main.c", null, x+1); curbreak=breaks.setLocationBreakpoint(0, location, null, null); assertNotNull(curbreak); } breaks.deleteAllBreakpoints(); - + pause(); /* We should now have 0 breakpoints left. */ breakpoints=breaks.getBreakpoints(); assertTrue(breakpoints.length==0); @@ -516,7 +594,7 @@ public class BreakpointTests extends TestCase { /* clean up the session */ session.terminate(); - + session=null; } /*** @@ -524,13 +602,11 @@ public class BreakpointTests extends TestCase { * work as expected. */ public void testCondBreak() throws CoreException, MIException, IOException, CDIException, InterruptedException { - ICDISession session; ICDIBreakpointManager breaks; ICDILocation location; ICDICondition cond; - ICDITarget targets[]; boolean caught=false; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main", testProject); assertNotNull(session); breaks=session.getBreakpointManager(); assertNotNull(breaks); @@ -599,7 +675,7 @@ public class BreakpointTests extends TestCase { location=targets[0].getCurrentThread().getStackFrames()[0].getLocation(); assertTrue(location.getLineNumber()==23); assertTrue(location.getFunction().equals("main")); - assertTrue(location.getFile().equals("../main.c")); + assertTrue(location.getFile().equals("main.c")); /* Get the value of a and and make sure it is 11 */ assertTrue(targets[0].evaluateExpressionToString("a"), targets[0].evaluateExpressionToString("a").equals("11")); @@ -607,9 +683,15 @@ public class BreakpointTests extends TestCase { /* clean up the session */ session.terminate(); - + session=null; + targets=null; } - + void pause() { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + } + } } diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/DebugTests.java b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/DebugTests.java index 5a7c2c22f23..d64fae52030 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/DebugTests.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/DebugTests.java @@ -8,15 +8,27 @@ package org.eclipse.cdt.debug.core.tests; import java.io.FileNotFoundException; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import junit.framework.TestCase; import junit.framework.TestSuite; -import org.eclipse.cdt.debug.testplugin.*; -import org.eclipse.cdt.core.model.*; -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.*; -import org.eclipse.cdt.debug.mi.core.*; -import org.eclipse.cdt.debug.core.cdi.*; + +import org.eclipse.cdt.core.model.ICProject; +import org.eclipse.cdt.debug.core.cdi.CDIException; +import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointManager; +import org.eclipse.cdt.debug.core.cdi.ICDILocation; +import org.eclipse.cdt.debug.core.cdi.ICDISession; +import org.eclipse.cdt.debug.core.cdi.ICDISourceManager; +import org.eclipse.cdt.debug.mi.core.MIException; +import org.eclipse.cdt.debug.testplugin.CDebugHelper; +import org.eclipse.cdt.debug.testplugin.CProjectHelper; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.IncrementalProjectBuilder; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; /** * @author Peter Graves @@ -30,6 +42,7 @@ public class DebugTests extends TestCase { IWorkspaceRoot root; ICProject testProject; NullProgressMonitor monitor; + ICDISession session; /** @@ -61,15 +74,20 @@ public class DebugTests extends TestCase { * Example code test the packages in the project * "com.qnx.tools.ide.cdt.core" */ - protected void setUp() throws CoreException,FileNotFoundException { + protected void setUp() throws CoreException, InvocationTargetException, IOException { + ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(false); + /*** + * Create a new project and import the test source. + */ + String pluginRoot=org.eclipse.core.runtime.Platform.getPlugin("org.eclipse.cdt.debug.ui.tests").find(new Path("/")).getFile(); + pluginRoot=pluginRoot+"resources/debugTest.zip"; + testProject=CProjectHelper.createCProjectWithImport("filetest", pluginRoot); + if (testProject==null) + fail("Unable to create project"); + /* Build the test project.. */ + + testProject.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null); - /*** - * Setup the various files, paths and projects that are needed by the - * tests - */ - testProject=CProjectHelper.createCProject("filetest", "none"); - if (testProject==null) - fail("Unable to create project"); } /** @@ -77,7 +95,11 @@ public class DebugTests extends TestCase { * * Called after every test case method. */ - protected void tearDown() throws CoreException { + protected void tearDown() throws CoreException, CDIException { + if (session!=null) { + session.terminate(); + session=null; + } CProjectHelper.delete(testProject); } @@ -97,12 +119,11 @@ public class DebugTests extends TestCase { * It's not ment to be a real proper test. */ public void testDebug() throws CoreException, MIException, IOException, CDIException { - ICDISession session; ICDISourceManager source; ICDIBreakpointManager breaks; ICDILocation location; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main",testProject); assertNotNull(session); source=session.getSourceManager(); assertNotNull(source); @@ -112,7 +133,8 @@ public class DebugTests extends TestCase { assertNotNull(location); breaks.setLocationBreakpoint(0, location, null, null); session.getCurrentTarget().resume(); - + session.terminate(); + session=null; } diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/LocationTests.java b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/LocationTests.java index 58489783760..2ef93a0048a 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/LocationTests.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/LocationTests.java @@ -8,6 +8,7 @@ package org.eclipse.cdt.debug.core.tests; import java.io.FileNotFoundException; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import junit.framework.TestCase; import junit.framework.TestSuite; @@ -31,6 +32,7 @@ public class LocationTests extends TestCase { IWorkspaceRoot root; ICProject testProject; NullProgressMonitor monitor; + ICDISession session; /** @@ -62,15 +64,20 @@ public class LocationTests extends TestCase { * Example code test the packages in the project * "com.qnx.tools.ide.cdt.core" */ - protected void setUp() throws CoreException,FileNotFoundException { + protected void setUp() throws CoreException, InvocationTargetException, IOException { + ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(false); + /*** + * Create a new project and import the test source. + */ + String pluginRoot=org.eclipse.core.runtime.Platform.getPlugin("org.eclipse.cdt.debug.ui.tests").find(new Path("/")).getFile(); + pluginRoot=pluginRoot+"resources/debugTest.zip"; + testProject=CProjectHelper.createCProjectWithImport("filetest", pluginRoot); + if (testProject==null) + fail("Unable to create project"); + /* Build the test project.. */ + + testProject.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null); - /*** - * Setup the various files, paths and projects that are needed by the - * tests - */ - testProject=CProjectHelper.createCProject("filetest", "none"); - if (testProject==null) - fail("Unable to create project"); } /** @@ -78,7 +85,11 @@ public class LocationTests extends TestCase { * * Called after every test case method. */ - protected void tearDown() throws CoreException { + protected void tearDown() throws CoreException, CDIException { + if (session!=null) { + session.terminate(); + session=null; + } CProjectHelper.delete(testProject); } @@ -95,12 +106,11 @@ public class LocationTests extends TestCase { * A couple tests to make sure comparing Locations works as expected. */ public void testIsEquals() throws CoreException, MIException, IOException, CDIException { - ICDISession session; ICDIBreakpointManager breaks; ICDILocation location, location2; ICDIBreakpoint[] breakpoints; ICDILocationBreakpoint curbreak; - session=CDebugHelper.createSession("main"); + session=CDebugHelper.createSession("main",testProject); assertNotNull(session); breaks=session.getBreakpointManager(); assertNotNull(breaks); @@ -160,8 +170,8 @@ public class LocationTests extends TestCase { /* clean up the session */ - session.terminate(); - + session.terminate(); + session=null; } diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/TargetTests.java b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/TargetTests.java index 0c489f55a0b..7e51086d24e 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/TargetTests.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/TargetTests.java @@ -67,7 +67,7 @@ public class TargetTests extends TestCase { * Setup the various files, paths and projects that are needed by the * tests */ - testProject=CProjectHelper.createCProject("filetest", "none"); + testProject=CProjectHelper.createCProject("filetest"); if (testProject==null) fail("Unable to create project"); } @@ -94,12 +94,6 @@ public class TargetTests extends TestCase { * A couple tests to make sure various evaluations work as expected */ public void testEvaluate() throws CoreException, MIException, IOException, CDIException, InterruptedException { - ICDISession session; - ICDIBreakpointManager breaks; - session=CDebugHelper.createSession("main"); - assertNotNull(session); - breaks=session.getBreakpointManager(); - assertNotNull(breaks); /*** * Tests to come diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/main.c b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/main.c deleted file mode 100644 index 80405cedf32..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/main.c +++ /dev/null @@ -1,26 +0,0 @@ -#include <stdio.h> - -void func1() -{ - int x,y,z; - x=1; - y=2; - z=3; - printf("Hello world\n"); - printf("Hello world\n"); - printf("Hello world\n"); -} - -int main() -{ - int a,b,c; - a=b=c=10; - a=12; - b=124; - c=1; - func1(); - for (a=0;a<100;a++) { - c++; - } - return(1); -} diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile deleted file mode 100644 index cedfb06fb2c..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -win: - gcc -g -o main ../main.c diff --git a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/win/main.exe b/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/win/main.exe Binary files differdeleted file mode 100644 index ab54e4871e9..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/resources/win/main.exe +++ /dev/null diff --git a/debug/org.eclipse.cdt.debug.ui.tests/resources/debugTest.zip b/debug/org.eclipse.cdt.debug.ui.tests/resources/debugTest.zip Binary files differnew file mode 100644 index 00000000000..6278570d8ee --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui.tests/resources/debugTest.zip diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java index b7b7f95ed88..d317697b05d 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java @@ -1,10 +1,15 @@ package org.eclipse.cdt.debug.testplugin; -import java.io.IOException; import java.io.File; -import org.eclipse.cdt.debug.core.cdi.*; -import org.eclipse.cdt.debug.mi.core.*; +import java.io.IOException; + +import org.eclipse.cdt.core.model.IBinary; +import org.eclipse.cdt.core.model.ICProject; +import org.eclipse.cdt.debug.core.cdi.ICDISession; +import org.eclipse.cdt.debug.mi.core.MIException; +import org.eclipse.cdt.debug.mi.core.MIPlugin; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; /** @@ -42,6 +47,26 @@ public class CDebugHelper { session=mi.createCSession(null, new File(exename), new File("."), null); return(session); } + /** + * Creates a ICDISession. + */ + public static ICDISession createSession(String exe, ICProject project) throws IOException, MIException { + MIPlugin mi; + String workspacePath= Platform.getLocation().toOSString(); + ICDISession session; + String os = System.getProperty("os.name"); + String exename; + mi=MIPlugin.getDefault(); + + IBinary bins[] = project.getBinaryContainer().getBinaries(); + if (bins.length!=1) { + //SHOULD NOT HAPPEN + return(null); + } + + session=mi.createCSession(null, new File(workspacePath +bins[0].getPath().toOSString()), new File("."), null); + return(session); + } } diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java deleted file mode 100644 index 5020091fa06..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ -package org.eclipse.cdt.debug.testplugin; - -import org.eclipse.swt.graphics.Image; - -import org.eclipse.jface.viewers.ILabelDecorator; -import org.eclipse.jface.viewers.LabelProvider; - -/** - * Allows to test decorators for Java elements - */ -public class CElementDecorator extends LabelProvider implements ILabelDecorator { - - /* - * @see ILabelDecorator#decorateImage(Image, Object) - */ - public Image decorateImage(Image image, Object element) { - return null; - } - - /* - * @see ILabelDecorator#decorateText(String, Object) - */ - public String decorateText(String text, Object element) { - return text + "*"; - } -} diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java index 40b9582a43e..93b9edf5abe 100644 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java +++ b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java @@ -1,22 +1,19 @@ package org.eclipse.cdt.debug.testplugin; -import java.io.File; +import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.zip.ZipFile; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CProjectNature; -import org.eclipse.cdt.core.model.CModelException; +import org.eclipse.cdt.core.ICDescriptor; +import org.eclipse.cdt.core.model.IArchive; import org.eclipse.cdt.core.model.IArchiveContainer; +import org.eclipse.cdt.core.model.IBinary; import org.eclipse.cdt.core.model.IBinaryContainer; -import org.eclipse.cdt.core.model.ICContainer; -import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ICElement; -import org.eclipse.cdt.core.model.IArchive; -import org.eclipse.cdt.core.model.IBinary; +import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ITranslationUnit; -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IResource; @@ -25,7 +22,6 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Path; import org.eclipse.ui.dialogs.IOverwriteQuery; import org.eclipse.ui.wizards.datatransfer.ImportOperation; import org.eclipse.ui.wizards.datatransfer.ZipFileStructureProvider; @@ -34,17 +30,43 @@ import org.eclipse.ui.wizards.datatransfer.ZipFileStructureProvider; * Helper methods to set up a ICProject. */ public class CProjectHelper { - - public static final IPath RT_STUBS= new Path("testresources/rtstubs.jar"); - public static final IPath JUNIT_SRC= new Path("testresources/junit37-noUI-src.zip"); - - public static final IPath MYLIB= new Path("testresources/mylib.jar"); + /** + * Creates a ICProject. + */ + public static ICProject createCProjectWithImport(String projectName, String zipFile) throws CoreException, InvocationTargetException, IOException { + IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot(); + IProject project= root.getProject(projectName); + if (!project.exists()) { + project.create(null); + } else { + project.refreshLocal(IResource.DEPTH_INFINITE, null); + } + + if (!project.isOpen()) { + project.open(null); + } + importFilesFromZip(new ZipFile(zipFile),project.getFullPath(),null); + + if (!project.hasNature(CProjectNature.C_NATURE_ID)) { + addNatureToProject(project, CProjectNature.C_NATURE_ID, null); + } + + ICProject cproject = CCorePlugin.getDefault().getCoreModel().create(project); + /* Try to guess at the correct binary parser.. elf or pe at this point.. */ + String os = System.getProperty("os.name"); + boolean pe=(os.toLowerCase().indexOf("windows")!=-1); + ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(project); + desc.remove(CCorePlugin.BINARY_PARSER_UNIQ_ID); + desc.create(CCorePlugin.BINARY_PARSER_UNIQ_ID, pe?"org.eclipse.cdt.core.PE":"org.eclipse.cdt.core.ELF"); + CCorePlugin.getDefault().getCoreModel().resetBinaryParser(project); + return cproject; + } /** * Creates a ICProject. */ - public static ICProject createCProject(String projectName, String binFolderName) throws CoreException { + public static ICProject createCProject(String projectName) throws CoreException { IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot(); IProject project= root.getProject(projectName); if (!project.exists()) { @@ -57,7 +79,6 @@ public class CProjectHelper { project.open(null); } - if (!project.hasNature(CProjectNature.C_NATURE_ID)) { addNatureToProject(project, CProjectNature.C_NATURE_ID, null); } @@ -71,77 +92,17 @@ public class CProjectHelper { * Removes a ICProject. */ public static void delete(ICProject cproject) throws CoreException { - performDummySearch(); cproject.getProject().delete(true, true, null); } - public static void performDummySearch() throws CModelException { - /* SearchEngine().searchAllTypeNames( - ResourcesPlugin.getWorkspace(), - null, - null, - IJavaSearchConstants.EXACT_MATCH, - IJavaSearchConstants.CASE_SENSITIVE, - IJavaSearchConstants.CLASS, - SearchEngine.createJavaSearchScope(new IJavaElement[0]), - new Requestor(), - IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, - null); */ - } - - - /** - * Adds a source container to a ICProject. - */ - public static ICContainer addSourceContainer(ICProject cproject, String containerName) throws CoreException { - IProject project= cproject.getProject(); - IContainer container= null; - if (containerName == null || containerName.length() == 0) { - container= project; - } else { - IFolder folder= project.getFolder(containerName); - if (!folder.exists()) { - folder.create(false, true, null); - } - container= folder; - } - - return (ICContainer)container; - } - - /** - * Adds a source container to a ICProject and imports all files contained - * in the given Zip file. - */ - public static ICContainer addSourceContainerWithImport(ICProject cproject, String containerName, ZipFile zipFile) throws InvocationTargetException, CoreException { - ICContainer root= addSourceContainer(cproject, containerName); - importFilesFromZip(zipFile, root.getPath(), null); - return root; - } - - /** - * Removes a source folder from a IJavaProject. - */ - public static void removeSourceContainer(ICProject cproject, String containerName) throws CoreException { - IFolder folder= cproject.getProject().getFolder(containerName); - folder.delete(true, null); - } - - /** - * Adds a required project entry. - */ - public static void addRequiredProject(ICProject cproject, ICProject required) throws CModelException { - //IClasspathEntry cpe= JavaCore.newProjectEntry(required.getProject().getFullPath()); - //addToClasspath(cproject, cpe); - } /** * Attempts to find an archive with the given name in the workspace */ public static IArchive findArchive(ICProject testProject,String name) { int x; - IArchive[] myArchives; + IArchive[] myArchives; IArchiveContainer archCont; archCont=testProject.getArchiveContainer(); myArchives=archCont.getArchives(); @@ -159,7 +120,7 @@ public class CProjectHelper { public static IBinary findBinary(ICProject testProject,String name) { IBinaryContainer binCont; int x; - IBinary[] myBinaries; + IBinary[] myBinaries; binCont=testProject.getBinaryContainer(); myBinaries=binCont.getBinaries(); if (myBinaries.length<1) @@ -177,7 +138,7 @@ public class CProjectHelper { */ public static IBinary findObject(ICProject testProject,String name) { int x; - ICElement[] myElements; + ICElement[] myElements; myElements=testProject.getChildren(); if (myElements.length<1) return(null); @@ -196,7 +157,7 @@ public class CProjectHelper { */ public static ITranslationUnit findTranslationUnit(ICProject testProject,String name) { int x; - ICElement[] myElements; + ICElement[] myElements; myElements=testProject.getChildren(); if (myElements.length<1) return(null); @@ -218,7 +179,7 @@ public class CProjectHelper { */ public static ICElement findElement(ICProject testProject,String name) { int x; - ICElement[] myElements; + ICElement[] myElements; myElements=testProject.getChildren(); if (myElements.length<1) return(null); @@ -233,35 +194,7 @@ public class CProjectHelper { return(null); } - - /** - * Try to find rt.jar - */ - public static IPath[] findRtJar() { - File rtStubs= CTestPlugin.getDefault().getFileInPlugin(RT_STUBS); - if (rtStubs != null && rtStubs.exists()) { - return new IPath[] { - new Path(rtStubs.getPath()), - null, - null - }; - } - - /* - IVMInstall vmInstall= JavaRuntime.getDefaultVMInstall(); - if (vmInstall != null) { - LibraryLocation loc= vmInstall.getVMInstallType().getDefaultLibraryLocation(vmInstall.getInstallLocation()); - if (loc != null) { - return new IPath[] { - new Path(loc.getSystemLibrary().getPath()), - new Path(loc.getSystemLibrarySource().getPath()), - loc.getPackageRootPath() - }; - } - }*/ - return null; - } - + private static void addNatureToProject(IProject proj, String natureId, IProgressMonitor monitor) throws CoreException { IProjectDescription description = proj.getDescription(); String[] prevNatures= description.getNatureIds(); diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CTestSetup.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CTestSetup.java deleted file mode 100644 index c9a8395525f..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CTestSetup.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ -package org.eclipse.cdt.debug.testplugin; - -import junit.extensions.TestSetup; -import junit.framework.Test; - - - -public class CTestSetup extends TestSetup { - - /** - * @deprecated - * Not needed anymore. No added value - */ - public CTestSetup(Test test) { - super(test); - } - - protected void setUp() throws Exception { - } - - protected void tearDown() throws Exception { - } - - - - -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/Main.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/Main.java deleted file mode 100644 index dffaf3d3af4..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/Main.java +++ /dev/null @@ -1,528 +0,0 @@ -package org.eclipse.cdt.debug.testplugin; - -// copied from startup.jar. planned to be removed soon - - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.net.*; -import java.lang.reflect.*; -import java.io.*; -import java.util.*; -/** - * Startup class for Eclipse. Creates a class loader using - * supplied URL of platform installation, loads and calls - * the Eclipse Boot Loader. The startup arguments are as follows: - * <dl> - * <dd> - * -application <id>: the identifier of the application to run - * </dd> - * <dd> - * -boot <location>: the location, expressed as a URL, of the platform's boot.jar - * </dd> - * <dd> - * -consolelog : enables log to the console. Handy when combined with -debug - * </dd> - * <dd> - * -data <location>: sets the workspace location and the default location for projects - * </dd> - * <dd> - * -debug [options file]: turns on debug mode for the platform and optionally specifies a location - * for the .options file. This file indicates what debug points are available for a - * plug-in and whether or not they are enabled. If a location is not specified, the platform searches - * for the .options file under the install directory - * </dd> - * <dd> - * -dev [entries]: turns on dev mode and optionally specifies comma-separated class path entries - * which are added to the class path of each plug-in - * </dd> - * <dd> - * -keyring <location>: the location of the authorization database on disk. This argument - * has to be used together with the -password argument - * </dd> - * <dd> - * -password <passwd>: the password for the authorization database - * </dd> - * <dd> - * -plugins <location>: The arg is a URL pointing to a file which specs the plugin - * path for the platform. The file is in property file format where the keys are user-defined - * names and the values are comma separated lists of either explicit paths to plugin.xml - * files or directories containing plugins. (e.g., .../eclipse/plugins). - * </dd> - * <dd> - * -ws <window system>: sets the window system value - * </dd> - * </dl> - */ -public class Main { - /** - * Indicates whether this instance is running in debug mode. - */ - protected boolean debug = false; - - /** - * The location of the launcher to run. - */ - protected String bootLocation = null; - - /** - * The identifier of the application to run. - */ - protected String application; - - /** - * The path for finding find plugins. - */ - protected URL pluginPathLocation; - - /** - * The boot path location. - */ - protected String location; - - /** - * Indicates whether items for UNinstallation should be looked for. - */ - protected boolean uninstall = false; - - /** - * The item to be uninstalled. - */ - protected String uninstallCookie; - - /** - * The class path entries. - */ - protected String devClassPath = null; - - /** - * Indicates whether this instance is running in development mode. - */ - protected boolean inDevelopmentMode = false; - - // static token describing how to take down the splash screen - private static String endSplash = null; - - // constants - private static final String APPLICATION = "-application"; - private static final String BOOT = "-boot"; - private static final String DEBUG = "-debug"; - private static final String DEV = "-dev"; - private static final String ENDSPLASH = "-endsplash"; - private static final String UNINSTALL = "-uninstall"; - private static final String PI_BOOT = "org.eclipse.core.boot"; - private static final String BOOTLOADER = "org.eclipse.core.boot.BootLoader"; - private static final String UPDATELOADER = "org.eclipse.core.internal.boot.LaunchInfo"; - - // The project containing the boot loader code. This is used to construct - // the correct class path for running in VAJ and VAME. - private static final String PROJECT_NAME = "Eclipse Core Boot"; - - private static boolean inVAJ; - static { - try { - Class.forName("com.ibm.uvm.lang.ProjectClassLoader"); - inVAJ = true; - } catch (Exception e) { - inVAJ = false; - } - } - private static boolean inVAME; - static { - try { - Class.forName("com.ibm.eclipse.core.VAME"); - inVAME = true; - } catch (Exception e) { - inVAME = false; - } - } - -/** - * Executes the launch. - * - * @return the result of performing the launch - * @param args command-line arguments - * @exception Exception thrown if a problem occurs during the launch - */ -protected Object basicRun(String[] args) throws Exception { - Class clazz = getBootLoader(bootLocation); - Method method = clazz.getDeclaredMethod("run", new Class[] { String.class, URL.class, String.class, String[].class }); - try { - return method.invoke(clazz, new Object[] { application, pluginPathLocation, location, args }); - } catch (InvocationTargetException e) { - if (e.getTargetException() instanceof Error) - throw (Error) e.getTargetException(); - else - throw e; - } -} - -/** - * Returns the result of converting a list of comma-separated tokens into an array - * - * @return the array of string tokens - * @param prop the initial comma-separated string - */ -private String[] getArrayFromList(String prop) { - if (prop == null || prop.trim().equals("")) - return new String[0]; - Vector list = new Vector(); - StringTokenizer tokens = new StringTokenizer(prop, ","); - while (tokens.hasMoreTokens()) { - String token = tokens.nextToken().trim(); - if (!token.equals("")) - list.addElement(token); - } - return list.isEmpty() ? new String[0] : (String[]) list.toArray(new String[0]); -} -/** - * Creates and returns a platform <code>BootLoader</code> which can be used to start - * up and run the platform. The given base, if not <code>null</code>, - * is the location of the boot loader code. If the value is <code>null</code> - * then the boot loader is located relative to this class. - * - * @return the new boot loader - * @param base the location of the boot loader - */ -public Class getBootLoader(String base) throws Exception { - URLClassLoader loader = new URLClassLoader(getBootPath(base), null); - return loader.loadClass(BOOTLOADER); -} -/** - * Returns the <code>URL</code>-based class path describing where the boot classes - * are located when running in development mode. - * - * @return the url-based class path - * @param base the base location - * @exception MalformedURLException if a problem occurs computing the class path - */ -protected URL[] getDevPath(URL base) throws MalformedURLException { - URL url; - String devBase = base.toExternalForm(); - if (!inDevelopmentMode) { - url = new URL(devBase + "boot.jar"); - return new URL[] {url}; - } - String[] locations = getArrayFromList(devClassPath); - ArrayList result = new ArrayList(locations.length); - for (int i = 0; i < locations.length; i++) { - String spec = devBase + locations[i]; - char lastChar = spec.charAt(spec.length() - 1); - if ((spec.endsWith(".jar") || (lastChar == '/' || lastChar == '\\'))) - url = new URL (spec); - else - url = new URL(spec + "/"); - //make sure URL exists before adding to path - if (new java.io.File(url.getFile()).exists()) - result.add(url); - } - url = new URL(devBase + "boot.jar"); - if (new java.io.File(url.getFile()).exists()) - result.add(url); - return (URL[])result.toArray(new URL[result.size()]); -} - -/** - * Returns the <code>URL</code>-based class path describing where the boot classes are located. - * - * @return the url-based class path - * @param base the base location - * @exception MalformedURLException if a problem occurs computing the class path - */ -protected URL[] getBootPath(String base) throws MalformedURLException { - URL url = null; - // if the given location is not null, assume it is correct and use it. - if (base != null) { - url = new URL(base); - if (debug) - System.out.println("Boot URL: " + url.toExternalForm()); - return new URL[] {url}; - } - // Create a URL based on the location of this class' code. - // strip off jar file and/or last directory to get - // to the directory containing projects. - URL[] result = null; - url = getClass().getProtectionDomain().getCodeSource().getLocation(); - String path = url.getFile(); - if (path.endsWith(".jar")) - path = path.substring(0, path.lastIndexOf("/")); - else - if (path.endsWith("/")) - path = path.substring(0, path.length() - 1); - if (inVAJ || inVAME) { - int ix = path.lastIndexOf("/"); - path = path.substring(0, ix + 1); - path = path + PROJECT_NAME + "/"; - url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path); - result = new URL[] {url}; - } else { - path = searchForPlugins(path); - path = searchForBoot(path); - // add on any dev path elements - url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path); - result = getDevPath(url); - } - if (debug) { - System.out.println("Boot URL:"); - for (int i = 0; i < result.length; i++) - System.out.println(" " + result[i].toExternalForm()); - } - return result; -} - -/** - * Searches for a plugins root starting at a given location. If one is - * found then this location is returned; otherwise an empty string is - * returned. - * - * @return the location where plugins were found, or an empty string - * @param start the location to begin searching at - */ -protected String searchForPlugins(String start) { - File path = new File(start); - while (path != null) { - File test = new File(path, "plugins"); - if (test.exists()) - return test.toString(); - path = path.getParentFile(); - path = (path == null || path.length() == 1) ? null : path; - } - return ""; -} -/** - * Searches for a boot directory starting at a given location. If one - * is found then this location is returned; otherwise an empty string - * is returned. - * - * @return the location where plugins were found, or an empty string - * @param start the location to begin searching at - */ -protected String searchForBoot(String start) { - FileFilter filter = new FileFilter() { - public boolean accept(File candidate) { - return candidate.getName().startsWith(PI_BOOT); - } - }; - File[] boots = new File(start).listFiles(filter); - String result = null; - String maxVersion = null; - for (int i = 0; i < boots.length; i++) { - String name = boots[i].getName(); - int index = name.lastIndexOf('_'); - if (index == -1) { - result = boots[i].getAbsolutePath(); - i = boots.length; - } else { - if (index > 0) { - String version = name.substring(index + 1); - if (maxVersion == null) { - result = boots[i].getAbsolutePath(); - maxVersion = version; - } else - if (maxVersion.compareTo(version) == -1) { - result = boots[i].getAbsolutePath(); - maxVersion = version; - } - } - } - } - if (result == null) - throw new RuntimeException("Could not find bootstrap code. Check location of boot plug-in or specify -boot."); - return result.replace(File.separatorChar, '/') + "/"; -} -/** - * Returns the update loader for the given boot path. - * - * @return the update loader - * @param base the boot path base - * @exception Exception thrown is a problem occurs determining this loader - */ -public Class getUpdateLoader(String base) throws Exception { - URLClassLoader loader = new URLClassLoader(getBootPath(base), null); - return loader.loadClass(UPDATELOADER); -} -/** - * Runs the platform with the given arguments. The arguments must identify - * an application to run (e.g., <code>-application com.example.application</code>). - * After running the application <code>System.exit(N)</code> is executed. - * The value of N is derived from the value returned from running the application. - * If the application's return value is an <code>Integer</code>, N is this value. - * In all other cases, N = 0. - * <p> - * Clients wishing to run the platform without a following <code>System.exit</code> - * call should use <code>run()</code>. - * - * @see #run - * - * @param args the command line arguments - */ -public static void main(String[] args) { - Object result = null; - try { - result = new Main().run(args); - } catch (Throwable e) { - // try and take down the splash screen. - endSplash(); - System.out.println("Exception launching the Eclipse Platform:"); - e.printStackTrace(); - } - int exitCode = result instanceof Integer ? ((Integer) result).intValue() : 0; - System.exit(exitCode); -} -/** - * Tears down the currently-displayed splash screen. - */ -public static void endSplash() { - if (endSplash == null) - return; - try { - Runtime.getRuntime().exec(endSplash); - } catch (Exception e) { - } -} - -/** - * Runs this launcher with the arguments specified in the given string. - * - * @param argString the arguments string - * @exception Exception thrown if a problem occurs during launching - */ -public static void main(String argString) throws Exception { - Vector list = new Vector(5); - for (StringTokenizer tokens = new StringTokenizer(argString, " "); tokens.hasMoreElements();) - list.addElement((String) tokens.nextElement()); - main((String[]) list.toArray(new String[list.size()])); -} - -/** - * Processes the command line arguments - * - * @return the arguments to pass through to the launched application - * @param args the command line arguments - */ -protected String[] processCommandLine(String[] args) throws Exception { - int[] configArgs = new int[100]; - configArgs[0] = -1; // need to initialize the first element to something that could not be an index. - int configArgIndex = 0; - for (int i = 0; i < args.length; i++) { - boolean found = false; - // check for args without parameters (i.e., a flag arg) - // check if debug should be enabled for the entire platform - if (args[i].equalsIgnoreCase(DEBUG)) { - debug = true; - // passed thru this arg (i.e., do not set found = true - continue; - } - - // check if development mode should be enabled for the entire platform - // If this is the last arg or there is a following arg (i.e., arg+1 has a leading -), - // simply enable development mode. Otherwise, assume that that the following arg is - // actually some additional development time class path entries. This will be processed below. - if (args[i].equalsIgnoreCase(DEV) && ((i + 1 == args.length) || ((i + 1 < args.length) && (args[i + 1].startsWith("-"))))) { - inDevelopmentMode = true; - // do not mark the arg as found so it will be passed through - continue; - } - - // done checking for args. Remember where an arg was found - if (found) { - configArgs[configArgIndex++] = i; - continue; - } - // check for args with parameters. If we are at the last argument or if the next one - // has a '-' as the first character, then we can't have an arg with a parm so continue. - if (i == args.length - 1 || args[i + 1].startsWith("-")) - continue; - String arg = args[++i]; - - // look for the laucher to run - if (args[i - 1].equalsIgnoreCase(BOOT)) { - bootLocation = arg; - found = true; - } - - // look for the development mode and class path entries. - if (args[i - 1].equalsIgnoreCase(DEV)) { - inDevelopmentMode = true; - devClassPath = arg; - continue; - } - - // look for the application to run - if (args[i - 1].equalsIgnoreCase(APPLICATION)) { - application = arg; - found = true; - } - - // look for token to use to end the splash screen - if (args[i - 1].equalsIgnoreCase(ENDSPLASH)) { - endSplash = arg; - continue; - } - - // look for items to uninstall - if (args[i - 1].equalsIgnoreCase(UNINSTALL)) { - uninstall = true; - uninstallCookie = arg; - found = true; - } - - // done checking for args. Remember where an arg was found - if (found) { - configArgs[configArgIndex++] = i - 1; - configArgs[configArgIndex++] = i; - } - } - // remove all the arguments consumed by this argument parsing - if (configArgIndex == 0) - return args; - String[] passThruArgs = new String[args.length - configArgIndex]; - configArgIndex = 0; - int j = 0; - for (int i = 0; i < args.length; i++) { - if (i == configArgs[configArgIndex]) - configArgIndex++; - else - passThruArgs[j++] = args[i]; - } - return passThruArgs; -} -/** - * Runs the application to be launched. - * - * @return the return value from the launched application - * @param args the arguments to pass to the application - * @exception thrown if a problem occurs during launching - */ -public Object run(String[] args) throws Exception { - String[] passThruArgs = processCommandLine(args); - if (uninstall) - return updateRun(UNINSTALL, uninstallCookie, passThruArgs); - else - return basicRun(passThruArgs); -} -/** - * Performs an update run. - * - * @return the return value from the update loader - * @param flag flag to give to the update loader - * @param value value to give to the update loader - * @param args arguments to give to the update loader. - * @exception Exception thrown if a problem occurs during execution - */ -protected Object updateRun(String flag, String value, String[] args) throws Exception { - Class clazz = getUpdateLoader(bootLocation); - Method method = clazz.getDeclaredMethod("run", new Class[] { String.class, String.class, String.class, String[].class }); - try { - return method.invoke(clazz, new Object[] { flag, value, location, args }); - } catch (InvocationTargetException e) { - if (e.getTargetException() instanceof Error) - throw (Error) e.getTargetException(); - else - throw e; - } -} -} diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/NewMain.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/NewMain.java deleted file mode 100644 index db442c80e60..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/NewMain.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ -package org.eclipse.cdt.debug.testplugin; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.net.URL; -import java.util.Properties; -import java.util.StringTokenizer; -import java.util.Vector; - -/** - * Application is responsible for calling core launch api - */ - -public class NewMain extends Main { - private static final String DEFAULT_APPLICATION= "org.eclipse.ui.workbench"; - - - public NewMain(String application, String location, URL pluginPathLocation, String bootLocation, boolean debug) throws IOException { - this.application= application; - this.location= location; - this.pluginPathLocation= pluginPathLocation; - this.bootLocation= bootLocation; - } - - public static void main(String[] args) { - try { - String location= getLocationFromProperties("platform"); - new NewMain(DEFAULT_APPLICATION, location, null, null, true).run(args); - } catch (Throwable e) { - System.out.println("Exception launching the Eclipse Platform UI:"); - e.printStackTrace(); - } - System.exit(0); - } - - - /** - * Run this launcher with the arguments specified in the given string. - * This is a short cut method for people running the launcher from - * a scrapbook (i.e., swip-and-doit facility). - */ - public static void main(String argString) throws Exception { - Vector list= new Vector(5); - for (StringTokenizer tokens= new StringTokenizer(argString, " "); tokens.hasMoreElements();) - list.addElement((String) tokens.nextElement()); - main((String[]) list.toArray(new String[list.size()])); - } - - public static String getLocationFromProperties(String key) { - Properties properties= new Properties(); - try { - FileInputStream fis= new FileInputStream(getSettingsFile()); - properties.load(fis); - return properties.getProperty(key); - } catch (IOException e) { - } - return null; - } - - private static File getSettingsFile() { - String home= System.getProperty("user.home"); - if (home == null) { - System.out.println("Home dir not defined"); - return null; - } - return new File(home, "eclipse-workspaces.properties"); - } -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java deleted file mode 100644 index ce3e74013d1..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ -package org.eclipse.cdt.debug.testplugin; - -import java.net.URL; - -/** - * Helper class to launch a test - */ -public class TestPluginLauncher { - - public static final String APP_NAME= "org.eclipse.jdt.ui.tests.app"; - - public static void run(String location, Class testCase, String[] args) { - run(APP_NAME, location, testCase, args); - } - - public static void run(String application, String location, Class testCase, String[] args) { - try { - String bootLocation= getBootLocation(); - int nArgs= args.length; - String[] newArgs= new String[4 + nArgs]; - newArgs[0]= testCase.getName(); - for (int i= 0; i < nArgs; i++) { - newArgs[1 + i]= args[i]; - } - newArgs[1 + nArgs]= "-dev"; - newArgs[1 + nArgs + 1]= "bin"; - newArgs[1 + nArgs + 2]= "-debug"; - NewMain newMain= new NewMain(application, location, null, bootLocation, false); - newMain.run(newArgs); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static String getLocationFromProperties(String key) { - return NewMain.getLocationFromProperties(key); - } - - public static String getLocationFromProperties() { - return NewMain.getLocationFromProperties("tests"); - } - - public static String getBootLocation() { - URL url= TestPluginLauncher.class.getResource("TestPluginLauncher.class"); - String s= url.toString(); - int index= s.indexOf("/org.eclipse.jdt.ui.tests"); - if (index == -1) - throw new IllegalArgumentException(); - s= s.substring(0, index); - s= s + "/org.eclipse.core.boot/boot.jar"; - return s; - } -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java deleted file mode 100644 index af10ae308b9..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ -package org.eclipse.cdt.debug.testplugin; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import junit.framework.Test; -import junit.framework.TestSuite; -import junit.textui.TestRunner; - -import org.eclipse.core.runtime.IPath; - -import org.eclipse.swt.widgets.Display; - -import org.eclipse.ui.internal.Workbench; - -public class TestWorkbench extends Workbench { - - /** - * Run an event loop for the workbench. - */ - protected void runEventLoop() { - // Dispatch all events. - Display display = Display.getCurrent(); - while (true) { - try { - if (!display.readAndDispatch()) - break; - } catch (Throwable e) { - break; - } - } - IPath location= CTestPlugin.getWorkspace().getRoot().getLocation(); - System.out.println("Workspace-location: " + location.toString()); - - - try { - String[] args= getCommandLineArgs(); - if (args.length > 0) { - Test test= getTest(args[0]); - TestRunner.run(test); - } else { - System.out.println("TestWorkbench: Argument must be class name"); - } - } catch (Exception e) { - e.printStackTrace(); - } - - - // Close the workbench. - close(); - } - - public Test getTest(String className) throws Exception { - Class testClass= getClass().getClassLoader().loadClass(className); - - Method suiteMethod= null; - try { - suiteMethod= testClass.getMethod(TestRunner.SUITE_METHODNAME, new Class[0]); - } catch (Exception e) { - // try to extract a test suite automatically - return new TestSuite(testClass); - } - try { - return (Test) suiteMethod.invoke(null, new Class[0]); // static method - } catch (InvocationTargetException e) { - System.out.println("Failed to invoke suite():" + e.getTargetException().toString()); - } catch (IllegalAccessException e) { - System.out.println("Failed to invoke suite():" + e.toString()); - } - return null; - - } - - -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java deleted file mode 100644 index 1e9a2f05689..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ -package org.eclipse.cdt.debug.testplugin.test; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.eclipse.cdt.core.model.ICProject; -import org.eclipse.cdt.debug.testplugin.CProjectHelper; -import org.eclipse.cdt.debug.testplugin.TestPluginLauncher; - - -public class HelloWorld extends TestCase { - - private ICProject fCProject; - - public static void main(String[] args) { - TestPluginLauncher.run(TestPluginLauncher.getLocationFromProperties(), HelloWorld.class, args); - } - - public static Test suite() { - TestSuite suite= new TestSuite(); - suite.addTest(new HelloWorld("test1")); - return suite; - } - - public HelloWorld(String name) { - super(name); - } - - protected void setUp() throws Exception { - fCProject= CProjectHelper.createCProject("TestProject1", "bin"); - } - - - protected void tearDown() throws Exception { - CProjectHelper.delete(fCProject); - } - - public void test1() throws Exception { - - assertTrue("Exception to test", 0 != 0); - - } - -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java deleted file mode 100644 index 8bf67a4ad3a..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -import java.util.ArrayList; - - -public class AccessibilityTestPass implements IDialogTestPass { - private static final int CHECKLIST_SIZE = 5; - - /** - * @see IDialogTestPass#title() - */ - public String title() { - return "Test Pass: Accessibility"; - } - /** - * @see IDialogTestPass#description() - */ - public String description() { - return "Verify the accessibility of the dialogs."; - } - /** - * @see IDialogTestPass#label() - */ - public String label() { - return "&Accessibility"; - } - /** - * @see IDialogTestPass#checkListTexts() - */ - public ArrayList checkListTexts() { - ArrayList list = new ArrayList(CHECKLIST_SIZE); - list.add("&1) all widgets are accessible by tabbing."); - list.add("&2) forwards and backwards tabbing is in a logical order"); - list.add("&3) all the widgets with labels have an appropriate mnemonic."); - list.add("&4) there are no duplicate mnemonics."); - list.add("&5) selectable widgets can be selected using the spacebar."); - return list; - } - /** - * @see IDialogTestPass#failureTexts() - * Size of the return array must be the same size as the checkListTexts' - * ArrayList. - */ - public String[] failureTexts() { - String[] failureText = new String[CHECKLIST_SIZE]; - failureText[0] = "Some widgets aren't accessible by tabbing."; - failureText[1] = "Tabbing order is illogical."; - failureText[2] = "Missing or inappropriate mnemonics."; - failureText[3] = "Duplicate mnemonics."; - failureText[4] = "Some widgets cannot be selected using the spacebar."; - return failureText; - } - /** - * @see IDialogTestPass#queryText() - */ - public String queryText() { - return "Is the accessibility of the dialog acceptable?"; - } - /** - * @see IDialogTestPass#getID() - */ - public int getID() { - return VerifyDialog.TEST_ACCESS; - } -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java deleted file mode 100644 index 8075b01033a..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - - -import junit.framework.Assert; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; - -import org.eclipse.ui.internal.WorkbenchPlugin; - - -/** - * A <code>DialogCheck</code> is used test a dialog in - * various ways. - * <p> - * For interactive tests use <code>assertDialog</code>. - * For automated tests use <code>assert DialogTexts</code>. - * </p> - */ -public class DialogCheck { - private DialogCheck() { - } - private static VerifyDialog _verifyDialog; - - - /** - * Asserts that a given dialog is not null and that it passes - * certain visual tests. These tests will be verified manually - * by the tester using an input dialog. Use this assert method - * to verify a dialog's sizing, initial focus, or accessiblity. - * To ensure that both the input dialog and the test dialog are - * accessible by the tester, the getShell() method should be used - * when creating the test dialog. - * - * Example usage: - * <code>Dialog dialog = new AboutDialog( DialogCheck.getShell() ); - * DialogCheck.assertDialog(dialog, this);</code> - * - * @param dialog the test dialog to be verified. - * @param assert this is the test case object, assertions will be - * executed on this object. - */ - public static void assertDialog(Dialog dialog, Assert assert) { - Assert.assertNotNull(dialog); - if (_verifyDialog.getShell() == null) { - //force the creation of the verify dialog - getShell(); - } - if (_verifyDialog.open(dialog) == IDialogConstants.NO_ID) { - Assert.assertTrue(_verifyDialog.getFailureText(), false); - } - } - - - /** - * Automated test that checks all the labels and buttons of a dialog - * to make sure there is enough room to display all the text. Any - * text that wraps is only approximated and is currently not accurate. - * - * @param dialog the test dialog to be verified. - * @param assert this is the test case object, assertions will be - * executed on this object. - */ - public static void assertDialogTexts(Dialog dialog, Assert assert) { - Assert.assertNotNull(dialog); - dialog.setBlockOnOpen(false); - dialog.open(); - Shell shell = dialog.getShell(); - verifyCompositeText(shell, assert); - dialog.close(); - } - - - /** - * This method should be called when creating dialogs to test. This - * ensures that the dialog's parent shell will be that of the - * verification dialog. - * - * @return Shell The shell of the verification dialog to be used as - * the parent shell of the test dialog. - */ - public static Shell getShell() { - Shell shell = - WorkbenchPlugin - .getDefault() - .getWorkbench() - .getActiveWorkbenchWindow() - .getShell(); - _verifyDialog = new VerifyDialog(shell); - _verifyDialog.create(); - return _verifyDialog.getShell(); - } - - - /* - * Looks at all the child widgets of a given composite and - * verifies the text on all labels and widgets. - * @param composite The composite to look through - * @param assert The object to invoke assertions on. - */ - private static void verifyCompositeText(Composite composite, Assert assert) { - Control children[] = composite.getChildren(); - for (int i = 0; i < children.length; i++) { - try { - //verify the text if the child is a button - verifyButtonText((Button) children[i], assert); - } catch (ClassCastException exNotButton) { - try { - //child is not a button, maybe a label - verifyLabelText((Label) children[i], assert); - } catch (ClassCastException exNotLabel) { - try { - //child is not a label, make a recursive call if it is a composite - verifyCompositeText((Composite) children[i], assert); - } catch (ClassCastException exNotComposite) { - //the child is not a button, label, or composite - ignore it. - } - } - } - } - } - - /* - * Verifies that a given button is large enough to display its text. - * @param button The button to verify, - * @param assert The object to invoke assertions on. - */ - private static void verifyButtonText(Button button, Assert assert) { - String widget = button.toString(); - Point size = button.getSize(); - - - //compute the size with no line wrapping - Point preferred = button.computeSize(SWT.DEFAULT, SWT.DEFAULT); - //if (size.y/preferred.y) == X, then label spans X lines, so divide - //the calculated value of preferred.x by X - if (preferred.y * size.y > 0) { - preferred.y /= countLines(button.getText()); //check for '\n\' - if (size.y / preferred.y > 1) { - preferred.x /= (size.y / preferred.y); - } - } - - - String message = - new StringBuffer("Warning: ") - .append(widget) - .append("\n\tActual Width -> ") - .append(size.x) - .append("\n\tRecommended Width -> ") - .append(preferred.x) - .toString(); - if (preferred.x > size.x) { - //close the dialog - button.getShell().dispose(); - Assert.assertTrue(message.toString(), false); - } - } - - /* - * Verifies that a given label is large enough to display its text. - * @param label The label to verify, - * @param assert The object to invoke assertions on. - */ - private static void verifyLabelText(Label label, Assert assert) { - String widget = label.toString(); - Point size = label.getSize(); - - - //compute the size with no line wrapping - Point preferred = label.computeSize(SWT.DEFAULT, SWT.DEFAULT); - //if (size.y/preferred.y) == X, then label spans X lines, so divide - //the calculated value of preferred.x by X - if (preferred.y * size.y > 0) { - preferred.y /= countLines(label.getText()); - if (size.y / preferred.y > 1) { - preferred.x /= (size.y / preferred.y); - } - } - String message = - new StringBuffer("Warning: ") - .append(widget) - .append("\n\tActual Width -> ") - .append(size.x) - .append("\n\tRecommended Width -> ") - .append(preferred.x) - .toString(); - if (preferred.x > size.x) { - //close the dialog - label.getShell().dispose(); - Assert.assertTrue(message.toString(), false); - } - } - - /* - * Counts the number of lines in a given String. - * For example, if a string contains one (1) newline character, - * a value of two (2) would be returned. - * @param text The string to look through. - * @return int the number of lines in text. - */ - private static int countLines(String text) { - int newLines = 1; - for (int i = 0; i < text.length(); i++) { - if (text.charAt(i) == '\n') { - newLines++; - } - } - return newLines; - } -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java deleted file mode 100644 index 7f0f74a6509..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.resource.JFaceResources; - - -/* - * A dialog for collecting notes from the tester regarding - * the failure of a test. - */ -public class FailureDialog extends Dialog { - private Text _text; - private String _log; - private int SIZING_TEXT_WIDTH = 400; - private int SIZING_TEXT_HEIGHT = 200; - - /** - * Constructor for FailureDialog - */ - public FailureDialog(Shell parentShell) { - super(parentShell); - } - /* (non-Javadoc) - * Method declared on Window. - */ - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - newShell.setText("Dialog Test Failed"); - } - /* (non-Javadoc) - * Method declared on Dialog. - */ - protected void createButtonsForButtonBar(Composite parent) { - createButton(parent, IDialogConstants.OK_ID, "&OK", true); - createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); - } - /* (non-Javadoc) - * Method declared on Dialog. - */ - protected Control createDialogArea(Composite parent) { - // page group - Composite composite = (Composite)super.createDialogArea(parent); - composite.setSize( composite.computeSize(SWT.DEFAULT, SWT.DEFAULT) ); - - Label label = new Label(composite, SWT.WRAP); - label.setText("&Enter a note regarding the failure:"); - - _text = new Text(composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); - _text.setFont( JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT) ); - GridData data = new GridData(GridData.FILL_BOTH); - data.widthHint = SIZING_TEXT_WIDTH; - data.heightHint = SIZING_TEXT_HEIGHT; - _text.setLayoutData(data); - - return composite; - } - /* (non-Javadoc) - * Method declared on Dialog. - */ - protected void okPressed() { - _log = _text.getText(); - super.okPressed(); - } - /* - * @return String the text contained in the input area of - * the dialog. - */ - String getText() { - if (_log == null) { - return "Empty entry."; - } else { - return _log; - } - } - /* - * Sets the text of the input area. This should only be - * called to set the initial text so only call before invoking - * open(). - */ - void setText(String text) { - _text.setText(text); - } - /* - * Returns a string representation of this class which - * the text contained in the input area of the dialog. - */ - public String toString() { - return getText(); - } -} - - diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java deleted file mode 100644 index d2403b77eab..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.util.ArrayList; - - -/* - * This test pass verifies the initial focus of a dialog - * when it is given focus. - */ -public class FocusTestPass implements IDialogTestPass { - private static final int CHECKLIST_SIZE = 1; - - - /** - * @see IDialogTestPass#title() - */ - public String title() { - return "Test Pass: Initial Focus"; - } - /** - * @see IDialogTestPass#description() - */ - public String description() { - return "Verify the initial focus of the dialogs."; - } - /** - * @see IDialogTestPass#label() - */ - public String label() { - return "&Initial Focus"; - } - /** - * @see IDialogTestPass#checkListTexts() - */ - public ArrayList checkListTexts() { - ArrayList list = new ArrayList(CHECKLIST_SIZE); - list.add("&1) the initial focus is appropriate."); - return list; - } - /** - * @see IDialogTestPass#failureTexts() - * Size of the return array must be the same size as the checkListTexts' - * ArrayList. - */ - public String[] failureTexts() { - String[] failureText = new String[CHECKLIST_SIZE]; - failureText[0] = "The initial focus is inappropriate."; - return failureText; - } - /** - * @see IDialogTestPass#queryText() - */ - public String queryText() { - return "Is the initial focus of the dialog correct?"; - } - /** - * @see IDialogTestPass#getID() - */ - public int getID() { - return VerifyDialog.TEST_FOCUS; - } -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java deleted file mode 100644 index 73007b04359..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -import java.util.ArrayList; - - -/* - * Interface to describe a visual test pass for a dialog test. - */ -public interface IDialogTestPass { - /* - * @return String The title of the test pass. - */ - public String title(); - /* - * @return String The description of the test pass. - */ - public String description(); - /* - * @return String The label of the test pass to be used - * in a selection list. The return includes an '&' - * if a mnemonic is desired. - */ - public String label(); - /* - * @return ArrayList A list of items to appear in a checklist. - * The items in the list must be Strings and should include an - * '&' if a mnemonic is desired. - */ - public ArrayList checkListTexts(); - /* - * @return String[] Associated failure messages that correspond - * to the checklist items. The size of this array should be the - * same size as the checklist. - */ - public String[] failureTexts(); - /* - * @return String The test that corresponds to the test pass to - * which the tester will respond with a 'yes' or 'no'. - */ - public String queryText(); - /* - * @return int A unique number that identifies the test pass. - */ - public int getID(); -} - - diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java deleted file mode 100644 index d91b63bca73..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.util.ArrayList; - - -/* - * This test pass verifies visually the sizing of the dialog and its - * widgets. - */ -class SizingTestPass implements IDialogTestPass { - private static final int CHECKLIST_SIZE = 5; - - - /** - * @see IDialogTestPass#title() - */ - public String title() { - return "Test Pass: Sizing and Display"; - } - /** - * @see IDialogTestPass#description() - */ - public String description() { - return "Verify the sizing and display of the dialogs and widgets."; - } - /** - * @see IDialogTestPass#label() - */ - public String label() { - return "&Sizing and Display"; - } - /** - * @see IDialogTestPass#checkListTexts() - */ - public ArrayList checkListTexts() { - ArrayList list = new ArrayList(CHECKLIST_SIZE); - list.add("&1) the correct dialog displays."); - list.add("&2) the dialog is an appropriate size for the required resolution (1024x768)."); - list.add("&3) the texts are correct and not cut off."); - list.add("&4) all strings have been externalized properly."); - list.add("&5) all the widgets are viewable and not cut off."); - return list; - } - /** - * @see IDialogTestPass#failureTexts() - * Size of the return array must be the same size as the checkListTexts' - * ArrayList. - */ - public String[] failureTexts() { - String[] failureText = new String[CHECKLIST_SIZE]; - failureText[0] = "The wrong dialog displayed."; - failureText[1] = "The dialog is too large for the required resolution."; - failureText[2] = "Text labels are wrong or cut off."; - failureText[3] = "Some strings have not been externalized properly."; - failureText[4] = "Some widgets are cut off."; - return failureText; - } - /** - * @see IDialogTestPass#queryText() - */ - public String queryText() { - return "Is the sizing and display of the dialog correct?"; - } - /** - * @see IDialogTestPass#getID() - */ - public int getID() { - return VerifyDialog.TEST_SIZING; - } -}
\ No newline at end of file diff --git a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java b/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java deleted file mode 100644 index 2cc11879b82..00000000000 --- a/debug/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java +++ /dev/null @@ -1,305 +0,0 @@ -package org.eclipse.cdt.debug.testplugin.util; - - -import java.util.Iterator; - - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.dialogs.TitleAreaDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.ShellAdapter; -import org.eclipse.swt.events.ShellEvent; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - - -/* - * This dialog is intended to verify a dialogs in a testing - * environment. The tester can test for sizing, initial focus, - * or accessibility. - */ -public class VerifyDialog extends TitleAreaDialog { - private int SIZING_WIDTH = 400; - - static int TEST_TYPE; - public static final int TEST_SIZING = 0; - public static final int TEST_FOCUS = 1; - public static final int TEST_ACCESS = 2; - private IDialogTestPass _dialogTests[] = new IDialogTestPass[3]; - - - private Dialog _testDialog; //the dialog to test - private Point _testDialogSize; - - private Label _queryLabel; - Button _yesButton; - private Button _noButton; - private Button _checkList[]; - private String _failureText; - - /* - * Create an instance of the verification dialog. - */ - public VerifyDialog(Shell parent) { - super(parent); - if ( !(TEST_TYPE <= 2) && !(TEST_TYPE >= 0) ) { - TEST_TYPE = TEST_SIZING; - } - _failureText = ""; - _dialogTests[0] = new SizingTestPass(); - _dialogTests[1] = new FocusTestPass(); - _dialogTests[2] = new AccessibilityTestPass(); - } - - /* (non-Javadoc) - * Method declared on Window. - */ - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - newShell.setText("Dialog Verification"); - setShellStyle(SWT.NONE); - } - /* (non-Javadoc) - * Method declared on Dialog. - */ - protected void createButtonsForButtonBar(Composite parent) { - _yesButton = createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, true); - _noButton = createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, false); - } - /* (non-Javadoc) - * Method declared on Dialog. - */ - protected void buttonPressed(int buttonId) { - if (IDialogConstants.YES_ID == buttonId) { - setReturnCode(IDialogConstants.YES_ID); - if (_testDialog.getShell() != null) { - _testDialog.close(); - } - close(); - } else if (IDialogConstants.NO_ID == buttonId) { - handleFailure(); - } - } - /* (non-Javadoc) - * Method declared on Dialog. - */ - protected Control createDialogArea(Composite parent) { - // top level composite - Composite parentComposite = (Composite)super.createDialogArea(parent); - - - // create a composite with standard margins and spacing - Composite composite = new Composite(parentComposite, SWT.NONE); - composite.setSize(SIZING_WIDTH, SWT.DEFAULT); - GridLayout layout = new GridLayout(); - layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); - layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); - layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); - layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); - composite.setLayout(layout); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - - - createTestSelectionGroup(composite); - createCheckListGroup(composite); - - - _queryLabel = new Label(composite, SWT.NONE); - _queryLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - initializeTest(); - return composite; - } - /* - * Group for selecting type of test. - */ - private void createTestSelectionGroup(Composite parent) { - Group group = new Group(parent, SWT.SHADOW_NONE); - group.setText("Testing:"); - group.setLayout( new GridLayout() ); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - group.setLayoutData(data); - - for (int i = 0; i < _dialogTests.length; i++) { - Button radio = new Button(group, SWT.RADIO); - radio.setText( _dialogTests[i].label() ); - final int testID = _dialogTests[i].getID(); - radio.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - TEST_TYPE = testID; - initializeTest(); - _yesButton.setEnabled(true); - } - }); - if ( TEST_TYPE == _dialogTests[i].getID() ) { - radio.setSelection(true); - } - } - } - /* - * Initializes the checklist with empty checks. - */ - private void createCheckListGroup(Composite parent) { - Group group = new Group(parent, SWT.SHADOW_NONE); - group.setText("Verify that:"); - group.setLayout( new GridLayout() ); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - group.setLayoutData(data); - - int checkListSize = 0; - for (int i = 0; i < _dialogTests.length; i++) { - int size = _dialogTests[i].checkListTexts().size(); - if (size > checkListSize) { - checkListSize = size; - } - } - _checkList = new Button[checkListSize]; - SelectionAdapter selectionAdapter = new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - checkYesEnable(); - } - }; - for (int i = 0; i < checkListSize; i++) { - _checkList[i] = new Button(group, SWT.CHECK); - _checkList[i].addSelectionListener(selectionAdapter); - data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - data.grabExcessHorizontalSpace = true; - _checkList[i].setLayoutData(data); - } - } - /* - * Disables the yes button if any of the items in the checklist - * are unchecked. Enables the yes button otherwise. - */ - void checkYesEnable() { - boolean enable = true; - for (int i = 0; i < _checkList.length; i++) { - if ( !_checkList[i].getSelection() ) { - enable = false; - } - } - _yesButton.setEnabled(enable); - } - /* - * Initializes the checklist, banner texts, and query label - */ - void initializeTest() { - IDialogTestPass test = _dialogTests[TEST_TYPE]; - setTitle( test.title() ); - setMessage( test.description() ); - Iterator iterator = test.checkListTexts().iterator(); - for (int i = 0; i < _checkList.length; i++) { - if ( iterator.hasNext() ) { - _checkList[i].setText( iterator.next().toString() ); - _checkList[i].setVisible(true); - _checkList[i].update(); - } else { - _checkList[i].setVisible(false); - _checkList[i].update(); - } - _checkList[i].setSelection(true); - } - _queryLabel.setText( test.queryText() ); - } - public String getFailureText() { - return _failureText; - } - /* - * Can't open the verification dialog without a specified - * test dialog, this simply returns a failure and prevents - * opening. Should use open(Dialog) instead. - * - */ - public int open() { - _failureText = "Testing dialog is required, use VerifyDialog::open(Dialog)"; - return IDialogConstants.NO_ID; - } - /* - * Opens the verification dialog to test the specified dialog. - */ - public int open(Dialog testDialog) { - if (getShell() == null) { - create(); - } - getShell().setLocation(0, 0); - getShell().setSize(Math.max(SIZING_WIDTH, getShell().getSize().x), getShell().getSize().y); - _testDialog = testDialog; - if (_testDialog.getShell() == null) { - _testDialog.create(); - } - _testDialogSize = _testDialog.getShell().getSize(); - openNewTestDialog(); - - return super.open(); - } - /* - * Opens the dialog to be verified. - */ - private void openNewTestDialog() { - if (_testDialog.getShell() == null) { - _testDialog.create(); - } - _testDialog.setBlockOnOpen(false); - _testDialog.getShell().setLocation(getShell().getSize().x + 1, 0); - _testDialog.getShell().setSize(_testDialogSize); - _testDialog.getShell().addShellListener(new ShellAdapter() { - public void shellClosed(ShellEvent e) { - e.doit = false; - } - - }); - _testDialog.open(); - } - /* - * The test dialog failed, open the failure dialog. - */ - private void handleFailure() { - IDialogTestPass test = _dialogTests[TEST_TYPE]; - StringBuffer text = new StringBuffer(); - String label = test.label(); - label = label.substring(0, label.indexOf("&")) + - label.substring(label.indexOf("&") + 1); - text.append(label). - append(" failed on the "). - append(SWT.getPlatform()). - append(" platform:\n"); - - String failureMessages[] = test.failureTexts(); - for (int i = 0; i < test.checkListTexts().size(); i++) { - if ( !_checkList[i].getSelection() ) { - text.append("- ").append(failureMessages[i]).append("\n"); - } - } - FailureDialog dialog = new FailureDialog( getShell() ); - dialog.create(); -// String temp = text.toString(); - dialog.setText( text.toString() ); - if (dialog.open() == IDialogConstants.OK_ID) { - _failureText = dialog.toString(); - setReturnCode(IDialogConstants.NO_ID); - if (_testDialog.getShell() != null) { - _testDialog.close(); - } - close(); - } - } - /* - * In case the shell was closed by a means other than - * the NO button. - */ - protected void handleShellCloseEvent() { - handleFailure(); - } -} - - |