Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Cleanup of debug.ui.tests

Cleanup of the debug tests to pull the resources out of the source tree and remove a problem where we were not properly terminating the debug sessions if the tests failed (caused project deletion to fail).
Index: .classpath
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/.classpath,v
retrieving revision 1.3
diff -u -r1.3 .classpath
--- .classpath	22 Jan 2003 19:22:47 -0000	1.3
+++ .classpath	3 Jul 2003 18:14:08 -0000
@@ -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>
Index: .project
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/.project,v
retrieving revision 1.3
diff -u -r1.3 .project
--- .project	22 Jan 2003 19:22:47 -0000	1.3
+++ .project	3 Jul 2003 18:14:08 -0000
@@ -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>
Index: Changelog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/Changelog,v
retrieving revision 1.7
diff -u -r1.7 Changelog
--- Changelog	6 Apr 2003 00:30:30 -0000	1.7
+++ Changelog	3 Jul 2003 18:14:08 -0000
@@ -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:
Index: build.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/build.properties,v
retrieving revision 1.5
diff -u -r1.5 build.properties
--- build.properties	6 Jan 2003 20:33:54 -0000	1.5
+++ build.properties	3 Jul 2003 18:14:08 -0000
@@ -2,6 +2,7 @@
                        	   core/
 bin.includes = about.html,\
 			   plugin.xml,\
+			   resources/,\
 			   test.xml
 src.includes = about.html,\
 			   plugin.xml,\
Index: core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java,v
retrieving revision 1.1
diff -u -r1.1 AllDebugTests.java
--- core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java	10 Oct 2002 13:06:39 -0000	1.1
+++ core/org/eclipse/cdt/debug/core/tests/AllDebugTests.java	3 Jul 2003 18:14:08 -0000
@@ -34,7 +34,6 @@
         suite.addTest(DebugTests.suite());
         suite.addTest(BreakpointTests.suite());
         suite.addTest(LocationTests.suite());
-        suite.addTest(TargetTests.suite());
         return suite;
         
         
Index: core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java,v
retrieving revision 1.1
diff -u -r1.1 BreakpointTests.java
--- core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java	10 Oct 2002 13:06:39 -0000	1.1
+++ core/org/eclipse/cdt/debug/core/tests/BreakpointTests.java	3 Jul 2003 18:14:08 -0000
@@ -8,16 +8,32 @@
 
 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 @@
 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 @@
      * 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 @@
         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 @@
         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 @@
      * 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 @@
         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 @@
          * 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 @@
          * 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 @@
 
         /* 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 @@
          **********************************************************************/    
     
         /* 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 @@
          **********************************************************************/    
     
         /* 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 @@
          * Then delete the other breakpoint.
          */
         breaks.deleteBreakpoint(curbreak);
-        
+		pause();
         breakpoints=breaks.getBreakpoints();
         assertTrue(breakpoints.length==0);
         
@@ -442,12 +517,12 @@
          **********************************************************************/
         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 @@
             assertTrue(curbreak.getLocation().getLineNumber()==x+1);
         }
         breaks.deleteAllBreakpoints();
+		pause();
         assertTrue(breaks.getBreakpoints().length==0);
         
         /**********************************************************************
@@ -465,11 +541,12 @@
          **********************************************************************/
         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 @@
             assertTrue(curbreak.getLocation().getLineNumber()==x+1);
         }
         breaks.deleteAllBreakpoints();
+		pause();
         assertTrue(breaks.getBreakpoints().length==0);
 
         /**********************************************************************
@@ -487,12 +565,12 @@
          **********************************************************************/
         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 @@
          **********************************************************************/
 
         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 @@
 
         /* clean up the session */
         session.terminate();
-
+		session=null;
     
    }
     /***
@@ -524,13 +602,11 @@
      * 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 @@
         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 @@
         
         /* clean up the session */
         session.terminate();
-
+		session=null;
+		targets=null;
     
    }
-       
+   void pause() {
+	try {
+		Thread.sleep(100);
+	} catch (InterruptedException e) {
+	}
+   }
 
 }
Index: core/org/eclipse/cdt/debug/core/tests/DebugTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/DebugTests.java,v
retrieving revision 1.1
diff -u -r1.1 DebugTests.java
--- core/org/eclipse/cdt/debug/core/tests/DebugTests.java	10 Oct 2002 13:06:39 -0000	1.1
+++ core/org/eclipse/cdt/debug/core/tests/DebugTests.java	3 Jul 2003 18:14:08 -0000
@@ -8,15 +8,27 @@
 
 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 @@
     IWorkspaceRoot root;
     ICProject testProject;
     NullProgressMonitor monitor;
+	ICDISession session;
     
 
     /**
@@ -61,15 +74,20 @@
      * 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 @@
      *
      * 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 @@
      * 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 @@
 		assertNotNull(location);
 		breaks.setLocationBreakpoint(0, location, null, null);
 		session.getCurrentTarget().resume();
-
+		session.terminate();
+		session=null;
 
    }
        
Index: core/org/eclipse/cdt/debug/core/tests/LocationTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/LocationTests.java,v
retrieving revision 1.1
diff -u -r1.1 LocationTests.java
--- core/org/eclipse/cdt/debug/core/tests/LocationTests.java	10 Oct 2002 18:22:09 -0000	1.1
+++ core/org/eclipse/cdt/debug/core/tests/LocationTests.java	3 Jul 2003 18:14:08 -0000
@@ -8,6 +8,7 @@
 
 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 @@
     IWorkspaceRoot root;
     ICProject testProject;
     NullProgressMonitor monitor;
+	ICDISession session;
     
 
     /**
@@ -62,15 +64,20 @@
      * 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 @@
      *
      * 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 @@
      * 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 @@
 
         
         /* clean up the session */
