|
Packit Service |
e31359 |
#include <cppunit/config/SourcePrefix.h>
|
|
Packit Service |
e31359 |
#include <cppunit/XmlOutputter.h>
|
|
Packit Service |
e31359 |
#include <cppunit/TestFailure.h>
|
|
Packit Service |
e31359 |
#include <cppunit/XmlOutputter.h>
|
|
Packit Service |
e31359 |
#include <cppunit/XmlOutputterHook.h>
|
|
Packit Service |
e31359 |
#include "OutputSuite.h"
|
|
Packit Service |
e31359 |
#include "XmlOutputterTest.h"
|
|
Packit Service |
e31359 |
#include "XmlUniformiser.h"
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( XmlOutputterTest,
|
|
Packit Service |
e31359 |
outputSuiteName() );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
XmlOutputterTest::XmlOutputterTest()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
XmlOutputterTest::~XmlOutputterTest()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::setUp()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
m_dummyTests.clear();
|
|
Packit Service |
e31359 |
m_result = new CPPUNIT_NS::TestResultCollector();
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::tearDown()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
delete m_result;
|
|
Packit Service |
e31359 |
for ( unsigned int index =0; index < m_dummyTests.size(); ++index )
|
|
Packit Service |
e31359 |
delete m_dummyTests[index];
|
|
Packit Service |
e31359 |
m_dummyTests.clear();
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::testWriteXmlResultWithNoTest()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
CPPUNIT_NS::OStringStream stream;
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlOutputter outputter( m_result, stream );
|
|
Packit Service |
e31359 |
outputter.write();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
std::string actualXml = stream.str();
|
|
Packit Service |
e31359 |
std::string expectedXml =
|
|
Packit Service |
e31359 |
"<TestRun>"
|
|
Packit Service |
e31359 |
"<FailedTests></FailedTests>"
|
|
Packit Service |
e31359 |
"<SuccessfulTests></SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Statistics>"
|
|
Packit Service |
e31359 |
"<Tests>0</Tests>"
|
|
Packit Service |
e31359 |
"<FailuresTotal>0</FailuresTotal>"
|
|
Packit Service |
e31359 |
"<Errors>0</Errors>"
|
|
Packit Service |
e31359 |
"<Failures>0</Failures>"
|
|
Packit Service |
e31359 |
"</Statistics>"
|
|
Packit Service |
e31359 |
"</TestRun>";
|
|
Packit Service |
e31359 |
CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::testWriteXmlResultWithOneFailure()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
addTestFailure( "test1", "message failure1", CPPUNIT_NS::SourceLine( "test.cpp", 3 ) );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS::OStringStream stream;
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlOutputter outputter( m_result, stream );
|
|
Packit Service |
e31359 |
outputter.write();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
std::string actualXml = stream.str();
|
|
Packit Service |
e31359 |
std::string expectedXml =
|
|
Packit Service |
e31359 |
"<TestRun>"
|
|
Packit Service |
e31359 |
"<FailedTests>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"1\">"
|
|
Packit Service |
e31359 |
"<Name>test1</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Assertion</FailureType>"
|
|
Packit Service |
e31359 |
"<Location>"
|
|
Packit Service |
e31359 |
"<File>test.cpp</File>"
|
|
Packit Service |
e31359 |
"<Line>3</Line>"
|
|
Packit Service |
e31359 |
"</Location>"
|
|
Packit Service |
e31359 |
"<Message>message failure1</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"</FailedTests>"
|
|
Packit Service |
e31359 |
"<SuccessfulTests></SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Statistics>"
|
|
Packit Service |
e31359 |
"<Tests>1</Tests>"
|
|
Packit Service |
e31359 |
"<FailuresTotal>1</FailuresTotal>"
|
|
Packit Service |
e31359 |
"<Errors>0</Errors>"
|
|
Packit Service |
e31359 |
"<Failures>1</Failures>"
|
|
Packit Service |
e31359 |
"</Statistics>"
|
|
Packit Service |
e31359 |
"</TestRun>";
|
|
Packit Service |
e31359 |
CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::testWriteXmlResultWithOneError()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
addTestError( "test1", "message error1" );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS::OStringStream stream;
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlOutputter outputter( m_result, stream );
|
|
Packit Service |
e31359 |
outputter.write();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
std::string actualXml = stream.str();
|
|
Packit Service |
e31359 |
std::string expectedXml =
|
|
Packit Service |
e31359 |
"<TestRun>"
|
|
Packit Service |
e31359 |
"<FailedTests>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"1\">"
|
|
Packit Service |
e31359 |
"<Name>test1</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Error</FailureType>"
|
|
Packit Service |
e31359 |
"<Message>message error1</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"</FailedTests>"
|
|
Packit Service |
e31359 |
"<SuccessfulTests></SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Statistics>"
|
|
Packit Service |
e31359 |
"<Tests>1</Tests>"
|
|
Packit Service |
e31359 |
"<FailuresTotal>1</FailuresTotal>"
|
|
Packit Service |
e31359 |
"<Errors>1</Errors>"
|
|
Packit Service |
e31359 |
"<Failures>0</Failures>"
|
|
Packit Service |
e31359 |
"</Statistics>"
|
|
Packit Service |
e31359 |
"</TestRun>";
|
|
Packit Service |
e31359 |
CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::testWriteXmlResultWithOneSuccess()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
addTest( "test1" );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS::OStringStream stream;
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlOutputter outputter( m_result, stream );
|
|
Packit Service |
e31359 |
outputter.write();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
std::string actualXml = stream.str();
|
|
Packit Service |
e31359 |
std::string expectedXml =
|
|
Packit Service |
e31359 |
"<TestRun>"
|
|
Packit Service |
e31359 |
"<FailedTests></FailedTests>"
|
|
Packit Service |
e31359 |
"<SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Test id=\"1\">"
|
|
Packit Service |
e31359 |
"<Name>test1</Name>"
|
|
Packit Service |
e31359 |
"</Test>"
|
|
Packit Service |
e31359 |
"</SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Statistics>"
|
|
Packit Service |
e31359 |
"<Tests>1</Tests>"
|
|
Packit Service |
e31359 |
"<FailuresTotal>0</FailuresTotal>"
|
|
Packit Service |
e31359 |
"<Errors>0</Errors>"
|
|
Packit Service |
e31359 |
"<Failures>0</Failures>"
|
|
Packit Service |
e31359 |
"</Statistics>"
|
|
Packit Service |
e31359 |
"</TestRun>";
|
|
Packit Service |
e31359 |
CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::testWriteXmlResultWithThreeFailureTwoErrorsAndTwoSuccess()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
addTestFailure( "test1", "failure1" );
|
|
Packit Service |
e31359 |
addTestError( "test2", "error1" );
|
|
Packit Service |
e31359 |
addTestFailure( "test3", "failure2" );
|
|
Packit Service |
e31359 |
addTestFailure( "test4", "failure3" );
|
|
Packit Service |
e31359 |
addTest( "test5" );
|
|
Packit Service |
e31359 |
addTestError( "test6", "error2" );
|
|
Packit Service |
e31359 |
addTest( "test7" );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS::OStringStream stream;
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlOutputter outputter( m_result, stream );
|
|
Packit Service |
e31359 |
outputter.write();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
std::string actualXml = stream.str();
|
|
Packit Service |
e31359 |
std::string expectedXml =
|
|
Packit Service |
e31359 |
"<TestRun>"
|
|
Packit Service |
e31359 |
"<FailedTests>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"1\">"
|
|
Packit Service |
e31359 |
"<Name>test1</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Assertion</FailureType>"
|
|
Packit Service |
e31359 |
"<Message>failure1</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"2\">"
|
|
Packit Service |
e31359 |
"<Name>test2</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Error</FailureType>"
|
|
Packit Service |
e31359 |
"<Message>error1</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"3\">"
|
|
Packit Service |
e31359 |
"<Name>test3</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Assertion</FailureType>"
|
|
Packit Service |
e31359 |
"<Message>failure2</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"4\">"
|
|
Packit Service |
e31359 |
"<Name>test4</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Assertion</FailureType>"
|
|
Packit Service |
e31359 |
"<Message>failure3</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"<FailedTest id=\"6\">"
|
|
Packit Service |
e31359 |
"<Name>test6</Name>"
|
|
Packit Service |
e31359 |
"<FailureType>Error</FailureType>"
|
|
Packit Service |
e31359 |
"<Message>error2</Message>"
|
|
Packit Service |
e31359 |
"</FailedTest>"
|
|
Packit Service |
e31359 |
"</FailedTests>"
|
|
Packit Service |
e31359 |
"<SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Test id=\"5\">"
|
|
Packit Service |
e31359 |
"<Name>test5</Name>"
|
|
Packit Service |
e31359 |
"</Test>"
|
|
Packit Service |
e31359 |
"<Test id=\"7\">"
|
|
Packit Service |
e31359 |
"<Name>test7</Name>"
|
|
Packit Service |
e31359 |
"</Test>"
|
|
Packit Service |
e31359 |
"</SuccessfulTests>"
|
|
Packit Service |
e31359 |
"<Statistics>"
|
|
Packit Service |
e31359 |
"<Tests>7</Tests>"
|
|
Packit Service |
e31359 |
"<FailuresTotal>5</FailuresTotal>"
|
|
Packit Service |
e31359 |
"<Errors>2</Errors>"
|
|
Packit Service |
e31359 |
"<Failures>3</Failures>"
|
|
Packit Service |
e31359 |
"</Statistics>"
|
|
Packit Service |
e31359 |
"</TestRun>";
|
|
Packit Service |
e31359 |
CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
class XmlOutputterTest::MockHook : public CPPUNIT_NS::XmlOutputterHook
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
public:
|
|
Packit Service |
e31359 |
MockHook( int &beginCalls,
|
|
Packit Service |
e31359 |
int &endCalls,
|
|
Packit Service |
e31359 |
int &statisticsCalls,
|
|
Packit Service |
e31359 |
int &successfulTestCalls,
|
|
Packit Service |
e31359 |
int &failedTestCalls )
|
|
Packit Service |
e31359 |
: m_beginCalls( beginCalls )
|
|
Packit Service |
e31359 |
, m_endCalls( endCalls )
|
|
Packit Service |
e31359 |
, m_statisticsCalls( statisticsCalls )
|
|
Packit Service |
e31359 |
, m_successfulTestCalls( successfulTestCalls )
|
|
Packit Service |
e31359 |
, m_failedTestCalls( failedTestCalls )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void beginDocument( CPPUNIT_NS::XmlDocument * )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
++m_beginCalls;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void endDocument( CPPUNIT_NS::XmlDocument * )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
++m_endCalls;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void failTestAdded( CPPUNIT_NS::XmlDocument *,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlElement *,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Test *,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::TestFailure * )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
++m_failedTestCalls;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void successfulTestAdded( CPPUNIT_NS::XmlDocument *,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlElement *,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Test * )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
++m_successfulTestCalls;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void statisticsAdded( CPPUNIT_NS::XmlDocument *,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlElement * )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
++m_statisticsCalls;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
private:
|
|
Packit Service |
e31359 |
int &m_beginCalls;
|
|
Packit Service |
e31359 |
int &m_endCalls;
|
|
Packit Service |
e31359 |
int &m_statisticsCalls;
|
|
Packit Service |
e31359 |
int &m_successfulTestCalls;
|
|
Packit Service |
e31359 |
int &m_failedTestCalls;
|
|
Packit Service |
e31359 |
};
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::testHook()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
int begin =0, end =0, statistics =0, successful =0, failed =0;
|
|
Packit Service |
e31359 |
MockHook hook( begin, end, statistics, successful, failed );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
addTest( "test1" );
|
|
Packit Service |
e31359 |
addTest( "test2" );
|
|
Packit Service |
e31359 |
addTest( "test3" );
|
|
Packit Service |
e31359 |
addTestFailure( "testfail1", "assertion failed" );
|
|
Packit Service |
e31359 |
addTestError( "testerror1", "exception" );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS::OStringStream stream;
|
|
Packit Service |
e31359 |
CPPUNIT_NS::XmlOutputter outputter( m_result, stream );
|
|
Packit Service |
e31359 |
outputter.addHook( &hook );
|
|
Packit Service |
e31359 |
outputter.write();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_ASSERT_EQUAL( 1, begin );
|
|
Packit Service |
e31359 |
CPPUNIT_ASSERT_EQUAL( 1, end );
|
|
Packit Service |
e31359 |
CPPUNIT_ASSERT_EQUAL( 1, statistics );
|
|
Packit Service |
e31359 |
CPPUNIT_ASSERT_EQUAL( 3, successful );
|
|
Packit Service |
e31359 |
CPPUNIT_ASSERT_EQUAL( 2, failed );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::addTest( std::string testName )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Test *test = makeDummyTest( testName );
|
|
Packit Service |
e31359 |
m_result->startTest( test );
|
|
Packit Service |
e31359 |
m_result->endTest( test );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::addTestFailure( std::string testName,
|
|
Packit Service |
e31359 |
std::string message,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::SourceLine sourceLine )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
addGenericTestFailure( testName, CPPUNIT_NS::Message(message), sourceLine, false );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::addTestError( std::string testName,
|
|
Packit Service |
e31359 |
std::string message,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::SourceLine sourceLine )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
addGenericTestFailure( testName, CPPUNIT_NS::Message(message), sourceLine, true );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
XmlOutputterTest::addGenericTestFailure( std::string testName,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Message message,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::SourceLine sourceLine,
|
|
Packit Service |
e31359 |
bool isError )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Test *test = makeDummyTest( testName );
|
|
Packit Service |
e31359 |
m_result->startTest( test );
|
|
Packit Service |
e31359 |
CPPUNIT_NS::TestFailure failure( test,
|
|
Packit Service |
e31359 |
new CPPUNIT_NS::Exception( message, sourceLine ),
|
|
Packit Service |
e31359 |
isError );
|
|
Packit Service |
e31359 |
m_result->addFailure( failure );
|
|
Packit Service |
e31359 |
m_result->endTest( test );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Test *
|
|
Packit Service |
e31359 |
XmlOutputterTest::makeDummyTest( std::string testName )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
CPPUNIT_NS::Test *test = new CPPUNIT_NS::TestCase( testName );
|
|
Packit Service |
e31359 |
m_dummyTests.push_back( test );
|
|
Packit Service |
e31359 |
return test;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|