2005-08-30 Alain Magloire
	New test for PR 109202 (written by Devin Steffler)
	* ui/org/eclipse/cdt/ui/tests/tex/selectiontests/CPPSelectionTestsDOMIndexer.java

2005-06-08 Alain Magloire
	Move to the IContentTypeManager framework: PR 86645
	* src.org.eclipse/cdt/ui/tests/DOMAST/DOMAST.java
	
2005-03-13 Bogdan Gheorghe
	Updated references to IndexManager to reflect new indexing framework.
	
2005-02-03 Tanya Wolff
	Fixed some content assist regression tests.
	Added Regression tests (content assist, refactoring) to automated suite for nightly builds
	* ui/org.eclipse.cdt.ui.tests/AutomatedSuite.java
	* ui/org.eclipse.cdt.ui.tests.regression/ContentAssistRegressionTests.java

2004-12-17 Tanya Wolff
	Added more Content Assist Regression tests

2004-12-10 Alain Magloire
	No need for TestBufferTest test, it is now in JFace.

2004-11-16 Andrew Niefer
	- created package ui/org.eclipse.ui.tests.regression 
	- moved ContentAssistRegressionTests to it and created a RefactoringRegressionTests
	- created a RegressionTestUISuite
	

2004-11-08 Mikhail Voronin
	New tests for help extension.
	* ui/org/eclipse/cdt/ui/tests/chelp/CHelpProviderTester.java
	* ui/org/eclipse/cdt/ui/tests/chelp/CHelpTest.java
	* ui/org/eclipse/cdt/ui/tests/chelp/CHelpTestInfoProvider.java

2004-11-02 Tanya Wolff
	added content assist regression tests
	*ui.tests.text.contentassist/ContentAssistRegressionTests.java
	
2004-05-11 Andrew Niefer
	Renamed CompletionFailedTest_ScopedReference_ConstructorDefinition to CompletionTest_VariableType_NestedPrefix
	Modified expected results for CompletionTest_ConstructorReference

2004-04-30 Hoda Amer
	Added CompletionFailedTest_ScopedReference_ConstructorDefinition
	Added CompletionTest_ScopedReference_NonCodeScope
	
2004-04-12 Hoda Amer
	Updated CompletionFailedTest_ScopedReference_NoPrefix_Bug50152, renamed it to CompletionTest_ScopedReference_NoPrefix and moved it out of the failed tests folder.
	
2004-04-07 John Camelon
	Updated CompletionFailedTest_ConstructorReference_Bug50808, renamed it to CompletionTest_ConstructorReference and moved it out of the failed tests folder.
	Updated CompletionFailedTest_TypeDef_Bug52948, renamed it to CompletionTest_TypeDef_Prefix and moved it out of the failed tests folder.
	Renamed CompletionTest_TypeDef_Bug52948 it to CompletionTest_TypeDef_NoPrefix.
	Updated CompletionTest_SingleName_Parameter and renamed it to CompletionTest_FunctionReference_Prefix.
	Updated CompletionFailedTest_FunctionReference_Bug50807, renamed it to CompletionTest_FunctionReference_NoPrefix and moved it out of the failed tests folder.

2004-04-07 John Camelon
	Updated CompletionFailedTest_ScopedReference_Prefix_Bug50152, moved it out of failed tests package and renamed it to CompletionTest_ScopedReference_Prefix_Bug50152.
	Updated CompletionFailedTest_TypeDef_Bug52948, moved it out of failed tests package and renamed it to CompletionTest_TypeDef_Bug52948. 
	Updated CompletionFailedTest_ScopedReference_NoPrefix_Bug50152 to show Hoda/Andrew what is still broken.  	

2004-03-08 Hoda Amer
	Added one failed test: CompletionFailedTest_TypeDef_Bug52948

2004-03-03 John Camelon
	Updated failed test to fail in new way as Content Assist feature work continues on ...

2004-01-30 John Camelon
	Updated CompletionFailedTest_MacroRef_NoPrefix_Bug50487, renamed it to CompletionTest_MacroRef_NoPrefix and moved to passed test package.
	Updated CompletionFailedTest_MacroRef_Prefix_Bug50487, renamed it to Y and moved to passed test package.
	
