Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Patch from John C. added more tests.

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/ChangeLog,v
retrieving revision 1.15
diff -u -r1.15 ChangeLog
--- ChangeLog	31 Mar 2003 20:43:02 -0000	1.15
+++ ChangeLog	1 Apr 2003 16:12:15 -0000
@@ -1,3 +1,7 @@
+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.  
Index: parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java,v
retrieving revision 1.10
diff -u -r1.10 DOMTests.java
--- parser/org/eclipse/cdt/core/parser/tests/DOMTests.java	31 Mar 2003 16:12:43 -0000	1.10
+++ parser/org/eclipse/cdt/core/parser/tests/DOMTests.java	1 Apr 2003 16:12:17 -0000
@@ -920,5 +920,54 @@
 		assertEquals( classSpec.getName().toString(), "myarray");
 		assertEquals( 0, classSpec.getDeclarations().size() );
 	}
+	
+	public void testStruct() throws Exception
+	{
+		StringWriter writer = new StringWriter(); 
+		writer.write( "struct mad_bitptr { unsigned char const *byte;\n" );
		writer.write( "unsigned short cache;\n unsigned short left;};" );
+		TranslationUnit tu = parse( writer.toString() );
+		assertEquals( tu.getDeclarations().size(), 1 );
+		SimpleDeclaration declaration = (SimpleDeclaration)tu.getDeclarations().get( 0 );
+		ClassSpecifier classSpec = (ClassSpecifier)declaration.getTypeSpecifier(); 
+		DeclSpecifier declSpec = declaration.getDeclSpecifier();
+		assertEquals( classSpec.getClassKey(), ClassKey.t_struct );
+		assertEquals( classSpec.getName().toString(), "mad_bitptr" );
+		assertEquals( declaration.getDeclarators().size(), 0 );
+		List subDeclarations = classSpec.getDeclarations();
+		assertEquals( 3, subDeclarations.size() );
+		declaration = (SimpleDeclaration)subDeclarations.get(0);
+		declSpec = declaration.getDeclSpecifier();
+		assertTrue( declSpec.isUnsigned() );
+		assertTrue( declSpec.isConst() );
+		assertEquals( declSpec.getType(), DeclSpecifier.t_char );
+		assertEquals( declaration.getDeclarators().size(), 1 );
+		Declarator d = (Declarator)declaration.getDeclarators().get(0);
+		assertEquals( d.getPointerOperators().size(), 1 );
+		PointerOperator po = (PointerOperator)d.getPointerOperators().get(0);
+		assertEquals( po.getType(), PointerOperator.t_pointer );
+		assertFalse( po.isConst() );
+		assertFalse(po.isVolatile() );
+		assertEquals( d.getName().toString(), "byte" );
+		
+		declaration = (SimpleDeclaration)subDeclarations.get(1);
+		declSpec = declaration.getDeclSpecifier();
+		assertTrue( declSpec.isUnsigned());
+		assertTrue( declSpec.isShort());
+		assertEquals( declaration.getDeclarators().size(), 1 );
+		d = (Declarator)declaration.getDeclarators().get(0);
+		assertEquals( d.getPointerOperators().size(), 0 );
+		assertEquals( d.getName().toString(), "cache" );
+		
+		
+		declaration = (SimpleDeclaration)subDeclarations.get(2);
+		declSpec = declaration.getDeclSpecifier();
+		assertTrue( declSpec.isUnsigned());
+		assertTrue( declSpec.isShort());
+		assertEquals( declaration.getDeclarators().size(), 1 );
+		d = (Declarator)declaration.getDeclarators().get(0);
+		assertEquals( d.getPointerOperators().size(), 0 );
+		assertEquals( d.getName().toString(), "left" );
+	}
+	
 }
 
Index: parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java,v
retrieving revision 1.7
diff -u -r1.7 ScannerTestCase.java
--- parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java	31 Mar 2003 16:12:43 -0000	1.7
+++ parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java	1 Apr 2003 16:12:19 -0000
@@ -1044,6 +1044,17 @@
 		}
 	}
 	
+	public void validateChar( char expected )throws ScannerException
+	{
+		try {
+			Token t= scanner.nextToken();
+			assertTrue(t.getType() == Token.tCHAR );
+			Character c = new Character( expected ); 
+			assertEquals( t.getImage(), c.toString() ); 
+		} catch (Parser.EndOfFile e) {
+			assertTrue(false);
+		}		
+	}
 
 	public void validateString( String expectedImage ) throws ScannerException
 	{
@@ -1126,6 +1137,33 @@
 				validateAsUndefined(row.symbolName(i));
 		}
 	}
+
+	public void test35892()
+	{
+		try
+		{
+			initializeScanner( "'c'" ); 
+			validateChar( 'c' );
+			validateEOF(); 
+		}
+		catch( ScannerException se )
+		{
+			fail( EXCEPTION_THROWN  + se.getMessage() );
+		}
+	}
+
+//	public void testStringConcatenation()
+//	{
+//		try
+//		{
+//			initializeScanner("# define MAD_VERSION_STRINGIZE(str)	#str" ); 
+//			validateEOF(); 
+//		}
+//		catch( ScannerException se )
+//		{
+//			fail( EXCEPTION_THROWN + se.toString() );
+//		}
+//	}
 
 	public void testConditionalWithBraces()
 	{



Back to the top