diff --git a/core/org.eclipse.cdt.ui.tests/ChangeLog b/core/org.eclipse.cdt.ui.tests/ChangeLog index b84c6a77f02..9114b3394c1 100644 --- a/core/org.eclipse.cdt.ui.tests/ChangeLog +++ b/core/org.eclipse.cdt.ui.tests/ChangeLog @@ -1,3 +1,8 @@ +2003-06-11 Victor Mozgin + Old Java TestCase.txt and TestCase2.txt for partioning testing have been replaced with C/C++ files. + Modified AutomatedIntegrationSuite.java so it doesn't produce JUnit warning anymore. + All tests in org.eclipse.cdt.ui.tests should pass now. + 2003-06-10 Brent Nicolle Added some Interface tests of (IInclude, IMacro, IStructure). Made sure all the Test Suites have names in the JUnit hierarchy. diff --git a/core/org.eclipse.cdt.ui.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java b/core/org.eclipse.cdt.ui.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java index e0e521c4564..79133c9b6ab 100644 --- a/core/org.eclipse.cdt.ui.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java +++ b/core/org.eclipse.cdt.ui.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java @@ -74,7 +74,7 @@ public class AutomatedIntegrationSuite extends TestSuite implements TestListener suite.addTest(WorkingCopyTests.suite()); // Last test to trigger report generation - suite.addTest(suite.new GenerateReport("testStartFailedTests")); + suite.addTest(suite.new GenerateReport("startFailedTests")); // Add all failed tests suite.addTestSuite(DOMFailedTest.class); @@ -83,7 +83,7 @@ public class AutomatedIntegrationSuite extends TestSuite implements TestListener suite.addTestSuite(CModelElementsFailedTests.class); // Last test to trigger report generation - suite.addTest(suite.new GenerateReport("testGenerateReport")); + suite.addTest(suite.new GenerateReport("generateReport")); return suite; } @@ -209,7 +209,7 @@ public class AutomatedIntegrationSuite extends TestSuite implements TestListener } public GenerateReport(){} - public void testGenerateReport() { + public void generateReport() { // skip this one AutomatedIntegrationSuite.this.skipTest = true; @@ -217,7 +217,7 @@ public class AutomatedIntegrationSuite extends TestSuite implements TestListener AutomatedIntegrationSuite.this.generateReport(); } - public void testStartFailedTests() { + public void startFailedTests() { // skip this one AutomatedIntegrationSuite.this.skipTest = true; diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase.txt b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase.txt index 09eca5f9f63..16bc625fe55 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase.txt +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase.txt @@ -1,211 +1,43 @@ -package org.eclipse.jdt.ui.tests.text; +#include -import java.lang.reflect.*; +const SimpleStruct simpleStruct = +{ + 1 + , "mySimple" + , 0.1232 +}; -/** - * A test case defines the fixture to run multiple tests. To define a test case
- * 1) implement a subclass of TestCase
- * 2) define instance variables that store the state of the fixture
- * 3) initialize the fixture state by overriding setUp
- * 4) clean-up after a test by overriding tearDown.
- * Each test runs in its own fixture so there - * can be no side effects among test runs. - * Here is an example: - *
- * public class MathTest extends TestCase {
- *     protected double fValue1;
- *     protected double fValue2;
- *
- *     public MathTest(String name) {
- *         super(name);
- *     }
- *
- *    protected void setUp() {
- *         fValue1= 2.0;
- *         fValue2= 3.0;
- *     }
- * }
- * 
- * - * For each test implement a method which interacts - * with the fixture. Verify the expected results with assertions specified - * by calling assert with a boolean. - *
- *    protected void testAdd() {
- *        double result= fValue1 + fValue2;
- *        assert(result == 5.0);
- *    }
- * 
- * Once the methods are defined you can run them. The framework supports - * both a static type safe and more dynamic way to run a test. - * In the static way you override the runTest method and define the method to - * be invoked. A convenient way to do so is with an anonymous inner class. - *
- * Test test= new MathTest("add") {
- *        public void runTest() {
- *            testAdd();
- *        }
- * };
- * test.run();
- * 
- * The dynamic way uses reflection to implement runTest. It dynamically finds - * and invokes a method. - * In this case the name of the test case has to correspond to the test method - * to be run. - *
- * Test= new MathTest("testAdd");
- * test.run();
- * 
- * The tests to be run can be collected into a TestSuite. JUnit provides - * different test runners which can run a test suite and collect the results. - * A test runner either expects a static method suite as the entry - * point to get a test to run or it will extract the suite automatically. - *
- * public static Test suite() {
- *      suite.addTest(new MathTest("testAdd"));
- *      suite.addTest(new MathTest("testDivideByZero"));
- *      return suite;
- *  }
- * 
- * @see TestResult - * @see TestSuite - */ +#define SIZEOF( A, B ) sizeof( A.B ) -public abstract class TestCase extends Assert implements Test { - /** - * the name of the test case - */ - private String fName; - - /** - * No-arg constructor to enable serialization. This method - * is not intended to be used by mere mortals. - */ - TestCase() { - fName= null; +const OtherStruct array[] = +{ + { +#if FOO + "foo" +#else + "bar" +#endif + , SIZEOF( simpleStruct, num ) + , &t_int + , 0 } - - /** - * Constructs a test case with the given name. - */ - public TestCase(String name) { - fName= name; + , { + "name" + , SIZEOF( simpleStruct, floatnum ) + , &t_float + , 1 } - - /** - * Counts the number of test cases executed by run(TestResult result). - */ - public int countTestCases() { - return 1; - } - /** - * Creates a default TestResult object - * - * @see TestResult - */ - protected TestResult createResult() { - return new TestResult(); - } - /** - * Gets the name of the test case. - * @deprecated use getName() - */ - public String name() { - return fName; - } - /** - * A convenience method to run this test, collecting the results with a - * default TestResult object. - * - * @see TestResult - */ - public TestResult run() { - TestResult result= createResult(); - run(result); - return result; - } - /** - * Runs the test case and collects the results in TestResult. - */ - public void run(TestResult result) { - result.run(this); - } - /** - * Runs the bare test sequence. - * @exception Throwable if any exception is thrown - */ - public void runBare() throws Throwable { - setUp(); - try { - runTest(); - } - finally { - tearDown(); - } - } - /** - * Override to run the test and assert its state. - * @exception Throwable if any exception is thrown - */ - protected void runTest() throws Throwable { - Method runMethod= null; - try { - // use getMethod to get all public inherited - // methods. getDeclaredMethods returns all - // methods of this class but excludes the - // inherited ones. - runMethod= getClass().getMethod(fName, null); - } catch (NoSuchMethodException e) { - fail("Method \""+fName+"\" not found"); - } - if (!Modifier.isPublic(runMethod.getModifiers())) { - fail("Method \""+fName+"\" should be public"); - } +}; - try { - runMethod.invoke(this, new Class[0]); - } - catch (InvocationTargetException e) { - e.fillInStackTrace(); - throw e.getTargetException(); - } - catch (IllegalAccessException e) { - e.fillInStackTrace(); - throw e; - } - } - /** - * Sets up the fixture, for example, open a network connection. - * This method is called before a test is executed. - */ - protected void setUp() throws Exception { - } - /** - * Tears down the fixture, for example, close a network connection. - * This method is called after a test is executed. - */ - protected void tearDown() throws Exception { - } - /** - * Returns a string representation of the test case - */ - public String toString() { - return name()+"("+getClass().getName()+")"; - } - /** - * Gets the name of a TestCase - * @return returns a String - */ - public String getName() { - return fName; - } - /** - * Sets the name of a TestCase - * @param name The name to set - */ - public void setName(String name) { - fName= name; - } +void SimpleStruct_construct( struct SimpleStruct * const this ) +{ + this->num = 1; + this->name = "boo"; + this->floatNum = 1.5; +} -} \ No newline at end of file +int ConnectParams_doSomething( const struct SimpleStruct * const this ) +{ + return 1; +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase2.txt b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase2.txt index f9a86b87366..09002042db8 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase2.txt +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/TestCase2.txt @@ -1,66 +1,68 @@ -package org.eclipse.jdt.ui.tests.text; - -/** - * javadoc +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. */ -public class TestCase2 { - /* - * multi line comment - */ - private void foo() { - // single line comment - int value= 42; - - /**/ - - String s= "string"; - char c= 'c'; - - String s2= "string2"/* ads*/; - - Nastyness: ""/**/''""; - - // open strings and characters - 'open characters - "open strings - - // all state transitions - /* multi line comment */// single line comment - /* multi line comment *//* multi line comment */ - /* multi line comment *//** java doc */ - /* multi line comment */'character' - /* multi line comment */"string" - /* java doc */// single line comment - /* java doc *//* multi line comment */ - /* java doc *//** java doc */ - /* java doc */'character' - /* java doc */"string" - "string"// single line comment - "string"//* multi line comment */ - "string"/** java doc */ - "string"'character' - "string""string" - 'character'// single line comment - 'character'"//* multi line comment */ - 'character'/** java doc */ - 'character''character' - 'character'"string" +/******** + * This is a sample C file that will be used in testing the TranslationUnit + * class. It has a specific structure that will be looked for within the + * test case. + * This file is only ment to contain various C elements, and may not compile + * into a running application (but should be valid C) + */ + +#include +#include - // more nasty cases - /'asdf - /"asdf +/* A function prototype */ +int func2p(void); - /** - * // single line comment inside javadoc - */ - - /* - * // single line comment inside multi-line comment - */ - - // would fail conformance, but it's ok - " - ' - } +/* A global variable */ +int globalvar; +/* A enumeration */ +enum myenum {ENUM_A=1, ENUM_B=2, ENUM_C=3, ENUM_D=4}; + +/* A structure. This also includes a typedef around the strcture def + * which at the time of writing was not picked up. + */ +typedef struct mystruct { + int a; + char b; + long c; +} mystruct_t; + +/* A union */ +union myunion { + int x; + char y; + long z; +}; + +/* A typedef */ +typedef struct mystruct mytype; + + +/* A couple functions */ + +void * func1(void) +{ + return(NULL); +} + + +int func2(void) +{ + return(0); +} + +int main(int argc, char ** argv) +{ + int var1; + printf("Hello world\n"); +} + + +void func3() +{ + printf("This is not really here\n"); }