2004-01-29 Hoda Amer
	-Added CompletionTest_SingleName_Parameter test to success tests.
	-Changed BaseTest to check if the expected values exist in the proposed values
	instead of checking that the expected values exactly match the first part of the proposed values
	
2004-01-29 John Camelon
	Updated CompletionTest_ArgumentType_Prefix_Bug50642, renamed it to CompletionTest_ArgumentType_Prefix and moved to passed test package.
	Updated CompletionTest_ArgumentType_Prefix2_Bug50642, renamed it to CompletionTest_ArgumentType_Prefix2 and moved to passed test package.
	Updated CompletionTest_ArgumentType_NoPrefix_Bug50642, renamed it to CompletionTest_ArgumentType_NoPrefix and moved to passed test package.
	Updated CompletionTest_ArgumentType_NoPrefix2_Bug50642, renamed it to CompletionTest_ArgumentType_NoPrefix2 and moved to passed test package.

2004-01-29 Hoda Amer
	Added two more tests, namely Function_Reference and Constructor_Reference.
	Moved tests starts resources all to one directory.
	
2004-01-28 John Camelon
	Updated and renamed CompletionFailedTest_NewTypeReference_NoPrefix_Bug50711 to CompletionTest_NewTypeReference_NoPrefix, moving it to the success tests directory.
	Updated and renamed CompletionFailedTest_NewTypeReference_Prefix_Bug50711 to CompletionTest_NewTypeReference_Prefix, moving it to the success tests directory.

2004-01-28 John Camelon
	Updated CompletionTest_SingleName_NoPrefix to include internal macro definitions.

2004-01-27 John Camelon
	Updated COMPLETION_PARSE clients to use SINGLE_NAME_REFERENCE rather than STATEMENT_START.  
	Renamed and updated CompletionTest_StatementStart_NoPrefix to CompletionTest_SingleName_Method_NoPrefix.
	Renamed and updated CompletionTest_StatementStart_Prefix to CompletionTest_SingleName_Method_Prefix.
	Renamed and updated CompletionFailedTest_ExceptionReference_NoPrefix_Bug50640 to CompletionTest_ExceptionReference_NoPrefix and moved to passed tests folder.
	Renamed and updated CompletionFailedTest_ExceptionReference_Prefix_Bug50640 to CompletionTest_ExceptionReference_Prefix and moved to passed tests folder.
	Renamed and updated CompletionFailedTest_NamespaceRef_NoPrefix_Bug50471 to CompletionTest_TypeRef_NoPrefix and moved to passed tests folder.
	Renamed and updated CompletionFailedTest_NamespaceRef_Prefix_Bug50471 to CompletionTest_TypeRef_Prefix and moved to passed tests folder.
	Renamed and updated CompletionFailedTest_ClassReference_Prefix_Bug50621 to CompletionTest_ClassReference_Prefix and moved to passed tests folder.
	Renamed and updated CompletionFailedTest_ClassReference_NoPrefix_Bug50621 to CompletionTest_ClassReference_NoPrefix and moved to passed tests folder.

2004-01-27 Hoda Amer
	More Completion JUnit tests.

2004-01-26 Hoda Amer
	More Completion JUnit tests.

2004-01-23 Hoda Amer
	More Completion JUnit tests.
	
2004-01-22 John Camelon
	Updated CompletionFailedTest_FieldType_NoPrefix_Bug50344 and moved from failed tests.  

2004-01-21 Hoda Amer
	Renamed completion tests to be more meaningful.
	
2004-01-21 Hoda Amer
	Added more JUnit tests for Content Assist

2004-01-19 Hoda Amer
	Added a JUnit test case for completion on Macros with function style.
	
2004-01-16 Hoda Amer
	Added More success JUnit tests.
	Added two failed JUnit tests.
	
