|
From: <bl...@us...> - 2003-03-16 08:27:36
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv964/src/rfta
Modified Files:
CodeWriterInsertTest.cpp CodeWriterInsertTest.h
CodeWriterTest.cpp CodeWriterTest.h
Log Message:
* refactored CodeWriterTest
Index: CodeWriterInsertTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CodeWriterInsertTest.cpp 16 Mar 2003 07:37:05 -0000 1.1
--- CodeWriterInsertTest.cpp 16 Mar 2003 08:27:33 -0000 1.2
***************
*** 45,49 ****
--- 45,55 ----
{
compound_->appendStatement( insertedStatement );
+ checkGeneratedSource( expectedSource );
+ }
+
+ void
+ CodeWriterInsertTest::checkGeneratedSource( const std::string &expectedSource )
+ {
rewriteSource();
RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
***************
*** 52,55 ****
--- 58,72 ----
void
+ CodeWriterInsertTest::testAppendStatementToCompound()
+ {
+ compound_->appendStatement( CodeModel::StatementPtr( new CodeModel::ReturnStatement() ) );
+
+ checkGeneratedSource( "{\n"
+ " return;\n"
+ "}" );
+ }
+
+
+ void
CodeWriterInsertTest::testInsertNullStatement()
{
***************
*** 58,61 ****
--- 75,263 ----
"{\n"
" ;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertCompoundStatement()
+ {
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
+ compoundStatement->appendStatement( nullStatement );
+ checkGeneratedSource( compoundStatement,
+ "{\n"
+ " {\n"
+ " ;\n"
+ " }\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertWhileStatement()
+ {
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
+ compoundStatement->appendStatement( nullStatement );
+ CodeModel::WhileStatementPtr whileStatement(
+ new CodeModel::WhileStatement( makeTrueExpression(), compoundStatement ) );
+ checkGeneratedSource( whileStatement,
+ "{\n"
+ " while ( true )\n"
+ " {\n"
+ " ;\n"
+ " }\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertContinueStatement()
+ {
+ CodeModel::StatementPtr continueStatement( new CodeModel::ContinueStatement() );
+ checkGeneratedSource( continueStatement,
+ "{\n"
+ " continue;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertBreakStatement()
+ {
+ CodeModel::StatementPtr breakStatement( new CodeModel::BreakStatement() );
+ checkGeneratedSource( breakStatement,
+ "{\n"
+ " break;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertDefaultStatement()
+ {
+ CodeModel::StatementPtr defaultStatement( new CodeModel::DefaultStatement() );
+ checkGeneratedSource( defaultStatement,
+ "{\n"
+ " default:\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertCaseStatement()
+ {
+ CodeModel::StatementPtr caseStatement( new CodeModel::CaseStatement( makeExpression( "1234" ) ) );
+ checkGeneratedSource( caseStatement,
+ "{\n"
+ " case 1234:\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertDoStatement()
+ {
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
+ compoundStatement->appendStatement( nullStatement );
+ CodeModel::DoStatementPtr doStatement(
+ new CodeModel::DoStatement( makeExpression("1234 < 5" ), compoundStatement ) );
+ checkGeneratedSource( doStatement,
+ "{\n"
+ " do\n"
+ " {\n"
+ " ;\n"
+ " }\n"
+ " while ( 1234 < 5 );\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertSwitchStatement()
+ {
+ CodeModel::StatementPtr defaultStatement( new CodeModel::DefaultStatement() );
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
+ compoundStatement->appendStatement( defaultStatement );
+ compoundStatement->appendStatement( nullStatement );
+ CodeModel::StatementPtr switchStatement(
+ new CodeModel::SwitchStatement( makeExpression("x" ), compoundStatement ) );
+ checkGeneratedSource( switchStatement,
+ "{\n"
+ " switch ( x )\n"
+ " {\n"
+ " default:\n"
+ " ;\n" /// @todo need to improve indentation
+ " }\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertLabelStatement()
+ {
+ CodeModel::StatementPtr labelStatement( new CodeModel::LabelStatement( "error" ) );
+ checkGeneratedSource( labelStatement,
+ "{\n"
+ "error:\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertGotoStatement()
+ {
+ CodeModel::StatementPtr gotoStatement( new CodeModel::GotoStatement( "error" ) );
+ checkGeneratedSource( gotoStatement,
+ "{\n"
+ " goto error;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertIfThenStatement()
+ {
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::StatementPtr ifStatement(
+ new CodeModel::IfStatement( makeExpression( "x < y" ),
+ nullStatement ) );
+ checkGeneratedSource( ifStatement,
+ "{\n"
+ " if ( x < y )\n"
+ " ;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertIfThenElseStatement()
+ {
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::StatementPtr breakStatement( new CodeModel::BreakStatement() );
+ CodeModel::StatementPtr ifStatement(
+ new CodeModel::IfStatement( makeExpression( "z < k" ),
+ nullStatement,
+ breakStatement ) );
+ checkGeneratedSource( ifStatement,
+ "{\n"
+ " if ( z < k )\n"
+ " ;\n"
+ " else\n"
+ " break;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterInsertTest::testInsertExpressionStatement()
+ {
+ CodeModel::StatementPtr expressionStatement(
+ new CodeModel::ExpressionStatement( makeExpression( "call( 1234 )" ) ) );
+ checkGeneratedSource( expressionStatement,
+ "{\n"
+ " call( 1234 );\n"
"}" );
}
Index: CodeWriterInsertTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CodeWriterInsertTest.h 16 Mar 2003 07:37:05 -0000 1.1
--- CodeWriterInsertTest.h 16 Mar 2003 08:27:33 -0000 1.2
***************
*** 17,21 ****
--- 17,35 ----
{
CPPUNIT_TEST_SUITE( CodeWriterInsertTest );
+ CPPUNIT_TEST( testAppendStatementToCompound );
CPPUNIT_TEST( testInsertNullStatement );
+ CPPUNIT_TEST( testInsertCompoundStatement );
+ CPPUNIT_TEST( testInsertWhileStatement );
+ CPPUNIT_TEST( testInsertContinueStatement );
+ CPPUNIT_TEST( testInsertBreakStatement );
+ CPPUNIT_TEST( testInsertDefaultStatement );
+ CPPUNIT_TEST( testInsertCaseStatement );
+ CPPUNIT_TEST( testInsertDoStatement );
+ CPPUNIT_TEST( testInsertSwitchStatement );
+ CPPUNIT_TEST( testInsertLabelStatement );
+ CPPUNIT_TEST( testInsertGotoStatement );
+ CPPUNIT_TEST( testInsertIfThenStatement );
+ CPPUNIT_TEST( testInsertIfThenElseStatement );
+ CPPUNIT_TEST( testInsertExpressionStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 27,35 ****
--- 41,65 ----
void tearDown();
+ void testAppendStatementToCompound();
void testInsertNullStatement();
+ void testInsertCompoundStatement();
+ void testInsertWhileStatement();
+ void testInsertContinueStatement();
+ void testInsertBreakStatement();
+ void testInsertDefaultStatement();
+ void testInsertCaseStatement();
+ void testInsertDoStatement();
+ void testInsertSwitchStatement();
+ void testInsertLabelStatement();
+ void testInsertGotoStatement();
+ void testInsertIfThenStatement();
+ void testInsertIfThenElseStatement();
+ void testInsertExpressionStatement();
private:
void checkGeneratedSource( const CodeModel::StatementPtr &insertedStatement,
const std::string &expectedSource );
+
+ void checkGeneratedSource( const std::string &expectedSource );
};
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** CodeWriterTest.cpp 16 Mar 2003 07:37:05 -0000 1.18
--- CodeWriterTest.cpp 16 Mar 2003 08:27:33 -0000 1.19
***************
*** 68,91 ****
void
- CodeWriterTest::testInsertStatement()
- {
- source_ = " {\n"
- " }";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
- compound_->appendStatement( CodeModel::StatementPtr( new CodeModel::ReturnStatement() ) );
-
- rewriteSource();
-
- std::string expectedSource = " {\n"
- " return;\n"
- " }";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
CodeWriterTest::testInsertReturnValueStatement()
{
--- 68,71 ----
***************
*** 164,469 ****
" \n"
" return 3;\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertWhileStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
- CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
- compoundStatement->appendStatement( nullStatement );
- CodeModel::WhileStatementPtr whileStatement(
- new CodeModel::WhileStatement( makeTrueExpression(), compoundStatement ) );
- compound_->appendStatement( whileStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " while ( true )\n"
- " {\n"
- " ;\n"
- " }\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertContinueStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr continueStatement( new CodeModel::ContinueStatement() );
- compound_->appendStatement( continueStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " continue;\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertBreakStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr breakStatement( new CodeModel::BreakStatement() );
- compound_->appendStatement( breakStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " break;\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertDefaultStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr defaultStatement( new CodeModel::DefaultStatement() );
- compound_->appendStatement( defaultStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " default:\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertCaseStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr caseStatement( new CodeModel::CaseStatement( makeExpression( "1234" ) ) );
- compound_->appendStatement( caseStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " case 1234:\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertDoStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
- CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
- compoundStatement->appendStatement( nullStatement );
- CodeModel::DoStatementPtr doStatement(
- new CodeModel::DoStatement( makeExpression("1234 < 5" ), compoundStatement ) );
- compound_->appendStatement( doStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " do\n"
- " {\n"
- " ;\n"
- " }\n"
- " while ( 1234 < 5 );\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertSwitchStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr defaultStatement( new CodeModel::DefaultStatement() );
- CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
- CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
- compoundStatement->appendStatement( defaultStatement );
- compoundStatement->appendStatement( nullStatement );
- CodeModel::StatementPtr switchStatement(
- new CodeModel::SwitchStatement( makeExpression("x" ), compoundStatement ) );
- compound_->appendStatement( switchStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " switch ( x )\n"
- " {\n"
- " default:\n"
- " ;\n" /// @todo need to improve indentation
- " }\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertLabelStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr labelStatement( new CodeModel::LabelStatement( "error" ) );
- compound_->appendStatement( labelStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- "error:\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertGotoStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr gotoStatement( new CodeModel::GotoStatement( "error" ) );
- compound_->appendStatement( gotoStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " goto error;\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertIfThenStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
- CodeModel::StatementPtr ifStatement(
- new CodeModel::IfStatement( makeExpression( "x < y" ),
- nullStatement ) );
- compound_->appendStatement( ifStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " if ( x < y )\n"
- " ;\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertIfThenElseStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
- CodeModel::StatementPtr breakStatement( new CodeModel::BreakStatement() );
- CodeModel::StatementPtr ifStatement(
- new CodeModel::IfStatement( makeExpression( "z < k" ),
- nullStatement,
- breakStatement ) );
- compound_->appendStatement( ifStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " if ( z < k )\n"
- " ;\n"
- " else\n"
- " break;\n"
- "}";
- RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
- }
-
-
- void
- CodeWriterTest::testInsertExpressionStatement()
- {
- source_ = "{\n"
- "}";
-
- generateCompound();
-
- RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
-
- CodeModel::StatementPtr expressionStatement(
- new CodeModel::ExpressionStatement( makeExpression( "call( 1234 )" ) ) );
- compound_->appendStatement( expressionStatement );
-
- rewriteSource();
-
- std::string expectedSource = "{\n"
- " call( 1234 );\n"
"}";
RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
--- 144,147 ----
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** CodeWriterTest.h 16 Mar 2003 07:37:05 -0000 1.15
--- CodeWriterTest.h 16 Mar 2003 08:27:33 -0000 1.16
***************
*** 18,37 ****
CPPUNIT_TEST_SUITE( CodeWriterTest );
CPPUNIT_TEST( testRewriteStatement );
- CPPUNIT_TEST( testInsertStatement );
CPPUNIT_TEST( testInsertReturnValueStatement );
CPPUNIT_TEST( testRemoveStatement );
CPPUNIT_TEST( testMoveSubExpression );
- CPPUNIT_TEST( testInsertWhileStatement );
- CPPUNIT_TEST( testInsertContinueStatement );
- CPPUNIT_TEST( testInsertBreakStatement );
- CPPUNIT_TEST( testInsertDefaultStatement );
- CPPUNIT_TEST( testInsertCaseStatement );
- CPPUNIT_TEST( testInsertDoStatement );
- CPPUNIT_TEST( testInsertSwitchStatement );
- CPPUNIT_TEST( testInsertLabelStatement );
- CPPUNIT_TEST( testInsertGotoStatement );
- CPPUNIT_TEST( testInsertIfThenStatement );
- CPPUNIT_TEST( testInsertIfThenElseStatement );
- CPPUNIT_TEST( testInsertExpressionStatement );
CPPUNIT_TEST_SUITE_END();
--- 18,24 ----
***************
*** 48,67 ****
void testRewriteStatement();
- void testInsertStatement();
void testInsertReturnValueStatement();
void testRemoveStatement();
void testMoveSubExpression();
- void testInsertWhileStatement();
- void testInsertContinueStatement();
- void testInsertBreakStatement();
- void testInsertDefaultStatement();
- void testInsertCaseStatement();
- void testInsertDoStatement();
- void testInsertSwitchStatement();
- void testInsertLabelStatement();
- void testInsertGotoStatement();
- void testInsertIfThenStatement();
- void testInsertIfThenElseStatement();
- void testInsertExpressionStatement();
private:
--- 35,41 ----
|