From fbd454f554f13680fe62b36fb7a5829f6dc0c396 Mon Sep 17 00:00:00 2001 From: Baptiste Lepilleur Date: Fri, 5 Oct 2001 21:27:15 +0000 Subject: Include/cppunit/Asserter. include/cppunit/Asserter.h : * src/cppunit/Asserter.cpp : added. Helper to create assertion macros. * src/cppunit/cppunit.dsp : * src/cppunit/Makefile.am : * include/cppunit/Makefile.am : added Asserter.h and Asserter.cpp. * include/cppunit/Exception.h : * src/cppunit/Exception.cpp : added constructor that take a SourceLine argument. Deprecated static constant and old constructor. Fixed some constness issues. * examples/cppunittest/ExceptionTest.cpp : Refactored. * NEWS : partially updated (need to be more detailed) * include/cppunit/NotEqualException.h : * src/cppunit/NotEqualException.cpp : added constructor that take a SourceLine argument. Deprecated old constructor. Added a third element to compose message. * examples/cppunittest/NotEqualExceptionTest.cpp : moved to "Core" suite. Added test for SourceLine() and additionalMessage(). Refactored. * include/cppunit/SourceLine.h : * src/cppunit/SourceLine.cpp : added. Result of applying IntroduceParameterObject refactoring on filename & line number... * include/cppunit/TestAssert.h : * src/cppunit/TestAssert.cpp : deprecated old assert functions. added functions assertEquals() and assertDoubleEquals() which use SourceLine. * src/cppunit/TestCase.cpp : Modified for SourceLine. * include/cppunit/TestFailure.h : * src/cppunit/TestFailure.cpp : added failedTestName(), and sourceLine(). * src/msvc6/testrunner/TestRunnerDlg.cpp : modified to use SourceLine. * include/cppunit/TextTestResult.h : * src/cppunit/TextTestResult.cpp : corrected include order and switched to angled brackets. Refactored. Don't print failure location if not available. Not equal failure dump additional message if available. * src/cppunit/TextTestRunner.cpp : run() now returns a boolean to indicate if the run was sucessful. * src/cppunit/XmlTestResultOutputter.cpp : replaced itoa() with OStringStream. Refactored. * examples/cppunittest/XmlUniformiser.h : * examples/cppunittest/XmlUniformiser.cpp : CPPUNITTEST_ASSERT_XML_EQUAL capture failure location. Refactored checkXmlEqual(). * examples/cppunittest/XmlUniformiserTest.h : * examples/cppunittest/XmlUniformiserTest.cpp : added test for CPPUNITTEST_ASSERT_XML_EQUAL. * include/cppunit/XmlTestResultOutputter.h : * src/cppunit/XmlTestResultOutputter.cpp : updated to use SourceLine. --- examples/cppunittest/XmlUniformiser.cpp | 57 +++++++++++++++++---------------- 1 file changed, 29 insertions(+), 28 deletions(-) (limited to 'examples/cppunittest/XmlUniformiser.cpp') diff --git a/examples/cppunittest/XmlUniformiser.cpp b/examples/cppunittest/XmlUniformiser.cpp index 509cce5..2776ddc 100644 --- a/examples/cppunittest/XmlUniformiser.cpp +++ b/examples/cppunittest/XmlUniformiser.cpp @@ -4,41 +4,42 @@ namespace CppUnitTest { + +int +notEqualIndex( std::string expectedXml, + std::string actualXml ) +{ + int index = 0; + while ( index < actualXml.length() && + index < expectedXml.length() && + actualXml[index] == expectedXml[index] ) + ++index; + + return index; +} + + /// Asserts that two XML string are equivalent. void checkXmlEqual( std::string expectedXml, - std::string actualXml ) + std::string actualXml, + CppUnit::SourceLine sourceLine ) { std::string expected = XmlUniformiser( expectedXml ).stripped(); std::string actual = XmlUniformiser( actualXml ).stripped(); - int index =0; - while ( index < actual.length() && - index < expected.length() ) - { - if ( actual[index] != expected[index] ) - { - CppUnit::OStringStream message; - message << "expected xml: " << expected << "\n" - << "actual xml : " << actual << "\n" - << "differ at column: " << index << "\n" - << "expected: " << expected.substr(index) << "\n" - << "but was : " << actual.substr( index ); - CPPUNIT_FAIL( message.str() ); - } - - ++index; - } - if ( actual.length() != expected.length() ) - { - CppUnit::OStringStream message; - message << "expected: " << expected << "\n" - << "was : " << actual << "\n" - << "differ at column: " << index << "\n" - << "expected: " << expected.substr(index) << "\n" - << "but was : " << actual.substr( index ); - CPPUNIT_FAIL( message.str() ); - } + if ( expected == actual ) + return; + + int index = notEqualIndex( expected, actual ); + CppUnit::OStringStream message; + message << "differ at index: " << index << "\n" + << "expected: " << expected.substr(index) << "\n" + << "but was : " << actual.substr( index ); + ::CppUnit::Asserter::failNotEqual( expected, + actual, + sourceLine, + message.str() ); } -- cgit v1.2.1