2004-01-15 Hoda Amer
	Moved Content Assist testing to the UI.tests plugin
	Started a new framework of JUnit tests for content assist.
	Added Content assist tests to the AutomatedSuite test of the UI.tests plugin
	
2003-07-17 Peter Graves
     Remove the usage of the assert, as it's a reserved keyword in 
     Java 1.4 (Bugzilla 40377)

2003-07-15 Peter Graves
     Clean up some left over stuff that was moved into org.eclipse.cdt.core.tests,
     and fixed the test.xml to point to the correct test suite.
     
2003-06-25 John Camelon
	Create new interface and support for calculating lineNumber/offset mapping.  
	Updated IASTClassSpecifier for qualified name query.  
	Began structuring expressions and declarators in Parser for ISourceElementRequestor.  
	Updated other packages to use new interfaces.
	Updated automatedtests/torture test to use new line number information.  

2003-06-24 John Camelon
	Updates for ISourceElementRequestor - elaborated types & enumerations.  

2003-06-23 John Camelon
	Updated Factory infrastructure, constructors, etc. 
	Introduced Preprocessor class for transitive closure calc. client.  

2003-06-20 Sean Evoy
	Moved the ManagedBuildInfo extension point to the plugin file in org.eclipse.cdt.core.tests

2003-06-17 Brent Nicolle
	Added Interface tests of IStructure.java.

2003-06-17 Victor Mozgin
	Added DeclaratorsTests.java (invocation in AllCoreTests).
	Added DeclaratorsTests.cpp to org.eclipse.cdt.core.model.tests.resources.

2003-06-16 Vladimir Hirsl
	Added /build, /parser, /failures and /suite directories to the library. 
	Copied resources from /model/org.eclipse.cdt.core.model.tests.resources
	                 to /model/org/clipse/cdt/core/model/tests/resources/cmodel.
	Added class AISResultPrinter to format test results.  
	Class AutomatedIntegrationSuite now implements IPlatformRunnable.

2003-06-16 Victor Mozgin
	Added testOldKRFunctionDeclarations() to DOMTests.
	Added testKRFunctionDeclarations() to TranslationUnitTests.

2003-06-14 Victor Mozgin
	Moved testBugSingleton192() from LokiFailures to DOMTests.
	Added testPointersToMembers() and testPointersToMemberFunctions() to DOMTests.
	Added testBug36290() and testBug36931() to DOMTests.

2003-06-13 John Camelon
	Added Class/Base infrastructure to public interfaces & requestor callback. 
	Moved many internal interfaces to external packages. 
	Organized imports.  

2003-06-13 Victor Mozgin
	Renamed NullParserCallback into NullSourceElementRequester in AutomatedFramework.

2003-06-13 John Camelon
	Merged ParserSymbolTable branch back into HEAD.

2003-06-12 John Camelon
	Get rest of JUnit tests working, will merge back to HEAD branch.  

2003-06-12 John Camelon
	Introduction of ASTFactory strategy, some restructuring of packages and interfaces.
	
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.

3003-06-11 Peter Graves
    Update the test.xml to get the location of org.eclipse.test from a property
    if set. If the property is not set, it will default to the old value.
    
2003-06-11 Victor Mozgin
	Added TortureTest to test CDT C++ parser with GCC testsuites.
	GCC testsuites are not included.

2003-06-10 John Camelon
	Futher pursuit of the golden hammer, symbol table integration. 

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.

2003-06-09 John Camelon
	First step in replacing IParserCallback with ISourceElementRequestor.  
	
2003-06-09 Victor Mozgin
	Moved testBug36769() from ACEFailedTest.java to DOMTests.java.
	Removed ACEFailedTest.java as it is empty now.
	Added DOMTests.testBug36769B(). 

2003-06-09 Victor Mozgin
	Moved testBug36932() from DOMFailedTest.java to DOMTests.java.
	Added DOMTests.testBug36932B() and DOMTests.testBug36932C(). 

2003-06-09 Victor Mozgin
	Moved testBug36701() from ScannerFailedTests.java to ScannerTestCase.java.
	Renamed it to testBug36701A() and fixed it.
	Added ScannerTestCase.testBug36701B().