-        session.terminate();
-
+	    session.terminate();
+		session=null;
     
    }
        
Index: core/org/eclipse/cdt/debug/core/tests/TargetTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/core/org/eclipse/cdt/debug/core/tests/TargetTests.java,v
retrieving revision 1.2
diff -u -r1.2 TargetTests.java
--- core/org/eclipse/cdt/debug/core/tests/TargetTests.java	30 Oct 2002 20:55:07 -0000	1.2
+++ core/org/eclipse/cdt/debug/core/tests/TargetTests.java	3 Jul 2003 18:14:08 -0000
@@ -67,7 +67,7 @@
          * 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 @@
      * 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
Index: core/org/eclipse/cdt/debug/core/tests/resources/main.c
===================================================================
RCS file: core/org/eclipse/cdt/debug/core/tests/resources/main.c
diff -N core/org/eclipse/cdt/debug/core/tests/resources/main.c
--- core/org/eclipse/cdt/debug/core/tests/resources/main.c	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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);
-}
Index: core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile
===================================================================
RCS file: core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile
diff -N core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile
--- core/org/eclipse/cdt/debug/core/tests/resources/win/Makefile	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-win:
-	gcc -g -o main ../main.c
Index: core/org/eclipse/cdt/debug/core/tests/resources/win/main.exe
===================================================================
RCS file: core/org/eclipse/cdt/debug/core/tests/resources/win/main.exe
diff -N core/org/eclipse/cdt/debug/core/tests/resources/win/main.exe
Binary files /tmp/cvsANnVXB and /dev/null differ
Index: src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java,v
retrieving revision 1.3
diff -u -r1.3 CDebugHelper.java
--- src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java	29 Jan 2003 19:08:39 -0000	1.3
+++ src/org/eclipse/cdt/debug/testplugin/CDebugHelper.java	3 Jul 2003 18:14:08 -0000
@@ -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;
 
 
 /**
@@ -40,6 +45,26 @@
         else
            return(null);
         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);
 	}
 	
Index: src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java
diff -N src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java
--- src/org/eclipse/cdt/debug/testplugin/CElementDecorator.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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 + "*";
-	}
-}
Index: src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui.tests/src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java,v
retrieving revision 1.2
diff -u -r1.2 CProjectHelper.java
--- src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java	27 Mar 2003 16:21:59 -0000	1.2
+++ src/org/eclipse/cdt/debug/testplugin/CProjectHelper.java	3 Jul 2003 18:14:08 -0000
@@ -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.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 @@
  * 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 @@
 			project.open(null);
 		}
 		
-		
 		if (!project.hasNature(CProjectNature.C_NATURE_ID)) {
 			addNatureToProject(project, CProjectNature.C_NATURE_ID, null);
 		}
@@ -71,77 +92,17 @@
 	 * 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 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 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 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 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 @@
 		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();
Index: src/org/eclipse/cdt/debug/testplugin/CTestSetup.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/CTestSetup.java
diff -N src/org/eclipse/cdt/debug/testplugin/CTestSetup.java
--- src/org/eclipse/cdt/debug/testplugin/CTestSetup.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/Main.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/Main.java
diff -N src/org/eclipse/cdt/debug/testplugin/Main.java
--- src/org/eclipse/cdt/debug/testplugin/Main.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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 &lt;id&gt;: the identifier of the application to run
- * </dd>
- * <dd>
- *    -boot &lt;location&gt;: 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 &lt;location&gt;: 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 &lt;location&gt;: the location of the authorization database on disk. This argument
- * has to be used together with the -password argument
- * </dd>
- * <dd>
- *    -password &lt;passwd&gt;: the password for the authorization database
- * </dd>
- * <dd>
- *    -plugins &lt;location&gt;: 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 &lt;window system&gt;: 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;
-	}
-}
-}
Index: src/org/eclipse/cdt/debug/testplugin/NewMain.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/NewMain.java
diff -N src/org/eclipse/cdt/debug/testplugin/NewMain.java
--- src/org/eclipse/cdt/debug/testplugin/NewMain.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java
diff -N src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java
--- src/org/eclipse/cdt/debug/testplugin/TestPluginLauncher.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java
diff -N src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java
--- src/org/eclipse/cdt/debug/testplugin/TestWorkbench.java	29 Jan 2003 19:54:37 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java
diff -N src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java
--- src/org/eclipse/cdt/debug/testplugin/test/HelloWorld.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java
--- src/org/eclipse/cdt/debug/testplugin/util/AccessibilityTestPass.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java
--- src/org/eclipse/cdt/debug/testplugin/util/DialogCheck.java	29 Jan 2003 19:54:37 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java
--- src/org/eclipse/cdt/debug/testplugin/util/FailureDialog.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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();
-	}
-}
-
-
Index: src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java
--- src/org/eclipse/cdt/debug/testplugin/util/FocusTestPass.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java
--- src/org/eclipse/cdt/debug/testplugin/util/IDialogTestPass.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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();
-}
-
-
Index: src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java
--- src/org/eclipse/cdt/debug/testplugin/util/SizingTestPass.java	10 Oct 2002 13:06:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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
Index: src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java
diff -N src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java
--- src/org/eclipse/cdt/debug/testplugin/util/VerifyDialog.java	6 Apr 2003 00:30:22 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -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();
-	}
-}
-
-

Back to the top