1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 01:15:29 +02:00

More tests from John Camelon.

This commit is contained in:
Alain Magloire 2003-04-01 18:54:08 +00:00
parent d53fd678c2
commit 073f3d6e2f
2 changed files with 87 additions and 0 deletions

View file

@ -920,5 +920,54 @@ public class DOMTests extends TestCase {
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" );
}
}

View file

@ -1044,6 +1044,17 @@ public class ScannerTestCase extends TestCase
}
}
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
{
@ -1127,6 +1138,33 @@ public class ScannerTestCase extends TestCase
}
}
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()
{
try