2003-06-07 Victor Mozgin
	Moved testBug36766A(), testBug36766B() & testBug36766C() from STLFailedTests.java to DOMTests.java.
	Renamed them to testBug36766and36769x(), as they cover both PRs.
	Added testBug36766and36769D() - test for templated destructor.

2003-06-05 John Camelon
	Moved testBug23478A() & testBug23478B() from failed tests to TranslationUnitTests.java.
	Removed TranslationUnitFailedTests.java as it was empty. 

2003-05-29 Andrew Niefer
	Modified tests to support eType & PtrOp changes in core
	Added ParserSymbolTableTest::testTemplateParameterAsParent
	Added ParserSymbolTableTest::testTemplateInstanceAsParent
	Added ParserSymbolTableTest::testTemplateParameterDefaults
	Added ParserSymbolTableTest::testTemplateParameterAsFunctionArgument
	started ParserSymbolTableTest::incompletetestTemplateSpecialization

2003-05-26 John Camelon
	Rollback PST/Parser integration.

2003-05-13 Andrew Niefer	
	Modified ParserSymbolTableTest to use new interface

2003-05-08 Andrew Niefer
	Added ParserSymbolTableTest::testMarkRollback

2003-05-06 John Camelon
	Further integration of SymbolTable into Parser, some refactoring. 

2003-05-05 John Camelon/Andrew Niefer
	Added CrossReferenceTests to ParserTestSuite to test symbol-table/DOM interworking.

2003-05-05 Andrew Niefer
	Rewrote ParserSymbolTableTest to reflect structural changes to the symbol table.

2003-05-01 Andrew Niefer
	Updated FractionalAutomatedTest to use threads
	Modified ScannerTestCase::testBug36287
	Added ScannerTestCase::testBug37011
	Added ScannerTestCase::testOtherPreprocessorDefines

2003-04-28 John Camelon
	Moved testBug36730() & testBug37019() from DOMFailedTests to DOMTests.

2003-04-28 Andrew Niefer
	Added DOMFailedTest::testBug37019
	Added DOMFailedTest::testBug36932
	Added ScannerFailedTest::testBug37011

2003-04-28 John Camelon
	Added DOMTests::testOrder().  

2003-04-28 Peter Graves
	* model/org/eclipse/cdt/core/model/tests/BinaryTests:
	Updated to remove a few small errors, and deal with some changes
	to the core CDT
	 
2003-04-27 John Camelon
	Added testBug36932() to DOMTests. 
	Moved testBugFunctor758() from LokiFailures to DOMTests.
	Moved testBug36704() from DOMFailedTest to DOMTests.  
	Moved testBug36699() from DOMFailedTest to DOMTests.  
	Moved testBug36691() from DOMFailedTest to DOMTests.  

2003-04-25 Andrew Niefer
	Moved ACEFailedTest::testBug36771 to DOMTests
	Moved DOMFailedTest::testBug36714 to DOMTests
	Updated ScannerTestCase::testBug36816
	
2003-04-25 John Camelon
	Added DOMTests::testBug36852(). 
	Added DOMTests::testBug36764().
	Moved DOMFailedTests::testBug36702() to DOMTests(). 

2003-04-24 John Camelon
	Moved fixed tests from FailedTests to DOMTests. 
	Added DOMTests::testBug36799().
	Cleaned up tests to reduce amount of code necessary to maintain these things. 

2003-04-24 John Camelon
	Moved fixed tests from FailedTests to DOMTests. 
	Added LokiFailures.java to failed tests directory.

2003-04-24 Andrew Niefer
	Added AutomatedFramework.java
	Added FractionalAutomatedTest (which derives from AutomatedFramework)
	Refactored AutomatedTest to derive from AutomatdFramework
	Added ScannerTestCase.testBug36816
	Added ScannerTestCase.testBug36255	

2003-04-24 John Camelon
	Fixed Java 1.3 compliance issue w/AutomatedTest.java
	Fixed False failure in HelloWorld.java.  

