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 ---- |