2003-04-21 John Camelon
	Updated DOMTests::testBug36247(). 
	Moved testBug36692(), testBug36703(), testBug36708(), testBug36707(), testBug36689()
	and testBug36690() from DOMFailedTests to DOMTests and updated them. 

2003-04-20 John Camelon
	Added DOMTests::testBug36551().
	Adjusted AutomatedTest to turn on line numbering. 
	Added DOMFailedTests and 11 failed test cases.  

2003-04-17 Andrew Niefer
	Added ScannerTestCase::testBug36695()
	Moved ScannerFailedTest::testBug36521 to ScannerTestCase::testBug36521()
	Moved ScannerFailedTest::testBug36509 to ScannerTestCase::testBug36509()
	Moved ScannerFailedTest::testBug36475 to ScannerTestCase::testBug36475() 
	Updated ScannerTestCase::testBug36047
	Updated ScannerTestCase::testBug36045

2003-04-17 John Camelon
	Updated DOMTests::testBug36600().
	Updated LineNumberTest::testDOMLineNos().  
	Added DOMTests::testBug36559().  

2003-04-17 Andrew Niefer
	Added AutomatedTest
	Added resources.cFiles
	Added resources.cppFiles

2003-04-16 John Camelon
	Added DOMTests::testBug36532().
	Added DOMTests::testBug36432(). 
	Added DOMTests::testBug36594().
	Added DOMTests::testBug36600(). 
	Added DOMTests::testArrayOfPointerToFunctions(). 

2003-04-15 John Camelon
	Added ScannerTestCase::testBug36434().
	Added ScannerTestCase::testMultipleLines(). 
	Added ParserTestSuite. 
	Added LineNumberTest.
	Updated CModelElementsTests to set the Nature of the C++ project appropriately.

2003-04-15 Andrew Niefer
	Moved ScannerFailedTest::testBug36047 to ScannerTestCase::testBug36047
	Added ScannerFailedTest::testBug36475

2003-04-13 John Camelon
	Added DOMTests::testPointersToFunctions.  

2003-04-11 John Camelon
	Added DOMTests::testBug36247().  

2003-04-11 Andrew Niefer
	Moved ScannerFailedTest::testBug36316 to ScannerTestCase::testBug36316
	Added ScannerFailedTest::testBug36047
	Added ScannerTestCase::testNestedRecursiveDefines

2003-04-10 John Camelon
	Added DOMTests::testBug36237().

2003-04-09 John Camelon
	Removed all the old Code Model Builder source that was no longer being used (NewModelBuilder.java, etc.). 
	Moved all the files in parser.util directory to the dom.  
	Organized imports. 
	Added DOMTests::testTemplateDeclarationOfMethod().
	Added DOMTests::testBug36250().  
	Added DOMTests::testBug36240(). 
	Added DOMTests::testBug36254().

2003-04-09 John Camelon
	Updated ScannerTest::testBug36045().
	Added ScannerTest::testBug36287().
	Added DOMTests::testBug36288(). 

2003-04-06 Andrew Niefer
	Added ParserSymbolTableTest::testOverloadRanking()

2003-04-04 Alain Magloire
	* src/org/eclipse/cdt/testplugin/util/VerifyDialog.java:
	Remove some warnings.

2003-04-03 John Camelon
	Updated ScannerTest::testSimpleIfdef() for bug36019.  
	Updated ScannerTest::testNumerics() for bug36020.  
	Added ScannerTest::testBug36045().  
	Updated DOMTests::testTemplateDeclaration() for template grammar updates.  

2003-04-01 Andrew Niefer
	ParserSymbolTableTest. modifications to using declaration tests to reflect changes in the
	symbol table.  Also added testUserDefinedConversionSequences()

2003-04-01 John Camelon
	Added testBug35906() to DOMTests.

2003-03-31 John Camelon
	Added testStruct() to DOMTests.  
	Added test35892()to ScannerTest. 

2003-03-31 Andrew Niefer
	In ParserSymbolTableTest, renamed testFunctionResolution_2() to testFunctionResolution_PointersAndBaseClasses(),
	and modified to reflect changes in function resolution.  
	Added testFunctionResolution_TypedefsAndPointers().
	
2003-03-31 John Camelon
	Added testWeirdStrings() and testNumerics() to ScannerTestCase. 
	Added testTemplateSpecialization(), testTemplateDeclaration(), testBug26467(), 
	  testTypedef() and testTemplateInstantiation() to DOMTests.

2003-03-28 John Camelon
	Added testConstructorChain() and testASMDefinition() to DOMTests.

2003-03-27 Alain Magloire
	Changes were done in the Core Model API, the hierarchy is now
	ICModel
		ICProject
			ICContainer
				ITranslationUnit
				IArchive
				IBinary
	We adjust the tests.
	* model/org/eclipse/cdt/core/model/tests/ArchiveTests.java
	* model/org/eclipse/cdt/core/model/tests/BinaryTests.java
	* model/org/eclipse/cdt/core/model/tests/TranslationUniTests.java
	* model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java

2003-03-26 Andrew Niefer
	In ParserSymbolTableTest : 
		updated all tests to reflect TypeInfo changes
		Added testFunctionResolution() & testFunctionResolution_2() in

2003-03-25 John Camelon
	Added testDeclSpecifier(), testNamespaceDefinition(), testLinkageSpecification(), 
	testUsingClauses() and testEnumSpecifier() to DOMTests.

2003-03-23 John Camelon
	Added ptrOperator() test to DOMTests.  
	Added testFunctionModifiers() test to DOMTests.
	Added testArrays() test to DOMTests.

2003-03-20 Alain Magloire

	Patch from Amer Hoda, tests for the CElement deltas for Translation Units.
	* model/org/eclipse/cdt/core/model/tests/ElementDeltaTest.java
	* model/org/eclipse/cdt/core/model/tests/resource/WorkingCopyTestStart.h
	
2003-03-19 Alain Magloire
	Patch from Amer Hoda, introducing a simple test for the core model.
	* model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java
	* model/org/eclipse/cdt/core/model/tests/resource/WorkingCopyTestStart.h

2003-03-18 John Camelon
	Updated DOMTests to validate simple case of a function declaration with multiple parameters.  
	* parser/org/eclipse/cdt/core/parser/tests/DOMTests.java

2003-03-11 John Camelon
	Updated DOMTests for core.internal.parser change of merging DeclarationSpecifier and DeclSpecifier
	Organized imports
	* parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
	* parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java

2003-03-10 John Camelon
	Added macro pasting tests

2003-03-06 Andrew Niefer
	Added tests for exercising Namespaces & using directives in new parser's symbol table

2003-03-04 Doug Schaefer
	This is a pretty big patch, but it is the merge of the NewParser1 branch into the HEAD branch.  lder "parser") 
	JUnit tests for testing various pieces (source folder "parser" in cdt.ui.tests. 

2003-01-29 Peter Graves

    Fixed the warnings when accessing static methods
    * src/org/eclipse/cdt/testplugin/util/DialogCheck.java:
    * src/org/eclipse/cdt/testplugin/CTestPlugin.java
    * src/org/eclipse/cdt/testplugin/TestWorkbench.java
    * ChangeLog: make all entries have the same formatting

2002-12-17 Peter Graves

    * plugin.xml,test.xml: Some simple cleanups to remove refrences to the jdt and
	to move closer to automated running
    
2002-11-27 Alain Magloire

	* model/org/eclipse/cdt/core/model/tests/CModelTests.java:
	Use CoreModel.getDefault().

2002-10-30 Alain Magloire

	* model/org/eclipse/cdt/core/model/tests/CModelTests.java (testGetNatureID):
	The fields and the methods use in this test was removed from the CoreModel class.
	(testHasNature): The method use in this case was refactor in the classes
	CProjectNature and CCProjectNature, fix the test.

2002-10-18 Peter Graves

	src/org/eclipse/cdt/testplugin/CProjectHelper.jada
    Cleanup of the CProjectHelper file to remove unused imports, commeted out code etc.
    
=======
2003-04-21 Andrew Niefer
	Added DOMFailedTests::testBug36713()
	Added DOMFailedTests::testBug36714()
	Added DOMFailedTests::testBug36717()
	Added DOMFailedTests::testBug36730()

2003-04-21 Andrew Niefer
	Added ScannerTestCase::testBug36695()
	Moved ScannerFailedTest::testBug36521 to ScannerTestCase::testBug36521()
	Moved ScannerFailedTest::testBug36509 to ScannerTestCase::testBug36509()
	Moved ScannerFailedTest::testBug36475 to ScannerTestCase::testBug36475() 
	Updated ScannerTestCase::testBug36047
	Updated ScannerTestCase::testBug36045

2003-04-20 John Camelon
	Added DOMTests::testBug36551().
	Adjusted AutomatedTest to turn on line numbering. 
	Added DOMFailedTests and 11 failed test cases.  

2003-04-17 John Camelon
	Updated DOMTests::testBug36600().
	Updated LineNumberTest::testDOMLineNos().  
	Added DOMTests::testBug36559().  

2003-04-17 Andrew Niefer
	Added AutomatedTest
	Added resources.cFiles
	Added resources.cppFiles

2003-04-16 John Camelon
	Added DOMTests::testBug36532().
	Added DOMTests::testBug36432(). 
	Added DOMTests::testBug36594().
	Added DOMTests::testBug36600(). 
	Added DOMTests::testArrayOfPointerToFunctions(). 

2003-04-15 John Camelon
	Added ScannerTestCase::testBug36434().
	Added ScannerTestCase::testMultipleLines(). 
	Added ParserTestSuite. 
	Added LineNumberTest.
	Updated CModelElementsTests to set the Nature of the C++ project appropriately.

2003-04-15 Andrew Niefer
	Moved ScannerFailedTest::testBug36047 to ScannerTestCase::testBug36047
	Added ScannerFailedTest::testBug36475

2003-04-13 John Camelon
	Added DOMTests::testPointersToFunctions.  

2003-04-11 John Camelon
	Added DOMTests::testBug36247().  

2003-04-11 Andrew Niefer
	Moved ScannerFailedTest::testBug36316 to ScannerTestCase::testBug36316
	Added ScannerFailedTest::testBug36047
	Added ScannerTestCase::testNestedRecursiveDefines

2003-04-10 John Camelon
	Added DOMTests::testBug36237().

2003-04-09 John Camelon
	Removed all the old Code Model Builder source that was no longer being used (NewModelBuilder.java, etc.). 
	Moved all the files in parser.util directory to the dom.  
	Organized imports. 
	Added DOMTests::testTemplateDeclarationOfMethod().
	Added DOMTests::testBug36250().  
	Added DOMTests::testBug36240(). 
	Added DOMTests::testBug36254().

2003-04-09 John Camelon
	Updated ScannerTest::testBug36045().
	Added ScannerTest::testBug36287().
	Added DOMTests::testBug36288(). 

2003-04-06 Andrew Niefer
	Added ParserSymbolTableTest::testOverloadRanking()

2003-04-04 Alain Magloire
	* src/org/eclipse/cdt/testplugin/util/VerifyDialog.java:
	Remove some warnings.

2003-04-03 John Camelon
	Updated ScannerTest::testSimpleIfdef() for bug36019.  
	Updated ScannerTest::testNumerics() for bug36020.  
	Added ScannerTest::testBug36045().  
	Updated DOMTests::testTemplateDeclaration() for template grammar updates.  

2003-04-01 Andrew Niefer
	ParserSymbolTableTest. modifications to using declaration tests to reflect changes in the
	symbol table.  Also added testUserDefinedConversionSequences()

2003-04-01 John Camelon
	Added testBug35906() to DOMTests.

2003-03-31 John Camelon
	Added testStruct() to DOMTests.  
	Added test35892()to ScannerTest. 

2003-03-31 Andrew Niefer
	In ParserSymbolTableTest, renamed testFunctionResolution_2() to testFunctionResolution_PointersAndBaseClasses(),
	and modified to reflect changes in function resolution.  
	Added testFunctionResolution_TypedefsAndPointers().
	
2003-03-31 John Camelon
	Added testWeirdStrings() and testNumerics() to ScannerTestCase. 
	Added testTemplateSpecialization(), testTemplateDeclaration(), testBug26467(), 
	  testTypedef() and testTemplateInstantiation() to DOMTests.

2003-03-28 John Camelon
	Added testConstructorChain() and testASMDefinition() to DOMTests.

2003-03-27 Alain Magloire
	Changes were done in the Core Model API, the hierarchy is now
	ICModel
		ICProject
			ICContainer
				ITranslationUnit
				IArchive
				IBinary
	We adjust the tests.
	* model/org/eclipse/cdt/core/model/tests/ArchiveTests.java
	* model/org/eclipse/cdt/core/model/tests/BinaryTests.java
	* model/org/eclipse/cdt/core/model/tests/TranslationUniTests.java
	* model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java

2003-03-26 Andrew Niefer
	In ParserSymbolTableTest : 
		updated all tests to reflect TypeInfo changes
		Added testFunctionResolution() & testFunctionResolution_2() in

2003-03-25 John Camelon
	Added testDeclSpecifier(), testNamespaceDefinition(), testLinkageSpecification(), 
	testUsingClauses() and testEnumSpecifier() to DOMTests.

2003-03-23 John Camelon
	Added ptrOperator() test to DOMTests.  
	Added testFunctionModifiers() test to DOMTests.
	Added testArrays() test to DOMTests.

2003-03-20 Alain Magloire

	Patch from Amer Hoda, tests for the CElement deltas for Translation Units.
	* model/org/eclipse/cdt/core/model/tests/ElementDeltaTest.java
	* model/org/eclipse/cdt/core/model/tests/resource/WorkingCopyTestStart.h
	
2003-03-19 Alain Magloire
	Patch from Amer Hoda, introducing a simple test for the core model.
	* model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java
	* model/org/eclipse/cdt/core/model/tests/resource/WorkingCopyTestStart.h

2003-03-18 John Camelon
	Updated DOMTests to validate simple case of a function declaration with multiple parameters.  
	* parser/org/eclipse/cdt/core/parser/tests/DOMTests.java

2003-03-11 John Camelon
	Updated DOMTests for core.internal.parser change of merging DeclarationSpecifier and DeclSpecifier
	Organized imports
	* parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
	* parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java

2003-03-10 John Camelon
	Added macro pasting tests

2003-03-06 Andrew Niefer
	Added tests for exercising Namespaces & using directives in new parser's symbol table

2003-03-04 Doug Schaefer
	This is a pretty big patch, but it is the merge of the NewParser1 branch into the HEAD branch.  lder "parser") 
	JUnit tests for testing various pieces (source folder "parser" in cdt.ui.tests. 

2003-01-29 Peter Graves

    Fixed the warnings when accessing static methods
    * src/org/eclipse/cdt/testplugin/util/DialogCheck.java:
    * src/org/eclipse/cdt/testplugin/CTestPlugin.java
    * src/org/eclipse/cdt/testplugin/TestWorkbench.java
    * ChangeLog: make all entries have the same formatting

2002-12-17 Peter Graves

    * plugin.xml,test.xml: Some simple cleanups to remove refrences to the jdt and
	to move closer to automated running
    
2002-11-27 Alain Magloire

	* model/org/eclipse/cdt/core/model/tests/CModelTests.java:
	Use CoreModel.getDefault().

2002-10-30 Alain Magloire

	* model/org/eclipse/cdt/core/model/tests/CModelTests.java (testGetNatureID):
	The fields and the methods use in this test was removed from the CoreModel class.
	(testHasNature): The method use in this case was refactor in the classes
	CProjectNature and CCProjectNature, fix the test.

2002-10-18 Peter Graves

	src/org/eclipse/cdt/testplugin/CProjectHelper.jada
    Cleanup of the CProjectHelper file to remove unused imports, commeted out code etc.
    
>>>>>>> 1.36
