mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-01 17:10:26 +08:00
merged attention branch to trunk
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@657 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
76
3rdParty/include/cppunit/AdditionalMessage.h
vendored
76
3rdParty/include/cppunit/AdditionalMessage.h
vendored
@@ -1,76 +0,0 @@
|
||||
#ifndef CPPUNIT_ADDITIONALMESSAGE_H
|
||||
#define CPPUNIT_ADDITIONALMESSAGE_H
|
||||
|
||||
#include <cppunit/Message.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief An additional Message for assertions.
|
||||
* \ingroup CreatingNewAssertions
|
||||
*
|
||||
* Provides a implicit constructor that takes a single string. This allow this
|
||||
* class to be used as the message arguments in macros.
|
||||
*
|
||||
* The constructed object is either a Message with a single detail string if
|
||||
* a string was passed to the macro, or a copy of the Message passed to the macro.
|
||||
*
|
||||
* Here is an example of usage:
|
||||
* \code
|
||||
*
|
||||
* void checkStringEquals( const std::string &expected,
|
||||
* const std::string &actual,
|
||||
* const CppUnit::SourceLine &sourceLine,
|
||||
* const CppUnit::AdditionalMessage &message );
|
||||
*
|
||||
* #define XTLUT_ASSERT_STRING_EQUAL_MESSAGE( expected, actual, message ) \
|
||||
* ::XtlUt::Impl::checkStringEquals( ::Xtl::toString(expected), \
|
||||
* ::Xtl::toString(actual), \
|
||||
* CPPUNIT_SOURCELINE(), \
|
||||
* message )
|
||||
* \endcode
|
||||
*
|
||||
* In the previous example, the user can specify a simple string for \a message,
|
||||
* or a complex Message object.
|
||||
*
|
||||
* \see Message
|
||||
*/
|
||||
class CPPUNIT_API AdditionalMessage : public Message
|
||||
{
|
||||
public:
|
||||
typedef Message SuperClass;
|
||||
|
||||
/// Constructs an empty Message.
|
||||
AdditionalMessage();
|
||||
|
||||
/*! \brief Constructs a Message with the specified detail string.
|
||||
* \param detail1 Detail string of the message. If empty, then it is not added.
|
||||
*/
|
||||
AdditionalMessage( const std::string &detail1 );
|
||||
|
||||
/*! \brief Constructs a Message with the specified detail string.
|
||||
* \param detail1 Detail string of the message. If empty, then it is not added.
|
||||
*/
|
||||
AdditionalMessage( const char *detail1 );
|
||||
|
||||
/*! \brief Constructs a copy of the specified message.
|
||||
* \param other Message to copy.
|
||||
*/
|
||||
AdditionalMessage( const Message &other );
|
||||
|
||||
/*! \brief Assignment operator.
|
||||
* \param other Message to copy.
|
||||
* \return Reference on this object.
|
||||
*/
|
||||
AdditionalMessage &operator =( const Message &other );
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
|
||||
#endif // CPPUNIT_ADDITIONALMESSAGE_H
|
||||
143
3rdParty/include/cppunit/Asserter.h
vendored
143
3rdParty/include/cppunit/Asserter.h
vendored
@@ -1,143 +0,0 @@
|
||||
#ifndef CPPUNIT_ASSERTER_H
|
||||
#define CPPUNIT_ASSERTER_H
|
||||
|
||||
#include <cppunit/AdditionalMessage.h>
|
||||
#include <cppunit/SourceLine.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Message;
|
||||
|
||||
|
||||
/*! \brief A set of functions to help writing assertion macros.
|
||||
* \ingroup CreatingNewAssertions
|
||||
*
|
||||
* Here is an example of assertion, a simplified version of the
|
||||
* actual assertion implemented in examples/cppunittest/XmlUniformiser.h:
|
||||
* \code
|
||||
* #include <cppunit/SourceLine.h>
|
||||
* #include <cppunit/TestAssert.h>
|
||||
*
|
||||
* void
|
||||
* checkXmlEqual( std::string expectedXml,
|
||||
* std::string actualXml,
|
||||
* CppUnit::SourceLine sourceLine )
|
||||
* {
|
||||
* std::string expected = XmlUniformiser( expectedXml ).stripped();
|
||||
* std::string actual = XmlUniformiser( actualXml ).stripped();
|
||||
*
|
||||
* if ( expected == actual )
|
||||
* return;
|
||||
*
|
||||
* ::CppUnit::Asserter::failNotEqual( expected,
|
||||
* actual,
|
||||
* sourceLine );
|
||||
* }
|
||||
*
|
||||
* /// Asserts that two XML strings are equivalent.
|
||||
* #define CPPUNITTEST_ASSERT_XML_EQUAL( expected, actual ) \
|
||||
* checkXmlEqual( expected, actual, \
|
||||
* CPPUNIT_SOURCELINE() )
|
||||
* \endcode
|
||||
*/
|
||||
struct Asserter
|
||||
{
|
||||
/*! \brief Throws a Exception with the specified message and location.
|
||||
*/
|
||||
static void CPPUNIT_API fail( const Message &message,
|
||||
const SourceLine &sourceLine = SourceLine() );
|
||||
|
||||
/*! \brief Throws a Exception with the specified message and location.
|
||||
* \deprecated Use fail( Message, SourceLine ) instead.
|
||||
*/
|
||||
static void CPPUNIT_API fail( std::string message,
|
||||
const SourceLine &sourceLine = SourceLine() );
|
||||
|
||||
/*! \brief Throws a Exception with the specified message and location.
|
||||
* \param shouldFail if \c true then the exception is thrown. Otherwise
|
||||
* nothing happen.
|
||||
* \param message Message explaining the assertion failiure.
|
||||
* \param sourceLine Location of the assertion.
|
||||
*/
|
||||
static void CPPUNIT_API failIf( bool shouldFail,
|
||||
const Message &message,
|
||||
const SourceLine &sourceLine = SourceLine() );
|
||||
|
||||
/*! \brief Throws a Exception with the specified message and location.
|
||||
* \deprecated Use failIf( bool, Message, SourceLine ) instead.
|
||||
* \param shouldFail if \c true then the exception is thrown. Otherwise
|
||||
* nothing happen.
|
||||
* \param message Message explaining the assertion failiure.
|
||||
* \param sourceLine Location of the assertion.
|
||||
*/
|
||||
static void CPPUNIT_API failIf( bool shouldFail,
|
||||
std::string message,
|
||||
const SourceLine &sourceLine = SourceLine() );
|
||||
|
||||
/*! \brief Returns a expected value string for a message.
|
||||
* Typically used to create 'not equal' message, or to check that a message
|
||||
* contains the expected content when writing unit tests for your custom
|
||||
* assertions.
|
||||
*
|
||||
* \param expectedValue String that represents the expected value.
|
||||
* \return \a expectedValue prefixed with "Expected: ".
|
||||
* \see makeActual().
|
||||
*/
|
||||
static std::string CPPUNIT_API makeExpected( const std::string &expectedValue );
|
||||
|
||||
/*! \brief Returns an actual value string for a message.
|
||||
* Typically used to create 'not equal' message, or to check that a message
|
||||
* contains the expected content when writing unit tests for your custom
|
||||
* assertions.
|
||||
*
|
||||
* \param actualValue String that represents the actual value.
|
||||
* \return \a actualValue prefixed with "Actual : ".
|
||||
* \see makeExpected().
|
||||
*/
|
||||
static std::string CPPUNIT_API makeActual( const std::string &actualValue );
|
||||
|
||||
static Message CPPUNIT_API makeNotEqualMessage( const std::string &expectedValue,
|
||||
const std::string &actualValue,
|
||||
const AdditionalMessage &additionalMessage = AdditionalMessage(),
|
||||
const std::string &shortDescription = "equality assertion failed");
|
||||
|
||||
/*! \brief Throws an Exception with the specified message and location.
|
||||
* \param expected Text describing the expected value.
|
||||
* \param actual Text describing the actual value.
|
||||
* \param sourceLine Location of the assertion.
|
||||
* \param additionalMessage Additional message. Usually used to report
|
||||
* what are the differences between the expected and actual value.
|
||||
* \param shortDescription Short description for the failure message.
|
||||
*/
|
||||
static void CPPUNIT_API failNotEqual( std::string expected,
|
||||
std::string actual,
|
||||
const SourceLine &sourceLine,
|
||||
const AdditionalMessage &additionalMessage = AdditionalMessage(),
|
||||
std::string shortDescription = "equality assertion failed" );
|
||||
|
||||
/*! \brief Throws an Exception with the specified message and location.
|
||||
* \param shouldFail if \c true then the exception is thrown. Otherwise
|
||||
* nothing happen.
|
||||
* \param expected Text describing the expected value.
|
||||
* \param actual Text describing the actual value.
|
||||
* \param sourceLine Location of the assertion.
|
||||
* \param additionalMessage Additional message. Usually used to report
|
||||
* where the "difference" is located.
|
||||
* \param shortDescription Short description for the failure message.
|
||||
*/
|
||||
static void CPPUNIT_API failNotEqualIf( bool shouldFail,
|
||||
std::string expected,
|
||||
std::string actual,
|
||||
const SourceLine &sourceLine,
|
||||
const AdditionalMessage &additionalMessage = AdditionalMessage(),
|
||||
std::string shortDescription = "equality assertion failed" );
|
||||
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_ASSERTER_H
|
||||
@@ -1,43 +0,0 @@
|
||||
#ifndef CPPUNIT_BRIEFTESTPROGRESSLISTENER_H
|
||||
#define CPPUNIT_BRIEFTESTPROGRESSLISTENER_H
|
||||
|
||||
#include <cppunit/TestListener.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief TestListener that prints the name of each test before running it.
|
||||
* \ingroup TrackingTestExecution
|
||||
*/
|
||||
class CPPUNIT_API BriefTestProgressListener : public TestListener
|
||||
{
|
||||
public:
|
||||
/*! Constructs a BriefTestProgressListener object.
|
||||
*/
|
||||
BriefTestProgressListener();
|
||||
|
||||
/// Destructor.
|
||||
virtual ~BriefTestProgressListener();
|
||||
|
||||
void startTest( Test *test );
|
||||
|
||||
void addFailure( const TestFailure &failure );
|
||||
|
||||
void endTest( Test *test );
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
BriefTestProgressListener( const BriefTestProgressListener © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const BriefTestProgressListener © );
|
||||
|
||||
private:
|
||||
bool m_lastTestFailed;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_BRIEFTESTPROGRESSLISTENER_H
|
||||
146
3rdParty/include/cppunit/CompilerOutputter.h
vendored
146
3rdParty/include/cppunit/CompilerOutputter.h
vendored
@@ -1,146 +0,0 @@
|
||||
#ifndef CPPUNIT_COMPILERTESTRESULTOUTPUTTER_H
|
||||
#define CPPUNIT_COMPILERTESTRESULTOUTPUTTER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/Outputter.h>
|
||||
#include <cppunit/portability/Stream.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Exception;
|
||||
class SourceLine;
|
||||
class Test;
|
||||
class TestFailure;
|
||||
class TestResultCollector;
|
||||
|
||||
/*!
|
||||
* \brief Outputs a TestResultCollector in a compiler compatible format.
|
||||
* \ingroup WritingTestResult
|
||||
*
|
||||
* Printing the test results in a compiler compatible format (assertion
|
||||
* location has the same format as compiler error), allow you to use your
|
||||
* IDE to jump to the assertion failure. Location format can be customized (see
|
||||
* setLocationFormat() ).
|
||||
*
|
||||
* For example, when running the test in a post-build with VC++, if an assertion
|
||||
* fails, you can jump to the assertion by pressing F4 (jump to next error).
|
||||
*
|
||||
* Heres is an example of usage (from examples/cppunittest/CppUnitTestMain.cpp):
|
||||
* \code
|
||||
* int main( int argc, char* argv[] ) {
|
||||
* // if command line contains "-selftest" then this is the post build check
|
||||
* // => the output must be in the compiler error format.
|
||||
* bool selfTest = (argc > 1) &&
|
||||
* (std::string("-selftest") == argv[1]);
|
||||
*
|
||||
* CppUnit::TextUi::TestRunner runner;
|
||||
* runner.addTest( CppUnitTest::suite() ); // Add the top suite to the test runner
|
||||
*
|
||||
* if ( selfTest )
|
||||
* { // Change the default outputter to a compiler error format outputter
|
||||
* // The test runner owns the new outputter.
|
||||
* runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(),
|
||||
* std::cerr ) );
|
||||
* }
|
||||
*
|
||||
* // Run the test and don't wait a key if post build check.
|
||||
* bool wasSuccessful = runner.run( "", !selfTest );
|
||||
*
|
||||
* // Return error code 1 if the one of test failed.
|
||||
* return wasSuccessful ? 0 : 1;
|
||||
* }
|
||||
* \endcode
|
||||
*/
|
||||
class CPPUNIT_API CompilerOutputter : public Outputter
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs a CompilerOutputter object.
|
||||
* \param result Result of the test run.
|
||||
* \param stream Stream used to output test result.
|
||||
* \param locationFormat Error location format used by your compiler. Default
|
||||
* to \c CPPUNIT_COMPILER_LOCATION_FORMAT which is defined
|
||||
* in the configuration file. See setLocationFormat() for detail.
|
||||
* \see setLocationFormat().
|
||||
*/
|
||||
CompilerOutputter( TestResultCollector *result,
|
||||
OStream &stream,
|
||||
const std::string &locationFormat = CPPUNIT_COMPILER_LOCATION_FORMAT );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~CompilerOutputter();
|
||||
|
||||
/*! \brief Sets the error location format.
|
||||
*
|
||||
* Indicates the format used to report location of failed assertion. This format should
|
||||
* match the one used by your compiler.
|
||||
*
|
||||
* The location format is a string in which the occurence of the following character
|
||||
* sequence are replaced:
|
||||
*
|
||||
* - "%l" => replaced by the line number
|
||||
* - "%p" => replaced by the full path name of the file ("G:\prg\vc\cppunit\MyTest.cpp")
|
||||
* - "%f" => replaced by the base name of the file ("MyTest.cpp")
|
||||
*
|
||||
* Some examples:
|
||||
*
|
||||
* - VC++ error location format: "%p(%l):" => produce "G:\prg\MyTest.cpp(43):"
|
||||
* - GCC error location format: "%f:%l:" => produce "MyTest.cpp:43:"
|
||||
*
|
||||
* Thoses are the two compilers currently <em>supported</em> (gcc format is used if
|
||||
* VC++ is not detected). If you want your compiler to be automatically supported by
|
||||
* CppUnit, send a mail to the mailing list (preferred), or submit a feature request
|
||||
* that indicates how to detect your compiler with the preprocessor (\#ifdef...) and
|
||||
* your compiler location format.
|
||||
*/
|
||||
void setLocationFormat( const std::string &locationFormat );
|
||||
|
||||
/*! \brief Creates an instance of an outputter that matches your current compiler.
|
||||
* \deprecated This class is specialized through parameterization instead of subclassing...
|
||||
* Use CompilerOutputter::CompilerOutputter instead.
|
||||
*/
|
||||
static CompilerOutputter *defaultOutputter( TestResultCollector *result,
|
||||
OStream &stream );
|
||||
|
||||
void write();
|
||||
|
||||
void setNoWrap();
|
||||
|
||||
void setWrapColumn( int wrapColumn );
|
||||
|
||||
int wrapColumn() const;
|
||||
|
||||
virtual void printSuccess();
|
||||
virtual void printFailureReport();
|
||||
virtual void printFailuresList();
|
||||
virtual void printStatistics();
|
||||
virtual void printFailureDetail( TestFailure *failure );
|
||||
virtual void printFailureLocation( SourceLine sourceLine );
|
||||
virtual void printFailureType( TestFailure *failure );
|
||||
virtual void printFailedTestName( TestFailure *failure );
|
||||
virtual void printFailureMessage( TestFailure *failure );
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
CompilerOutputter( const CompilerOutputter © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const CompilerOutputter © );
|
||||
|
||||
virtual bool processLocationFormatCommand( char command,
|
||||
const SourceLine &sourceLine );
|
||||
|
||||
virtual std::string extractBaseName( const std::string &fileName ) const;
|
||||
|
||||
private:
|
||||
TestResultCollector *m_result;
|
||||
OStream &m_stream;
|
||||
std::string m_locationFormat;
|
||||
int m_wrapColumn;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_COMPILERTESTRESULTOUTPUTTER_H
|
||||
90
3rdParty/include/cppunit/Exception.h
vendored
90
3rdParty/include/cppunit/Exception.h
vendored
@@ -1,90 +0,0 @@
|
||||
#ifndef CPPUNIT_EXCEPTION_H
|
||||
#define CPPUNIT_EXCEPTION_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/Message.h>
|
||||
#include <cppunit/SourceLine.h>
|
||||
#include <exception>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Exceptions thrown by failed assertions.
|
||||
* \ingroup BrowsingCollectedTestResult
|
||||
*
|
||||
* Exception is an exception that serves
|
||||
* descriptive strings through its what() method
|
||||
*/
|
||||
class CPPUNIT_API Exception : public std::exception
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs the exception with the specified message and source location.
|
||||
* \param message Message associated to the exception.
|
||||
* \param sourceLine Source location related to the exception.
|
||||
*/
|
||||
Exception( const Message &message = Message(),
|
||||
const SourceLine &sourceLine = SourceLine() );
|
||||
|
||||
#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
|
||||
/*!
|
||||
* \deprecated Use other constructor instead.
|
||||
*/
|
||||
Exception( std::string message,
|
||||
long lineNumber,
|
||||
std::string fileName );
|
||||
#endif
|
||||
|
||||
/*! \brief Constructs a copy of an exception.
|
||||
* \param other Exception to copy.
|
||||
*/
|
||||
Exception( const Exception &other );
|
||||
|
||||
/// Destructs the exception
|
||||
virtual ~Exception() throw();
|
||||
|
||||
/// Performs an assignment
|
||||
Exception &operator =( const Exception &other );
|
||||
|
||||
/// Returns descriptive message
|
||||
const char *what() const throw();
|
||||
|
||||
/// Location where the error occured
|
||||
SourceLine sourceLine() const;
|
||||
|
||||
/// Message related to the exception.
|
||||
Message message() const;
|
||||
|
||||
/// Set the message.
|
||||
void setMessage( const Message &message );
|
||||
|
||||
#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
|
||||
/// The line on which the error occurred
|
||||
long lineNumber() const;
|
||||
|
||||
/// The file in which the error occurred
|
||||
std::string fileName() const;
|
||||
|
||||
static const std::string UNKNOWNFILENAME;
|
||||
static const long UNKNOWNLINENUMBER;
|
||||
#endif
|
||||
|
||||
/// Clones the exception.
|
||||
virtual Exception *clone() const;
|
||||
|
||||
protected:
|
||||
// VC++ does not recognize call to parent class when prefixed
|
||||
// with a namespace. This is a workaround.
|
||||
typedef std::exception SuperClass;
|
||||
|
||||
Message m_message;
|
||||
SourceLine m_sourceLine;
|
||||
std::string m_whatMessage;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_EXCEPTION_H
|
||||
|
||||
156
3rdParty/include/cppunit/Message.h
vendored
156
3rdParty/include/cppunit/Message.h
vendored
@@ -1,156 +0,0 @@
|
||||
#ifndef CPPUNIT_MESSAGE_H
|
||||
#define CPPUNIT_MESSAGE_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
#include <string>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::deque<std::string>;
|
||||
#endif
|
||||
|
||||
/*! \brief Message associated to an Exception.
|
||||
* \ingroup CreatingNewAssertions
|
||||
* A message is composed of two items:
|
||||
* - a short description (~20/30 characters)
|
||||
* - a list of detail strings
|
||||
*
|
||||
* The short description is used to indicate how the detail strings should be
|
||||
* interpreted. It usually indicates the failure types, such as
|
||||
* "assertion failed", "forced failure", "unexpected exception caught",
|
||||
* "equality assertion failed"... It should not contains new line character (\n).
|
||||
*
|
||||
* Detail strings are used to provide more information about the failure. It
|
||||
* can contains the asserted expression, the expected and actual values in an
|
||||
* equality assertion, some addional messages... Detail strings can contains
|
||||
* new line characters (\n).
|
||||
*/
|
||||
class CPPUNIT_API Message
|
||||
{
|
||||
public:
|
||||
Message();
|
||||
|
||||
// Ensure thread-safe copy by detaching the string.
|
||||
Message( const Message &other );
|
||||
|
||||
explicit Message( const std::string &shortDescription );
|
||||
|
||||
Message( const std::string &shortDescription,
|
||||
const std::string &detail1 );
|
||||
|
||||
Message( const std::string &shortDescription,
|
||||
const std::string &detail1,
|
||||
const std::string &detail2 );
|
||||
|
||||
Message( const std::string &shortDescription,
|
||||
const std::string &detail1,
|
||||
const std::string &detail2,
|
||||
const std::string &detail3 );
|
||||
|
||||
Message &operator =( const Message &other );
|
||||
|
||||
/*! \brief Returns the short description.
|
||||
* \return Short description.
|
||||
*/
|
||||
const std::string &shortDescription() const;
|
||||
|
||||
/*! \brief Returns the number of detail string.
|
||||
* \return Number of detail string.
|
||||
*/
|
||||
int detailCount() const;
|
||||
|
||||
/*! \brief Returns the detail at the specified index.
|
||||
* \param index Zero based index of the detail string to return.
|
||||
* \returns Detail string at the specified index.
|
||||
* \exception std::invalid_argument if \a index < 0 or index >= detailCount().
|
||||
*/
|
||||
std::string detailAt( int index ) const;
|
||||
|
||||
/*! \brief Returns a string that represents a list of the detail strings.
|
||||
*
|
||||
* Example:
|
||||
* \code
|
||||
* Message message( "not equal", "Expected: 3", "Actual: 7" );
|
||||
* std::string details = message.details();
|
||||
* // details contains:
|
||||
* // "- Expected: 3\n- Actual: 7\n" \endcode
|
||||
*
|
||||
* \return A string that is a concatenation of all the detail strings. Each detail
|
||||
* string is prefixed with '- ' and suffixed with '\n' before being
|
||||
* concatenated to the other.
|
||||
*/
|
||||
std::string details() const;
|
||||
|
||||
/*! \brief Removes all detail strings.
|
||||
*/
|
||||
void clearDetails();
|
||||
|
||||
/*! \brief Adds a single detail string.
|
||||
* \param detail Detail string to add.
|
||||
*/
|
||||
void addDetail( const std::string &detail );
|
||||
|
||||
/*! \brief Adds two detail strings.
|
||||
* \param detail1 Detail string to add.
|
||||
* \param detail2 Detail string to add.
|
||||
*/
|
||||
void addDetail( const std::string &detail1,
|
||||
const std::string &detail2 );
|
||||
|
||||
/*! \brief Adds three detail strings.
|
||||
* \param detail1 Detail string to add.
|
||||
* \param detail2 Detail string to add.
|
||||
* \param detail3 Detail string to add.
|
||||
*/
|
||||
void addDetail( const std::string &detail1,
|
||||
const std::string &detail2,
|
||||
const std::string &detail3 );
|
||||
|
||||
/*! \brief Adds the detail strings of the specified message.
|
||||
* \param message All the detail strings of this message are added to this one.
|
||||
*/
|
||||
void addDetail( const Message &message );
|
||||
|
||||
/*! \brief Sets the short description.
|
||||
* \param shortDescription New short description.
|
||||
*/
|
||||
void setShortDescription( const std::string &shortDescription );
|
||||
|
||||
/*! \brief Tests if a message is identical to another one.
|
||||
* \param other Message this message is compared to.
|
||||
* \return \c true if the two message are identical, \c false otherwise.
|
||||
*/
|
||||
bool operator ==( const Message &other ) const;
|
||||
|
||||
/*! \brief Tests if a message is different from another one.
|
||||
* \param other Message this message is compared to.
|
||||
* \return \c true if the two message are not identical, \c false otherwise.
|
||||
*/
|
||||
bool operator !=( const Message &other ) const;
|
||||
|
||||
private:
|
||||
std::string m_shortDescription;
|
||||
|
||||
typedef CppUnitDeque<std::string> Details;
|
||||
Details m_details;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_MESSAGE_H
|
||||
26
3rdParty/include/cppunit/Outputter.h
vendored
26
3rdParty/include/cppunit/Outputter.h
vendored
@@ -1,26 +0,0 @@
|
||||
#ifndef CPPUNIT_OUTPUTTER_H
|
||||
#define CPPUNIT_OUTPUTTER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Abstract outputter to print test result summary.
|
||||
* \ingroup WritingTestResult
|
||||
*/
|
||||
class CPPUNIT_API Outputter
|
||||
{
|
||||
public:
|
||||
/// Destructor.
|
||||
virtual ~Outputter() {}
|
||||
|
||||
virtual void write() =0;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_OUTPUTTER_H
|
||||
177
3rdParty/include/cppunit/Portability.h
vendored
177
3rdParty/include/cppunit/Portability.h
vendored
@@ -1,177 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_H
|
||||
#define CPPUNIT_PORTABILITY_H
|
||||
|
||||
#if defined(_WIN32) && !defined(WIN32)
|
||||
# define WIN32 1
|
||||
#endif
|
||||
|
||||
/* include platform specific config */
|
||||
#if defined(__BORLANDC__)
|
||||
# include <cppunit/config/config-bcb5.h>
|
||||
#elif defined (_MSC_VER)
|
||||
# if _MSC_VER == 1200 && defined(_WIN32_WCE) //evc4
|
||||
# include <cppunit/config/config-evc4.h>
|
||||
# else
|
||||
# include <cppunit/config/config-msvc6.h>
|
||||
# endif
|
||||
#else
|
||||
# include <cppunit/config-auto.h>
|
||||
#endif
|
||||
|
||||
// Version number of package
|
||||
#ifndef CPPUNIT_VERSION
|
||||
#define CPPUNIT_VERSION "1.12.0"
|
||||
#endif
|
||||
|
||||
#include <cppunit/config/CppUnitApi.h> // define CPPUNIT_API & CPPUNIT_NEED_DLL_DECL
|
||||
#include <cppunit/config/SelectDllLoader.h>
|
||||
|
||||
|
||||
/* Options that the library user may switch on or off.
|
||||
* If the user has not done so, we chose default values.
|
||||
*/
|
||||
|
||||
|
||||
/* Define to 1 if you wish to have the old-style macros
|
||||
assert(), assertEqual(), assertDoublesEqual(), and assertLongsEqual() */
|
||||
#if !defined(CPPUNIT_ENABLE_NAKED_ASSERT)
|
||||
# define CPPUNIT_ENABLE_NAKED_ASSERT 0
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you wish to have the old-style CU_TEST family
|
||||
of macros. */
|
||||
#if !defined(CPPUNIT_ENABLE_CU_TEST_MACROS)
|
||||
# define CPPUNIT_ENABLE_CU_TEST_MACROS 0
|
||||
#endif
|
||||
|
||||
/* Define to 1 if the preprocessor expands (#foo) to "foo" (quotes incl.)
|
||||
I don't think there is any C preprocess that does NOT support this! */
|
||||
#if !defined(CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION)
|
||||
# define CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION 1
|
||||
#endif
|
||||
|
||||
/* Assumes that STL and CppUnit are in global space if the compiler does not
|
||||
support namespace. */
|
||||
#if !defined(CPPUNIT_HAVE_NAMESPACES)
|
||||
# if !defined(CPPUNIT_NO_NAMESPACE)
|
||||
# define CPPUNIT_NO_NAMESPACE 1
|
||||
# endif // !defined(CPPUNIT_NO_NAMESPACE)
|
||||
# if !defined(CPPUNIT_NO_STD_NAMESPACE)
|
||||
# define CPPUNIT_NO_STD_NAMESPACE 1
|
||||
# endif // !defined(CPPUNIT_NO_STD_NAMESPACE)
|
||||
#endif // !defined(CPPUNIT_HAVE_NAMESPACES)
|
||||
|
||||
/* Define CPPUNIT_STD_NEED_ALLOCATOR to 1 if you need to specify
|
||||
* the allocator you used when instantiating STL container. Typically
|
||||
* used for compilers that do not support template default parameter.
|
||||
* CPPUNIT_STD_ALLOCATOR will be used as the allocator. Default is
|
||||
* std::allocator. On some compilers, you may need to change this to
|
||||
* std::allocator<T>.
|
||||
*/
|
||||
#if CPPUNIT_STD_NEED_ALLOCATOR
|
||||
# if !defined(CPPUNIT_STD_ALLOCATOR)
|
||||
# define CPPUNIT_STD_ALLOCATOR std::allocator
|
||||
# endif // !defined(CPPUNIT_STD_ALLOCATOR)
|
||||
#endif // defined(CPPUNIT_STD_NEED_ALLOCATOR)
|
||||
|
||||
|
||||
// Compiler error location format for CompilerOutputter
|
||||
// If not define, assumes that it's gcc
|
||||
// See class CompilerOutputter for format.
|
||||
#if !defined(CPPUNIT_COMPILER_LOCATION_FORMAT)
|
||||
#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) )
|
||||
// gcc/Xcode integration on Mac OS X
|
||||
# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p:%l: "
|
||||
#else
|
||||
# define CPPUNIT_COMPILER_LOCATION_FORMAT "%f:%l:"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If CPPUNIT_HAVE_CPP_CAST is defined, then c++ style cast will be used,
|
||||
// otherwise, C style cast are used.
|
||||
#if defined( CPPUNIT_HAVE_CPP_CAST )
|
||||
# define CPPUNIT_CONST_CAST( TargetType, pointer ) \
|
||||
const_cast<TargetType>( pointer )
|
||||
|
||||
# define CPPUNIT_STATIC_CAST( TargetType, pointer ) \
|
||||
static_cast<TargetType>( pointer )
|
||||
#else // defined( CPPUNIT_HAVE_CPP_CAST )
|
||||
# define CPPUNIT_CONST_CAST( TargetType, pointer ) \
|
||||
((TargetType)( pointer ))
|
||||
# define CPPUNIT_STATIC_CAST( TargetType, pointer ) \
|
||||
((TargetType)( pointer ))
|
||||
#endif // defined( CPPUNIT_HAVE_CPP_CAST )
|
||||
|
||||
// If CPPUNIT_NO_STD_NAMESPACE is defined then STL are in the global space.
|
||||
// => Define macro 'std' to nothing
|
||||
#if defined(CPPUNIT_NO_STD_NAMESPACE)
|
||||
# undef std
|
||||
# define std
|
||||
#endif // defined(CPPUNIT_NO_STD_NAMESPACE)
|
||||
|
||||
// If CPPUNIT_NO_NAMESPACE is defined, then put CppUnit classes in the
|
||||
// global namespace: the compiler does not support namespace.
|
||||
#if defined(CPPUNIT_NO_NAMESPACE)
|
||||
# define CPPUNIT_NS_BEGIN
|
||||
# define CPPUNIT_NS_END
|
||||
# define CPPUNIT_NS
|
||||
#else // defined(CPPUNIT_NO_NAMESPACE)
|
||||
# define CPPUNIT_NS_BEGIN namespace CppUnit {
|
||||
# define CPPUNIT_NS_END }
|
||||
# define CPPUNIT_NS CppUnit
|
||||
#endif // defined(CPPUNIT_NO_NAMESPACE)
|
||||
|
||||
/*! Stringize a symbol.
|
||||
*
|
||||
* Use this macro to convert a preprocessor symbol to a string.
|
||||
*
|
||||
* Example of usage:
|
||||
* \code
|
||||
* #define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTestPlugIn
|
||||
* const char *name = CPPUNIT_STRINGIZE( CPPUNIT_PLUGIN_EXPORTED_NAME );
|
||||
* \endcode
|
||||
*/
|
||||
#define CPPUNIT_STRINGIZE( symbol ) _CPPUNIT_DO_STRINGIZE( symbol )
|
||||
|
||||
/// \internal
|
||||
#define _CPPUNIT_DO_STRINGIZE( symbol ) #symbol
|
||||
|
||||
/*! Joins to symbol after expanding them into string.
|
||||
*
|
||||
* Use this macro to join two symbols. Example of usage:
|
||||
*
|
||||
* \code
|
||||
* #define MAKE_UNIQUE_NAME(prefix) CPPUNIT_JOIN( prefix, __LINE__ )
|
||||
* \endcode
|
||||
*
|
||||
* The macro defined in the example concatenate a given prefix with the line number
|
||||
* to obtain a 'unique' identifier.
|
||||
*
|
||||
* \internal From boost documentation:
|
||||
* The following piece of macro magic joins the two
|
||||
* arguments together, even when one of the arguments is
|
||||
* itself a macro (see 16.3.1 in C++ standard). The key
|
||||
* is that macro expansion of macro arguments does not
|
||||
* occur in CPPUNIT_JOIN2 but does in CPPUNIT_JOIN.
|
||||
*/
|
||||
#define CPPUNIT_JOIN( symbol1, symbol2 ) _CPPUNIT_DO_JOIN( symbol1, symbol2 )
|
||||
|
||||
/// \internal
|
||||
#define _CPPUNIT_DO_JOIN( symbol1, symbol2 ) _CPPUNIT_DO_JOIN2( symbol1, symbol2 )
|
||||
|
||||
/// \internal
|
||||
#define _CPPUNIT_DO_JOIN2( symbol1, symbol2 ) symbol1##symbol2
|
||||
|
||||
/*! Adds the line number to the specified string to create a unique identifier.
|
||||
* \param prefix Prefix added to the line number to create a unique identifier.
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION for an example of usage.
|
||||
*/
|
||||
#define CPPUNIT_MAKE_UNIQUE_NAME( prefix ) CPPUNIT_JOIN( prefix, __LINE__ )
|
||||
|
||||
/*! Defines wrap colunm for %CppUnit. Used by CompilerOuputter.
|
||||
*/
|
||||
#if !defined(CPPUNIT_WRAP_COLUMN)
|
||||
# define CPPUNIT_WRAP_COLUMN 79
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_H
|
||||
94
3rdParty/include/cppunit/Protector.h
vendored
94
3rdParty/include/cppunit/Protector.h
vendored
@@ -1,94 +0,0 @@
|
||||
#ifndef CPPUNIT_PROTECTOR_H
|
||||
#define CPPUNIT_PROTECTOR_H
|
||||
|
||||
#include <cppunit/SourceLine.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
class Exception;
|
||||
class Message;
|
||||
class ProtectorContext;
|
||||
class TestResult;
|
||||
|
||||
|
||||
class CPPUNIT_API Functor
|
||||
{
|
||||
public:
|
||||
virtual ~Functor();
|
||||
|
||||
virtual bool operator()() const =0;
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Protects one or more test case run.
|
||||
*
|
||||
* Protector are used to globably 'decorate' a test case. The most common
|
||||
* usage of Protector is to catch exception that do not subclass std::exception,
|
||||
* such as MFC CException class or Rogue Wave RWXMsg class, and capture the
|
||||
* message associated to the exception. In fact, CppUnit capture message from
|
||||
* Exception and std::exception using a Protector.
|
||||
*
|
||||
* Protector are chained. When you add a Protector using
|
||||
* TestResult::pushProtector(), your protector is in fact passed as a Functor
|
||||
* to the first protector of the chain.
|
||||
*
|
||||
* TestCase protects call to setUp(), runTest() and tearDown() by calling
|
||||
* TestResult::protect().
|
||||
*
|
||||
* Because the protector chain is handled by TestResult, a protector can be
|
||||
* active for a single test, or a complete test run.
|
||||
*
|
||||
* Here are some possible usages:
|
||||
* - run all test case in a separate thread and assumes the test failed if it
|
||||
* did not finish in a given time (infinite loop work around)
|
||||
* - performance tracing : time only the runTest() time.
|
||||
* \sa TestResult, TestCase, TestListener.
|
||||
*/
|
||||
class CPPUNIT_API Protector
|
||||
{
|
||||
public:
|
||||
virtual ~Protector();
|
||||
|
||||
virtual bool protect( const Functor &functor,
|
||||
const ProtectorContext &context ) =0;
|
||||
|
||||
protected:
|
||||
void reportError( const ProtectorContext &context,
|
||||
const Exception &error ) const;
|
||||
|
||||
void reportError( const ProtectorContext &context,
|
||||
const Message &message,
|
||||
const SourceLine &sourceLine = SourceLine() ) const;
|
||||
|
||||
void reportFailure( const ProtectorContext &context,
|
||||
const Exception &failure ) const;
|
||||
|
||||
Message actualMessage( const Message &message,
|
||||
const ProtectorContext &context ) const;
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Scoped protector push to TestResult.
|
||||
*
|
||||
* Adds the specified Protector to the specified TestResult for the object
|
||||
* life-time.
|
||||
*/
|
||||
class CPPUNIT_API ProtectorGuard
|
||||
{
|
||||
public:
|
||||
/// Pushes the specified protector.
|
||||
ProtectorGuard( TestResult *result,
|
||||
Protector *protector );
|
||||
|
||||
/// Pops the protector.
|
||||
~ProtectorGuard();
|
||||
|
||||
private:
|
||||
TestResult *m_result;
|
||||
};
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_PROTECTOR_H
|
||||
|
||||
63
3rdParty/include/cppunit/SourceLine.h
vendored
63
3rdParty/include/cppunit/SourceLine.h
vendored
@@ -1,63 +0,0 @@
|
||||
#ifndef CPPUNIT_SOURCELINE_H
|
||||
#define CPPUNIT_SOURCELINE_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
|
||||
/*! \brief Constructs a SourceLine object initialized with the location where the macro is expanded.
|
||||
* \ingroup CreatingNewAssertions
|
||||
* \relates CppUnit::SourceLine
|
||||
* Used to write your own assertion macros.
|
||||
* \see Asserter for example of usage.
|
||||
*/
|
||||
#define CPPUNIT_SOURCELINE() CPPUNIT_NS::SourceLine( __FILE__, __LINE__ )
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Represents a source line location.
|
||||
* \ingroup CreatingNewAssertions
|
||||
* \ingroup BrowsingCollectedTestResult
|
||||
*
|
||||
* Used to capture the failure location in assertion.
|
||||
*
|
||||
* Use the CPPUNIT_SOURCELINE() macro to construct that object. Typically used when
|
||||
* writing an assertion macro in association with Asserter.
|
||||
*
|
||||
* \see Asserter.
|
||||
*/
|
||||
class CPPUNIT_API SourceLine
|
||||
{
|
||||
public:
|
||||
SourceLine();
|
||||
|
||||
// Ensure thread-safe copy by detaching the string buffer.
|
||||
SourceLine( const SourceLine &other );
|
||||
|
||||
SourceLine( const std::string &fileName,
|
||||
int lineNumber );
|
||||
|
||||
SourceLine &operator =( const SourceLine &other );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~SourceLine();
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
int lineNumber() const;
|
||||
|
||||
std::string fileName() const;
|
||||
|
||||
bool operator ==( const SourceLine &other ) const;
|
||||
bool operator !=( const SourceLine &other ) const;
|
||||
|
||||
private:
|
||||
std::string m_fileName;
|
||||
int m_lineNumber;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_SOURCELINE_H
|
||||
80
3rdParty/include/cppunit/SynchronizedObject.h
vendored
80
3rdParty/include/cppunit/SynchronizedObject.h
vendored
@@ -1,80 +0,0 @@
|
||||
#ifndef CPPUNIT_SYNCHRONIZEDOBJECT_H
|
||||
#define CPPUNIT_SYNCHRONIZEDOBJECT_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Base class for synchronized object.
|
||||
*
|
||||
* Synchronized object are object which members are used concurrently by mutiple
|
||||
* threads.
|
||||
*
|
||||
* This class define the class SynchronizationObject which must be subclassed
|
||||
* to implement an actual lock.
|
||||
*
|
||||
* Each instance of this class holds a pointer on a lock object.
|
||||
*
|
||||
* See src/msvc6/MfcSynchronizedObject.h for an example.
|
||||
*/
|
||||
class CPPUNIT_API SynchronizedObject
|
||||
{
|
||||
public:
|
||||
/*! \brief Abstract synchronization object (mutex)
|
||||
*/
|
||||
class SynchronizationObject
|
||||
{
|
||||
public:
|
||||
SynchronizationObject() {}
|
||||
virtual ~SynchronizationObject() {}
|
||||
|
||||
virtual void lock() {}
|
||||
virtual void unlock() {}
|
||||
};
|
||||
|
||||
/*! Constructs a SynchronizedObject object.
|
||||
*/
|
||||
SynchronizedObject( SynchronizationObject *syncObject =0 );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~SynchronizedObject();
|
||||
|
||||
protected:
|
||||
/*! \brief Locks a synchronization object in the current scope.
|
||||
*/
|
||||
class ExclusiveZone
|
||||
{
|
||||
SynchronizationObject *m_syncObject;
|
||||
|
||||
public:
|
||||
ExclusiveZone( SynchronizationObject *syncObject )
|
||||
: m_syncObject( syncObject )
|
||||
{
|
||||
m_syncObject->lock();
|
||||
}
|
||||
|
||||
~ExclusiveZone()
|
||||
{
|
||||
m_syncObject->unlock ();
|
||||
}
|
||||
};
|
||||
|
||||
virtual void setSynchronizationObject( SynchronizationObject *syncObject );
|
||||
|
||||
protected:
|
||||
SynchronizationObject *m_syncObject;
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
SynchronizedObject( const SynchronizedObject © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const SynchronizedObject © );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_SYNCHRONIZEDOBJECT_H
|
||||
117
3rdParty/include/cppunit/Test.h
vendored
117
3rdParty/include/cppunit/Test.h
vendored
@@ -1,117 +0,0 @@
|
||||
#ifndef CPPUNIT_TEST_H
|
||||
#define CPPUNIT_TEST_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class TestResult;
|
||||
class TestPath;
|
||||
|
||||
/*! \brief Base class for all test objects.
|
||||
* \ingroup BrowsingCollectedTestResult
|
||||
*
|
||||
* All test objects should be a subclass of Test. Some test objects,
|
||||
* TestCase for example, represent one individual test. Other test
|
||||
* objects, such as TestSuite, are comprised of several tests.
|
||||
*
|
||||
* When a Test is run, the result is collected by a TestResult object.
|
||||
*
|
||||
* \see TestCase
|
||||
* \see TestSuite
|
||||
*/
|
||||
class CPPUNIT_API Test
|
||||
{
|
||||
public:
|
||||
virtual ~Test() {};
|
||||
|
||||
/*! \brief Run the test, collecting results.
|
||||
*/
|
||||
virtual void run( TestResult *result ) =0;
|
||||
|
||||
/*! \brief Return the number of test cases invoked by run().
|
||||
*
|
||||
* The base unit of testing is the class TestCase. This
|
||||
* method returns the number of TestCase objects invoked by
|
||||
* the run() method.
|
||||
*/
|
||||
virtual int countTestCases () const =0;
|
||||
|
||||
/*! \brief Returns the number of direct child of the test.
|
||||
*/
|
||||
virtual int getChildTestCount() const =0;
|
||||
|
||||
/*! \brief Returns the child test of the specified index.
|
||||
*
|
||||
* This method test if the index is valid, then call doGetChildTestAt() if
|
||||
* the index is valid. Otherwise std::out_of_range exception is thrown.
|
||||
*
|
||||
* You should override doGetChildTestAt() method.
|
||||
*
|
||||
* \param index Zero based index of the child test to return.
|
||||
* \return Pointer on the test. Never \c NULL.
|
||||
* \exception std::out_of_range is \a index is < 0 or >= getChildTestCount().
|
||||
*/
|
||||
virtual Test *getChildTestAt( int index ) const;
|
||||
|
||||
/*! \brief Returns the test name.
|
||||
*
|
||||
* Each test has a name. This name may be used to find the
|
||||
* test in a suite or registry of tests.
|
||||
*/
|
||||
virtual std::string getName () const =0;
|
||||
|
||||
/*! \brief Finds the test with the specified name and its parents test.
|
||||
* \param testName Name of the test to find.
|
||||
* \param testPath If the test is found, then all the tests traversed to access
|
||||
* \a test are added to \a testPath, including \c this and \a test.
|
||||
* \return \c true if a test with the specified name is found, \c false otherwise.
|
||||
*/
|
||||
virtual bool findTestPath( const std::string &testName,
|
||||
TestPath &testPath ) const;
|
||||
|
||||
/*! \brief Finds the specified test and its parents test.
|
||||
* \param test Test to find.
|
||||
* \param testPath If the test is found, then all the tests traversed to access
|
||||
* \a test are added to \a testPath, including \c this and \a test.
|
||||
* \return \c true if the specified test is found, \c false otherwise.
|
||||
*/
|
||||
virtual bool findTestPath( const Test *test,
|
||||
TestPath &testPath ) const;
|
||||
|
||||
/*! \brief Finds the test with the specified name in the hierarchy.
|
||||
* \param testName Name of the test to find.
|
||||
* \return Pointer on the first test found that is named \a testName. Never \c NULL.
|
||||
* \exception std::invalid_argument if no test named \a testName is found.
|
||||
*/
|
||||
virtual Test *findTest( const std::string &testName ) const;
|
||||
|
||||
/*! \brief Resolved the specified test path with this test acting as 'root'.
|
||||
* \param testPath Test path string to resolve.
|
||||
* \return Resolved TestPath.
|
||||
* \exception std::invalid_argument if \a testPath could not be resolved.
|
||||
* \see TestPath.
|
||||
*/
|
||||
virtual TestPath resolveTestPath( const std::string &testPath ) const;
|
||||
|
||||
protected:
|
||||
/*! Throws an exception if the specified index is invalid.
|
||||
* \param index Zero base index of a child test.
|
||||
* \exception std::out_of_range is \a index is < 0 or >= getChildTestCount().
|
||||
*/
|
||||
virtual void checkIsValidIndex( int index ) const;
|
||||
|
||||
/*! \brief Returns the child test of the specified valid index.
|
||||
* \param index Zero based valid index of the child test to return.
|
||||
* \return Pointer on the test. Never \c NULL.
|
||||
*/
|
||||
virtual Test *doGetChildTestAt( int index ) const =0;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TEST_H
|
||||
|
||||
428
3rdParty/include/cppunit/TestAssert.h
vendored
428
3rdParty/include/cppunit/TestAssert.h
vendored
@@ -1,428 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTASSERT_H
|
||||
#define CPPUNIT_TESTASSERT_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/Exception.h>
|
||||
#include <cppunit/Asserter.h>
|
||||
#include <cppunit/portability/Stream.h>
|
||||
#include <stdio.h>
|
||||
#include <float.h> // For struct assertion_traits<double>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Traits used by CPPUNIT_ASSERT_EQUAL().
|
||||
*
|
||||
* Here is an example of specialising these traits:
|
||||
*
|
||||
* \code
|
||||
* template<>
|
||||
* struct assertion_traits<std::string> // specialization for the std::string type
|
||||
* {
|
||||
* static bool equal( const std::string& x, const std::string& y )
|
||||
* {
|
||||
* return x == y;
|
||||
* }
|
||||
*
|
||||
* static std::string toString( const std::string& x )
|
||||
* {
|
||||
* std::string text = '"' + x + '"'; // adds quote around the string to see whitespace
|
||||
* OStringStream ost;
|
||||
* ost << text;
|
||||
* return ost.str();
|
||||
* }
|
||||
* };
|
||||
* \endcode
|
||||
*/
|
||||
template <class T>
|
||||
struct assertion_traits
|
||||
{
|
||||
static bool equal( const T& x, const T& y )
|
||||
{
|
||||
return x == y;
|
||||
}
|
||||
|
||||
static std::string toString( const T& x )
|
||||
{
|
||||
OStringStream ost;
|
||||
ost << x;
|
||||
return ost.str();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Traits used by CPPUNIT_ASSERT_DOUBLES_EQUAL().
|
||||
*
|
||||
* This specialisation from @c struct @c assertion_traits<> ensures that
|
||||
* doubles are converted in full, instead of being rounded to the default
|
||||
* 6 digits of precision. Use the system defined ISO C99 macro DBL_DIG
|
||||
* within float.h is available to define the maximum precision, otherwise
|
||||
* use the hard-coded maximum precision of 15.
|
||||
*/
|
||||
template <>
|
||||
struct assertion_traits<double>
|
||||
{
|
||||
static bool equal( double x, double y )
|
||||
{
|
||||
return x == y;
|
||||
}
|
||||
|
||||
static std::string toString( double x )
|
||||
{
|
||||
#ifdef DBL_DIG
|
||||
const int precision = DBL_DIG;
|
||||
#else
|
||||
const int precision = 15;
|
||||
#endif // #ifdef DBL_DIG
|
||||
char buffer[128];
|
||||
#ifdef __STDC_SECURE_LIB__ // Use secure version with visual studio 2005 to avoid warning.
|
||||
sprintf_s(buffer, sizeof(buffer), "%.*g", precision, x);
|
||||
#else
|
||||
sprintf(buffer, "%.*g", precision, x);
|
||||
#endif
|
||||
return buffer;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*! \brief (Implementation) Asserts that two objects of the same type are equals.
|
||||
* Use CPPUNIT_ASSERT_EQUAL instead of this function.
|
||||
* \sa assertion_traits, Asserter::failNotEqual().
|
||||
*/
|
||||
template <class T>
|
||||
void assertEquals( const T& expected,
|
||||
const T& actual,
|
||||
SourceLine sourceLine,
|
||||
const std::string &message )
|
||||
{
|
||||
if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion...
|
||||
{
|
||||
Asserter::failNotEqual( assertion_traits<T>::toString(expected),
|
||||
assertion_traits<T>::toString(actual),
|
||||
sourceLine,
|
||||
message );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*! \brief (Implementation) Asserts that two double are equals given a tolerance.
|
||||
* Use CPPUNIT_ASSERT_DOUBLES_EQUAL instead of this function.
|
||||
* \sa Asserter::failNotEqual().
|
||||
* \sa CPPUNIT_ASSERT_DOUBLES_EQUAL for detailed semantic of the assertion.
|
||||
*/
|
||||
void CPPUNIT_API assertDoubleEquals( double expected,
|
||||
double actual,
|
||||
double delta,
|
||||
SourceLine sourceLine,
|
||||
const std::string &message );
|
||||
|
||||
|
||||
/* A set of macros which allow us to get the line number
|
||||
* and file name at the point of an error.
|
||||
* Just goes to show that preprocessors do have some
|
||||
* redeeming qualities.
|
||||
*/
|
||||
#if CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION
|
||||
/** Assertions that a condition is \c true.
|
||||
* \ingroup Assertions
|
||||
*/
|
||||
#define CPPUNIT_ASSERT(condition) \
|
||||
( CPPUNIT_NS::Asserter::failIf( !(condition), \
|
||||
CPPUNIT_NS::Message( "assertion failed", \
|
||||
"Expression: " #condition), \
|
||||
CPPUNIT_SOURCELINE() ) )
|
||||
#else
|
||||
#define CPPUNIT_ASSERT(condition) \
|
||||
( CPPUNIT_NS::Asserter::failIf( !(condition), \
|
||||
CPPUNIT_NS::Message( "assertion failed" ), \
|
||||
CPPUNIT_SOURCELINE() ) )
|
||||
#endif
|
||||
|
||||
/** Assertion with a user specified message.
|
||||
* \ingroup Assertions
|
||||
* \param message Message reported in diagnostic if \a condition evaluates
|
||||
* to \c false.
|
||||
* \param condition If this condition evaluates to \c false then the
|
||||
* test failed.
|
||||
*/
|
||||
#define CPPUNIT_ASSERT_MESSAGE(message,condition) \
|
||||
( CPPUNIT_NS::Asserter::failIf( !(condition), \
|
||||
CPPUNIT_NS::Message( "assertion failed", \
|
||||
"Expression: " \
|
||||
#condition, \
|
||||
message ), \
|
||||
CPPUNIT_SOURCELINE() ) )
|
||||
|
||||
/** Fails with the specified message.
|
||||
* \ingroup Assertions
|
||||
* \param message Message reported in diagnostic.
|
||||
*/
|
||||
#define CPPUNIT_FAIL( message ) \
|
||||
( CPPUNIT_NS::Asserter::fail( CPPUNIT_NS::Message( "forced failure", \
|
||||
message ), \
|
||||
CPPUNIT_SOURCELINE() ) )
|
||||
|
||||
#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
|
||||
/// Generalized macro for primitive value comparisons
|
||||
#define CPPUNIT_ASSERT_EQUAL(expected,actual) \
|
||||
( CPPUNIT_NS::assertEquals( (expected), \
|
||||
(actual), \
|
||||
__LINE__, __FILE__ ) )
|
||||
#else
|
||||
/** Asserts that two values are equals.
|
||||
* \ingroup Assertions
|
||||
*
|
||||
* Equality and string representation can be defined with
|
||||
* an appropriate CppUnit::assertion_traits class.
|
||||
*
|
||||
* A diagnostic is printed if actual and expected values disagree.
|
||||
*
|
||||
* Requirement for \a expected and \a actual parameters:
|
||||
* - They are exactly of the same type
|
||||
* - They are serializable into a std::strstream using operator <<.
|
||||
* - They can be compared using operator ==.
|
||||
*
|
||||
* The last two requirements (serialization and comparison) can be
|
||||
* removed by specializing the CppUnit::assertion_traits.
|
||||
*/
|
||||
#define CPPUNIT_ASSERT_EQUAL(expected,actual) \
|
||||
( CPPUNIT_NS::assertEquals( (expected), \
|
||||
(actual), \
|
||||
CPPUNIT_SOURCELINE(), \
|
||||
"" ) )
|
||||
|
||||
/** Asserts that two values are equals, provides additional message on failure.
|
||||
* \ingroup Assertions
|
||||
*
|
||||
* Equality and string representation can be defined with
|
||||
* an appropriate assertion_traits class.
|
||||
*
|
||||
* A diagnostic is printed if actual and expected values disagree.
|
||||
* The message is printed in addition to the expected and actual value
|
||||
* to provide additional information.
|
||||
*
|
||||
* Requirement for \a expected and \a actual parameters:
|
||||
* - They are exactly of the same type
|
||||
* - They are serializable into a std::strstream using operator <<.
|
||||
* - They can be compared using operator ==.
|
||||
*
|
||||
* The last two requirements (serialization and comparison) can be
|
||||
* removed by specializing the CppUnit::assertion_traits.
|
||||
*/
|
||||
#define CPPUNIT_ASSERT_EQUAL_MESSAGE(message,expected,actual) \
|
||||
( CPPUNIT_NS::assertEquals( (expected), \
|
||||
(actual), \
|
||||
CPPUNIT_SOURCELINE(), \
|
||||
(message) ) )
|
||||
#endif
|
||||
|
||||
/*! \brief Macro for primitive double value comparisons.
|
||||
* \ingroup Assertions
|
||||
*
|
||||
* The assertion pass if both expected and actual are finite and
|
||||
* \c fabs( \c expected - \c actual ) <= \c delta.
|
||||
* If either \c expected or actual are infinite (+/- inf), the
|
||||
* assertion pass if \c expected == \c actual.
|
||||
* If either \c expected or \c actual is a NaN (not a number), then
|
||||
* the assertion fails.
|
||||
*/
|
||||
#define CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta) \
|
||||
( CPPUNIT_NS::assertDoubleEquals( (expected), \
|
||||
(actual), \
|
||||
(delta), \
|
||||
CPPUNIT_SOURCELINE(), \
|
||||
"" ) )
|
||||
|
||||
|
||||
/*! \brief Macro for primitive double value comparisons, setting a
|
||||
* user-supplied message in case of failure.
|
||||
* \ingroup Assertions
|
||||
* \sa CPPUNIT_ASSERT_DOUBLES_EQUAL for detailed semantic of the assertion.
|
||||
*/
|
||||
#define CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(message,expected,actual,delta) \
|
||||
( CPPUNIT_NS::assertDoubleEquals( (expected), \
|
||||
(actual), \
|
||||
(delta), \
|
||||
CPPUNIT_SOURCELINE(), \
|
||||
(message) ) )
|
||||
|
||||
|
||||
/** Asserts that the given expression throws an exception of the specified type.
|
||||
* \ingroup Assertions
|
||||
* Example of usage:
|
||||
* \code
|
||||
* std::vector<int> v;
|
||||
* CPPUNIT_ASSERT_THROW( v.at( 50 ), std::out_of_range );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_THROW( expression, ExceptionType ) \
|
||||
CPPUNIT_ASSERT_THROW_MESSAGE( CPPUNIT_NS::AdditionalMessage(), \
|
||||
expression, \
|
||||
ExceptionType )
|
||||
|
||||
|
||||
// implementation detail
|
||||
#if CPPUNIT_USE_TYPEINFO_NAME
|
||||
#define CPPUNIT_EXTRACT_EXCEPTION_TYPE_( exception, no_rtti_message ) \
|
||||
CPPUNIT_NS::TypeInfoHelper::getClassName( typeid(exception) )
|
||||
#else
|
||||
#define CPPUNIT_EXTRACT_EXCEPTION_TYPE_( exception, no_rtti_message ) \
|
||||
std::string( no_rtti_message )
|
||||
#endif // CPPUNIT_USE_TYPEINFO_NAME
|
||||
|
||||
// implementation detail
|
||||
#define CPPUNIT_GET_PARAMETER_STRING( parameter ) #parameter
|
||||
|
||||
/** Asserts that the given expression throws an exception of the specified type,
|
||||
* setting a user supplied message in case of failure.
|
||||
* \ingroup Assertions
|
||||
* Example of usage:
|
||||
* \code
|
||||
* std::vector<int> v;
|
||||
* CPPUNIT_ASSERT_THROW_MESSAGE( "- std::vector<int> v;", v.at( 50 ), std::out_of_range );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_THROW_MESSAGE( message, expression, ExceptionType ) \
|
||||
do { \
|
||||
bool cpputCorrectExceptionThrown_ = false; \
|
||||
CPPUNIT_NS::Message cpputMsg_( "expected exception not thrown" ); \
|
||||
cpputMsg_.addDetail( message ); \
|
||||
cpputMsg_.addDetail( "Expected: " \
|
||||
CPPUNIT_GET_PARAMETER_STRING( ExceptionType ) ); \
|
||||
\
|
||||
try { \
|
||||
expression; \
|
||||
} catch ( const ExceptionType & ) { \
|
||||
cpputCorrectExceptionThrown_ = true; \
|
||||
} catch ( const std::exception &e) { \
|
||||
cpputMsg_.addDetail( "Actual : " + \
|
||||
CPPUNIT_EXTRACT_EXCEPTION_TYPE_( e, \
|
||||
"std::exception or derived") ); \
|
||||
cpputMsg_.addDetail( std::string("What() : ") + e.what() ); \
|
||||
} catch ( ... ) { \
|
||||
cpputMsg_.addDetail( "Actual : unknown."); \
|
||||
} \
|
||||
\
|
||||
if ( cpputCorrectExceptionThrown_ ) \
|
||||
break; \
|
||||
\
|
||||
CPPUNIT_NS::Asserter::fail( cpputMsg_, \
|
||||
CPPUNIT_SOURCELINE() ); \
|
||||
} while ( false )
|
||||
|
||||
|
||||
/** Asserts that the given expression does not throw any exceptions.
|
||||
* \ingroup Assertions
|
||||
* Example of usage:
|
||||
* \code
|
||||
* std::vector<int> v;
|
||||
* v.push_back( 10 );
|
||||
* CPPUNIT_ASSERT_NO_THROW( v.at( 0 ) );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_NO_THROW( expression ) \
|
||||
CPPUNIT_ASSERT_NO_THROW_MESSAGE( CPPUNIT_NS::AdditionalMessage(), \
|
||||
expression )
|
||||
|
||||
|
||||
/** Asserts that the given expression does not throw any exceptions,
|
||||
* setting a user supplied message in case of failure.
|
||||
* \ingroup Assertions
|
||||
* Example of usage:
|
||||
* \code
|
||||
* std::vector<int> v;
|
||||
* v.push_back( 10 );
|
||||
* CPPUNIT_ASSERT_NO_THROW( "std::vector<int> v;", v.at( 0 ) );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_NO_THROW_MESSAGE( message, expression ) \
|
||||
do { \
|
||||
CPPUNIT_NS::Message cpputMsg_( "unexpected exception caught" ); \
|
||||
cpputMsg_.addDetail( message ); \
|
||||
\
|
||||
try { \
|
||||
expression; \
|
||||
} catch ( const std::exception &e ) { \
|
||||
cpputMsg_.addDetail( "Caught: " + \
|
||||
CPPUNIT_EXTRACT_EXCEPTION_TYPE_( e, \
|
||||
"std::exception or derived" ) ); \
|
||||
cpputMsg_.addDetail( std::string("What(): ") + e.what() ); \
|
||||
CPPUNIT_NS::Asserter::fail( cpputMsg_, \
|
||||
CPPUNIT_SOURCELINE() ); \
|
||||
} catch ( ... ) { \
|
||||
cpputMsg_.addDetail( "Caught: unknown." ); \
|
||||
CPPUNIT_NS::Asserter::fail( cpputMsg_, \
|
||||
CPPUNIT_SOURCELINE() ); \
|
||||
} \
|
||||
} while ( false )
|
||||
|
||||
|
||||
/** Asserts that an assertion fail.
|
||||
* \ingroup Assertions
|
||||
* Use to test assertions.
|
||||
* Example of usage:
|
||||
* \code
|
||||
* CPPUNIT_ASSERT_ASSERTION_FAIL( CPPUNIT_ASSERT( 1 == 2 ) );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_ASSERTION_FAIL( assertion ) \
|
||||
CPPUNIT_ASSERT_THROW( assertion, CPPUNIT_NS::Exception )
|
||||
|
||||
|
||||
/** Asserts that an assertion fail, with a user-supplied message in
|
||||
* case of error.
|
||||
* \ingroup Assertions
|
||||
* Use to test assertions.
|
||||
* Example of usage:
|
||||
* \code
|
||||
* CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE( "1 == 2", CPPUNIT_ASSERT( 1 == 2 ) );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE( message, assertion ) \
|
||||
CPPUNIT_ASSERT_THROW_MESSAGE( message, assertion, CPPUNIT_NS::Exception )
|
||||
|
||||
|
||||
/** Asserts that an assertion pass.
|
||||
* \ingroup Assertions
|
||||
* Use to test assertions.
|
||||
* Example of usage:
|
||||
* \code
|
||||
* CPPUNIT_ASSERT_ASSERTION_PASS( CPPUNIT_ASSERT( 1 == 1 ) );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_ASSERTION_PASS( assertion ) \
|
||||
CPPUNIT_ASSERT_NO_THROW( assertion )
|
||||
|
||||
|
||||
/** Asserts that an assertion pass, with a user-supplied message in
|
||||
* case of failure.
|
||||
* \ingroup Assertions
|
||||
* Use to test assertions.
|
||||
* Example of usage:
|
||||
* \code
|
||||
* CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE( "1 != 1", CPPUNIT_ASSERT( 1 == 1 ) );
|
||||
* \endcode
|
||||
*/
|
||||
# define CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE( message, assertion ) \
|
||||
CPPUNIT_ASSERT_NO_THROW_MESSAGE( message, assertion )
|
||||
|
||||
|
||||
|
||||
|
||||
// Backwards compatibility
|
||||
|
||||
#if CPPUNIT_ENABLE_NAKED_ASSERT
|
||||
|
||||
#undef assert
|
||||
#define assert(c) CPPUNIT_ASSERT(c)
|
||||
#define assertEqual(e,a) CPPUNIT_ASSERT_EQUAL(e,a)
|
||||
#define assertDoublesEqual(e,a,d) CPPUNIT_ASSERT_DOUBLES_EQUAL(e,a,d)
|
||||
#define assertLongsEqual(e,a) CPPUNIT_ASSERT_EQUAL(e,a)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTASSERT_H
|
||||
204
3rdParty/include/cppunit/TestCaller.h
vendored
204
3rdParty/include/cppunit/TestCaller.h
vendored
@@ -1,204 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTCALLER_H // -*- C++ -*-
|
||||
#define CPPUNIT_TESTCALLER_H
|
||||
|
||||
#include <cppunit/Exception.h>
|
||||
#include <cppunit/TestCase.h>
|
||||
|
||||
|
||||
#if CPPUNIT_USE_TYPEINFO_NAME
|
||||
# include <cppunit/extensions/TypeInfoHelper.h>
|
||||
#endif
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
#if 0
|
||||
/*! \brief Marker class indicating that no exception is expected by TestCaller.
|
||||
* This class is an implementation detail. You should never use this class directly.
|
||||
*/
|
||||
class CPPUNIT_API NoExceptionExpected
|
||||
{
|
||||
private:
|
||||
//! Prevent class instantiation.
|
||||
NoExceptionExpected();
|
||||
};
|
||||
|
||||
|
||||
/*! \brief (Implementation) Traits used by TestCaller to expect an exception.
|
||||
*
|
||||
* This class is an implementation detail. You should never use this class directly.
|
||||
*/
|
||||
template<class ExceptionType>
|
||||
struct ExpectedExceptionTraits
|
||||
{
|
||||
static void expectedException()
|
||||
{
|
||||
#if CPPUNIT_USE_TYPEINFO_NAME
|
||||
throw Exception( Message(
|
||||
"expected exception not thrown",
|
||||
"Expected exception type: " +
|
||||
TypeInfoHelper::getClassName( typeid( ExceptionType ) ) ) );
|
||||
#else
|
||||
throw Exception( "expected exception not thrown" );
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*! \brief (Implementation) Traits specialization used by TestCaller to
|
||||
* expect no exception.
|
||||
*
|
||||
* This class is an implementation detail. You should never use this class directly.
|
||||
*/
|
||||
template<>
|
||||
struct ExpectedExceptionTraits<NoExceptionExpected>
|
||||
{
|
||||
static void expectedException()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
//*** FIXME: rework this when class Fixture is implemented. ***//
|
||||
|
||||
|
||||
/*! \brief Generate a test case from a fixture method.
|
||||
* \ingroup WritingTestFixture
|
||||
*
|
||||
* A test caller provides access to a test case method
|
||||
* on a test fixture class. Test callers are useful when
|
||||
* you want to run an individual test or add it to a
|
||||
* suite.
|
||||
* Test Callers invoke only one Test (i.e. test method) on one
|
||||
* Fixture of a TestFixture.
|
||||
*
|
||||
* Here is an example:
|
||||
* \code
|
||||
* class MathTest : public CppUnit::TestFixture {
|
||||
* ...
|
||||
* public:
|
||||
* void setUp();
|
||||
* void tearDown();
|
||||
*
|
||||
* void testAdd();
|
||||
* void testSubtract();
|
||||
* };
|
||||
*
|
||||
* CppUnit::Test *MathTest::suite() {
|
||||
* CppUnit::TestSuite *suite = new CppUnit::TestSuite;
|
||||
*
|
||||
* suite->addTest( new CppUnit::TestCaller<MathTest>( "testAdd", testAdd ) );
|
||||
* return suite;
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* You can use a TestCaller to bind any test method on a TestFixture
|
||||
* class, as long as it accepts void and returns void.
|
||||
*
|
||||
* \see TestCase
|
||||
*/
|
||||
|
||||
template <class Fixture>
|
||||
class TestCaller : public TestCase
|
||||
{
|
||||
typedef void (Fixture::*TestMethod)();
|
||||
|
||||
public:
|
||||
/*!
|
||||
* Constructor for TestCaller. This constructor builds a new Fixture
|
||||
* instance owned by the TestCaller.
|
||||
* \param name name of this TestCaller
|
||||
* \param test the method this TestCaller calls in runTest()
|
||||
*/
|
||||
TestCaller( std::string name, TestMethod test ) :
|
||||
TestCase( name ),
|
||||
m_ownFixture( true ),
|
||||
m_fixture( new Fixture() ),
|
||||
m_test( test )
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
* Constructor for TestCaller.
|
||||
* This constructor does not create a new Fixture instance but accepts
|
||||
* an existing one as parameter. The TestCaller will not own the
|
||||
* Fixture object.
|
||||
* \param name name of this TestCaller
|
||||
* \param test the method this TestCaller calls in runTest()
|
||||
* \param fixture the Fixture to invoke the test method on.
|
||||
*/
|
||||
TestCaller(std::string name, TestMethod test, Fixture& fixture) :
|
||||
TestCase( name ),
|
||||
m_ownFixture( false ),
|
||||
m_fixture( &fixture ),
|
||||
m_test( test )
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
* Constructor for TestCaller.
|
||||
* This constructor does not create a new Fixture instance but accepts
|
||||
* an existing one as parameter. The TestCaller will own the
|
||||
* Fixture object and delete it in its destructor.
|
||||
* \param name name of this TestCaller
|
||||
* \param test the method this TestCaller calls in runTest()
|
||||
* \param fixture the Fixture to invoke the test method on.
|
||||
*/
|
||||
TestCaller(std::string name, TestMethod test, Fixture* fixture) :
|
||||
TestCase( name ),
|
||||
m_ownFixture( true ),
|
||||
m_fixture( fixture ),
|
||||
m_test( test )
|
||||
{
|
||||
}
|
||||
|
||||
~TestCaller()
|
||||
{
|
||||
if (m_ownFixture)
|
||||
delete m_fixture;
|
||||
}
|
||||
|
||||
void runTest()
|
||||
{
|
||||
// try {
|
||||
(m_fixture->*m_test)();
|
||||
// }
|
||||
// catch ( ExpectedException & ) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
// ExpectedExceptionTraits<ExpectedException>::expectedException();
|
||||
}
|
||||
|
||||
void setUp()
|
||||
{
|
||||
m_fixture->setUp ();
|
||||
}
|
||||
|
||||
void tearDown()
|
||||
{
|
||||
m_fixture->tearDown ();
|
||||
}
|
||||
|
||||
std::string toString() const
|
||||
{
|
||||
return "TestCaller " + getName();
|
||||
}
|
||||
|
||||
private:
|
||||
TestCaller( const TestCaller &other );
|
||||
TestCaller &operator =( const TestCaller &other );
|
||||
|
||||
private:
|
||||
bool m_ownFixture;
|
||||
Fixture *m_fixture;
|
||||
TestMethod m_test;
|
||||
};
|
||||
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTCALLER_H
|
||||
55
3rdParty/include/cppunit/TestCase.h
vendored
55
3rdParty/include/cppunit/TestCase.h
vendored
@@ -1,55 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTCASE_H
|
||||
#define CPPUNIT_TESTCASE_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/TestLeaf.h>
|
||||
#include <cppunit/TestAssert.h>
|
||||
#include <cppunit/TestFixture.h>
|
||||
#include <string>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class TestResult;
|
||||
|
||||
|
||||
/*! \brief A single test object.
|
||||
*
|
||||
* This class is used to implement a simple test case: define a subclass
|
||||
* that overrides the runTest method.
|
||||
*
|
||||
* You don't usually need to use that class, but TestFixture and TestCaller instead.
|
||||
*
|
||||
* You are expected to subclass TestCase is you need to write a class similiar
|
||||
* to TestCaller.
|
||||
*/
|
||||
class CPPUNIT_API TestCase : public TestLeaf,
|
||||
public TestFixture
|
||||
{
|
||||
public:
|
||||
|
||||
TestCase( const std::string &name );
|
||||
|
||||
TestCase();
|
||||
|
||||
~TestCase();
|
||||
|
||||
virtual void run(TestResult *result);
|
||||
|
||||
std::string getName() const;
|
||||
|
||||
//! FIXME: this should probably be pure virtual.
|
||||
virtual void runTest();
|
||||
|
||||
private:
|
||||
TestCase( const TestCase &other );
|
||||
TestCase &operator=( const TestCase &other );
|
||||
|
||||
private:
|
||||
const std::string m_name;
|
||||
};
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTCASE_H
|
||||
45
3rdParty/include/cppunit/TestComposite.h
vendored
45
3rdParty/include/cppunit/TestComposite.h
vendored
@@ -1,45 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTCOMPSITE_H // -*- C++ -*-
|
||||
#define CPPUNIT_TESTCOMPSITE_H
|
||||
|
||||
#include <cppunit/Test.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief A Composite of Tests.
|
||||
*
|
||||
* Base class for all test composites. Subclass this class if you need to implement
|
||||
* a custom TestSuite.
|
||||
*
|
||||
* \see Test, TestSuite.
|
||||
*/
|
||||
class CPPUNIT_API TestComposite : public Test
|
||||
{
|
||||
public:
|
||||
TestComposite( const std::string &name = "" );
|
||||
|
||||
~TestComposite();
|
||||
|
||||
void run( TestResult *result );
|
||||
|
||||
int countTestCases() const;
|
||||
|
||||
std::string getName() const;
|
||||
|
||||
private:
|
||||
TestComposite( const TestComposite &other );
|
||||
TestComposite &operator =( const TestComposite &other );
|
||||
|
||||
virtual void doStartSuite( TestResult *controller );
|
||||
virtual void doRunChildTests( TestResult *controller );
|
||||
virtual void doEndSuite( TestResult *controller );
|
||||
|
||||
private:
|
||||
const std::string m_name;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTCOMPSITE_H
|
||||
58
3rdParty/include/cppunit/TestFailure.h
vendored
58
3rdParty/include/cppunit/TestFailure.h
vendored
@@ -1,58 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTFAILURE_H // -*- C++ -*-
|
||||
#define CPPUNIT_TESTFAILURE_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Exception;
|
||||
class SourceLine;
|
||||
class Test;
|
||||
|
||||
|
||||
/*! \brief Record of a failed Test execution.
|
||||
* \ingroup BrowsingCollectedTestResult
|
||||
*
|
||||
* A TestFailure collects a failed test together with
|
||||
* the caught exception.
|
||||
*
|
||||
* TestFailure assumes lifetime control for any exception
|
||||
* passed to it.
|
||||
*/
|
||||
class CPPUNIT_API TestFailure
|
||||
{
|
||||
public:
|
||||
TestFailure( Test *failedTest,
|
||||
Exception *thrownException,
|
||||
bool isError );
|
||||
|
||||
virtual ~TestFailure ();
|
||||
|
||||
virtual Test *failedTest() const;
|
||||
|
||||
virtual Exception *thrownException() const;
|
||||
|
||||
virtual SourceLine sourceLine() const;
|
||||
|
||||
virtual bool isError() const;
|
||||
|
||||
virtual std::string failedTestName() const;
|
||||
|
||||
virtual TestFailure *clone() const;
|
||||
|
||||
protected:
|
||||
Test *m_failedTest;
|
||||
Exception *m_thrownException;
|
||||
bool m_isError;
|
||||
|
||||
private:
|
||||
TestFailure( const TestFailure &other );
|
||||
TestFailure &operator =( const TestFailure& other );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTFAILURE_H
|
||||
99
3rdParty/include/cppunit/TestFixture.h
vendored
99
3rdParty/include/cppunit/TestFixture.h
vendored
@@ -1,99 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTFIXTURE_H // -*- C++ -*-
|
||||
#define CPPUNIT_TESTFIXTURE_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Wraps a test case with setUp and tearDown methods.
|
||||
* \ingroup WritingTestFixture
|
||||
*
|
||||
* A TestFixture is used to provide a common environment for a set
|
||||
* of test cases.
|
||||
*
|
||||
* To define a test fixture, do the following:
|
||||
* - implement a subclass of TestCase
|
||||
* - the fixture is defined by instance variables
|
||||
* - initialize the fixture state by overriding setUp
|
||||
* (i.e. construct the instance variables of the fixture)
|
||||
* - clean-up after a test by overriding tearDown.
|
||||
*
|
||||
* Each test runs in its own fixture so there
|
||||
* can be no side effects among test runs.
|
||||
* Here is an example:
|
||||
*
|
||||
* \code
|
||||
* class MathTest : public CppUnit::TestFixture {
|
||||
* protected:
|
||||
* int m_value1, m_value2;
|
||||
*
|
||||
* public:
|
||||
* MathTest() {}
|
||||
*
|
||||
* void setUp () {
|
||||
* m_value1 = 2;
|
||||
* m_value2 = 3;
|
||||
* }
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* For each test implement a method which interacts
|
||||
* with the fixture. Verify the expected results with assertions specified
|
||||
* by calling CPPUNIT_ASSERT on the expression you want to test:
|
||||
*
|
||||
* \code
|
||||
* public:
|
||||
* void testAdd () {
|
||||
* int result = m_value1 + m_value2;
|
||||
* CPPUNIT_ASSERT( result == 5 );
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Once the methods are defined you can run them. To do this, use
|
||||
* a TestCaller.
|
||||
*
|
||||
* \code
|
||||
* CppUnit::Test *test = new CppUnit::TestCaller<MathTest>( "testAdd",
|
||||
* &MathTest::testAdd );
|
||||
* test->run();
|
||||
* \endcode
|
||||
*
|
||||
*
|
||||
* The tests to be run can be collected into a TestSuite.
|
||||
*
|
||||
* \code
|
||||
* public:
|
||||
* static CppUnit::TestSuite *MathTest::suite () {
|
||||
* CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite;
|
||||
* suiteOfTests->addTest(new CppUnit::TestCaller<MathTest>(
|
||||
* "testAdd", &MathTest::testAdd));
|
||||
* suiteOfTests->addTest(new CppUnit::TestCaller<MathTest>(
|
||||
* "testDivideByZero", &MathTest::testDivideByZero));
|
||||
* return suiteOfTests;
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* A set of macros have been created for convenience. They are located in HelperMacros.h.
|
||||
*
|
||||
* \see TestResult, TestSuite, TestCaller,
|
||||
* \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END,
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL.
|
||||
*/
|
||||
class CPPUNIT_API TestFixture
|
||||
{
|
||||
public:
|
||||
virtual ~TestFixture() {};
|
||||
|
||||
//! \brief Set up context before running a test.
|
||||
virtual void setUp() {};
|
||||
|
||||
//! Clean up after the test run.
|
||||
virtual void tearDown() {};
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif
|
||||
44
3rdParty/include/cppunit/TestLeaf.h
vendored
44
3rdParty/include/cppunit/TestLeaf.h
vendored
@@ -1,44 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTLEAF_H
|
||||
#define CPPUNIT_TESTLEAF_H
|
||||
|
||||
#include <cppunit/Test.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief A single test object.
|
||||
*
|
||||
* Base class for single test case: a test that doesn't have any children.
|
||||
*
|
||||
*/
|
||||
class CPPUNIT_API TestLeaf: public Test
|
||||
{
|
||||
public:
|
||||
/*! Returns 1 as the default number of test cases invoked by run().
|
||||
*
|
||||
* You may override this method when many test cases are invoked (RepeatedTest
|
||||
* for example).
|
||||
*
|
||||
* \return 1.
|
||||
* \see Test::countTestCases().
|
||||
*/
|
||||
int countTestCases() const;
|
||||
|
||||
/*! Returns the number of child of this test case: 0.
|
||||
*
|
||||
* You should never override this method: a TestLeaf as no children by definition.
|
||||
*
|
||||
* \return 0.
|
||||
*/
|
||||
int getChildTestCount() const;
|
||||
|
||||
/*! Always throws std::out_of_range.
|
||||
* \see Test::doGetChildTestAt().
|
||||
*/
|
||||
Test *doGetChildTestAt( int index ) const;
|
||||
};
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTLEAF_H
|
||||
148
3rdParty/include/cppunit/TestListener.h
vendored
148
3rdParty/include/cppunit/TestListener.h
vendored
@@ -1,148 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTLISTENER_H // -*- C++ -*-
|
||||
#define CPPUNIT_TESTLISTENER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Exception;
|
||||
class Test;
|
||||
class TestFailure;
|
||||
class TestResult;
|
||||
|
||||
|
||||
/*! \brief Listener for test progress and result.
|
||||
* \ingroup TrackingTestExecution
|
||||
*
|
||||
* Implementing the Observer pattern a TestListener may be registered
|
||||
* to a TestResult to obtain information on the testing progress. Use
|
||||
* specialized sub classes of TestListener for text output
|
||||
* (TextTestProgressListener). Do not use the Listener for the test
|
||||
* result output, use a subclass of Outputter instead.
|
||||
*
|
||||
* The test framework distinguishes between failures and errors.
|
||||
* A failure is anticipated and checked for with assertions. Errors are
|
||||
* unanticipated problems signified by exceptions that are not generated
|
||||
* by the framework.
|
||||
*
|
||||
* Here is an example to track test time:
|
||||
*
|
||||
*
|
||||
* \code
|
||||
* #include <cppunit/TestListener.h>
|
||||
* #include <cppunit/Test.h>
|
||||
* #include <time.h> // for clock()
|
||||
*
|
||||
* class TimingListener : public CppUnit::TestListener
|
||||
* {
|
||||
* public:
|
||||
* void startTest( CppUnit::Test *test )
|
||||
* {
|
||||
* _chronometer.start();
|
||||
* }
|
||||
*
|
||||
* void endTest( CppUnit::Test *test )
|
||||
* {
|
||||
* _chronometer.end();
|
||||
* addTest( test, _chronometer.elapsedTime() );
|
||||
* }
|
||||
*
|
||||
* // ... (interface to add/read test timing result)
|
||||
*
|
||||
* private:
|
||||
* Clock _chronometer;
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* And another example that track failure/success at test suite level and captures
|
||||
* the TestPath of each suite:
|
||||
* \code
|
||||
* class SuiteTracker : public CppUnit::TestListener
|
||||
* {
|
||||
* public:
|
||||
* void startSuite( CppUnit::Test *suite )
|
||||
* {
|
||||
* m_currentPath.add( suite );
|
||||
* }
|
||||
*
|
||||
* void addFailure( const TestFailure &failure )
|
||||
* {
|
||||
* m_suiteFailure.top() = false;
|
||||
* }
|
||||
*
|
||||
* void endSuite( CppUnit::Test *suite )
|
||||
* {
|
||||
* m_suiteStatus.insert( std::make_pair( suite, m_suiteFailure.top() ) );
|
||||
* m_suitePaths.insert( std::make_pair( suite, m_currentPath ) );
|
||||
*
|
||||
* m_currentPath.up();
|
||||
* m_suiteFailure.pop();
|
||||
* }
|
||||
*
|
||||
* private:
|
||||
* std::stack<bool> m_suiteFailure;
|
||||
* CppUnit::TestPath m_currentPath;
|
||||
* std::map<CppUnit::Test *, bool> m_suiteStatus;
|
||||
* std::map<CppUnit::Test *, CppUnit::TestPath> m_suitePaths;
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* \see TestResult
|
||||
*/
|
||||
class CPPUNIT_API TestListener
|
||||
{
|
||||
public:
|
||||
virtual ~TestListener() {}
|
||||
|
||||
/// Called when just before a TestCase is run.
|
||||
virtual void startTest( Test * /*test*/ ) {}
|
||||
|
||||
/*! \brief Called when a failure occurs while running a test.
|
||||
* \see TestFailure.
|
||||
* \warning \a failure is a temporary object that is destroyed after the
|
||||
* method call. Use TestFailure::clone() to create a duplicate.
|
||||
*/
|
||||
virtual void addFailure( const TestFailure & /*failure*/ ) {}
|
||||
|
||||
/// Called just after a TestCase was run (even if a failure occured).
|
||||
virtual void endTest( Test * /*test*/ ) {}
|
||||
|
||||
/*! \brief Called by a TestComposite just before running its child tests.
|
||||
*/
|
||||
virtual void startSuite( Test * /*suite*/ ) {}
|
||||
|
||||
/*! \brief Called by a TestComposite after running its child tests.
|
||||
*/
|
||||
virtual void endSuite( Test * /*suite*/ ) {}
|
||||
|
||||
/*! \brief Called by a TestRunner before running the test.
|
||||
*
|
||||
* You can use this to do some global initialisation. A listener
|
||||
* could also use to output a 'prolog' to the test run.
|
||||
*
|
||||
* \param test Test that is going to be run.
|
||||
* \param eventManager Event manager used for the test run.
|
||||
*/
|
||||
virtual void startTestRun( Test * /*test*/,
|
||||
TestResult * /*eventManager*/ ) {}
|
||||
|
||||
/*! \brief Called by a TestRunner after running the test.
|
||||
*
|
||||
* TextTestProgressListener use this to emit a line break. You can also use this
|
||||
* to do some global uninitialisation.
|
||||
*
|
||||
* \param test Test that was run.
|
||||
* \param eventManager Event manager used for the test run.
|
||||
*/
|
||||
virtual void endTestRun( Test * /*test*/,
|
||||
TestResult * /*eventManager*/ ) {}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTLISTENER_H
|
||||
|
||||
|
||||
211
3rdParty/include/cppunit/TestPath.h
vendored
211
3rdParty/include/cppunit/TestPath.h
vendored
@@ -1,211 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTPATH_H
|
||||
#define CPPUNIT_TESTPATH_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::deque<Test *>;
|
||||
#endif
|
||||
|
||||
|
||||
/*! \brief A List of Test representing a path to access a Test.
|
||||
* \ingroup ExecutingTest
|
||||
*
|
||||
* The path can be converted to a string and resolved from a string with toString()
|
||||
* and TestPath( Test *root, const std::string &pathAsString ).
|
||||
*
|
||||
* Pointed tests are not owned by the class.
|
||||
*
|
||||
* \see Test::resolvedTestPath()
|
||||
*/
|
||||
class CPPUNIT_API TestPath
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs an invalid path.
|
||||
*
|
||||
* The path is invalid until a test is added with add().
|
||||
*/
|
||||
TestPath();
|
||||
|
||||
/*! \brief Constructs a valid path.
|
||||
*
|
||||
* \param root Test to add.
|
||||
*/
|
||||
TestPath( Test *root );
|
||||
|
||||
/*! \brief Constructs a path using a slice of another path.
|
||||
* \param otherPath Path the test are copied from.
|
||||
* \param indexFirst Zero based index of the first test to copy. Adjusted to be in valid
|
||||
* range. \a count is adjusted with \a indexFirst.
|
||||
* \param count Number of tests to copy. If < 0 then all test starting from index
|
||||
* \a indexFirst are copied.
|
||||
*/
|
||||
TestPath( const TestPath &otherPath,
|
||||
int indexFirst,
|
||||
int count = -1 );
|
||||
|
||||
/*! \brief Resolves a path from a string returned by toString().
|
||||
*
|
||||
* If \a pathAsString is an absolute path (begins with '/'), then the first test name
|
||||
* of the path must be the name of \a searchRoot. Otherwise, \a pathAsString is a
|
||||
* relative path, and the first test found using Test::findTest() matching the first
|
||||
* test name is used as root. An empty string resolve to a path containing
|
||||
* \a searchRoot.
|
||||
*
|
||||
* The resolved path is always valid.
|
||||
*
|
||||
* \param searchRoot Test used to resolve the path.
|
||||
* \param pathAsString String that contains the path as a string created by toString().
|
||||
* \exception std::invalid_argument if one of the test names can not be resolved.
|
||||
* \see toString().
|
||||
*/
|
||||
TestPath( Test *searchRoot,
|
||||
const std::string &pathAsString );
|
||||
|
||||
/*! \brief Copy constructor.
|
||||
* \param other Object to copy.
|
||||
*/
|
||||
TestPath( const TestPath &other );
|
||||
|
||||
virtual ~TestPath();
|
||||
|
||||
/*! \brief Tests if the path contains at least one test.
|
||||
* \return \c true if the path contains at least one test, otherwise returns \c false.
|
||||
*/
|
||||
virtual bool isValid() const;
|
||||
|
||||
/*! \brief Adds a test to the path.
|
||||
* \param test Pointer on the test to add. Must not be \c NULL.
|
||||
*/
|
||||
virtual void add( Test *test );
|
||||
|
||||
/*! \brief Adds all the tests of the specified path.
|
||||
* \param path Path that contains the test to add.
|
||||
*/
|
||||
virtual void add( const TestPath &path );
|
||||
|
||||
/*! \brief Inserts a test at the specified index.
|
||||
* \param test Pointer on the test to insert. Must not be \c NULL.
|
||||
* \param index Zero based index indicating where the test is inserted.
|
||||
* \exception std::out_of_range is \a index < 0 or \a index > getTestCount().
|
||||
*/
|
||||
virtual void insert( Test *test, int index );
|
||||
|
||||
/*! \brief Inserts all the tests at the specified path at a given index.
|
||||
* \param path Path that contains the test to insert.
|
||||
* \param index Zero based index indicating where the tests are inserted.
|
||||
* \exception std::out_of_range is \a index < 0 or \a index > getTestCount(), and
|
||||
* \a path is valid.
|
||||
*/
|
||||
virtual void insert( const TestPath &path, int index );
|
||||
|
||||
/*! \brief Removes all the test from the path.
|
||||
*
|
||||
* The path becomes invalid after this call.
|
||||
*/
|
||||
virtual void removeTests();
|
||||
|
||||
/*! \brief Removes the test at the specified index of the path.
|
||||
* \param index Zero based index of the test to remove.
|
||||
* \exception std::out_of_range is \a index < 0 or \a index >= getTestCount().
|
||||
*/
|
||||
virtual void removeTest( int index );
|
||||
|
||||
/*! \brief Removes the last test.
|
||||
* \exception std::out_of_range is the path is invalid.
|
||||
* \see isValid().
|
||||
*/
|
||||
virtual void up();
|
||||
|
||||
/*! \brief Returns the number of tests in the path.
|
||||
* \return Number of tests in the path.
|
||||
*/
|
||||
virtual int getTestCount() const;
|
||||
|
||||
/*! \brief Returns the test of the specified index.
|
||||
* \param index Zero based index of the test to return.
|
||||
* \return Pointer on the test at index \a index. Never \c NULL.
|
||||
* \exception std::out_of_range is \a index < 0 or \a index >= getTestCount().
|
||||
*/
|
||||
virtual Test *getTestAt( int index ) const;
|
||||
|
||||
/*! \brief Get the last test of the path.
|
||||
* \return Pointer on the last test (test at the bottom of the hierarchy). Never \c NULL.
|
||||
* \exception std::out_of_range if the path is not valid ( isValid() returns \c false ).
|
||||
*/
|
||||
virtual Test *getChildTest() const;
|
||||
|
||||
/*! \brief Returns the path as a string.
|
||||
*
|
||||
* For example, if a path is composed of three tests named "All Tests", "Math" and
|
||||
* "Math::testAdd", toString() will return:
|
||||
*
|
||||
* "All Tests/Math/Math::testAdd".
|
||||
*
|
||||
* \return A string composed of the test names separated with a '/'. It is a relative
|
||||
* path.
|
||||
*/
|
||||
virtual std::string toString() const;
|
||||
|
||||
/*! \brief Assignment operator.
|
||||
* \param other Object to copy.
|
||||
* \return This object.
|
||||
*/
|
||||
TestPath &operator =( const TestPath &other );
|
||||
|
||||
protected:
|
||||
/*! \brief Checks that the specified test index is within valid range.
|
||||
* \param index Zero based index to check.
|
||||
* \exception std::out_of_range is \a index < 0 or \a index >= getTestCount().
|
||||
*/
|
||||
void checkIndexValid( int index ) const;
|
||||
|
||||
/// A list of test names.
|
||||
typedef CppUnitDeque<std::string> PathTestNames;
|
||||
|
||||
/*! \brief Splits a path string into its test name components.
|
||||
* \param pathAsString Path string created with toString().
|
||||
* \param testNames Test name components are added to that container.
|
||||
* \return \c true if the path is relative (does not begin with '/'), \c false
|
||||
* if it is absolute (begin with '/').
|
||||
*/
|
||||
bool splitPathString( const std::string &pathAsString,
|
||||
PathTestNames &testNames );
|
||||
|
||||
/*! \brief Finds the actual root of a path string and get the path string name components.
|
||||
* \param searchRoot Test used as root if the path string is absolute, or to search
|
||||
* the root test if the path string is relative.
|
||||
* \param pathAsString Path string. May be absolute or relative.
|
||||
* \param testNames Test name components are added to that container.
|
||||
* \return Pointer on the resolved root test. Never \c NULL.
|
||||
* \exception std::invalid_argument if either the root name can not be resolved or if
|
||||
* pathAsString contains no name components.
|
||||
*/
|
||||
Test *findActualRoot( Test *searchRoot,
|
||||
const std::string &pathAsString,
|
||||
PathTestNames &testNames );
|
||||
|
||||
protected:
|
||||
typedef CppUnitDeque<Test *> Tests;
|
||||
Tests m_tests;
|
||||
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTPATH_H
|
||||
|
||||
156
3rdParty/include/cppunit/TestResult.h
vendored
156
3rdParty/include/cppunit/TestResult.h
vendored
@@ -1,156 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTRESULT_H
|
||||
#define CPPUNIT_TESTRESULT_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/SynchronizedObject.h>
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Exception;
|
||||
class Functor;
|
||||
class Protector;
|
||||
class ProtectorChain;
|
||||
class Test;
|
||||
class TestFailure;
|
||||
class TestListener;
|
||||
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::deque<TestListener *>;
|
||||
#endif
|
||||
|
||||
/*! \brief Manages TestListener.
|
||||
* \ingroup TrackingTestExecution
|
||||
*
|
||||
* A single instance of this class is used when running the test. It is usually
|
||||
* created by the test runner (TestRunner).
|
||||
*
|
||||
* This class shouldn't have to be inherited from. Use a TestListener
|
||||
* or one of its subclasses to be informed of the ongoing tests.
|
||||
* Use a Outputter to receive a test summary once it has finished
|
||||
*
|
||||
* TestResult supplies a template method 'setSynchronizationObject()'
|
||||
* so that subclasses can provide mutual exclusion in the face of multiple
|
||||
* threads. This can be useful when tests execute in one thread and
|
||||
* they fill a subclass of TestResult which effects change in another
|
||||
* thread. To have mutual exclusion, override setSynchronizationObject()
|
||||
* and make sure that you create an instance of ExclusiveZone at the
|
||||
* beginning of each method.
|
||||
*
|
||||
* \see Test, TestListener, TestResultCollector, Outputter.
|
||||
*/
|
||||
class CPPUNIT_API TestResult : protected SynchronizedObject
|
||||
{
|
||||
public:
|
||||
/// Construct a TestResult
|
||||
TestResult( SynchronizationObject *syncObject = 0 );
|
||||
|
||||
/// Destroys a test result
|
||||
virtual ~TestResult();
|
||||
|
||||
virtual void addListener( TestListener *listener );
|
||||
|
||||
virtual void removeListener( TestListener *listener );
|
||||
|
||||
/// Resets the stop flag.
|
||||
virtual void reset();
|
||||
|
||||
/// Stop testing
|
||||
virtual void stop();
|
||||
|
||||
/// Returns whether testing should be stopped
|
||||
virtual bool shouldStop() const;
|
||||
|
||||
/// Informs TestListener that a test will be started.
|
||||
virtual void startTest( Test *test );
|
||||
|
||||
/*! \brief Adds an error to the list of errors.
|
||||
* The passed in exception
|
||||
* caused the error
|
||||
*/
|
||||
virtual void addError( Test *test, Exception *e );
|
||||
|
||||
/*! \brief Adds a failure to the list of failures. The passed in exception
|
||||
* caused the failure.
|
||||
*/
|
||||
virtual void addFailure( Test *test, Exception *e );
|
||||
|
||||
/// Informs TestListener that a test was completed.
|
||||
virtual void endTest( Test *test );
|
||||
|
||||
/// Informs TestListener that a test suite will be started.
|
||||
virtual void startSuite( Test *test );
|
||||
|
||||
/// Informs TestListener that a test suite was completed.
|
||||
virtual void endSuite( Test *test );
|
||||
|
||||
/*! \brief Run the specified test.
|
||||
*
|
||||
* Calls startTestRun(), test->run(this), and finally endTestRun().
|
||||
*/
|
||||
virtual void runTest( Test *test );
|
||||
|
||||
/*! \brief Protects a call to the specified functor.
|
||||
*
|
||||
* See Protector to understand how protector works. A default protector is
|
||||
* always present. It captures CppUnit::Exception, std::exception and
|
||||
* any other exceptions, retrieving as much as possible information about
|
||||
* the exception as possible.
|
||||
*
|
||||
* Additional Protector can be added to the chain to support other exception
|
||||
* types using pushProtector() and popProtector().
|
||||
*
|
||||
* \param functor Functor to call (typically a call to setUp(), runTest() or
|
||||
* tearDown().
|
||||
* \param test Test the functor is associated to (used for failure reporting).
|
||||
* \param shortDescription Short description override for the failure message.
|
||||
*/
|
||||
virtual bool protect( const Functor &functor,
|
||||
Test *test,
|
||||
const std::string &shortDescription = std::string("") );
|
||||
|
||||
/// Adds the specified protector to the protector chain.
|
||||
virtual void pushProtector( Protector *protector );
|
||||
|
||||
/// Removes the last protector from the protector chain.
|
||||
virtual void popProtector();
|
||||
|
||||
protected:
|
||||
/*! \brief Called to add a failure to the list of failures.
|
||||
*/
|
||||
void addFailure( const TestFailure &failure );
|
||||
|
||||
virtual void startTestRun( Test *test );
|
||||
virtual void endTestRun( Test *test );
|
||||
|
||||
protected:
|
||||
typedef CppUnitDeque<TestListener *> TestListeners;
|
||||
TestListeners m_listeners;
|
||||
ProtectorChain *m_protectorChain;
|
||||
bool m_stop;
|
||||
|
||||
private:
|
||||
TestResult( const TestResult &other );
|
||||
TestResult &operator =( const TestResult &other );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_TESTRESULT_H
|
||||
|
||||
|
||||
87
3rdParty/include/cppunit/TestResultCollector.h
vendored
87
3rdParty/include/cppunit/TestResultCollector.h
vendored
@@ -1,87 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTRESULTCOLLECTOR_H
|
||||
#define CPPUNIT_TESTRESULTCOLLECTOR_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 4660 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/TestSuccessListener.h>
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::deque<TestFailure *>;
|
||||
// template class CPPUNIT_API std::deque<Test *>;
|
||||
#endif
|
||||
|
||||
|
||||
/*! \brief Collects test result.
|
||||
* \ingroup WritingTestResult
|
||||
* \ingroup BrowsingCollectedTestResult
|
||||
*
|
||||
* A TestResultCollector is a TestListener which collects the results of executing
|
||||
* a test case. It is an instance of the Collecting Parameter pattern.
|
||||
*
|
||||
* The test framework distinguishes between failures and errors.
|
||||
* A failure is anticipated and checked for with assertions. Errors are
|
||||
* unanticipated problems signified by exceptions that are not generated
|
||||
* by the framework.
|
||||
* \see TestListener, TestFailure.
|
||||
*/
|
||||
class CPPUNIT_API TestResultCollector : public TestSuccessListener
|
||||
{
|
||||
public:
|
||||
typedef CppUnitDeque<TestFailure *> TestFailures;
|
||||
typedef CppUnitDeque<Test *> Tests;
|
||||
|
||||
|
||||
/*! Constructs a TestResultCollector object.
|
||||
*/
|
||||
TestResultCollector( SynchronizationObject *syncObject = 0 );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~TestResultCollector();
|
||||
|
||||
void startTest( Test *test );
|
||||
void addFailure( const TestFailure &failure );
|
||||
|
||||
virtual void reset();
|
||||
|
||||
virtual int runTests() const;
|
||||
virtual int testErrors() const;
|
||||
virtual int testFailures() const;
|
||||
virtual int testFailuresTotal() const;
|
||||
|
||||
virtual const TestFailures& failures() const;
|
||||
virtual const Tests &tests() const;
|
||||
|
||||
protected:
|
||||
void freeFailures();
|
||||
|
||||
Tests m_tests;
|
||||
TestFailures m_failures;
|
||||
int m_testErrors;
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
TestResultCollector( const TestResultCollector © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const TestResultCollector © );
|
||||
};
|
||||
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_TESTRESULTCOLLECTOR_H
|
||||
135
3rdParty/include/cppunit/TestRunner.h
vendored
135
3rdParty/include/cppunit/TestRunner.h
vendored
@@ -1,135 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTRUNNER_H
|
||||
#define CPPUNIT_TESTRUNNER_H
|
||||
|
||||
#include <cppunit/TestSuite.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestResult;
|
||||
|
||||
|
||||
/*! \brief Generic test runner.
|
||||
* \ingroup ExecutingTest
|
||||
*
|
||||
* The TestRunner assumes ownership of all added tests: you can not add test
|
||||
* or suite that are local variable since they can't be deleted.
|
||||
*
|
||||
* Example of usage:
|
||||
* \code
|
||||
* #include <cppunit/extensions/TestFactoryRegistry.h>
|
||||
* #include <cppunit/CompilerOutputter.h>
|
||||
* #include <cppunit/TestResult.h>
|
||||
* #include <cppunit/TestResultCollector.h>
|
||||
* #include <cppunit/TestRunner.h>
|
||||
* #include <cppunit/TextTestProgressListener.h>
|
||||
*
|
||||
*
|
||||
* int
|
||||
* main( int argc, char* argv[] )
|
||||
* {
|
||||
* std::string testPath = (argc > 1) ? std::string(argv[1]) : "";
|
||||
*
|
||||
* // Create the event manager and test controller
|
||||
* CppUnit::TestResult controller;
|
||||
*
|
||||
* // Add a listener that colllects test result
|
||||
* CppUnit::TestResultCollector result;
|
||||
* controller.addListener( &result );
|
||||
*
|
||||
* // Add a listener that print dots as test run.
|
||||
* CppUnit::TextTestProgressListener progress;
|
||||
* controller.addListener( &progress );
|
||||
*
|
||||
* // Add the top suite to the test runner
|
||||
* CppUnit::TestRunner runner;
|
||||
* runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
|
||||
* try
|
||||
* {
|
||||
* std::cout << "Running " << testPath;
|
||||
* runner.run( controller, testPath );
|
||||
*
|
||||
* std::cerr << std::endl;
|
||||
*
|
||||
* // Print test in a compiler compatible format.
|
||||
* CppUnit::CompilerOutputter outputter( &result, std::cerr );
|
||||
* outputter.write();
|
||||
* }
|
||||
* catch ( std::invalid_argument &e ) // Test path not resolved
|
||||
* {
|
||||
* std::cerr << std::endl
|
||||
* << "ERROR: " << e.what()
|
||||
* << std::endl;
|
||||
* return 0;
|
||||
* }
|
||||
*
|
||||
* return result.wasSuccessful() ? 0 : 1;
|
||||
* }
|
||||
* \endcode
|
||||
*/
|
||||
class CPPUNIT_API TestRunner
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs a TestRunner object.
|
||||
*/
|
||||
TestRunner( );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~TestRunner();
|
||||
|
||||
/*! \brief Adds the specified test.
|
||||
* \param test Test to add. The TestRunner takes ownership of the test.
|
||||
*/
|
||||
virtual void addTest( Test *test );
|
||||
|
||||
/*! \brief Runs a test using the specified controller.
|
||||
* \param controller Event manager and controller used for testing
|
||||
* \param testPath Test path string. See Test::resolveTestPath() for detail.
|
||||
* \exception std::invalid_argument if no test matching \a testPath is found.
|
||||
* see TestPath::TestPath( Test*, const std::string &)
|
||||
* for detail.
|
||||
*/
|
||||
virtual void run( TestResult &controller,
|
||||
const std::string &testPath = "" );
|
||||
|
||||
protected:
|
||||
/*! \brief (INTERNAL) Mutating test suite.
|
||||
*/
|
||||
class CPPUNIT_API WrappingSuite : public TestSuite
|
||||
{
|
||||
public:
|
||||
WrappingSuite( const std::string &name = "All Tests" );
|
||||
|
||||
int getChildTestCount() const;
|
||||
|
||||
std::string getName() const;
|
||||
|
||||
void run( TestResult *result );
|
||||
|
||||
protected:
|
||||
Test *doGetChildTestAt( int index ) const;
|
||||
|
||||
bool hasOnlyOneTest() const;
|
||||
|
||||
Test *getUniqueChildTest() const;
|
||||
};
|
||||
|
||||
protected:
|
||||
WrappingSuite *m_suite;
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
TestRunner( const TestRunner © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const TestRunner © );
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTRUNNER_H
|
||||
39
3rdParty/include/cppunit/TestSuccessListener.h
vendored
39
3rdParty/include/cppunit/TestSuccessListener.h
vendored
@@ -1,39 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTSUCCESSLISTENER_H
|
||||
#define CPPUNIT_TESTSUCCESSLISTENER_H
|
||||
|
||||
#include <cppunit/SynchronizedObject.h>
|
||||
#include <cppunit/TestListener.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief TestListener that checks if any test case failed.
|
||||
* \ingroup TrackingTestExecution
|
||||
*/
|
||||
class CPPUNIT_API TestSuccessListener : public TestListener,
|
||||
public SynchronizedObject
|
||||
{
|
||||
public:
|
||||
/*! Constructs a TestSuccessListener object.
|
||||
*/
|
||||
TestSuccessListener( SynchronizationObject *syncObject = 0 );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~TestSuccessListener();
|
||||
|
||||
virtual void reset();
|
||||
|
||||
void addFailure( const TestFailure &failure );
|
||||
|
||||
/// Returns whether the entire test was successful or not.
|
||||
virtual bool wasSuccessful() const;
|
||||
|
||||
private:
|
||||
bool m_success;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TESTSUCCESSLISTENER_H
|
||||
80
3rdParty/include/cppunit/TestSuite.h
vendored
80
3rdParty/include/cppunit/TestSuite.h
vendored
@@ -1,80 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTSUITE_H // -*- C++ -*-
|
||||
#define CPPUNIT_TESTSUITE_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/TestComposite.h>
|
||||
#include <cppunit/portability/CppUnitVector.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::vector<Test *>;
|
||||
#endif
|
||||
|
||||
|
||||
/*! \brief A Composite of Tests.
|
||||
* \ingroup CreatingTestSuite
|
||||
*
|
||||
* It runs a collection of test cases. Here is an example.
|
||||
* \code
|
||||
* CppUnit::TestSuite *suite= new CppUnit::TestSuite();
|
||||
* suite->addTest(new CppUnit::TestCaller<MathTest> (
|
||||
* "testAdd", testAdd));
|
||||
* suite->addTest(new CppUnit::TestCaller<MathTest> (
|
||||
* "testDivideByZero", testDivideByZero));
|
||||
* \endcode
|
||||
* Note that \link TestSuite TestSuites \endlink assume lifetime
|
||||
* control for any tests added to them.
|
||||
*
|
||||
* TestSuites do not register themselves in the TestRegistry.
|
||||
* \see Test
|
||||
* \see TestCaller
|
||||
*/
|
||||
class CPPUNIT_API TestSuite : public TestComposite
|
||||
{
|
||||
public:
|
||||
/*! Constructs a test suite with the specified name.
|
||||
*/
|
||||
TestSuite( std::string name = "" );
|
||||
|
||||
~TestSuite();
|
||||
|
||||
/*! Adds the specified test to the suite.
|
||||
* \param test Test to add. Must not be \c NULL.
|
||||
*/
|
||||
void addTest( Test *test );
|
||||
|
||||
/*! Returns the list of the tests (DEPRECATED).
|
||||
* \deprecated Use getChildTestCount() & getChildTestAt() of the
|
||||
* TestComposite interface instead.
|
||||
* \return Reference on a vector that contains the tests of the suite.
|
||||
*/
|
||||
const CppUnitVector<Test *> &getTests() const;
|
||||
|
||||
/*! Destroys all the tests of the suite.
|
||||
*/
|
||||
virtual void deleteContents();
|
||||
|
||||
int getChildTestCount() const;
|
||||
|
||||
Test *doGetChildTestAt( int index ) const;
|
||||
|
||||
private:
|
||||
CppUnitVector<Test *> m_tests;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_TESTSUITE_H
|
||||
59
3rdParty/include/cppunit/TextOutputter.h
vendored
59
3rdParty/include/cppunit/TextOutputter.h
vendored
@@ -1,59 +0,0 @@
|
||||
#ifndef CPPUNIT_TEXTOUTPUTTER_H
|
||||
#define CPPUNIT_TEXTOUTPUTTER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/Outputter.h>
|
||||
#include <cppunit/portability/Stream.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Exception;
|
||||
class SourceLine;
|
||||
class TestResultCollector;
|
||||
class TestFailure;
|
||||
|
||||
|
||||
/*! \brief Prints a TestResultCollector to a text stream.
|
||||
* \ingroup WritingTestResult
|
||||
*/
|
||||
class CPPUNIT_API TextOutputter : public Outputter
|
||||
{
|
||||
public:
|
||||
TextOutputter( TestResultCollector *result,
|
||||
OStream &stream );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~TextOutputter();
|
||||
|
||||
void write();
|
||||
virtual void printFailures();
|
||||
virtual void printHeader();
|
||||
|
||||
virtual void printFailure( TestFailure *failure,
|
||||
int failureNumber );
|
||||
virtual void printFailureListMark( int failureNumber );
|
||||
virtual void printFailureTestName( TestFailure *failure );
|
||||
virtual void printFailureType( TestFailure *failure );
|
||||
virtual void printFailureLocation( SourceLine sourceLine );
|
||||
virtual void printFailureDetail( Exception *thrownException );
|
||||
virtual void printFailureWarning();
|
||||
virtual void printStatistics();
|
||||
|
||||
protected:
|
||||
TestResultCollector *m_result;
|
||||
OStream &m_stream;
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
TextOutputter( const TextOutputter © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const TextOutputter © );
|
||||
};
|
||||
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TEXTOUTPUTTER_H
|
||||
@@ -1,44 +0,0 @@
|
||||
#ifndef CPPUNIT_TEXTTESTPROGRESSLISTENER_H
|
||||
#define CPPUNIT_TEXTTESTPROGRESSLISTENER_H
|
||||
|
||||
#include <cppunit/TestListener.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*!
|
||||
* \brief TestListener that show the status of each TestCase test result.
|
||||
* \ingroup TrackingTestExecution
|
||||
*/
|
||||
class CPPUNIT_API TextTestProgressListener : public TestListener
|
||||
{
|
||||
public:
|
||||
/*! Constructs a TextTestProgressListener object.
|
||||
*/
|
||||
TextTestProgressListener();
|
||||
|
||||
/// Destructor.
|
||||
virtual ~TextTestProgressListener();
|
||||
|
||||
void startTest( Test *test );
|
||||
|
||||
void addFailure( const TestFailure &failure );
|
||||
|
||||
void endTestRun( Test *test,
|
||||
TestResult *eventManager );
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
TextTestProgressListener( const TextTestProgressListener © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const TextTestProgressListener © );
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TEXTTESTPROGRESSLISTENER_H
|
||||
39
3rdParty/include/cppunit/TextTestResult.h
vendored
39
3rdParty/include/cppunit/TextTestResult.h
vendored
@@ -1,39 +0,0 @@
|
||||
#ifndef CPPUNIT_TEXTTESTRESULT_H
|
||||
#define CPPUNIT_TEXTTESTRESULT_H
|
||||
|
||||
#include <cppunit/TestResult.h>
|
||||
#include <cppunit/TestResultCollector.h>
|
||||
#include <cppunit/portability/Stream.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class SourceLine;
|
||||
class Exception;
|
||||
class Test;
|
||||
|
||||
/*! \brief Holds printable test result (DEPRECATED).
|
||||
* \ingroup TrackingTestExecution
|
||||
*
|
||||
* deprecated Use class TextTestProgressListener and TextOutputter instead.
|
||||
*/
|
||||
class CPPUNIT_API TextTestResult : public TestResult,
|
||||
public TestResultCollector
|
||||
{
|
||||
public:
|
||||
TextTestResult();
|
||||
|
||||
virtual void addFailure( const TestFailure &failure );
|
||||
virtual void startTest( Test *test );
|
||||
virtual void print( OStream &stream );
|
||||
};
|
||||
|
||||
/** insertion operator for easy output */
|
||||
CPPUNIT_API OStream &operator <<( OStream &stream,
|
||||
TextTestResult &result );
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TEXTTESTRESULT_H
|
||||
|
||||
|
||||
6
3rdParty/include/cppunit/TextTestRunner.h
vendored
6
3rdParty/include/cppunit/TextTestRunner.h
vendored
@@ -1,6 +0,0 @@
|
||||
#ifndef CPPUNIT_TEXTTESTRUNNER_H
|
||||
#define CPPUNIT_TEXTTESTRUNNER_H
|
||||
|
||||
#include <cppunit/ui/text/TextTestRunner.h>
|
||||
|
||||
#endif // CPPUNIT_TEXTTESTRUNNER_H
|
||||
167
3rdParty/include/cppunit/XmlOutputter.h
vendored
167
3rdParty/include/cppunit/XmlOutputter.h
vendored
@@ -1,167 +0,0 @@
|
||||
#ifndef CPPUNIT_XMLTESTRESULTOUTPUTTER_H
|
||||
#define CPPUNIT_XMLTESTRESULTOUTPUTTER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/Outputter.h>
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
#include <cppunit/portability/CppUnitMap.h>
|
||||
#include <cppunit/portability/Stream.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestFailure;
|
||||
class TestResultCollector;
|
||||
class XmlDocument;
|
||||
class XmlElement;
|
||||
class XmlOutputterHook;
|
||||
|
||||
|
||||
/*! \brief Outputs a TestResultCollector in XML format.
|
||||
* \ingroup WritingTestResult
|
||||
*
|
||||
* Save the test result as a XML stream.
|
||||
*
|
||||
* Additional datas can be added to the XML document using XmlOutputterHook.
|
||||
* Hook are not owned by the XmlOutputter. They should be valid until
|
||||
* destruction of the XmlOutputter. They can be removed with removeHook().
|
||||
*
|
||||
* \see XmlDocument, XmlElement, XmlOutputterHook.
|
||||
*/
|
||||
class CPPUNIT_API XmlOutputter : public Outputter
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs a XmlOutputter object.
|
||||
* \param result Result of the test run.
|
||||
* \param stream Stream used to output the XML output.
|
||||
* \param encoding Encoding used in the XML file (default is Latin-1).
|
||||
*/
|
||||
XmlOutputter( TestResultCollector *result,
|
||||
OStream &stream,
|
||||
std::string encoding = std::string("ISO-8859-1") );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~XmlOutputter();
|
||||
|
||||
/*! \brief Adds the specified hook to the outputter.
|
||||
* \param hook Hook to add. Must not be \c NULL.
|
||||
*/
|
||||
virtual void addHook( XmlOutputterHook *hook );
|
||||
|
||||
/*! \brief Removes the specified hook from the outputter.
|
||||
* \param hook Hook to remove.
|
||||
*/
|
||||
virtual void removeHook( XmlOutputterHook *hook );
|
||||
|
||||
/*! \brief Writes the specified result as an XML document to the stream.
|
||||
*
|
||||
* Refer to examples/cppunittest/XmlOutputterTest.cpp for example
|
||||
* of use and XML document structure.
|
||||
*/
|
||||
virtual void write();
|
||||
|
||||
/*! \brief Sets the XSL style sheet used.
|
||||
*
|
||||
* \param styleSheet Name of the style sheet used. If empty, then no style sheet
|
||||
* is used (default).
|
||||
*/
|
||||
virtual void setStyleSheet( const std::string &styleSheet );
|
||||
|
||||
/*! \brief set the output document as standalone or not.
|
||||
*
|
||||
* For the output document, specify wether it's a standalone XML
|
||||
* document, or not.
|
||||
*
|
||||
* \param standalone if true, the output will be specified as standalone.
|
||||
* if false, it will be not.
|
||||
*/
|
||||
virtual void setStandalone( bool standalone );
|
||||
|
||||
typedef CppUnitMap<Test *,TestFailure*, std::less<Test*> > FailedTests;
|
||||
|
||||
/*! \brief Sets the root element and adds its children.
|
||||
*
|
||||
* Set the root element of the XML Document and add its child elements.
|
||||
*
|
||||
* For all hooks, call beginDocument() just after creating the root element (it
|
||||
* is empty at this time), and endDocument() once all the datas have been added
|
||||
* to the root element.
|
||||
*/
|
||||
virtual void setRootNode();
|
||||
|
||||
virtual void addFailedTests( FailedTests &failedTests,
|
||||
XmlElement *rootNode );
|
||||
|
||||
virtual void addSuccessfulTests( FailedTests &failedTests,
|
||||
XmlElement *rootNode );
|
||||
|
||||
/*! \brief Adds the statics element to the root node.
|
||||
*
|
||||
* Creates a new element containing statistics data and adds it to the root element.
|
||||
* Then, for all hooks, call statisticsAdded().
|
||||
* \param rootNode Root element.
|
||||
*/
|
||||
virtual void addStatistics( XmlElement *rootNode );
|
||||
|
||||
/*! \brief Adds a failed test to the failed tests node.
|
||||
* Creates a new element containing datas about the failed test, and adds it to
|
||||
* the failed tests element.
|
||||
* Then, for all hooks, call failTestAdded().
|
||||
*/
|
||||
virtual void addFailedTest( Test *test,
|
||||
TestFailure *failure,
|
||||
int testNumber,
|
||||
XmlElement *testsNode );
|
||||
|
||||
virtual void addFailureLocation( TestFailure *failure,
|
||||
XmlElement *testElement );
|
||||
|
||||
|
||||
/*! \brief Adds a successful test to the successful tests node.
|
||||
* Creates a new element containing datas about the successful test, and adds it to
|
||||
* the successful tests element.
|
||||
* Then, for all hooks, call successfulTestAdded().
|
||||
*/
|
||||
virtual void addSuccessfulTest( Test *test,
|
||||
int testNumber,
|
||||
XmlElement *testsNode );
|
||||
protected:
|
||||
virtual void fillFailedTestsMap( FailedTests &failedTests );
|
||||
|
||||
protected:
|
||||
typedef CppUnitDeque<XmlOutputterHook *> Hooks;
|
||||
|
||||
TestResultCollector *m_result;
|
||||
OStream &m_stream;
|
||||
std::string m_encoding;
|
||||
std::string m_styleSheet;
|
||||
XmlDocument *m_xml;
|
||||
Hooks m_hooks;
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
XmlOutputter( const XmlOutputter © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const XmlOutputter © );
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_XMLTESTRESULTOUTPUTTER_H
|
||||
163
3rdParty/include/cppunit/XmlOutputterHook.h
vendored
163
3rdParty/include/cppunit/XmlOutputterHook.h
vendored
@@ -1,163 +0,0 @@
|
||||
#ifndef CPPUNIT_XMLOUTPUTTERHOOK_H
|
||||
#define CPPUNIT_XMLOUTPUTTERHOOK_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestFailure;
|
||||
class XmlDocument;
|
||||
class XmlElement;
|
||||
|
||||
|
||||
|
||||
/*! \brief Hook to customize Xml output.
|
||||
*
|
||||
* XmlOutputterHook can be passed to XmlOutputter to customize the XmlDocument.
|
||||
*
|
||||
* Common customizations are:
|
||||
* - adding some datas to successfull or failed test with
|
||||
* failTestAdded() and successfulTestAdded(),
|
||||
* - adding some statistics with statisticsAdded(),
|
||||
* - adding other datas with beginDocument() or endDocument().
|
||||
*
|
||||
* See examples/ClockerPlugIn which makes use of most the hook.
|
||||
*
|
||||
* Another simple example of an outputter hook is shown below. It may be
|
||||
* used to add some meta information to your result files. In the example,
|
||||
* the author name as well as the project name and test creation date is
|
||||
* added to the head of the xml file.
|
||||
*
|
||||
* In order to make this information stored within the xml file, the virtual
|
||||
* member function beginDocument() is overriden where a new
|
||||
* XmlElement object is created.
|
||||
*
|
||||
* This element is simply added to the root node of the document which
|
||||
* makes the information automatically being stored when the xml file
|
||||
* is written.
|
||||
*
|
||||
* \code
|
||||
* #include <cppunit/XmlOutputterHook.h>
|
||||
* #include <cppunit/XmlElement.h>
|
||||
* #include <cppunit/tools/StringTools.h>
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* class MyXmlOutputterHook : public CppUnit::XmlOutputterHook
|
||||
* {
|
||||
* public:
|
||||
* MyXmlOutputterHook(const std::string projectName,
|
||||
* const std::string author)
|
||||
* {
|
||||
* m_projectName = projectName;
|
||||
* m_author = author;
|
||||
* };
|
||||
*
|
||||
* virtual ~MyXmlOutputterHook()
|
||||
* {
|
||||
* };
|
||||
*
|
||||
* void beginDocument(CppUnit::XmlDocument* document)
|
||||
* {
|
||||
* if (!document)
|
||||
* return;
|
||||
*
|
||||
* // dump current time
|
||||
* std::string szDate = CppUnit::StringTools::toString( (int)time(0) );
|
||||
* CppUnit::XmlElement* metaEl = new CppUnit::XmlElement("SuiteInfo",
|
||||
* "");
|
||||
*
|
||||
* metaEl->addElement( new CppUnit::XmlElement("Author", m_author) );
|
||||
* metaEl->addElement( new CppUnit::XmlElement("Project", m_projectName) );
|
||||
* metaEl->addElement( new CppUnit::XmlElement("Date", szDate ) );
|
||||
*
|
||||
* document->rootElement().addElement(metaEl);
|
||||
* };
|
||||
* private:
|
||||
* std::string m_projectName;
|
||||
* std::string m_author;
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* Within your application's main code, you need to snap the hook
|
||||
* object into your xml outputter object like shown below:
|
||||
*
|
||||
* \code
|
||||
* CppUnit::TextUi::TestRunner runner;
|
||||
* std::ofstream outputFile("testResults.xml");
|
||||
*
|
||||
* CppUnit::XmlOutputter* outputter = new CppUnit::XmlOutputter( &runner.result(),
|
||||
* outputFile );
|
||||
* MyXmlOutputterHook hook("myProject", "meAuthor");
|
||||
* outputter->addHook(&hook);
|
||||
* runner.setOutputter(outputter);
|
||||
* runner.addTest( VectorFixture::suite() );
|
||||
* runner.run();
|
||||
* outputFile.close();
|
||||
* \endcode
|
||||
*
|
||||
* This results into the following output:
|
||||
*
|
||||
* \code
|
||||
* <TestRun>
|
||||
* <suiteInfo>
|
||||
* <author>meAuthor</author>
|
||||
* <project>myProject</project>
|
||||
* <date>1028143912</date>
|
||||
* </suiteInfo>
|
||||
* <FailedTests>
|
||||
* ...
|
||||
* \endcode
|
||||
*
|
||||
* \see XmlOutputter, CppUnitTestPlugIn.
|
||||
*/
|
||||
class CPPUNIT_API XmlOutputterHook
|
||||
{
|
||||
public:
|
||||
/*! Called before any elements is added to the root element.
|
||||
* \param document XML Document being created.
|
||||
*/
|
||||
virtual void beginDocument( XmlDocument *document );
|
||||
|
||||
/*! Called after adding all elements to the root element.
|
||||
* \param document XML Document being created.
|
||||
*/
|
||||
virtual void endDocument( XmlDocument *document );
|
||||
|
||||
/*! Called after adding a fail test element.
|
||||
* \param document XML Document being created.
|
||||
* \param testElement \<FailedTest\> element.
|
||||
* \param test Test that failed.
|
||||
* \param failure Test failure data.
|
||||
*/
|
||||
virtual void failTestAdded( XmlDocument *document,
|
||||
XmlElement *testElement,
|
||||
Test *test,
|
||||
TestFailure *failure );
|
||||
|
||||
/*! Called after adding a successful test element.
|
||||
* \param document XML Document being created.
|
||||
* \param testElement \<Test\> element.
|
||||
* \param test Test that was successful.
|
||||
*/
|
||||
virtual void successfulTestAdded( XmlDocument *document,
|
||||
XmlElement *testElement,
|
||||
Test *test );
|
||||
|
||||
/*! Called after adding the statistic element.
|
||||
* \param document XML Document being created.
|
||||
* \param statisticsElement \<Statistics\> element.
|
||||
*/
|
||||
virtual void statisticsAdded( XmlDocument *document,
|
||||
XmlElement *statisticsElement );
|
||||
|
||||
virtual ~XmlOutputterHook() {}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_XMLOUTPUTTERHOOK_H
|
||||
160
3rdParty/include/cppunit/config-auto.h
vendored
160
3rdParty/include/cppunit/config-auto.h
vendored
@@ -1,160 +0,0 @@
|
||||
#ifndef _INCLUDE_CPPUNIT_CONFIG_AUTO_H
|
||||
#define _INCLUDE_CPPUNIT_CONFIG_AUTO_H 1
|
||||
|
||||
/* include/cppunit/config-auto.h. Generated automatically at end of configure. */
|
||||
/* config/config.h. Generated from config.h.in by configure. */
|
||||
/* config/config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* define if library uses std::string::compare(string,pos,n) */
|
||||
/* #undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST */
|
||||
|
||||
/* define if the library defines strstream */
|
||||
#ifndef CPPUNIT_HAVE_CLASS_STRSTREAM
|
||||
#define CPPUNIT_HAVE_CLASS_STRSTREAM 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <cmath> header file. */
|
||||
#ifndef CPPUNIT_HAVE_CMATH
|
||||
#define CPPUNIT_HAVE_CMATH 1
|
||||
#endif
|
||||
|
||||
/* Define if you have the GNU dld library. */
|
||||
/* #undef CPPUNIT_HAVE_DLD */
|
||||
|
||||
/* Define to 1 if you have the `dlerror' function. */
|
||||
/* #undef CPPUNIT_HAVE_DLERROR */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef CPPUNIT_HAVE_DLFCN_H */
|
||||
|
||||
/* Define to 1 if you have the `finite' function. */
|
||||
#ifndef CPPUNIT_HAVE_FINITE
|
||||
#define CPPUNIT_HAVE_FINITE 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler supports GCC C++ ABI name demangling */
|
||||
/* #undef CPPUNIT_HAVE_GCC_ABI_DEMANGLE */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_INTTYPES_H
|
||||
#define CPPUNIT_HAVE_INTTYPES_H 1
|
||||
#endif
|
||||
|
||||
/* define if compiler has isfinite */
|
||||
#ifndef CPPUNIT_HAVE_ISFINITE
|
||||
#define CPPUNIT_HAVE_ISFINITE 1
|
||||
#endif
|
||||
|
||||
/* Define if you have the libdl library or equivalent. */
|
||||
/* #undef CPPUNIT_HAVE_LIBDL */
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_MEMORY_H
|
||||
#define CPPUNIT_HAVE_MEMORY_H 1
|
||||
#endif
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler supports Run-Time Type Identification */
|
||||
#ifndef CPPUNIT_HAVE_RTTI
|
||||
#define CPPUNIT_HAVE_RTTI 1
|
||||
#endif
|
||||
|
||||
/* Define if you have the shl_load function. */
|
||||
/* #undef CPPUNIT_HAVE_SHL_LOAD */
|
||||
|
||||
/* define if the compiler has stringstream */
|
||||
#ifndef CPPUNIT_HAVE_SSTREAM
|
||||
#define CPPUNIT_HAVE_SSTREAM 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_STDINT_H
|
||||
#define CPPUNIT_HAVE_STDINT_H 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_STDLIB_H
|
||||
#define CPPUNIT_HAVE_STDLIB_H 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_STRINGS_H
|
||||
#define CPPUNIT_HAVE_STRINGS_H 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_STRING_H
|
||||
#define CPPUNIT_HAVE_STRING_H 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <strstream> header file. */
|
||||
#ifndef CPPUNIT_HAVE_STRSTREAM
|
||||
#define CPPUNIT_HAVE_STRSTREAM 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_SYS_STAT_H
|
||||
#define CPPUNIT_HAVE_SYS_STAT_H 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_SYS_TYPES_H
|
||||
#define CPPUNIT_HAVE_SYS_TYPES_H 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#ifndef CPPUNIT_HAVE_UNISTD_H
|
||||
#define CPPUNIT_HAVE_UNISTD_H 1
|
||||
#endif
|
||||
|
||||
/* Name of package */
|
||||
#ifndef CPPUNIT_PACKAGE
|
||||
#define CPPUNIT_PACKAGE "cppunit"
|
||||
#endif
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#ifndef CPPUNIT_PACKAGE_BUGREPORT
|
||||
#define CPPUNIT_PACKAGE_BUGREPORT ""
|
||||
#endif
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#ifndef CPPUNIT_PACKAGE_NAME
|
||||
#define CPPUNIT_PACKAGE_NAME ""
|
||||
#endif
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#ifndef CPPUNIT_PACKAGE_STRING
|
||||
#define CPPUNIT_PACKAGE_STRING ""
|
||||
#endif
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#ifndef CPPUNIT_PACKAGE_TARNAME
|
||||
#define CPPUNIT_PACKAGE_TARNAME ""
|
||||
#endif
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#ifndef CPPUNIT_PACKAGE_VERSION
|
||||
#define CPPUNIT_PACKAGE_VERSION ""
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#ifndef CPPUNIT_STDC_HEADERS
|
||||
#define CPPUNIT_STDC_HEADERS 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 to use type_info::name() for class names */
|
||||
#ifndef CPPUNIT_USE_TYPEINFO_NAME
|
||||
#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
|
||||
#endif
|
||||
|
||||
/* Version number of package */
|
||||
#ifndef CPPUNIT_VERSION
|
||||
#define CPPUNIT_VERSION "1.12.1"
|
||||
#endif
|
||||
|
||||
/* _INCLUDE_CPPUNIT_CONFIG_AUTO_H */
|
||||
#endif
|
||||
33
3rdParty/include/cppunit/config/CppUnitApi.h
vendored
33
3rdParty/include/cppunit/config/CppUnitApi.h
vendored
@@ -1,33 +0,0 @@
|
||||
#ifndef CPPUNIT_CONFIG_CPPUNITAPI
|
||||
#define CPPUNIT_CONFIG_CPPUNITAPI
|
||||
|
||||
#undef CPPUNIT_API
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
// define CPPUNIT_DLL_BUILD when building CppUnit dll.
|
||||
#ifdef CPPUNIT_BUILD_DLL
|
||||
#define CPPUNIT_API __declspec(dllexport)
|
||||
#endif
|
||||
|
||||
// define CPPUNIT_DLL when linking to CppUnit dll.
|
||||
#ifdef CPPUNIT_DLL
|
||||
#define CPPUNIT_API __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#ifdef CPPUNIT_API
|
||||
#undef CPPUNIT_NEED_DLL_DECL
|
||||
#define CPPUNIT_NEED_DLL_DECL 1
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef CPPUNIT_API
|
||||
#define CPPUNIT_API
|
||||
#undef CPPUNIT_NEED_DLL_DECL
|
||||
#define CPPUNIT_NEED_DLL_DECL 0
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_CONFIG_CPPUNITAPI
|
||||
@@ -1,76 +0,0 @@
|
||||
#ifndef CPPUNIT_CONFIG_SELECTDLLLOADER_H
|
||||
#define CPPUNIT_CONFIG_SELECTDLLLOADER_H
|
||||
|
||||
/*! \file
|
||||
* Selects DynamicLibraryManager implementation.
|
||||
*
|
||||
* Don't include this file directly. Include Portability.h instead.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* \def CPPUNIT_NO_TESTPLUGIN
|
||||
* \brief If defined, then plug-in related classes and functions will not be compiled.
|
||||
*
|
||||
* \internal
|
||||
* CPPUNIT_HAVE_WIN32_DLL_LOADER
|
||||
* If defined, Win32 implementation of DynamicLibraryManager will be used.
|
||||
*
|
||||
* CPPUNIT_HAVE_BEOS_DLL_LOADER
|
||||
* If defined, BeOs implementation of DynamicLibraryManager will be used.
|
||||
*
|
||||
* CPPUNIT_HAVE_UNIX_DLL_LOADER
|
||||
* If defined, Unix implementation (dlfcn.h) of DynamicLibraryManager will be used.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* \def CPPUNIT_PLUGIN_EXPORT
|
||||
* \ingroup WritingTestPlugIn
|
||||
* \brief A macro to export a function from a dynamic library
|
||||
*
|
||||
* This macro export the C function following it from a dynamic library.
|
||||
* Exporting the function makes it accessible to the DynamicLibraryManager.
|
||||
*
|
||||
* Example of usage:
|
||||
* \code
|
||||
* #include <cppunit/include/plugin/TestPlugIn.h>
|
||||
*
|
||||
* CPPUNIT_PLUGIN_EXPORT CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void)
|
||||
* {
|
||||
* ...
|
||||
* return &myPlugInInterface;
|
||||
* }
|
||||
* \endcode
|
||||
*/
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
// Is WIN32 platform ?
|
||||
#if defined(WIN32)
|
||||
#define CPPUNIT_HAVE_WIN32_DLL_LOADER 1
|
||||
#undef CPPUNIT_PLUGIN_EXPORT
|
||||
#define CPPUNIT_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
||||
|
||||
// Is BeOS platform ?
|
||||
#elif defined(__BEOS__)
|
||||
#define CPPUNIT_HAVE_BEOS_DLL_LOADER 1
|
||||
|
||||
// Is Unix platform and have shl_load() (hp-ux)
|
||||
#elif defined(CPPUNIT_HAVE_SHL_LOAD)
|
||||
#define CPPUNIT_HAVE_UNIX_SHL_LOADER 1
|
||||
|
||||
// Is Unix platform and have include <dlfcn.h>
|
||||
#elif defined(CPPUNIT_HAVE_LIBDL)
|
||||
#define CPPUNIT_HAVE_UNIX_DLL_LOADER 1
|
||||
|
||||
// Otherwise, disable support for DllLoader
|
||||
#else
|
||||
#define CPPUNIT_NO_TESTPLUGIN 1
|
||||
#endif
|
||||
|
||||
#if !defined(CPPUNIT_PLUGIN_EXPORT)
|
||||
#define CPPUNIT_PLUGIN_EXPORT extern "C"
|
||||
#endif // !defined(CPPUNIT_PLUGIN_EXPORT)
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#endif // CPPUNIT_CONFIG_SELECTDLLLOADER_H
|
||||
14
3rdParty/include/cppunit/config/SourcePrefix.h
vendored
14
3rdParty/include/cppunit/config/SourcePrefix.h
vendored
@@ -1,14 +0,0 @@
|
||||
#ifndef CPPUNIT_CONFIG_H_INCLUDED
|
||||
#define CPPUNIT_CONFIG_H_INCLUDED
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable: 4018 4284 4146)
|
||||
#if _MSC_VER >= 1400
|
||||
#pragma warning(disable: 4996) // sprintf is deprecated
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_CONFIG_H_INCLUDED
|
||||
47
3rdParty/include/cppunit/config/config-bcb5.h
vendored
47
3rdParty/include/cppunit/config/config-bcb5.h
vendored
@@ -1,47 +0,0 @@
|
||||
#ifndef _INCLUDE_CPPUNIT_CONFIG_BCB5_H
|
||||
#define _INCLUDE_CPPUNIT_CONFIG_BCB5_H 1
|
||||
|
||||
#define HAVE_CMATH 1
|
||||
|
||||
/* include/cppunit/config-bcb5.h. Manually adapted from
|
||||
include/cppunit/config-auto.h */
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if library uses std::string::compare(string,pos,n) */
|
||||
#ifndef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#define CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST 0
|
||||
#endif
|
||||
|
||||
/* Define if you have the <dlfcn.h> header file. */
|
||||
#ifdef CPPUNIT_HAVE_DLFCN_H
|
||||
#undef CPPUNIT_HAVE_DLFCN_H
|
||||
#endif
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler supports Run-Time Type Identification */
|
||||
#ifndef CPPUNIT_HAVE_RTTI
|
||||
#define CPPUNIT_HAVE_RTTI 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 to use type_info::name() for class names */
|
||||
#ifndef CPPUNIT_USE_TYPEINFO_NAME
|
||||
#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
|
||||
#endif
|
||||
|
||||
#define CPPUNIT_HAVE_SSTREAM 1
|
||||
|
||||
/* Name of package */
|
||||
#ifndef CPPUNIT_PACKAGE
|
||||
#define CPPUNIT_PACKAGE "cppunit"
|
||||
#endif
|
||||
|
||||
/* _INCLUDE_CPPUNIT_CONFIG_BCB5_H */
|
||||
#endif
|
||||
78
3rdParty/include/cppunit/config/config-evc4.h
vendored
78
3rdParty/include/cppunit/config/config-evc4.h
vendored
@@ -1,78 +0,0 @@
|
||||
#ifndef _INCLUDE_CPPUNIT_CONFIG_EVC4_H
|
||||
#define _INCLUDE_CPPUNIT_CONFIG_EVC4_H 1
|
||||
|
||||
#if _MSC_VER > 1000 // VC++
|
||||
#pragma warning( disable : 4786 ) // disable warning debug symbol > 255...
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define HAVE_CMATH 1
|
||||
|
||||
/* include/cppunit/config-msvc6.h. Manually adapted from
|
||||
include/cppunit/config-auto.h */
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if library uses std::string::compare(string,pos,n) */
|
||||
#ifdef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#endif
|
||||
|
||||
/* Define if you have the <dlfcn.h> header file. */
|
||||
#ifdef CPPUNIT_HAVE_DLFCN_H
|
||||
#undef CPPUNIT_HAVE_DLFCN_H
|
||||
#endif
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler supports Run-Time Type Identification */
|
||||
#ifndef CPPUNIT_HAVE_RTTI
|
||||
#define CPPUNIT_HAVE_RTTI 0
|
||||
#endif
|
||||
|
||||
/* Define to 1 to use type_info::name() for class names */
|
||||
#ifndef CPPUNIT_USE_TYPEINFO_NAME
|
||||
#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
|
||||
#endif
|
||||
|
||||
#define CPPUNIT_NO_STREAM 1
|
||||
#define CPPUNIT_NO_ASSERT 1
|
||||
|
||||
#define CPPUNIT_HAVE_SSTREAM 0
|
||||
|
||||
/* Name of package */
|
||||
#ifndef CPPUNIT_PACKAGE
|
||||
#define CPPUNIT_PACKAGE "cppunit"
|
||||
#endif
|
||||
|
||||
|
||||
// Compiler error location format for CompilerOutputter
|
||||
// See class CompilerOutputter for format.
|
||||
#undef CPPUNIT_COMPILER_LOCATION_FORMAT
|
||||
#if _MSC_VER >= 1300 // VS 7.0
|
||||
# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l) : error : "
|
||||
#else
|
||||
# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l):"
|
||||
#endif
|
||||
|
||||
/* define to 1 if the compiler has _finite() */
|
||||
#ifndef CPPUNIT_HAVE__FINITE
|
||||
#define CPPUNIT_HAVE__FINITE 1
|
||||
#endif
|
||||
|
||||
// Uncomment to turn on STL wrapping => use this to test compilation.
|
||||
// This will make CppUnit subclass std::vector & co to provide default
|
||||
// parameter.
|
||||
/*#define CPPUNIT_STD_NEED_ALLOCATOR 1
|
||||
#define CPPUNIT_STD_ALLOCATOR std::allocator<T>
|
||||
//#define CPPUNIT_NO_NAMESPACE 1
|
||||
*/
|
||||
|
||||
|
||||
/* _INCLUDE_CPPUNIT_CONFIG_EVC4_H */
|
||||
#endif
|
||||
58
3rdParty/include/cppunit/config/config-mac.h
vendored
58
3rdParty/include/cppunit/config/config-mac.h
vendored
@@ -1,58 +0,0 @@
|
||||
#ifndef _INCLUDE_CPPUNIT_CONFIG_MAC_H
|
||||
#define _INCLUDE_CPPUNIT_CONFIG_MAC_H 1
|
||||
|
||||
/* MacOS X should be installed using the configure script.
|
||||
This file is for other macs.
|
||||
|
||||
It is not integrated into <cppunit/Portability.h> because we don't
|
||||
know a suitable preprocessor symbol that will distinguish MacOS X
|
||||
from other MacOS versions. Email us if you know the answer.
|
||||
*/
|
||||
|
||||
/* define if library uses std::string::compare(string,pos,n) */
|
||||
#ifdef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#endif
|
||||
|
||||
/* define if the library defines strstream */
|
||||
#ifndef CPPUNIT_HAVE_CLASS_STRSTREAM
|
||||
#define CPPUNIT_HAVE_CLASS_STRSTREAM 1
|
||||
#endif
|
||||
|
||||
/* Define if you have the <cmath> header file. */
|
||||
#ifdef CPPUNIT_HAVE_CMATH
|
||||
#undef CPPUNIT_HAVE_CMATH
|
||||
#endif
|
||||
|
||||
/* Define if you have the <dlfcn.h> header file. */
|
||||
#ifdef CPPUNIT_HAVE_DLFCN_H
|
||||
#undef CPPUNIT_HAVE_DLFCN_H
|
||||
#endif
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler supports Run-Time Type Identification */
|
||||
#ifndef CPPUNIT_HAVE_RTTI
|
||||
#define CPPUNIT_HAVE_RTTI 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler has stringstream */
|
||||
#ifndef CPPUNIT_HAVE_SSTREAM
|
||||
#define CPPUNIT_HAVE_SSTREAM 1
|
||||
#endif
|
||||
|
||||
/* Define if you have the <strstream> header file. */
|
||||
#ifndef CPPUNIT_HAVE_STRSTREAM
|
||||
#define CPPUNIT_HAVE_STRSTREAM 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 to use type_info::name() for class names */
|
||||
#ifndef CPPUNIT_USE_TYPEINFO_NAME
|
||||
#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
|
||||
#endif
|
||||
|
||||
/* _INCLUDE_CPPUNIT_CONFIG_MAC_H */
|
||||
#endif
|
||||
83
3rdParty/include/cppunit/config/config-msvc6.h
vendored
83
3rdParty/include/cppunit/config/config-msvc6.h
vendored
@@ -1,83 +0,0 @@
|
||||
#ifndef _INCLUDE_CPPUNIT_CONFIG_MSVC6_H
|
||||
#define _INCLUDE_CPPUNIT_CONFIG_MSVC6_H 1
|
||||
|
||||
#if _MSC_VER > 1000 // VC++
|
||||
#pragma warning( disable : 4786 ) // disable warning debug symbol > 255...
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define HAVE_CMATH 1
|
||||
|
||||
/* include/cppunit/config-msvc6.h. Manually adapted from
|
||||
include/cppunit/config-auto.h */
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if library uses std::string::compare(string,pos,n) */
|
||||
#ifdef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
|
||||
#endif
|
||||
|
||||
/* Define if you have the <dlfcn.h> header file. */
|
||||
#ifdef CPPUNIT_HAVE_DLFCN_H
|
||||
#undef CPPUNIT_HAVE_DLFCN_H
|
||||
#endif
|
||||
|
||||
/* define to 1 if the compiler implements namespaces */
|
||||
#ifndef CPPUNIT_HAVE_NAMESPACES
|
||||
#define CPPUNIT_HAVE_NAMESPACES 1
|
||||
#endif
|
||||
|
||||
/* define if the compiler supports Run-Time Type Identification */
|
||||
#ifndef CPPUNIT_HAVE_RTTI
|
||||
# ifdef _CPPRTTI // Defined by the compiler option /GR
|
||||
# define CPPUNIT_HAVE_RTTI 1
|
||||
# else
|
||||
# define CPPUNIT_HAVE_RTTI 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Define to 1 to use type_info::name() for class names */
|
||||
#ifndef CPPUNIT_USE_TYPEINFO_NAME
|
||||
#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
|
||||
#endif
|
||||
|
||||
#define CPPUNIT_HAVE_SSTREAM 1
|
||||
|
||||
/* Name of package */
|
||||
#ifndef CPPUNIT_PACKAGE
|
||||
#define CPPUNIT_PACKAGE "cppunit"
|
||||
#endif
|
||||
|
||||
|
||||
// Compiler error location format for CompilerOutputter
|
||||
// See class CompilerOutputter for format.
|
||||
#undef CPPUNIT_COMPILER_LOCATION_FORMAT
|
||||
#if _MSC_VER >= 1300 // VS 7.0
|
||||
# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l) : error : "
|
||||
#else
|
||||
# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l):"
|
||||
#endif
|
||||
|
||||
// Define to 1 if the compiler support C++ style cast.
|
||||
#define CPPUNIT_HAVE_CPP_CAST 1
|
||||
|
||||
/* define to 1 if the compiler has _finite() */
|
||||
#ifndef CPPUNIT_HAVE__FINITE
|
||||
#define CPPUNIT_HAVE__FINITE 1
|
||||
#endif
|
||||
|
||||
|
||||
// Uncomment to turn on STL wrapping => use this to test compilation.
|
||||
// This will make CppUnit subclass std::vector & co to provide default
|
||||
// parameter.
|
||||
/*#define CPPUNIT_STD_NEED_ALLOCATOR 1
|
||||
#define CPPUNIT_STD_ALLOCATOR std::allocator<T>
|
||||
//#define CPPUNIT_NO_NAMESPACE 1
|
||||
*/
|
||||
|
||||
|
||||
/* _INCLUDE_CPPUNIT_CONFIG_MSVC6_H */
|
||||
#endif
|
||||
@@ -1,83 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H
|
||||
#define CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H
|
||||
|
||||
#include <cppunit/extensions/TestSuiteFactory.h>
|
||||
#include <cppunit/extensions/TestFactoryRegistry.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief (Implementation) Automatically register the test suite of the specified type.
|
||||
*
|
||||
* You should not use this class directly. Instead, use the following macros:
|
||||
* - CPPUNIT_TEST_SUITE_REGISTRATION()
|
||||
* - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION()
|
||||
*
|
||||
* This object will register the test returned by TestCaseType::suite()
|
||||
* when constructed to the test registry.
|
||||
*
|
||||
* This object is intented to be used as a static variable.
|
||||
*
|
||||
*
|
||||
* \param TestCaseType Type of the test case which suite is registered.
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION
|
||||
* \see CppUnit::TestFactoryRegistry.
|
||||
*/
|
||||
template<class TestCaseType>
|
||||
class AutoRegisterSuite
|
||||
{
|
||||
public:
|
||||
/** Auto-register the suite factory in the global registry.
|
||||
*/
|
||||
AutoRegisterSuite()
|
||||
: m_registry( &TestFactoryRegistry::getRegistry() )
|
||||
{
|
||||
m_registry->registerFactory( &m_factory );
|
||||
}
|
||||
|
||||
/** Auto-register the suite factory in the specified registry.
|
||||
* \param name Name of the registry.
|
||||
*/
|
||||
AutoRegisterSuite( const std::string &name )
|
||||
: m_registry( &TestFactoryRegistry::getRegistry( name ) )
|
||||
{
|
||||
m_registry->registerFactory( &m_factory );
|
||||
}
|
||||
|
||||
~AutoRegisterSuite()
|
||||
{
|
||||
if ( TestFactoryRegistry::isValid() )
|
||||
m_registry->unregisterFactory( &m_factory );
|
||||
}
|
||||
|
||||
private:
|
||||
TestFactoryRegistry *m_registry;
|
||||
TestSuiteFactory<TestCaseType> m_factory;
|
||||
};
|
||||
|
||||
|
||||
/*! \brief (Implementation) Automatically adds a registry into another registry.
|
||||
*
|
||||
* Don't use this class. Use the macros CPPUNIT_REGISTRY_ADD() and
|
||||
* CPPUNIT_REGISTRY_ADD_TO_DEFAULT() instead.
|
||||
*/
|
||||
class AutoRegisterRegistry
|
||||
{
|
||||
public:
|
||||
AutoRegisterRegistry( const std::string &which,
|
||||
const std::string &to )
|
||||
{
|
||||
TestFactoryRegistry::getRegistry( to ).addRegistry( which );
|
||||
}
|
||||
|
||||
AutoRegisterRegistry( const std::string &which )
|
||||
{
|
||||
TestFactoryRegistry::getRegistry().addRegistry( which );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H
|
||||
@@ -1,104 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H
|
||||
#define CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/Exception.h>
|
||||
#include <cppunit/extensions/TestCaseDecorator.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Expected exception test case decorator.
|
||||
*
|
||||
* A decorator used to assert that a specific test case should throw an
|
||||
* exception of a given type.
|
||||
*
|
||||
* You should use this class only if you need to check the exception object
|
||||
* state (that a specific cause is set for example). If you don't need to
|
||||
* do that, you might consider using CPPUNIT_TEST_EXCEPTION() instead.
|
||||
*
|
||||
* Intended use is to subclass and override checkException(). Example:
|
||||
*
|
||||
* \code
|
||||
*
|
||||
* class NetworkErrorTestCaseDecorator :
|
||||
* public ExceptionTestCaseDecorator<NetworkError>
|
||||
* {
|
||||
* public:
|
||||
* NetworkErrorTestCaseDecorator( NetworkError::Cause expectedCause )
|
||||
* : m_expectedCause( expectedCause )
|
||||
* {
|
||||
* }
|
||||
* private:
|
||||
* void checkException( ExpectedExceptionType &e )
|
||||
* {
|
||||
* CPPUNIT_ASSERT_EQUAL( m_expectedCause, e.getCause() );
|
||||
* }
|
||||
*
|
||||
* NetworkError::Cause m_expectedCause;
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
*/
|
||||
template<class ExpectedException>
|
||||
class ExceptionTestCaseDecorator : public TestCaseDecorator
|
||||
{
|
||||
public:
|
||||
typedef ExpectedException ExpectedExceptionType;
|
||||
|
||||
/*! \brief Decorates the specified test.
|
||||
* \param test TestCase to decorate. Assumes ownership of the test.
|
||||
*/
|
||||
ExceptionTestCaseDecorator( TestCase *test )
|
||||
: TestCaseDecorator( test )
|
||||
{
|
||||
}
|
||||
|
||||
/*! \brief Checks that the expected exception is thrown by the decorated test.
|
||||
* is thrown.
|
||||
*
|
||||
* Calls the decorated test runTest() and checks that an exception of
|
||||
* type ExpectedException is thrown. Call checkException() passing the
|
||||
* exception that was caught so that some assertions can be made if
|
||||
* needed.
|
||||
*/
|
||||
void runTest()
|
||||
{
|
||||
try
|
||||
{
|
||||
TestCaseDecorator::runTest();
|
||||
}
|
||||
catch ( ExpectedExceptionType &e )
|
||||
{
|
||||
checkException( e );
|
||||
return;
|
||||
}
|
||||
|
||||
// Moved outside the try{} statement to handle the case where the
|
||||
// expected exception type is Exception (expecting assertion failure).
|
||||
#if CPPUNIT_USE_TYPEINFO_NAME
|
||||
throw Exception( Message(
|
||||
"expected exception not thrown",
|
||||
"Expected exception type: " +
|
||||
TypeInfoHelper::getClassName(
|
||||
typeid( ExpectedExceptionType ) ) ) );
|
||||
#else
|
||||
throw Exception( Message("expected exception not thrown") );
|
||||
#endif
|
||||
}
|
||||
|
||||
private:
|
||||
/*! \brief Called when the exception is caught.
|
||||
*
|
||||
* Should be overriden to check the exception.
|
||||
*/
|
||||
virtual void checkException( ExpectedExceptionType &e )
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H
|
||||
|
||||
541
3rdParty/include/cppunit/extensions/HelperMacros.h
vendored
541
3rdParty/include/cppunit/extensions/HelperMacros.h
vendored
@@ -1,541 +0,0 @@
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
// Header file HelperMacros.h
|
||||
// (c)Copyright 2000, Baptiste Lepilleur.
|
||||
// Created: 2001/04/15
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
#ifndef CPPUNIT_EXTENSIONS_HELPERMACROS_H
|
||||
#define CPPUNIT_EXTENSIONS_HELPERMACROS_H
|
||||
|
||||
#include <cppunit/TestCaller.h>
|
||||
#include <cppunit/TestSuite.h>
|
||||
#include <cppunit/extensions/AutoRegisterSuite.h>
|
||||
#include <cppunit/extensions/ExceptionTestCaseDecorator.h>
|
||||
#include <cppunit/extensions/TestFixtureFactory.h>
|
||||
#include <cppunit/extensions/TestNamer.h>
|
||||
#include <cppunit/extensions/TestSuiteBuilderContext.h>
|
||||
#include <memory>
|
||||
|
||||
|
||||
/*! \addtogroup WritingTestFixture Writing test fixture
|
||||
*/
|
||||
/** @{
|
||||
*/
|
||||
|
||||
|
||||
/** \file
|
||||
* Macros intended to ease the definition of test suites.
|
||||
*
|
||||
* The macros
|
||||
* CPPUNIT_TEST_SUITE(), CPPUNIT_TEST(), and CPPUNIT_TEST_SUITE_END()
|
||||
* are designed to facilitate easy creation of a test suite.
|
||||
* For example,
|
||||
*
|
||||
* \code
|
||||
* #include <cppunit/extensions/HelperMacros.h>
|
||||
* class MyTest : public CppUnit::TestFixture {
|
||||
* CPPUNIT_TEST_SUITE( MyTest );
|
||||
* CPPUNIT_TEST( testEquality );
|
||||
* CPPUNIT_TEST( testSetName );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
* public:
|
||||
* void testEquality();
|
||||
* void testSetName();
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* The effect of these macros is to define two methods in the
|
||||
* class MyTest. The first method is an auxiliary function
|
||||
* named registerTests that you will not need to call directly.
|
||||
* The second function
|
||||
* \code static CppUnit::TestSuite *suite()\endcode
|
||||
* returns a pointer to the suite of tests defined by the CPPUNIT_TEST()
|
||||
* macros.
|
||||
*
|
||||
* Rather than invoking suite() directly,
|
||||
* the macro CPPUNIT_TEST_SUITE_REGISTRATION() is
|
||||
* used to create a static variable that automatically
|
||||
* registers its test suite in a global registry.
|
||||
* The registry yields a Test instance containing all the
|
||||
* registered suites.
|
||||
* \code
|
||||
* CPPUNIT_TEST_SUITE_REGISTRATION( MyTest );
|
||||
* CppUnit::Test* tp =
|
||||
* CppUnit::TestFactoryRegistry::getRegistry().makeTest();
|
||||
* \endcode
|
||||
*
|
||||
* The test suite macros can even be used with templated test classes.
|
||||
* For example:
|
||||
*
|
||||
* \code
|
||||
* template<typename CharType>
|
||||
* class StringTest : public CppUnit::TestFixture {
|
||||
* CPPUNIT_TEST_SUITE( StringTest );
|
||||
* CPPUNIT_TEST( testAppend );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
* public:
|
||||
* ...
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* You need to add in an implementation file:
|
||||
*
|
||||
* \code
|
||||
* CPPUNIT_TEST_SUITE_REGISTRATION( StringTest<char> );
|
||||
* CPPUNIT_TEST_SUITE_REGISTRATION( StringTest<wchar_t> );
|
||||
* \endcode
|
||||
*/
|
||||
|
||||
|
||||
/*! \brief Begin test suite
|
||||
*
|
||||
* This macro starts the declaration of a new test suite.
|
||||
* Use CPPUNIT_TEST_SUB_SUITE() instead, if you wish to include the
|
||||
* test suite of the parent class.
|
||||
*
|
||||
* \param ATestFixtureType Type of the test case class. This type \b MUST
|
||||
* be derived from TestFixture.
|
||||
* \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END,
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL.
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE( ATestFixtureType ) \
|
||||
public: \
|
||||
typedef ATestFixtureType TestFixtureType; \
|
||||
\
|
||||
private: \
|
||||
static const CPPUNIT_NS::TestNamer &getTestNamer__() \
|
||||
{ \
|
||||
static CPPUNIT_TESTNAMER_DECL( testNamer, ATestFixtureType ); \
|
||||
return testNamer; \
|
||||
} \
|
||||
\
|
||||
public: \
|
||||
typedef CPPUNIT_NS::TestSuiteBuilderContext<TestFixtureType> \
|
||||
TestSuiteBuilderContextType; \
|
||||
\
|
||||
static void \
|
||||
addTestsToSuite( CPPUNIT_NS::TestSuiteBuilderContextBase &baseContext ) \
|
||||
{ \
|
||||
TestSuiteBuilderContextType context( baseContext )
|
||||
|
||||
|
||||
/*! \brief Begin test suite (includes parent suite)
|
||||
*
|
||||
* This macro may only be used in a class whose parent class
|
||||
* defines a test suite using CPPUNIT_TEST_SUITE() or CPPUNIT_TEST_SUB_SUITE().
|
||||
*
|
||||
* This macro begins the declaration of a test suite, in the same
|
||||
* manner as CPPUNIT_TEST_SUITE(). In addition, the test suite of the
|
||||
* parent is automatically inserted in the test suite being
|
||||
* defined.
|
||||
*
|
||||
* Here is an example:
|
||||
*
|
||||
* \code
|
||||
* #include <cppunit/extensions/HelperMacros.h>
|
||||
* class MySubTest : public MyTest {
|
||||
* CPPUNIT_TEST_SUB_SUITE( MySubTest, MyTest );
|
||||
* CPPUNIT_TEST( testAdd );
|
||||
* CPPUNIT_TEST( testSub );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
* public:
|
||||
* void testAdd();
|
||||
* void testSub();
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* \param ATestFixtureType Type of the test case class. This type \b MUST
|
||||
* be derived from TestFixture.
|
||||
* \param ASuperClass Type of the parent class.
|
||||
* \see CPPUNIT_TEST_SUITE.
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUB_SUITE( ATestFixtureType, ASuperClass ) \
|
||||
public: \
|
||||
typedef ASuperClass ParentTestFixtureType; \
|
||||
private: \
|
||||
CPPUNIT_TEST_SUITE( ATestFixtureType ); \
|
||||
ParentTestFixtureType::addTestsToSuite( baseContext )
|
||||
|
||||
|
||||
/*! \brief End declaration of the test suite.
|
||||
*
|
||||
* After this macro, member access is set to "private".
|
||||
*
|
||||
* \see CPPUNIT_TEST_SUITE.
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION.
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_END() \
|
||||
} \
|
||||
\
|
||||
static CPPUNIT_NS::TestSuite *suite() \
|
||||
{ \
|
||||
const CPPUNIT_NS::TestNamer &namer = getTestNamer__(); \
|
||||
std::auto_ptr<CPPUNIT_NS::TestSuite> suite( \
|
||||
new CPPUNIT_NS::TestSuite( namer.getFixtureName() )); \
|
||||
CPPUNIT_NS::ConcretTestFixtureFactory<TestFixtureType> factory; \
|
||||
CPPUNIT_NS::TestSuiteBuilderContextBase context( *suite.get(), \
|
||||
namer, \
|
||||
factory ); \
|
||||
TestFixtureType::addTestsToSuite( context ); \
|
||||
return suite.release(); \
|
||||
} \
|
||||
private: /* dummy typedef so that the macro can still end with ';'*/ \
|
||||
typedef int CppUnitDummyTypedefForSemiColonEnding__
|
||||
|
||||
/*! \brief End declaration of an abstract test suite.
|
||||
*
|
||||
* Use this macro to indicate that the %TestFixture is abstract. No
|
||||
* static suite() method will be declared.
|
||||
*
|
||||
* After this macro, member access is set to "private".
|
||||
*
|
||||
* Here is an example of usage:
|
||||
*
|
||||
* The abstract test fixture:
|
||||
* \code
|
||||
* #include <cppunit/extensions/HelperMacros.h>
|
||||
* class AbstractDocument;
|
||||
* class AbstractDocumentTest : public CppUnit::TestFixture {
|
||||
* CPPUNIT_TEST_SUITE( AbstractDocumentTest );
|
||||
* CPPUNIT_TEST( testInsertText );
|
||||
* CPPUNIT_TEST_SUITE_END_ABSTRACT();
|
||||
* public:
|
||||
* void testInsertText();
|
||||
*
|
||||
* void setUp()
|
||||
* {
|
||||
* m_document = makeDocument();
|
||||
* }
|
||||
*
|
||||
* void tearDown()
|
||||
* {
|
||||
* delete m_document;
|
||||
* }
|
||||
* protected:
|
||||
* virtual AbstractDocument *makeDocument() =0;
|
||||
*
|
||||
* AbstractDocument *m_document;
|
||||
* };\endcode
|
||||
*
|
||||
* The concret test fixture:
|
||||
* \code
|
||||
* class RichTextDocumentTest : public AbstractDocumentTest {
|
||||
* CPPUNIT_TEST_SUB_SUITE( RichTextDocumentTest, AbstractDocumentTest );
|
||||
* CPPUNIT_TEST( testInsertFormatedText );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
* public:
|
||||
* void testInsertFormatedText();
|
||||
* protected:
|
||||
* AbstractDocument *makeDocument()
|
||||
* {
|
||||
* return new RichTextDocument();
|
||||
* }
|
||||
* };\endcode
|
||||
*
|
||||
* \see CPPUNIT_TEST_SUB_SUITE.
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION.
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_END_ABSTRACT() \
|
||||
} \
|
||||
private: /* dummy typedef so that the macro can still end with ';'*/ \
|
||||
typedef int CppUnitDummyTypedefForSemiColonEnding__
|
||||
|
||||
|
||||
/*! \brief Add a test to the suite (for custom test macro).
|
||||
*
|
||||
* The specified test will be added to the test suite being declared. This macro
|
||||
* is intended for \e advanced usage, to extend %CppUnit by creating new macro such
|
||||
* as CPPUNIT_TEST_EXCEPTION()...
|
||||
*
|
||||
* Between macro CPPUNIT_TEST_SUITE() and CPPUNIT_TEST_SUITE_END(), you can assume
|
||||
* that the following variables can be used:
|
||||
* \code
|
||||
* typedef TestSuiteBuilder<TestFixtureType> TestSuiteBuilderType;
|
||||
* TestSuiteBuilderType &context;
|
||||
* \endcode
|
||||
*
|
||||
* \c context can be used to name test case, create new test fixture instance,
|
||||
* or add test case to the test fixture suite.
|
||||
*
|
||||
* Below is an example that show how to use this macro to create new macro to add
|
||||
* test to the fixture suite. The macro below show how you would add a new type
|
||||
* of test case which fails if the execution last more than a given time limit.
|
||||
* It relies on an imaginary TimeOutTestCaller class which has an interface similar
|
||||
* to TestCaller.
|
||||
*
|
||||
* \code
|
||||
* #define CPPUNITEX_TEST_TIMELIMIT( testMethod, timeLimit ) \
|
||||
* CPPUNIT_TEST_SUITE_ADD_TEST( (new TimeOutTestCaller<TestFixtureType>( \
|
||||
* namer.getTestNameFor( #testMethod ), \
|
||||
* &TestFixtureType::testMethod, \
|
||||
* factory.makeFixture(), \
|
||||
* timeLimit ) ) )
|
||||
*
|
||||
* class PerformanceTest : CppUnit::TestFixture
|
||||
* {
|
||||
* public:
|
||||
* CPPUNIT_TEST_SUITE( PerformanceTest );
|
||||
* CPPUNITEX_TEST_TIMELIMIT( testSortReverseOrder, 5.0 );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
*
|
||||
* void testSortReverseOrder();
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* \param test Test to add to the suite. Must be a subclass of Test. The test name
|
||||
* should have been obtained using TestNamer::getTestNameFor().
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_ADD_TEST( test ) \
|
||||
context.addTest( test )
|
||||
|
||||
/*! \brief Add a method to the suite.
|
||||
* \param testMethod Name of the method of the test case to add to the
|
||||
* suite. The signature of the method must be of
|
||||
* type: void testMethod();
|
||||
* \see CPPUNIT_TEST_SUITE.
|
||||
*/
|
||||
#define CPPUNIT_TEST( testMethod ) \
|
||||
CPPUNIT_TEST_SUITE_ADD_TEST( \
|
||||
( new CPPUNIT_NS::TestCaller<TestFixtureType>( \
|
||||
context.getTestNameFor( #testMethod), \
|
||||
&TestFixtureType::testMethod, \
|
||||
context.makeFixture() ) ) )
|
||||
|
||||
/*! \brief Add a test which fail if the specified exception is not caught.
|
||||
*
|
||||
* Example:
|
||||
* \code
|
||||
* #include <cppunit/extensions/HelperMacros.h>
|
||||
* #include <vector>
|
||||
* class MyTest : public CppUnit::TestFixture {
|
||||
* CPPUNIT_TEST_SUITE( MyTest );
|
||||
* CPPUNIT_TEST_EXCEPTION( testVectorAtThrow, std::invalid_argument );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
* public:
|
||||
* void testVectorAtThrow()
|
||||
* {
|
||||
* std::vector<int> v;
|
||||
* v.at( 1 ); // must throw exception std::invalid_argument
|
||||
* }
|
||||
* };
|
||||
* \endcode
|
||||
*
|
||||
* \param testMethod Name of the method of the test case to add to the suite.
|
||||
* \param ExceptionType Type of the exception that must be thrown by the test
|
||||
* method.
|
||||
* \deprecated Use the assertion macro CPPUNIT_ASSERT_THROW instead.
|
||||
*/
|
||||
#define CPPUNIT_TEST_EXCEPTION( testMethod, ExceptionType ) \
|
||||
CPPUNIT_TEST_SUITE_ADD_TEST( \
|
||||
(new CPPUNIT_NS::ExceptionTestCaseDecorator< ExceptionType >( \
|
||||
new CPPUNIT_NS::TestCaller< TestFixtureType >( \
|
||||
context.getTestNameFor( #testMethod ), \
|
||||
&TestFixtureType::testMethod, \
|
||||
context.makeFixture() ) ) ) )
|
||||
|
||||
/*! \brief Adds a test case which is excepted to fail.
|
||||
*
|
||||
* The added test case expect an assertion to fail. You usually used that type
|
||||
* of test case when testing custom assertion macros.
|
||||
*
|
||||
* \code
|
||||
* CPPUNIT_TEST_FAIL( testAssertFalseFail );
|
||||
*
|
||||
* void testAssertFalseFail()
|
||||
* {
|
||||
* CPPUNIT_ASSERT( false );
|
||||
* }
|
||||
* \endcode
|
||||
* \see CreatingNewAssertions.
|
||||
* \deprecated Use the assertion macro CPPUNIT_ASSERT_ASSERTION_FAIL instead.
|
||||
*/
|
||||
#define CPPUNIT_TEST_FAIL( testMethod ) \
|
||||
CPPUNIT_TEST_EXCEPTION( testMethod, CPPUNIT_NS::Exception )
|
||||
|
||||
/*! \brief Adds some custom test cases.
|
||||
*
|
||||
* Use this to add one or more test cases to the fixture suite. The specified
|
||||
* method is called with a context parameter that can be used to name,
|
||||
* instantiate fixture, and add instantiated test case to the fixture suite.
|
||||
* The specified method must have the following signature:
|
||||
* \code
|
||||
* static void aMethodName( TestSuiteBuilderContextType &context );
|
||||
* \endcode
|
||||
*
|
||||
* \c TestSuiteBuilderContextType is typedef to
|
||||
* TestSuiteBuilderContext<TestFixtureType> declared by CPPUNIT_TEST_SUITE().
|
||||
*
|
||||
* Here is an example that add two custom tests:
|
||||
*
|
||||
* \code
|
||||
* #include <cppunit/extensions/HelperMacros.h>
|
||||
*
|
||||
* class MyTest : public CppUnit::TestFixture {
|
||||
* CPPUNIT_TEST_SUITE( MyTest );
|
||||
* CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( addTimeOutTests );
|
||||
* CPPUNIT_TEST_SUITE_END();
|
||||
* public:
|
||||
* static void addTimeOutTests( TestSuiteBuilderContextType &context )
|
||||
* {
|
||||
* context.addTest( new TimeOutTestCaller( context.getTestNameFor( "test1" ) ),
|
||||
* &MyTest::test1,
|
||||
* context.makeFixture(),
|
||||
* 5.0 );
|
||||
* context.addTest( new TimeOutTestCaller( context.getTestNameFor( "test2" ) ),
|
||||
* &MyTest::test2,
|
||||
* context.makeFixture(),
|
||||
* 5.0 );
|
||||
* }
|
||||
*
|
||||
* void test1()
|
||||
* {
|
||||
* // Do some test that may never end...
|
||||
* }
|
||||
*
|
||||
* void test2()
|
||||
* {
|
||||
* // Do some test that may never end...
|
||||
* }
|
||||
* };
|
||||
* \endcode
|
||||
* @param testAdderMethod Name of the method called to add the test cases.
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( testAdderMethod ) \
|
||||
testAdderMethod( context )
|
||||
|
||||
/*! \brief Adds a property to the test suite builder context.
|
||||
* \param APropertyKey Key of the property to add.
|
||||
* \param APropertyValue Value for the added property.
|
||||
* Example:
|
||||
* \code
|
||||
* CPPUNIT_TEST_SUITE_PROPERTY("XmlFileName", "paraTest.xml"); \endcode
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_PROPERTY( APropertyKey, APropertyValue ) \
|
||||
context.addProperty( std::string(APropertyKey), \
|
||||
std::string(APropertyValue) )
|
||||
|
||||
/** @}
|
||||
*/
|
||||
|
||||
|
||||
/*! Adds the specified fixture suite to the unnamed registry.
|
||||
* \ingroup CreatingTestSuite
|
||||
*
|
||||
* This macro declares a static variable whose construction
|
||||
* causes a test suite factory to be inserted in a global registry
|
||||
* of such factories. The registry is available by calling
|
||||
* the static function CppUnit::TestFactoryRegistry::getRegistry().
|
||||
*
|
||||
* \param ATestFixtureType Type of the test case class.
|
||||
* \warning This macro should be used only once per line of code (the line
|
||||
* number is used to name a hidden static variable).
|
||||
* \see CPPUNIT_TEST_SUITE_NAMED_REGISTRATION
|
||||
* \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT
|
||||
* \see CPPUNIT_REGISTRY_ADD
|
||||
* \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite,
|
||||
* CppUnit::TestFactoryRegistry.
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_REGISTRATION( ATestFixtureType ) \
|
||||
static CPPUNIT_NS::AutoRegisterSuite< ATestFixtureType > \
|
||||
CPPUNIT_MAKE_UNIQUE_NAME(autoRegisterRegistry__ )
|
||||
|
||||
|
||||
/** Adds the specified fixture suite to the specified registry suite.
|
||||
* \ingroup CreatingTestSuite
|
||||
*
|
||||
* This macro declares a static variable whose construction
|
||||
* causes a test suite factory to be inserted in the global registry
|
||||
* suite of the specified name. The registry is available by calling
|
||||
* the static function CppUnit::TestFactoryRegistry::getRegistry().
|
||||
*
|
||||
* For the suite name, use a string returned by a static function rather
|
||||
* than a hardcoded string. That way, you can know what are the name of
|
||||
* named registry and you don't risk mistyping the registry name.
|
||||
*
|
||||
* \code
|
||||
* // MySuites.h
|
||||
* namespace MySuites {
|
||||
* std::string math() {
|
||||
* return "Math";
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* // ComplexNumberTest.cpp
|
||||
* #include "MySuites.h"
|
||||
*
|
||||
* CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ComplexNumberTest, MySuites::math() );
|
||||
* \endcode
|
||||
*
|
||||
* \param ATestFixtureType Type of the test case class.
|
||||
* \param suiteName Name of the global registry suite the test suite is
|
||||
* registered into.
|
||||
* \warning This macro should be used only once per line of code (the line
|
||||
* number is used to name a hidden static variable).
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION
|
||||
* \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT
|
||||
* \see CPPUNIT_REGISTRY_ADD
|
||||
* \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite,
|
||||
* CppUnit::TestFactoryRegistry..
|
||||
*/
|
||||
#define CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ATestFixtureType, suiteName ) \
|
||||
static CPPUNIT_NS::AutoRegisterSuite< ATestFixtureType > \
|
||||
CPPUNIT_MAKE_UNIQUE_NAME(autoRegisterRegistry__ )(suiteName)
|
||||
|
||||
/*! Adds that the specified registry suite to another registry suite.
|
||||
* \ingroup CreatingTestSuite
|
||||
*
|
||||
* Use this macros to automatically create test registry suite hierarchy. For example,
|
||||
* if you want to create the following hierarchy:
|
||||
* - Math
|
||||
* - IntegerMath
|
||||
* - FloatMath
|
||||
* - FastFloat
|
||||
* - StandardFloat
|
||||
*
|
||||
* You can do this automatically with:
|
||||
* \code
|
||||
* CPPUNIT_REGISTRY_ADD( "FastFloat", "FloatMath" );
|
||||
* CPPUNIT_REGISTRY_ADD( "IntegerMath", "Math" );
|
||||
* CPPUNIT_REGISTRY_ADD( "FloatMath", "Math" );
|
||||
* CPPUNIT_REGISTRY_ADD( "StandardFloat", "FloatMath" );
|
||||
* \endcode
|
||||
*
|
||||
* There is no specific order of declaration. Think of it as declaring links.
|
||||
*
|
||||
* You register the test in each suite using CPPUNIT_TEST_SUITE_NAMED_REGISTRATION.
|
||||
*
|
||||
* \param which Name of the registry suite to add to the registry suite named \a to.
|
||||
* \param to Name of the registry suite \a which is added to.
|
||||
* \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION.
|
||||
*/
|
||||
#define CPPUNIT_REGISTRY_ADD( which, to ) \
|
||||
static CPPUNIT_NS::AutoRegisterRegistry \
|
||||
CPPUNIT_MAKE_UNIQUE_NAME( autoRegisterRegistry__ )( which, to )
|
||||
|
||||
/*! Adds that the specified registry suite to the default registry suite.
|
||||
* \ingroup CreatingTestSuite
|
||||
*
|
||||
* This macro is just like CPPUNIT_REGISTRY_ADD except the specified registry
|
||||
* suite is added to the default suite (root suite).
|
||||
*
|
||||
* \param which Name of the registry suite to add to the default registry suite.
|
||||
* \see CPPUNIT_REGISTRY_ADD.
|
||||
*/
|
||||
#define CPPUNIT_REGISTRY_ADD_TO_DEFAULT( which ) \
|
||||
static CPPUNIT_NS::AutoRegisterRegistry \
|
||||
CPPUNIT_MAKE_UNIQUE_NAME( autoRegisterRegistry__ )( which )
|
||||
|
||||
// Backwards compatibility
|
||||
// (Not tested!)
|
||||
|
||||
#if CPPUNIT_ENABLE_CU_TEST_MACROS
|
||||
|
||||
#define CU_TEST_SUITE(tc) CPPUNIT_TEST_SUITE(tc)
|
||||
#define CU_TEST_SUB_SUITE(tc,sc) CPPUNIT_TEST_SUB_SUITE(tc,sc)
|
||||
#define CU_TEST(tm) CPPUNIT_TEST(tm)
|
||||
#define CU_TEST_SUITE_END() CPPUNIT_TEST_SUITE_END()
|
||||
#define CU_TEST_SUITE_REGISTRATION(tc) CPPUNIT_TEST_SUITE_REGISTRATION(tc)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_HELPERMACROS_H
|
||||
95
3rdParty/include/cppunit/extensions/Orthodox.h
vendored
95
3rdParty/include/cppunit/extensions/Orthodox.h
vendored
@@ -1,95 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_ORTHODOX_H
|
||||
#define CPPUNIT_EXTENSIONS_ORTHODOX_H
|
||||
|
||||
#include <cppunit/TestCase.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*
|
||||
* Orthodox performs a simple set of tests on an arbitary
|
||||
* class to make sure that it supports at least the
|
||||
* following operations:
|
||||
*
|
||||
* default construction - constructor
|
||||
* equality/inequality - operator== && operator!=
|
||||
* assignment - operator=
|
||||
* negation - operator!
|
||||
* safe passage - copy construction
|
||||
*
|
||||
* If operations for each of these are not declared
|
||||
* the template will not instantiate. If it does
|
||||
* instantiate, tests are performed to make sure
|
||||
* that the operations have correct semantics.
|
||||
*
|
||||
* Adding an orthodox test to a suite is very
|
||||
* easy:
|
||||
*
|
||||
* public: Test *suite () {
|
||||
* TestSuite *suiteOfTests = new TestSuite;
|
||||
* suiteOfTests->addTest (new ComplexNumberTest ("testAdd");
|
||||
* suiteOfTests->addTest (new TestCaller<Orthodox<Complex> > ());
|
||||
* return suiteOfTests;
|
||||
* }
|
||||
*
|
||||
* Templated test cases be very useful when you are want to
|
||||
* make sure that a group of classes have the same form.
|
||||
*
|
||||
* see TestSuite
|
||||
*/
|
||||
|
||||
|
||||
template <class ClassUnderTest> class Orthodox : public TestCase
|
||||
{
|
||||
public:
|
||||
Orthodox () : TestCase ("Orthodox") {}
|
||||
|
||||
protected:
|
||||
ClassUnderTest call (ClassUnderTest object);
|
||||
void runTest ();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Run an orthodoxy test
|
||||
template <class ClassUnderTest> void Orthodox<ClassUnderTest>::runTest ()
|
||||
{
|
||||
// make sure we have a default constructor
|
||||
ClassUnderTest a, b, c;
|
||||
|
||||
// make sure we have an equality operator
|
||||
CPPUNIT_ASSERT (a == b);
|
||||
|
||||
// check the inverse
|
||||
b.operator= (a.operator! ());
|
||||
CPPUNIT_ASSERT (a != b);
|
||||
|
||||
// double inversion
|
||||
b = !!a;
|
||||
CPPUNIT_ASSERT (a == b);
|
||||
|
||||
// invert again
|
||||
b = !a;
|
||||
|
||||
// check calls
|
||||
c = a;
|
||||
CPPUNIT_ASSERT (c == call (a));
|
||||
|
||||
c = b;
|
||||
CPPUNIT_ASSERT (c == call (b));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Exercise a call
|
||||
template <class ClassUnderTest>
|
||||
ClassUnderTest Orthodox<ClassUnderTest>::call (ClassUnderTest object)
|
||||
{
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif
|
||||
@@ -1,43 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_REPEATEDTEST_H
|
||||
#define CPPUNIT_EXTENSIONS_REPEATEDTEST_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/extensions/TestDecorator.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestResult;
|
||||
|
||||
|
||||
/*! \brief Decorator that runs a test repeatedly.
|
||||
*
|
||||
* Does not assume ownership of the test it decorates
|
||||
*/
|
||||
class CPPUNIT_API RepeatedTest : public TestDecorator
|
||||
{
|
||||
public:
|
||||
RepeatedTest( Test *test,
|
||||
int timesRepeat ) :
|
||||
TestDecorator( test ),
|
||||
m_timesRepeat(timesRepeat)
|
||||
{
|
||||
}
|
||||
|
||||
void run( TestResult *result );
|
||||
|
||||
int countTestCases() const;
|
||||
|
||||
private:
|
||||
RepeatedTest( const RepeatedTest & );
|
||||
void operator=( const RepeatedTest & );
|
||||
|
||||
const int m_timesRepeat;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_REPEATEDTEST_H
|
||||
@@ -1,40 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTCASEDECORATOR_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTCASEDECORATOR_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/TestCase.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Decorator for Test cases.
|
||||
*
|
||||
* TestCaseDecorator provides an alternate means to extend functionality
|
||||
* of a test class without subclassing the test. Instead, one can
|
||||
* subclass the decorater and use it to wrap the test class.
|
||||
*
|
||||
* Does not assume ownership of the test it decorates
|
||||
*/
|
||||
class CPPUNIT_API TestCaseDecorator : public TestCase
|
||||
{
|
||||
public:
|
||||
TestCaseDecorator( TestCase *test );
|
||||
~TestCaseDecorator();
|
||||
|
||||
std::string getName() const;
|
||||
|
||||
void setUp();
|
||||
|
||||
void tearDown();
|
||||
|
||||
void runTest();
|
||||
|
||||
protected:
|
||||
TestCase *m_test;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTDECORATOR_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTDECORATOR_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/Test.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class TestResult;
|
||||
|
||||
|
||||
/*! \brief Decorator for Tests.
|
||||
*
|
||||
* TestDecorator provides an alternate means to extend functionality
|
||||
* of a test class without subclassing the test. Instead, one can
|
||||
* subclass the decorater and use it to wrap the test class.
|
||||
*
|
||||
* Does not assume ownership of the test it decorates
|
||||
*/
|
||||
class CPPUNIT_API TestDecorator : public Test
|
||||
{
|
||||
public:
|
||||
TestDecorator( Test *test );
|
||||
~TestDecorator();
|
||||
|
||||
int countTestCases() const;
|
||||
|
||||
std::string getName() const;
|
||||
|
||||
void run( TestResult *result );
|
||||
|
||||
int getChildTestCount() const;
|
||||
|
||||
protected:
|
||||
Test *doGetChildTestAt( int index ) const;
|
||||
|
||||
Test *m_test;
|
||||
|
||||
private:
|
||||
TestDecorator( const TestDecorator &);
|
||||
void operator =( const TestDecorator & );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTFACTORY_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTFACTORY_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
|
||||
/*! \brief Abstract Test factory.
|
||||
*/
|
||||
class CPPUNIT_API TestFactory
|
||||
{
|
||||
public:
|
||||
virtual ~TestFactory() {}
|
||||
|
||||
/*! Makes a new test.
|
||||
* \return A new Test.
|
||||
*/
|
||||
virtual Test* makeTest() = 0;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_TESTFACTORY_H
|
||||
@@ -1,182 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/portability/CppUnitSet.h>
|
||||
#include <cppunit/extensions/TestFactory.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class TestSuite;
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::set<TestFactory *>;
|
||||
#endif
|
||||
|
||||
|
||||
/*! \brief Registry for TestFactory.
|
||||
* \ingroup CreatingTestSuite
|
||||
*
|
||||
* Notes that the registry \b DON'T assumes lifetime control for any registered tests
|
||||
* anymore.
|
||||
*
|
||||
* The <em>default</em> registry is the registry returned by getRegistry() with the
|
||||
* default name parameter value.
|
||||
*
|
||||
* To register tests, use the macros:
|
||||
* - CPPUNIT_TEST_SUITE_REGISTRATION(): to add tests in the default registry.
|
||||
* - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(): to add tests in a named registry.
|
||||
*
|
||||
* Example 1: retreiving a suite that contains all the test registered with
|
||||
* CPPUNIT_TEST_SUITE_REGISTRATION().
|
||||
* \code
|
||||
* CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry();
|
||||
* CppUnit::TestSuite *suite = registry.makeTest();
|
||||
* \endcode
|
||||
*
|
||||
* Example 2: retreiving a suite that contains all the test registered with
|
||||
* \link CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ..., "Math" )\endlink.
|
||||
* \code
|
||||
* CppUnit::TestFactoryRegistry &mathRegistry = CppUnit::TestFactoryRegistry::getRegistry( "Math" );
|
||||
* CppUnit::TestSuite *mathSuite = mathRegistry.makeTest();
|
||||
* \endcode
|
||||
*
|
||||
* Example 3: creating a test suite hierarchy composed of unnamed registration and
|
||||
* named registration:
|
||||
* - All Tests
|
||||
* - tests registered with CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ..., "Graph" )
|
||||
* - tests registered with CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ..., "Math" )
|
||||
* - tests registered with CPPUNIT_TEST_SUITE_REGISTRATION
|
||||
*
|
||||
* \code
|
||||
* CppUnit::TestSuite *rootSuite = new CppUnit::TestSuite( "All tests" );
|
||||
* rootSuite->addTest( CppUnit::TestFactoryRegistry::getRegistry( "Graph" ).makeTest() );
|
||||
* rootSuite->addTest( CppUnit::TestFactoryRegistry::getRegistry( "Math" ).makeTest() );
|
||||
* CppUnit::TestFactoryRegistry::getRegistry().addTestToSuite( rootSuite );
|
||||
* \endcode
|
||||
*
|
||||
* The same result can be obtained with:
|
||||
* \code
|
||||
* CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry();
|
||||
* registry.addRegistry( "Graph" );
|
||||
* registry.addRegistry( "Math" );
|
||||
* CppUnit::TestSuite *suite = registry.makeTest();
|
||||
* \endcode
|
||||
*
|
||||
* Since a TestFactoryRegistry is a TestFactory, the named registries can be
|
||||
* registered in the unnamed registry, creating the hierarchy links.
|
||||
*
|
||||
* \see TestSuiteFactory, AutoRegisterSuite
|
||||
* \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION
|
||||
*/
|
||||
class CPPUNIT_API TestFactoryRegistry : public TestFactory
|
||||
{
|
||||
public:
|
||||
/** Constructs the registry with the specified name.
|
||||
* \param name Name of the registry. It is the name of TestSuite returned by
|
||||
* makeTest().
|
||||
*/
|
||||
TestFactoryRegistry( std::string name );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~TestFactoryRegistry();
|
||||
|
||||
/** Returns a new TestSuite that contains the registered test.
|
||||
* \return A new TestSuite which contains all the test added using
|
||||
* registerFactory(TestFactory *).
|
||||
*/
|
||||
virtual Test *makeTest();
|
||||
|
||||
/** Returns a named registry.
|
||||
*
|
||||
* If the \a name is left to its default value, then the registry that is returned is
|
||||
* the one used by CPPUNIT_TEST_SUITE_REGISTRATION(): the 'top' level registry.
|
||||
*
|
||||
* \param name Name of the registry to return.
|
||||
* \return Registry. If the registry does not exist, it is created with the
|
||||
* specified name.
|
||||
*/
|
||||
static TestFactoryRegistry &getRegistry( const std::string &name = "All Tests" );
|
||||
|
||||
/** Adds the registered tests to the specified suite.
|
||||
* \param suite Suite the tests are added to.
|
||||
*/
|
||||
void addTestToSuite( TestSuite *suite );
|
||||
|
||||
/** Adds the specified TestFactory to the registry.
|
||||
*
|
||||
* \param factory Factory to register.
|
||||
*/
|
||||
void registerFactory( TestFactory *factory );
|
||||
|
||||
/*! Removes the specified TestFactory from the registry.
|
||||
*
|
||||
* The specified factory is not destroyed.
|
||||
* \param factory Factory to remove from the registry.
|
||||
* \todo Address case when trying to remove a TestRegistryFactory.
|
||||
*/
|
||||
void unregisterFactory( TestFactory *factory );
|
||||
|
||||
/*! Adds a registry to the registry.
|
||||
*
|
||||
* Convenience method to help create test hierarchy. See TestFactoryRegistry detail
|
||||
* for examples of use. Calling this method is equivalent to:
|
||||
* \code
|
||||
* this->registerFactory( TestFactoryRegistry::getRegistry( name ) );
|
||||
* \endcode
|
||||
*
|
||||
* \param name Name of the registry to add.
|
||||
*/
|
||||
void addRegistry( const std::string &name );
|
||||
|
||||
/*! Tests if the registry is valid.
|
||||
*
|
||||
* This method should be used when unregistering test factory on static variable
|
||||
* destruction to ensure that the registry has not been already destroyed (in
|
||||
* that case there is no need to unregister the test factory).
|
||||
*
|
||||
* You should not concern yourself with this method unless you are writing a class
|
||||
* like AutoRegisterSuite.
|
||||
*
|
||||
* \return \c true if the specified registry has not been destroyed,
|
||||
* otherwise returns \c false.
|
||||
* \see AutoRegisterSuite.
|
||||
*/
|
||||
static bool isValid();
|
||||
|
||||
/** Adds the specified TestFactory with a specific name (DEPRECATED).
|
||||
* \param name Name associated to the factory.
|
||||
* \param factory Factory to register.
|
||||
* \deprecated Use registerFactory( TestFactory *) instead.
|
||||
*/
|
||||
void registerFactory( const std::string &name,
|
||||
TestFactory *factory );
|
||||
|
||||
private:
|
||||
TestFactoryRegistry( const TestFactoryRegistry © );
|
||||
void operator =( const TestFactoryRegistry © );
|
||||
|
||||
private:
|
||||
typedef CppUnitSet<TestFactory *, std::less<TestFactory*> > Factories;
|
||||
Factories m_factories;
|
||||
|
||||
std::string m_name;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H
|
||||
@@ -1,50 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class TestFixture;
|
||||
|
||||
/*! \brief Abstract TestFixture factory (Implementation).
|
||||
*
|
||||
* Implementation detail. Use by HelperMacros to handle TestFixture hierarchy.
|
||||
*/
|
||||
class TestFixtureFactory
|
||||
{
|
||||
public:
|
||||
//! Creates a new TestFixture instance.
|
||||
virtual TestFixture *makeFixture() =0;
|
||||
|
||||
virtual ~TestFixtureFactory() {}
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Concret TestFixture factory (Implementation).
|
||||
*
|
||||
* Implementation detail. Use by HelperMacros to handle TestFixture hierarchy.
|
||||
*/
|
||||
template<class TestFixtureType>
|
||||
class ConcretTestFixtureFactory : public CPPUNIT_NS::TestFixtureFactory
|
||||
{
|
||||
/*! \brief Returns a new TestFixture instance.
|
||||
* \return A new fixture instance. The fixture instance is returned by
|
||||
* the TestFixtureFactory passed on construction. The actual type
|
||||
* is that of the fixture on which the static method suite()
|
||||
* was called.
|
||||
*/
|
||||
TestFixture *makeFixture()
|
||||
{
|
||||
return new TestFixtureType();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H
|
||||
|
||||
89
3rdParty/include/cppunit/extensions/TestNamer.h
vendored
89
3rdParty/include/cppunit/extensions/TestNamer.h
vendored
@@ -1,89 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTNAMER_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTNAMER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
|
||||
#if CPPUNIT_HAVE_RTTI
|
||||
# include <typeinfo>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*! \def CPPUNIT_TESTNAMER_DECL( variableName, FixtureType )
|
||||
* \brief Declares a TestNamer.
|
||||
*
|
||||
* Declares a TestNamer for the specified type, using RTTI if enabled, otherwise
|
||||
* using macro string expansion.
|
||||
*
|
||||
* RTTI is used if CPPUNIT_USE_TYPEINFO_NAME is defined and not null.
|
||||
*
|
||||
* \code
|
||||
* void someMethod()
|
||||
* {
|
||||
* CPPUNIT_TESTNAMER_DECL( namer, AFixtureType );
|
||||
* std::string fixtureName = namer.getFixtureName();
|
||||
* ...
|
||||
* \endcode
|
||||
*
|
||||
* \relates TestNamer
|
||||
* \see TestNamer
|
||||
*/
|
||||
#if CPPUNIT_USE_TYPEINFO_NAME
|
||||
# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
|
||||
CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) )
|
||||
#else
|
||||
# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
|
||||
CPPUNIT_NS::TestNamer variableName( std::string(#FixtureType) )
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Names a test or a fixture suite.
|
||||
*
|
||||
* TestNamer is usually instantiated using CPPUNIT_TESTNAMER_DECL.
|
||||
*
|
||||
*/
|
||||
class CPPUNIT_API TestNamer
|
||||
{
|
||||
public:
|
||||
#if CPPUNIT_HAVE_RTTI
|
||||
/*! \brief Constructs a namer using the fixture's type-info.
|
||||
* \param typeInfo Type-info of the fixture type. Use to name the fixture suite.
|
||||
*/
|
||||
TestNamer( const std::type_info &typeInfo );
|
||||
#endif
|
||||
|
||||
/*! \brief Constructs a namer using the specified fixture name.
|
||||
* \param fixtureName Name of the fixture suite. Usually extracted using a macro.
|
||||
*/
|
||||
TestNamer( const std::string &fixtureName );
|
||||
|
||||
virtual ~TestNamer();
|
||||
|
||||
/*! \brief Returns the name of the fixture.
|
||||
* \return Name of the fixture.
|
||||
*/
|
||||
virtual std::string getFixtureName() const;
|
||||
|
||||
/*! \brief Returns the name of the test for the specified method.
|
||||
* \param testMethodName Name of the method that implements a test.
|
||||
* \return A string that is the concatenation of the test fixture name
|
||||
* (returned by getFixtureName()) and\a testMethodName,
|
||||
* separated using '::'. This provides a fairly unique name for a given
|
||||
* test.
|
||||
*/
|
||||
virtual std::string getTestNameFor( const std::string &testMethodName ) const;
|
||||
|
||||
protected:
|
||||
std::string m_fixtureName;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_TESTNAMER_H
|
||||
|
||||
34
3rdParty/include/cppunit/extensions/TestSetUp.h
vendored
34
3rdParty/include/cppunit/extensions/TestSetUp.h
vendored
@@ -1,34 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTSETUP_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTSETUP_H
|
||||
|
||||
#include <cppunit/extensions/TestDecorator.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestResult;
|
||||
|
||||
/*! \brief Decorates a test by providing a specific setUp() and tearDown().
|
||||
*/
|
||||
class CPPUNIT_API TestSetUp : public TestDecorator
|
||||
{
|
||||
public:
|
||||
TestSetUp( Test *test );
|
||||
|
||||
void run( TestResult *result );
|
||||
|
||||
protected:
|
||||
virtual void setUp();
|
||||
virtual void tearDown();
|
||||
|
||||
private:
|
||||
TestSetUp( const TestSetUp & );
|
||||
void operator =( const TestSetUp & );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_TESTSETUP_H
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
#ifndef CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
|
||||
#define CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/portability/CppUnitMap.h>
|
||||
#include <string>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
class TestSuite;
|
||||
class TestFixture;
|
||||
class TestFixtureFactory;
|
||||
class TestNamer;
|
||||
|
||||
/*! \brief Context used when creating test suite in HelperMacros.
|
||||
*
|
||||
* Base class for all context used when creating test suite. The
|
||||
* actual context type during test suite creation is TestSuiteBuilderContext.
|
||||
*
|
||||
* \sa CPPUNIT_TEST_SUITE, CPPUNIT_TEST_SUITE_ADD_TEST,
|
||||
* CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS.
|
||||
*/
|
||||
class CPPUNIT_API TestSuiteBuilderContextBase
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs a new context.
|
||||
*
|
||||
* You should not use this. The context is created in
|
||||
* CPPUNIT_TEST_SUITE().
|
||||
*/
|
||||
TestSuiteBuilderContextBase( TestSuite &suite,
|
||||
const TestNamer &namer,
|
||||
TestFixtureFactory &factory );
|
||||
|
||||
virtual ~TestSuiteBuilderContextBase();
|
||||
|
||||
/*! \brief Adds a test to the fixture suite.
|
||||
*
|
||||
* \param test Test to add to the fixture suite. Must not be \c NULL.
|
||||
*/
|
||||
void addTest( Test *test );
|
||||
|
||||
/*! \brief Returns the fixture name.
|
||||
* \return Fixture name. It is the name used to name the fixture
|
||||
* suite.
|
||||
*/
|
||||
std::string getFixtureName() const;
|
||||
|
||||
/*! \brief Returns the name of the test for the specified method.
|
||||
*
|
||||
* \param testMethodName Name of the method that implements a test.
|
||||
* \return A string that is the concatenation of the test fixture name
|
||||
* (returned by getFixtureName()) and\a testMethodName,
|
||||
* separated using '::'. This provides a fairly unique name for a given
|
||||
* test.
|
||||
*/
|
||||
std::string getTestNameFor( const std::string &testMethodName ) const;
|
||||
|
||||
/*! \brief Adds property pair.
|
||||
* \param key PropertyKey string to add.
|
||||
* \param value PropertyValue string to add.
|
||||
*/
|
||||
void addProperty( const std::string &key,
|
||||
const std::string &value );
|
||||
|
||||
/*! \brief Returns property value assigned to param key.
|
||||
* \param key PropertyKey string.
|
||||
*/
|
||||
const std::string getStringProperty( const std::string &key ) const;
|
||||
|
||||
protected:
|
||||
TestFixture *makeTestFixture() const;
|
||||
|
||||
// Notes: we use a vector here instead of a map to work-around the
|
||||
// shared std::map in dll bug in VC6.
|
||||
// See http://www.dinkumware.com/vc_fixes.html for detail.
|
||||
typedef std::pair<std::string,std::string> Property;
|
||||
typedef CppUnitVector<Property> Properties;
|
||||
|
||||
TestSuite &m_suite;
|
||||
const TestNamer &m_namer;
|
||||
TestFixtureFactory &m_factory;
|
||||
|
||||
private:
|
||||
Properties m_properties;
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Type-sage context used when creating test suite in HelperMacros.
|
||||
*
|
||||
* \sa TestSuiteBuilderContextBase.
|
||||
*/
|
||||
template<class Fixture>
|
||||
class TestSuiteBuilderContext : public TestSuiteBuilderContextBase
|
||||
{
|
||||
public:
|
||||
typedef Fixture FixtureType;
|
||||
|
||||
TestSuiteBuilderContext( TestSuiteBuilderContextBase &contextBase )
|
||||
: TestSuiteBuilderContextBase( contextBase )
|
||||
{
|
||||
}
|
||||
|
||||
/*! \brief Returns a new TestFixture instance.
|
||||
* \return A new fixture instance. The fixture instance is returned by
|
||||
* the TestFixtureFactory passed on construction. The actual type
|
||||
* is that of the fixture on which the static method suite()
|
||||
* was called.
|
||||
*/
|
||||
FixtureType *makeFixture() const
|
||||
{
|
||||
return CPPUNIT_STATIC_CAST( FixtureType *,
|
||||
TestSuiteBuilderContextBase::makeTestFixture() );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#ifndef CPPUNIT_EXTENSIONS_TESTSUITEFACTORY_H
|
||||
#define CPPUNIT_EXTENSIONS_TESTSUITEFACTORY_H
|
||||
|
||||
#include <cppunit/extensions/TestFactory.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
|
||||
/*! \brief TestFactory for TestFixture that implements a static suite() method.
|
||||
* \see AutoRegisterSuite.
|
||||
*/
|
||||
template<class TestCaseType>
|
||||
class TestSuiteFactory : public TestFactory
|
||||
{
|
||||
public:
|
||||
virtual Test *makeTest()
|
||||
{
|
||||
return TestCaseType::suite();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_EXTENSIONS_TESTSUITEFACTORY_H
|
||||
@@ -1,33 +0,0 @@
|
||||
#ifndef CPPUNIT_TYPEINFOHELPER_H
|
||||
#define CPPUNIT_TYPEINFOHELPER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_HAVE_RTTI
|
||||
|
||||
#include <typeinfo>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/**! \brief Helper to use type_info.
|
||||
*/
|
||||
class CPPUNIT_API TypeInfoHelper
|
||||
{
|
||||
public:
|
||||
/*! \brief Get the class name of the specified type_info.
|
||||
* \param info Info which the class name is extracted from.
|
||||
* \return The string returned by type_info::name() without
|
||||
* the "class" prefix. If the name is not prefixed
|
||||
* by "class", it is returned as this.
|
||||
*/
|
||||
static std::string getClassName( const std::type_info &info );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_HAVE_RTTI
|
||||
|
||||
#endif // CPPUNIT_TYPEINFOHELPER_H
|
||||
@@ -1,121 +0,0 @@
|
||||
#ifndef CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H
|
||||
#define CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Manages dynamic libraries.
|
||||
*
|
||||
* The Dynamic Library Manager provides a platform independent way to work with
|
||||
* dynamic library. It load a specific dynamic library, and can returns specific
|
||||
* symbol exported by the dynamic library.
|
||||
*
|
||||
* If an error occurs, a DynamicLibraryManagerException is thrown.
|
||||
*
|
||||
* \internal Implementation of the OS independent methods is in
|
||||
* DynamicLibraryManager.cpp.
|
||||
*
|
||||
* \internal Porting to a new platform:
|
||||
* - Adds platform detection in config/SelectDllLoader.h. Should define a specific
|
||||
* macro for that platform of the form: CPPUNIT_HAVE_XYZ_DLL_LOADER, where
|
||||
* XYZ is the platform.
|
||||
* - Makes a copy of UnixDynamicLibraryManager.cpp and named it after the platform.
|
||||
* - Updated the 'guard' in your file (CPPUNIT_HAVE_XYZ_DLL_LOADER) so that it is
|
||||
* only processed if the matching platform has been detected.
|
||||
* - Change the implementation of methods doLoadLibrary(), doReleaseLibrary(),
|
||||
* doFindSymbol() in your copy. Those methods usually maps directly to OS calls.
|
||||
* - Adds the file to the project.
|
||||
*/
|
||||
class DynamicLibraryManager
|
||||
{
|
||||
public:
|
||||
typedef void *Symbol;
|
||||
typedef void *LibraryHandle;
|
||||
|
||||
/*! \brief Loads the specified library.
|
||||
* \param libraryFileName Name of the library to load.
|
||||
* \exception DynamicLibraryManagerException if a failure occurs while loading
|
||||
* the library (fail to found or load the library).
|
||||
*/
|
||||
DynamicLibraryManager( const std::string &libraryFileName );
|
||||
|
||||
/// Releases the loaded library..
|
||||
~DynamicLibraryManager();
|
||||
|
||||
/*! \brief Returns a pointer on the specified symbol exported by the library.
|
||||
* \param symbol Name of the symbol exported by the library.
|
||||
* \return Pointer on the symbol. Should be casted to the actual type. Never \c NULL.
|
||||
* \exception DynamicLibraryManagerException if the symbol is not found.
|
||||
*/
|
||||
Symbol findSymbol( const std::string &symbol );
|
||||
|
||||
private:
|
||||
/*! Loads the specified library.
|
||||
* \param libraryName Name of the library to load.
|
||||
* \exception DynamicLibraryManagerException if a failure occurs while loading
|
||||
* the library (fail to found or load the library).
|
||||
*/
|
||||
void loadLibrary( const std::string &libraryName );
|
||||
|
||||
/*! Releases the loaded library.
|
||||
*
|
||||
* \warning Must NOT throw any exceptions (called from destructor).
|
||||
*/
|
||||
void releaseLibrary();
|
||||
|
||||
/*! Loads the specified library.
|
||||
*
|
||||
* May throw any exceptions (indicates failure).
|
||||
* \param libraryName Name of the library to load.
|
||||
* \return Handle of the loaded library. \c NULL indicates failure.
|
||||
*/
|
||||
LibraryHandle doLoadLibrary( const std::string &libraryName );
|
||||
|
||||
/*! Releases the loaded library.
|
||||
*
|
||||
* The handle of the library to free is in \c m_libraryHandle. It is never
|
||||
* \c NULL.
|
||||
* \warning Must NOT throw any exceptions (called from destructor).
|
||||
*/
|
||||
void doReleaseLibrary();
|
||||
|
||||
/*! Returns a pointer on the specified symbol exported by the library.
|
||||
*
|
||||
* May throw any exceptions (indicates failure).
|
||||
* \param symbol Name of the symbol exported by the library.
|
||||
* \return Pointer on the symbol. \c NULL indicates failure.
|
||||
*/
|
||||
Symbol doFindSymbol( const std::string &symbol );
|
||||
|
||||
/*! Returns detailed information about doLoadLibrary() failure.
|
||||
*
|
||||
* Called just after a failed call to doLoadLibrary() to get extra
|
||||
* error information.
|
||||
*
|
||||
* \return Detailed information about the failure of the call to
|
||||
* doLoadLibrary() that just failed.
|
||||
*/
|
||||
std::string getLastErrorDetail() const;
|
||||
|
||||
/// Prevents the use of the copy constructor.
|
||||
DynamicLibraryManager( const DynamicLibraryManager © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const DynamicLibraryManager © );
|
||||
|
||||
private:
|
||||
LibraryHandle m_libraryHandle;
|
||||
std::string m_libraryName;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#endif // CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H
|
||||
@@ -1,53 +0,0 @@
|
||||
#ifndef CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H
|
||||
#define CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Exception thrown by DynamicLibraryManager when a failure occurs.
|
||||
*
|
||||
* Use getCause() to know what function caused the failure.
|
||||
*
|
||||
*/
|
||||
class DynamicLibraryManagerException : public std::runtime_error
|
||||
{
|
||||
public:
|
||||
enum Cause
|
||||
{
|
||||
/// Failed to load the dynamic library
|
||||
loadingFailed =0,
|
||||
/// Symbol not found in the dynamic library
|
||||
symbolNotFound
|
||||
};
|
||||
|
||||
/// Failed to load the dynamic library or Symbol not found in the dynamic library.
|
||||
DynamicLibraryManagerException( const std::string &libraryName,
|
||||
const std::string &errorDetail,
|
||||
Cause cause );
|
||||
|
||||
~DynamicLibraryManagerException() throw()
|
||||
{
|
||||
}
|
||||
|
||||
Cause getCause() const;
|
||||
|
||||
const char *what() const throw();
|
||||
|
||||
private:
|
||||
std::string m_message;
|
||||
Cause m_cause;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#endif // CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H
|
||||
113
3rdParty/include/cppunit/plugin/PlugInManager.h
vendored
113
3rdParty/include/cppunit/plugin/PlugInManager.h
vendored
@@ -1,113 +0,0 @@
|
||||
#ifndef CPPUNIT_PLUGIN_PLUGINMANAGER_H
|
||||
#define CPPUNIT_PLUGIN_PLUGINMANAGER_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/plugin/PlugInParameters.h>
|
||||
struct CppUnitTestPlugIn;
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class DynamicLibraryManager;
|
||||
class TestResult;
|
||||
class XmlOutputter;
|
||||
|
||||
|
||||
/*! \brief Manges TestPlugIn.
|
||||
*/
|
||||
class CPPUNIT_API PlugInManager
|
||||
{
|
||||
public:
|
||||
/*! Constructs a PlugInManager object.
|
||||
*/
|
||||
PlugInManager();
|
||||
|
||||
/// Destructor.
|
||||
virtual ~PlugInManager();
|
||||
|
||||
/*! \brief Loads the specified plug-in.
|
||||
*
|
||||
* After being loaded, the CppUnitTestPlugIn::initialize() is called.
|
||||
*
|
||||
* \param libraryFileName Name of the file that contains the TestPlugIn.
|
||||
* \param parameters List of string passed to the plug-in.
|
||||
* \return Pointer on the DynamicLibraryManager associated to the library.
|
||||
* Valid until the library is unloaded. Never \c NULL.
|
||||
* \exception DynamicLibraryManagerException is thrown if an error occurs during loading.
|
||||
*/
|
||||
void load( const std::string &libraryFileName,
|
||||
const PlugInParameters ¶meters = PlugInParameters() );
|
||||
|
||||
/*! \brief Unloads the specified plug-in.
|
||||
* \param libraryFileName Name of the file that contains the TestPlugIn passed
|
||||
* to a previous call to load().
|
||||
*/
|
||||
void unload( const std::string &libraryFileName );
|
||||
|
||||
/*! \brief Gives a chance to each loaded plug-in to register TestListener.
|
||||
*
|
||||
* For each plug-in, call CppUnitTestPlugIn::addListener().
|
||||
*/
|
||||
void addListener( TestResult *eventManager );
|
||||
|
||||
/*! \brief Gives a chance to each loaded plug-in to unregister TestListener.
|
||||
* For each plug-in, call CppUnitTestPlugIn::removeListener().
|
||||
*/
|
||||
void removeListener( TestResult *eventManager );
|
||||
|
||||
/*! \brief Provides a way for the plug-in to register some XmlOutputterHook.
|
||||
*/
|
||||
void addXmlOutputterHooks( XmlOutputter *outputter );
|
||||
|
||||
/*! \brief Called when the XmlOutputter is destroyed.
|
||||
*
|
||||
* Can be used to free some resources allocated by addXmlOutputterHooks().
|
||||
*/
|
||||
void removeXmlOutputterHooks();
|
||||
|
||||
protected:
|
||||
/*! \brief (INTERNAL) Information about a specific plug-in.
|
||||
*/
|
||||
struct PlugInInfo
|
||||
{
|
||||
std::string m_fileName;
|
||||
DynamicLibraryManager *m_manager;
|
||||
CppUnitTestPlugIn *m_interface;
|
||||
};
|
||||
|
||||
/*! Unloads the specified plug-in.
|
||||
* \param plugIn Information about the plug-in.
|
||||
*/
|
||||
void unload( PlugInInfo &plugIn );
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
PlugInManager( const PlugInManager © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const PlugInManager © );
|
||||
|
||||
private:
|
||||
typedef CppUnitDeque<PlugInInfo> PlugIns;
|
||||
PlugIns m_plugIns;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
|
||||
#endif // CPPUNIT_PLUGIN_PLUGINMANAGER_H
|
||||
@@ -1,36 +0,0 @@
|
||||
#ifndef CPPUNIT_PLUGIN_PARAMETERS
|
||||
#define CPPUNIT_PLUGIN_PARAMETERS
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
#include <string>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
/*! \brief Test plug-ins parameters.
|
||||
*/
|
||||
class CPPUNIT_API PlugInParameters
|
||||
{
|
||||
public:
|
||||
/// Constructs plug-in parameters from the specified command-line.
|
||||
PlugInParameters( const std::string &commandLine = "" );
|
||||
|
||||
virtual ~PlugInParameters();
|
||||
|
||||
/// Returns the command line that was passed on construction.
|
||||
std::string getCommandLine() const;
|
||||
|
||||
private:
|
||||
std::string m_commandLine;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
|
||||
#endif // CPPUNIT_PLUGIN_PARAMETERS
|
||||
200
3rdParty/include/cppunit/plugin/TestPlugIn.h
vendored
200
3rdParty/include/cppunit/plugin/TestPlugIn.h
vendored
@@ -1,200 +0,0 @@
|
||||
#ifndef CPPUNIT_PLUGIN_TESTPLUGIN
|
||||
#define CPPUNIT_PLUGIN_TESTPLUGIN
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#include <cppunit/plugin/PlugInParameters.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestFactoryRegistry;
|
||||
class TestResult;
|
||||
class XmlOutputter;
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
/*! \file
|
||||
*/
|
||||
|
||||
|
||||
/*! \brief Test plug-in interface.
|
||||
* \ingroup WritingTestPlugIn
|
||||
*
|
||||
* This class define the interface implemented by test plug-in. A pointer to that
|
||||
* interface is returned by the function exported by the test plug-in.
|
||||
*
|
||||
* Plug-in are loaded/unloaded by PlugInManager. When a plug-in is loaded,
|
||||
* initialize() is called. Before unloading the plug-in, the PlugInManager
|
||||
* call uninitialize().
|
||||
*
|
||||
* addListener() and removeListener() are called respectively before and after
|
||||
* the test run.
|
||||
*
|
||||
* addXmlOutputterHooks() and removeXmlOutputterHooks() are called respectively
|
||||
* before and after writing the XML output using a XmlOutputter.
|
||||
*
|
||||
* \see CPPUNIT_PLUGIN_IMPLEMENT, CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL
|
||||
* \see CppUnit::TestPlugInDefaultImpl, CppUnit::XmlOutputter.
|
||||
*/
|
||||
struct CppUnitTestPlugIn
|
||||
{
|
||||
/*! \brief Called just after loading the dynamic library.
|
||||
*
|
||||
* Override this method to add additional suite to the registry, though this
|
||||
* is preferably done using the macros (CPPUNIT_TEST_SUITE_REGISTRATION...).
|
||||
* If you are creating a custom listener to extends the plug-in runner,
|
||||
* you can use this to configure the listener using the \a parameters.
|
||||
*
|
||||
* You could also use the parameters to specify some global parameter, such
|
||||
* as test datas location, database name...
|
||||
*
|
||||
* N.B.: Parameters interface is not define yet, and the plug-in runner does
|
||||
* not yet support plug-in parameter.
|
||||
*/
|
||||
virtual void initialize( CPPUNIT_NS::TestFactoryRegistry *registry,
|
||||
const CPPUNIT_NS::PlugInParameters ¶meters ) =0;
|
||||
|
||||
/*! \brief Gives a chance to the plug-in to register TestListener.
|
||||
*
|
||||
* Override this method to add a TestListener for the test run. This is useful
|
||||
* if you are writing a custom TestListener, but also if you need to
|
||||
* setUp some global resource: listen to TestListener::startTestRun(),
|
||||
* and TestListener::endTestRun().
|
||||
*/
|
||||
virtual void addListener( CPPUNIT_NS::TestResult *eventManager ) =0;
|
||||
|
||||
/*! \brief Gives a chance to the plug-in to remove its registered TestListener.
|
||||
*
|
||||
* Override this method to remove a TestListener that has been added.
|
||||
*/
|
||||
virtual void removeListener( CPPUNIT_NS::TestResult *eventManager ) =0;
|
||||
|
||||
/*! \brief Provides a way for the plug-in to register some XmlOutputterHook.
|
||||
*/
|
||||
virtual void addXmlOutputterHooks( CPPUNIT_NS::XmlOutputter *outputter ) =0;
|
||||
|
||||
/*! \brief Called when the XmlOutputter is destroyed.
|
||||
*
|
||||
* Can be used to free some resources allocated by addXmlOutputterHooks().
|
||||
*/
|
||||
virtual void removeXmlOutputterHooks() = 0;
|
||||
|
||||
/*! \brief Called just before unloading the dynamic library.
|
||||
*
|
||||
* Override this method to unregister test factory added in initialize().
|
||||
* This is necessary to keep the TestFactoryRegistry 'clean'. When
|
||||
* the plug-in is unloaded from memory, the TestFactoryRegistry will hold
|
||||
* reference on test that are no longer available if they are not
|
||||
* unregistered.
|
||||
*/
|
||||
virtual void uninitialize( CPPUNIT_NS::TestFactoryRegistry *registry ) =0;
|
||||
|
||||
virtual ~CppUnitTestPlugIn() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*! \brief Name of the function exported by a test plug-in.
|
||||
* \ingroup WritingTestPlugIn
|
||||
*
|
||||
* The signature of the exported function is:
|
||||
* \code
|
||||
* CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void);
|
||||
* \endcode
|
||||
*/
|
||||
#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTestPlugIn
|
||||
|
||||
/*! \brief Type of the function exported by a plug-in.
|
||||
* \ingroup WritingTestPlugIn
|
||||
*/
|
||||
typedef CppUnitTestPlugIn *(*TestPlugInSignature)();
|
||||
|
||||
|
||||
/*! \brief Implements the function exported by the test plug-in
|
||||
* \ingroup WritingTestPlugIn
|
||||
*/
|
||||
#define CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( TestPlugInInterfaceType ) \
|
||||
CPPUNIT_PLUGIN_EXPORT CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void) \
|
||||
{ \
|
||||
static TestPlugInInterfaceType plugIn; \
|
||||
return &plugIn; \
|
||||
} \
|
||||
typedef char __CppUnitPlugInExportFunctionDummyTypeDef // dummy typedef so it can end with ';'
|
||||
|
||||
|
||||
// Note: This include should remain after definition of CppUnitTestPlugIn
|
||||
#include <cppunit/plugin/TestPlugInDefaultImpl.h>
|
||||
|
||||
|
||||
/*! \def CPPUNIT_PLUGIN_IMPLEMENT_MAIN()
|
||||
* \brief Implements the 'main' function for the plug-in.
|
||||
*
|
||||
* This macros implements the main() function for dynamic library.
|
||||
* For example, WIN32 requires a DllMain function, while some Unix
|
||||
* requires a main() function. This macros takes care of the implementation.
|
||||
*/
|
||||
|
||||
// Win32
|
||||
#if defined(CPPUNIT_HAVE_WIN32_DLL_LOADER)
|
||||
#if !defined(APIENTRY)
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define NOGDI
|
||||
#define NOUSER
|
||||
#define NOKERNEL
|
||||
#define NOSOUND
|
||||
#define NOMINMAX
|
||||
#define BLENDFUNCTION void // for mingw & gcc
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
|
||||
BOOL APIENTRY DllMain( HANDLE hModule, \
|
||||
DWORD ul_reason_for_call, \
|
||||
LPVOID lpReserved ) \
|
||||
{ \
|
||||
return TRUE; \
|
||||
} \
|
||||
typedef char __CppUnitPlugInImplementMainDummyTypeDef
|
||||
|
||||
// Unix
|
||||
#elif defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) || defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
|
||||
#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
|
||||
int main( int argc, char *argv[] ) \
|
||||
{ \
|
||||
return 0; \
|
||||
} \
|
||||
typedef char __CppUnitPlugInImplementMainDummyTypeDef
|
||||
|
||||
|
||||
// Other
|
||||
#else // other platforms don't require anything specifics
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*! \brief Implements and exports the test plug-in interface.
|
||||
* \ingroup WritingTestPlugIn
|
||||
*
|
||||
* This macro exports the test plug-in function using the subclass,
|
||||
* and implements the 'main' function for the plug-in using
|
||||
* CPPUNIT_PLUGIN_IMPLEMENT_MAIN().
|
||||
*
|
||||
* When using this macro, CppUnit must be linked as a DLL (shared library).
|
||||
* Otherwise, tests registered to the TestFactoryRegistry in the DLL will
|
||||
* not be visible to the DllPlugInTester.
|
||||
*
|
||||
* \see CppUnitTestPlugIn
|
||||
* \see CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL(), CPPUNIT_PLUGIN_IMPLEMENT_MAIN().
|
||||
*/
|
||||
#define CPPUNIT_PLUGIN_IMPLEMENT() \
|
||||
CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( CPPUNIT_NS::TestPlugInDefaultImpl ); \
|
||||
CPPUNIT_PLUGIN_IMPLEMENT_MAIN()
|
||||
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
|
||||
#endif // CPPUNIT_PLUGIN_TESTPLUGIN
|
||||
@@ -1,52 +0,0 @@
|
||||
#ifndef CPPUNIT_PLUGIN_TESTPLUGINADAPTER
|
||||
#define CPPUNIT_PLUGIN_TESTPLUGINADAPTER
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#include <cppunit/plugin/TestPlugIn.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class TestSuite;
|
||||
|
||||
|
||||
/*! \brief Default implementation of test plug-in interface.
|
||||
* \ingroup WritingTestPlugIn
|
||||
*
|
||||
* Override getSuiteName() to specify the suite name. Default is "All Tests".
|
||||
*
|
||||
* CppUnitTestPlugIn::getTestSuite() returns a suite that contains
|
||||
* all the test registered to the default test factory registry
|
||||
* ( TestFactoryRegistry::getRegistry() ).
|
||||
*
|
||||
*/
|
||||
class CPPUNIT_API TestPlugInDefaultImpl : public CppUnitTestPlugIn
|
||||
{
|
||||
public:
|
||||
TestPlugInDefaultImpl();
|
||||
|
||||
virtual ~TestPlugInDefaultImpl();
|
||||
|
||||
void initialize( TestFactoryRegistry *registry,
|
||||
const PlugInParameters ¶meters );
|
||||
|
||||
void addListener( TestResult *eventManager );
|
||||
|
||||
void removeListener( TestResult *eventManager );
|
||||
|
||||
void addXmlOutputterHooks( XmlOutputter *outputter );
|
||||
|
||||
void removeXmlOutputterHooks();
|
||||
|
||||
void uninitialize( TestFactoryRegistry *registry );
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
|
||||
|
||||
#endif // CPPUNIT_PLUGIN_TESTPLUGINADAPTER
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
|
||||
#define CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
|
||||
|
||||
// The technic used is similar to the wrapper of STLPort.
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <deque>
|
||||
|
||||
|
||||
#if CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
template<class T>
|
||||
class CppUnitDeque : public std::deque<T,CPPUNIT_STD_ALLOCATOR>
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
#else // CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
#define CppUnitDeque std::deque
|
||||
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_CPPUNITDEQUE_H
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_CPPUNITMAP_H
|
||||
#define CPPUNIT_PORTABILITY_CPPUNITMAP_H
|
||||
|
||||
// The technic used is similar to the wrapper of STLPort.
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <functional>
|
||||
#include <map>
|
||||
|
||||
|
||||
#if CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
template<class Key, class T>
|
||||
class CppUnitMap : public std::map<Key
|
||||
,T
|
||||
,std::less<Key>
|
||||
,CPPUNIT_STD_ALLOCATOR>
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
#else // CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
#define CppUnitMap std::map
|
||||
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_CPPUNITMAP_H
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_CPPUNITSET_H
|
||||
#define CPPUNIT_PORTABILITY_CPPUNITSET_H
|
||||
|
||||
// The technic used is similar to the wrapper of STLPort.
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <functional>
|
||||
#include <set>
|
||||
|
||||
|
||||
#if CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
template<class T>
|
||||
class CppUnitSet : public std::set<T
|
||||
,std::less<T>
|
||||
,CPPUNIT_STD_ALLOCATOR>
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
#else // CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
#define CppUnitSet std::set
|
||||
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_CPPUNITSET_H
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_CPPUNITSTACK_H
|
||||
#define CPPUNIT_PORTABILITY_CPPUNITSTACK_H
|
||||
|
||||
// The technic used is similar to the wrapper of STLPort.
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <deque>
|
||||
#include <stack>
|
||||
|
||||
|
||||
#if CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
template<class T>
|
||||
class CppUnitStack : public std::stack<T
|
||||
,std::deque<T,CPPUNIT_STD_ALLOCATOR> >
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
#else // CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
#define CppUnitStack std::stack
|
||||
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_CPPUNITSTACK_H
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_CPPUNITVECTOR_H
|
||||
#define CPPUNIT_PORTABILITY_CPPUNITVECTOR_H
|
||||
|
||||
// The technic used is similar to the wrapper of STLPort.
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <vector>
|
||||
|
||||
|
||||
#if CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
template<class T>
|
||||
class CppUnitVector : public std::vector<T,CPPUNIT_STD_ALLOCATOR>
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
#else // CPPUNIT_STD_NEED_ALLOCATOR
|
||||
|
||||
#define CppUnitVector std::vector
|
||||
|
||||
#endif
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_CPPUNITVECTOR_H
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_FLOATINGPOINT_H_INCLUDED
|
||||
#define CPPUNIT_PORTABILITY_FLOATINGPOINT_H_INCLUDED
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <math.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
/// \brief Tests if a floating-point is a NaN.
|
||||
// According to IEEE-754 floating point standard,
|
||||
// (see e.g. page 8 of
|
||||
// http://www.cs.berkeley.edu/~wkahan/ieee754status/ieee754.ps)
|
||||
// all comparisons with NaN are false except "x != x", which is true.
|
||||
//
|
||||
// At least Microsoft Visual Studio 6 is known not to implement this test correctly.
|
||||
// It emits the following code to test equality:
|
||||
// fcomp qword ptr [nan]
|
||||
// fnstsw ax // copie fp (floating-point) status register to ax
|
||||
// test ah,40h // test bit 14 of ax (0x4000) => C3 of fp status register
|
||||
// According to the following documentation on the x86 floating point status register,
|
||||
// the C2 bit should be tested to test for NaN value.
|
||||
// http://webster.cs.ucr.edu/AoA/Windows/HTML/RealArithmetic.html#1000117
|
||||
// In Microsoft Visual Studio 2003 & 2005, the test is implemented with:
|
||||
// test ah,44h // Visual Studio 2005 test both C2 & C3...
|
||||
//
|
||||
// To work around this, a NaN is assumed to be detected if no strict ordering is found.
|
||||
inline bool floatingPointIsUnordered( double x )
|
||||
{
|
||||
// x != x will detect a NaN on conformant platform
|
||||
// (2.0 < x && x < 1.0) will detect a NaN on non conformant platform:
|
||||
// => no ordering can be found for x.
|
||||
return (x != x) || (2.0 < x && x < 1.0);
|
||||
}
|
||||
|
||||
|
||||
/// \brief Tests if a floating-point is finite.
|
||||
/// @return \c true if x is neither a NaN, nor +inf, nor -inf, \c false otherwise.
|
||||
inline int floatingPointIsFinite( double x )
|
||||
{
|
||||
#if defined(CPPUNIT_HAVE_ISFINITE)
|
||||
return isfinite( x );
|
||||
#elif defined(CPPUNIT_HAVE_FINITE)
|
||||
return finite( x );
|
||||
#elif defined(CPPUNIT_HAVE__FINITE)
|
||||
return _finite(x);
|
||||
#else
|
||||
double testInf = x * 0.0; // Produce 0.0 if x is finite, a NaN otherwise.
|
||||
return testInf == 0.0 && !floatingPointIsUnordered(testInf);
|
||||
#endif
|
||||
}
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_FLOATINGPOINT_H_INCLUDED
|
||||
347
3rdParty/include/cppunit/portability/Stream.h
vendored
347
3rdParty/include/cppunit/portability/Stream.h
vendored
@@ -1,347 +0,0 @@
|
||||
#ifndef CPPUNIT_PORTABILITY_STREAM_H_INCLUDED
|
||||
#define CPPUNIT_PORTABILITY_STREAM_H_INCLUDED
|
||||
|
||||
// This module define:
|
||||
// Type CppUT::Stream (either std::stream or a custom type)
|
||||
// Type CppUT::OStringStream (eitjer std::ostringstream, older alternate or a custom type)
|
||||
// Functions stdCOut() & stdCErr() which returns a reference on cout & cerr stream (or our
|
||||
// custom stream).
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
|
||||
#if defined( CPPUNIT_NO_STREAM )
|
||||
|
||||
#include <string>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
class StreamBuffer
|
||||
{
|
||||
public:
|
||||
virtual ~StreamBuffer() {}
|
||||
|
||||
virtual void write( const char *text, unsigned int length ) = 0;
|
||||
|
||||
virtual void flush() {}
|
||||
};
|
||||
|
||||
|
||||
class StringStreamBuffer : public StreamBuffer
|
||||
{
|
||||
public:
|
||||
std::string str() const
|
||||
{
|
||||
return str_;
|
||||
}
|
||||
|
||||
public: // overridden from StreamBuffer
|
||||
void write( const char *text, unsigned int length )
|
||||
{
|
||||
str_.append( text, length );
|
||||
}
|
||||
|
||||
private:
|
||||
std::string str_;
|
||||
};
|
||||
|
||||
|
||||
class FileStreamBuffer : public StreamBuffer
|
||||
{
|
||||
public:
|
||||
FileStreamBuffer( FILE *file )
|
||||
: file_( file )
|
||||
{
|
||||
}
|
||||
|
||||
FILE *file() const
|
||||
{
|
||||
return file_;
|
||||
}
|
||||
|
||||
public: // overridden from StreamBuffer
|
||||
void write( const char *text, unsigned int length )
|
||||
{
|
||||
if ( file_ )
|
||||
fwrite( text, sizeof(char), length, file_ );
|
||||
}
|
||||
|
||||
void flush()
|
||||
{
|
||||
if ( file_ )
|
||||
fflush( file_ );
|
||||
}
|
||||
|
||||
private:
|
||||
FILE *file_;
|
||||
};
|
||||
|
||||
|
||||
class OStream
|
||||
{
|
||||
public:
|
||||
OStream()
|
||||
: buffer_( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
OStream( StreamBuffer *buffer )
|
||||
: buffer_( buffer )
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~OStream()
|
||||
{
|
||||
flush();
|
||||
}
|
||||
|
||||
OStream &flush()
|
||||
{
|
||||
if ( buffer_ )
|
||||
buffer_->flush();
|
||||
return *this;
|
||||
}
|
||||
|
||||
void setBuffer( StreamBuffer *buffer )
|
||||
{
|
||||
buffer_ = buffer;
|
||||
}
|
||||
|
||||
OStream &write( const char *text, unsigned int length )
|
||||
{
|
||||
if ( buffer_ )
|
||||
buffer_->write( text, length );
|
||||
return *this;
|
||||
}
|
||||
|
||||
OStream &write( const char *text )
|
||||
{
|
||||
return write( text, strlen(text) );
|
||||
}
|
||||
|
||||
OStream &operator <<( bool v )
|
||||
{
|
||||
const char *out = v ? "true" : "false";
|
||||
return write( out );
|
||||
}
|
||||
|
||||
OStream &operator <<( short v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%hd", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( unsigned short v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%hu", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( int v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%d", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( unsigned int v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%u", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( long v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%ld", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( unsigned long v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%lu", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( float v )
|
||||
{
|
||||
char buffer[128];
|
||||
sprintf( buffer, "%.16g", double(v) );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( double v )
|
||||
{
|
||||
char buffer[128];
|
||||
sprintf( buffer, "%.16g", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( long double v )
|
||||
{
|
||||
char buffer[128];
|
||||
sprintf( buffer, "%.16g", double(v) );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( const void *v )
|
||||
{
|
||||
char buffer[64];
|
||||
sprintf( buffer, "%p", v );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( const char *v )
|
||||
{
|
||||
return write( v ? v : "NULL" );
|
||||
}
|
||||
|
||||
OStream &operator <<( char c )
|
||||
{
|
||||
char buffer[16];
|
||||
sprintf( buffer, "%c", c );
|
||||
return write( buffer );
|
||||
}
|
||||
|
||||
OStream &operator <<( const std::string &s )
|
||||
{
|
||||
return write( s.c_str(), s.length() );
|
||||
}
|
||||
|
||||
private:
|
||||
StreamBuffer *buffer_;
|
||||
};
|
||||
|
||||
|
||||
class OStringStream : public OStream
|
||||
{
|
||||
public:
|
||||
OStringStream()
|
||||
: OStream( &buffer_ )
|
||||
{
|
||||
}
|
||||
|
||||
std::string str() const
|
||||
{
|
||||
return buffer_.str();
|
||||
}
|
||||
|
||||
private:
|
||||
StringStreamBuffer buffer_;
|
||||
};
|
||||
|
||||
|
||||
class OFileStream : public OStream
|
||||
{
|
||||
public:
|
||||
OFileStream( FILE *file )
|
||||
: OStream( &buffer_ )
|
||||
, buffer_( file )
|
||||
, ownFile_( false )
|
||||
{
|
||||
}
|
||||
|
||||
OFileStream( const char *path )
|
||||
: OStream( &buffer_ )
|
||||
, buffer_( fopen( path, "wt" ) )
|
||||
, ownFile_( true )
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~OFileStream()
|
||||
{
|
||||
if ( ownFile_ && buffer_.file() )
|
||||
fclose( buffer_.file() );
|
||||
}
|
||||
|
||||
private:
|
||||
FileStreamBuffer buffer_;
|
||||
bool ownFile_;
|
||||
};
|
||||
|
||||
inline OStream &stdCOut()
|
||||
{
|
||||
static OFileStream stream( stdout );
|
||||
return stream;
|
||||
}
|
||||
|
||||
inline OStream &stdCErr()
|
||||
{
|
||||
static OFileStream stream( stderr );
|
||||
return stream;
|
||||
}
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#elif CPPUNIT_HAVE_SSTREAM // #if defined( CPPUNIT_NO_STREAM )
|
||||
# include <sstream>
|
||||
# include <fstream>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
typedef std::ostringstream OStringStream; // The standard C++ way
|
||||
typedef std::ofstream OFileStream;
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#elif CPPUNIT_HAVE_CLASS_STRSTREAM
|
||||
# include <string>
|
||||
# if CPPUNIT_HAVE_STRSTREAM
|
||||
# include <strstream>
|
||||
# else // CPPUNIT_HAVE_STRSTREAM
|
||||
# include <strstream.h>
|
||||
# endif // CPPUNIT_HAVE_CLASS_STRSTREAM
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
class OStringStream : public std::ostrstream
|
||||
{
|
||||
public:
|
||||
std::string str()
|
||||
{
|
||||
// (*this) << '\0';
|
||||
// std::string msg(std::ostrstream::str());
|
||||
// std::ostrstream::freeze(false);
|
||||
// return msg;
|
||||
// Alternative implementation that don't rely on freeze which is not
|
||||
// available on some platforms:
|
||||
return std::string( std::ostrstream::str(), pcount() );
|
||||
}
|
||||
};
|
||||
|
||||
CPPUNIT_NS_END
|
||||
#else // CPPUNIT_HAVE_CLASS_STRSTREAM
|
||||
# error Cannot define CppUnit::OStringStream.
|
||||
#endif // #if defined( CPPUNIT_NO_STREAM )
|
||||
|
||||
|
||||
|
||||
#if !defined( CPPUNIT_NO_STREAM )
|
||||
|
||||
#include <iostream>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
typedef std::ostream OStream;
|
||||
|
||||
inline OStream &stdCOut()
|
||||
{
|
||||
return std::cout;
|
||||
}
|
||||
|
||||
inline OStream &stdCErr()
|
||||
{
|
||||
return std::cerr;
|
||||
}
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // #if !defined( CPPUNIT_NO_STREAM )
|
||||
|
||||
#endif // CPPUNIT_PORTABILITY_STREAM_H_INCLUDED
|
||||
|
||||
23
3rdParty/include/cppunit/tools/Algorithm.h
vendored
23
3rdParty/include/cppunit/tools/Algorithm.h
vendored
@@ -1,23 +0,0 @@
|
||||
#ifndef CPPUNIT_TOOLS_ALGORITHM_H_INCLUDED
|
||||
#define CPPUNIT_TOOLS_ALGORITHM_H_INCLUDED
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
template<class SequenceType, class ValueType>
|
||||
void
|
||||
removeFromSequence( SequenceType &sequence,
|
||||
const ValueType &valueToRemove )
|
||||
{
|
||||
for ( unsigned int index =0; index < sequence.size(); ++index )
|
||||
{
|
||||
if ( sequence[ index ] == valueToRemove )
|
||||
sequence.erase( sequence.begin() + index );
|
||||
}
|
||||
}
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNIT_TOOLS_ALGORITHM_H_INCLUDED
|
||||
34
3rdParty/include/cppunit/tools/StringTools.h
vendored
34
3rdParty/include/cppunit/tools/StringTools.h
vendored
@@ -1,34 +0,0 @@
|
||||
#ifndef CPPUNIT_TOOLS_STRINGTOOLS_H
|
||||
#define CPPUNIT_TOOLS_STRINGTOOLS_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
#include <cppunit/portability/CppUnitVector.h>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
/*! \brief Tool functions to manipulate string.
|
||||
*/
|
||||
struct StringTools
|
||||
{
|
||||
|
||||
typedef CppUnitVector<std::string> Strings;
|
||||
|
||||
static std::string CPPUNIT_API toString( int value );
|
||||
|
||||
static std::string CPPUNIT_API toString( double value );
|
||||
|
||||
static Strings CPPUNIT_API split( const std::string &text,
|
||||
char separator );
|
||||
|
||||
static std::string CPPUNIT_API wrap( const std::string &text,
|
||||
int wrapColumn = CPPUNIT_WRAP_COLUMN );
|
||||
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TOOLS_STRINGTOOLS_H
|
||||
86
3rdParty/include/cppunit/tools/XmlDocument.h
vendored
86
3rdParty/include/cppunit/tools/XmlDocument.h
vendored
@@ -1,86 +0,0 @@
|
||||
#ifndef CPPUNIT_TOOLS_XMLDOCUMENT_H
|
||||
#define CPPUNIT_TOOLS_XMLDOCUMENT_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <string>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class XmlElement;
|
||||
|
||||
|
||||
/*! \brief A XML Document.
|
||||
*
|
||||
* A XmlDocument represents a XML file. It holds a pointer on the root XmlElement
|
||||
* of the document. It also holds the encoding and style sheet used.
|
||||
*
|
||||
* By default, the XML document is stand-alone and tagged with enconding "ISO-8859-1".
|
||||
*/
|
||||
class CPPUNIT_API XmlDocument
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs a XmlDocument object.
|
||||
* \param encoding Encoding used in the XML file (default is Latin-1, ISO-8859-1 ).
|
||||
* \param styleSheet Name of the XSL style sheet file used. If empty then no
|
||||
* style sheet will be specified in the output.
|
||||
*/
|
||||
XmlDocument( const std::string &encoding = "",
|
||||
const std::string &styleSheet = "" );
|
||||
|
||||
/// Destructor.
|
||||
virtual ~XmlDocument();
|
||||
|
||||
std::string encoding() const;
|
||||
void setEncoding( const std::string &encoding = "" );
|
||||
|
||||
std::string styleSheet() const;
|
||||
void setStyleSheet( const std::string &styleSheet = "" );
|
||||
|
||||
bool standalone() const;
|
||||
|
||||
/*! \brief set the output document as standalone or not.
|
||||
*
|
||||
* For the output document, specify wether it's a standalone XML
|
||||
* document, or not.
|
||||
*
|
||||
* \param standalone if true, the output will be specified as standalone.
|
||||
* if false, it will be not.
|
||||
*/
|
||||
void setStandalone( bool standalone );
|
||||
|
||||
void setRootElement( XmlElement *rootElement );
|
||||
XmlElement &rootElement() const;
|
||||
|
||||
std::string toString() const;
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
XmlDocument( const XmlDocument © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const XmlDocument © );
|
||||
|
||||
protected:
|
||||
std::string m_encoding;
|
||||
std::string m_styleSheet;
|
||||
XmlElement *m_rootElement;
|
||||
bool m_standalone;
|
||||
};
|
||||
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_TOOLS_XMLDOCUMENT_H
|
||||
149
3rdParty/include/cppunit/tools/XmlElement.h
vendored
149
3rdParty/include/cppunit/tools/XmlElement.h
vendored
@@ -1,149 +0,0 @@
|
||||
#ifndef CPPUNIT_TOOLS_XMLELEMENT_H
|
||||
#define CPPUNIT_TOOLS_XMLELEMENT_H
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
|
||||
#endif
|
||||
|
||||
#include <cppunit/portability/CppUnitDeque.h>
|
||||
#include <string>
|
||||
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class XmlElement;
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
// template class CPPUNIT_API std::deque<XmlElement *>;
|
||||
#endif
|
||||
|
||||
|
||||
/*! \brief A XML Element.
|
||||
*
|
||||
* A XML element has:
|
||||
* - a name, specified on construction,
|
||||
* - a content, specified on construction (may be empty),
|
||||
* - zero or more attributes, added with addAttribute(),
|
||||
* - zero or more child elements, added with addElement().
|
||||
*/
|
||||
class CPPUNIT_API XmlElement
|
||||
{
|
||||
public:
|
||||
/*! \brief Constructs an element with the specified name and string content.
|
||||
* \param elementName Name of the element. Must not be empty.
|
||||
* \param content Content of the element.
|
||||
*/
|
||||
XmlElement( std::string elementName,
|
||||
std::string content ="" );
|
||||
|
||||
/*! \brief Constructs an element with the specified name and numeric content.
|
||||
* \param elementName Name of the element. Must not be empty.
|
||||
* \param numericContent Content of the element.
|
||||
*/
|
||||
XmlElement( std::string elementName,
|
||||
int numericContent );
|
||||
|
||||
/*! \brief Destructs the element and its child elements.
|
||||
*/
|
||||
virtual ~XmlElement();
|
||||
|
||||
/*! \brief Returns the name of the element.
|
||||
* \return Name of the element.
|
||||
*/
|
||||
std::string name() const;
|
||||
|
||||
/*! \brief Returns the content of the element.
|
||||
* \return Content of the element.
|
||||
*/
|
||||
std::string content() const;
|
||||
|
||||
/*! \brief Sets the name of the element.
|
||||
* \param name New name for the element.
|
||||
*/
|
||||
void setName( const std::string &name );
|
||||
|
||||
/*! \brief Sets the content of the element.
|
||||
* \param content New content for the element.
|
||||
*/
|
||||
void setContent( const std::string &content );
|
||||
|
||||
/*! \overload void setContent( const std::string &content )
|
||||
*/
|
||||
void setContent( int numericContent );
|
||||
|
||||
/*! \brief Adds an attribute with the specified string value.
|
||||
* \param attributeName Name of the attribute. Must not be an empty.
|
||||
* \param value Value of the attribute.
|
||||
*/
|
||||
void addAttribute( std::string attributeName,
|
||||
std::string value );
|
||||
|
||||
/*! \brief Adds an attribute with the specified numeric value.
|
||||
* \param attributeName Name of the attribute. Must not be empty.
|
||||
* \param numericValue Numeric value of the attribute.
|
||||
*/
|
||||
void addAttribute( std::string attributeName,
|
||||
int numericValue );
|
||||
|
||||
/*! \brief Adds a child element to the element.
|
||||
* \param element Child element to add. Must not be \c NULL.
|
||||
*/
|
||||
void addElement( XmlElement *element );
|
||||
|
||||
/*! \brief Returns the number of child elements.
|
||||
* \return Number of child elements (element added with addElement()).
|
||||
*/
|
||||
int elementCount() const;
|
||||
|
||||
/*! \brief Returns the child element at the specified index.
|
||||
* \param index Zero based index of the element to return.
|
||||
* \returns Element at the specified index. Never \c NULL.
|
||||
* \exception std::invalid_argument if \a index < 0 or index >= elementCount().
|
||||
*/
|
||||
XmlElement *elementAt( int index ) const;
|
||||
|
||||
/*! \brief Returns the first child element with the specified name.
|
||||
* \param name Name of the child element to return.
|
||||
* \return First child element found which is named \a name.
|
||||
* \exception std::invalid_argument if there is no child element with the specified
|
||||
* name.
|
||||
*/
|
||||
XmlElement *elementFor( const std::string &name ) const;
|
||||
|
||||
/*! \brief Returns a XML string that represents the element.
|
||||
* \param indent String of spaces representing the amount of 'indent'.
|
||||
* \return XML string that represents the element, its attributes and its
|
||||
* child elements.
|
||||
*/
|
||||
std::string toString( const std::string &indent = "" ) const;
|
||||
|
||||
private:
|
||||
typedef std::pair<std::string,std::string> Attribute;
|
||||
|
||||
std::string attributesAsString() const;
|
||||
std::string escape( std::string value ) const;
|
||||
|
||||
private:
|
||||
std::string m_name;
|
||||
std::string m_content;
|
||||
|
||||
typedef CppUnitDeque<Attribute> Attributes;
|
||||
Attributes m_attributes;
|
||||
|
||||
typedef CppUnitDeque<XmlElement *> Elements;
|
||||
Elements m_elements;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#if CPPUNIT_NEED_DLL_DECL
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_TOOLS_XMLELEMENT_H
|
||||
76
3rdParty/include/cppunit/ui/mfc/MfcTestRunner.h
vendored
76
3rdParty/include/cppunit/ui/mfc/MfcTestRunner.h
vendored
@@ -1,76 +0,0 @@
|
||||
#ifndef CPPUNITUI_MFC_MFCTESTRUNNER_H
|
||||
#define CPPUNITUI_MFC_MFCTESTRUNNER_H
|
||||
|
||||
#if _MSC_VER >= 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER >= 1000
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <cppunit/portability/CppUnitVector.h>
|
||||
|
||||
/* Refer to MSDN documentation to know how to write and use MFC extension DLL:
|
||||
mk:@MSITStore:h:\DevStudio\MSDN\98VSa\1036\vcmfc.chm::/html/_mfcnotes_tn033.htm#_mfcnotes_how_to_write_an_mfc_extension_dll
|
||||
|
||||
This can be found in the index with "mfc extension"
|
||||
The basic:
|
||||
Using:
|
||||
- your application must use MFC DLL
|
||||
- memory allocation is done using the same heap
|
||||
- you must define the symbol _AFX_DLL
|
||||
|
||||
Building:
|
||||
- you must define the symbol _AFX_DLL and _AFX_EXT
|
||||
- export class using AFX_EXT_CLASS
|
||||
*/
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
class Test;
|
||||
class TestSuite;
|
||||
|
||||
|
||||
/*! \brief MFC test runner.
|
||||
* \ingroup ExecutingTest
|
||||
*
|
||||
* Use this to launch the MFC TestRunner. Usually called from you CWinApp subclass:
|
||||
*
|
||||
* \code
|
||||
* #include <cppunit/ui/mfc/MfcTestRunner.h>
|
||||
* #include <cppunit/extensions/TestFactoryRegistry.h>
|
||||
*
|
||||
* void
|
||||
* CHostAppApp::RunUnitTests()
|
||||
* {
|
||||
* CppUnit::MfcTestRunner runner;
|
||||
* runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
|
||||
*
|
||||
* runner.run();
|
||||
* }
|
||||
* \endcode
|
||||
* \see CppUnit::TextTestRunner, CppUnit::TestFactoryRegistry.
|
||||
*/
|
||||
class AFX_EXT_CLASS MfcTestRunner
|
||||
{
|
||||
public:
|
||||
MfcTestRunner();
|
||||
virtual ~MfcTestRunner();
|
||||
|
||||
void run();
|
||||
|
||||
void addTest( Test *test );
|
||||
|
||||
void addTests( const CppUnitVector<Test *> &tests );
|
||||
|
||||
protected:
|
||||
Test *getRootTest();
|
||||
|
||||
TestSuite *m_suite;
|
||||
|
||||
typedef CppUnitVector<Test *> Tests;
|
||||
Tests m_tests;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNITUI_MFC_MFCTESTRUNNER_H
|
||||
21
3rdParty/include/cppunit/ui/mfc/TestRunner.h
vendored
21
3rdParty/include/cppunit/ui/mfc/TestRunner.h
vendored
@@ -1,21 +0,0 @@
|
||||
#ifndef CPPUNITUI_MFC_TESTRUNNER_H
|
||||
#define CPPUNITUI_MFC_TESTRUNNER_H
|
||||
|
||||
#include <cppunit/ui/mfc/MfcTestRunner.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
#if defined(CPPUNIT_HAVE_NAMESPACES)
|
||||
namespace MfcUi
|
||||
{
|
||||
/*! Mfc TestRunner (DEPRECATED).
|
||||
* \deprecated Use CppUnit::MfcTestRunner instead.
|
||||
*/
|
||||
typedef CPPUNIT_NS::MfcTestRunner TestRunner;
|
||||
}
|
||||
#endif // defined(CPPUNIT_HAVE_NAMESPACES)
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
|
||||
#endif // CPPUNITUI_MFC_TESTRUNNER_H
|
||||
21
3rdParty/include/cppunit/ui/qt/Config.h
vendored
21
3rdParty/include/cppunit/ui/qt/Config.h
vendored
@@ -1,21 +0,0 @@
|
||||
#ifndef CPPUNIT_QTUI_CONFIG_H
|
||||
#define CPPUNIT_QTUI_CONFIG_H
|
||||
|
||||
/*! Macro to export symbol to DLL with VC++.
|
||||
*
|
||||
* - QTTESTRUNNER_DLL_BUILD must be defined when building the DLL.
|
||||
* - QTTESTRUNNER_DLL must be defined if linking against the DLL.
|
||||
* - If none of the above are defined then you are building or linking against
|
||||
* the static library.
|
||||
*/
|
||||
|
||||
#if defined( QTTESTRUNNER_DLL_BUILD )
|
||||
# define QTTESTRUNNER_API __declspec(dllexport)
|
||||
#elif defined ( QTTESTRUNNER_DLL )
|
||||
# define QTTESTRUNNER_API __declspec(dllimport)
|
||||
#else
|
||||
# define QTTESTRUNNER_API
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPPUNIT_QTUI_CONFIG_H
|
||||
85
3rdParty/include/cppunit/ui/qt/QtTestRunner.h
vendored
85
3rdParty/include/cppunit/ui/qt/QtTestRunner.h
vendored
@@ -1,85 +0,0 @@
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
// Header file TestRunner.h for class TestRunner
|
||||
// (c)Copyright 2000, Baptiste Lepilleur.
|
||||
// Created: 2001/09/19
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
#ifndef CPPUNIT_QTUI_QTTESTRUNNER_H
|
||||
#define CPPUNIT_QTUI_QTTESTRUNNER_H
|
||||
|
||||
#include <cppunit/portability/CppUnitVector.h>
|
||||
#include "Config.h"
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Test;
|
||||
class TestSuite;
|
||||
|
||||
|
||||
/*!
|
||||
* \brief QT test runner.
|
||||
* \ingroup ExecutingTest
|
||||
*
|
||||
* Here is an example of usage:
|
||||
* \code
|
||||
* #include <cppunit/extensions/TestFactoryRegistry.h>
|
||||
* #include <cppunit/ui/qt/TestRunner.h>
|
||||
*
|
||||
* [...]
|
||||
*
|
||||
* void
|
||||
* QDepWindow::runTests()
|
||||
* {
|
||||
* CppUnit::QtUi::TestRunner runner;
|
||||
* runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
|
||||
* runner.run( true );
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
*/
|
||||
class QTTESTRUNNER_API QtTestRunner
|
||||
{
|
||||
public:
|
||||
/*! Constructs a TestRunner object.
|
||||
*/
|
||||
QtTestRunner();
|
||||
|
||||
/*! Destructor.
|
||||
*/
|
||||
virtual ~QtTestRunner();
|
||||
|
||||
void run( bool autoRun =false );
|
||||
|
||||
void addTest( Test *test );
|
||||
|
||||
private:
|
||||
/// Prevents the use of the copy constructor.
|
||||
QtTestRunner( const QtTestRunner © );
|
||||
|
||||
/// Prevents the use of the copy operator.
|
||||
void operator =( const QtTestRunner © );
|
||||
|
||||
Test *getRootTest();
|
||||
|
||||
private:
|
||||
typedef CppUnitVector<Test *> Tests;
|
||||
Tests *_tests;
|
||||
|
||||
TestSuite *_suite;
|
||||
};
|
||||
|
||||
|
||||
#if CPPUNIT_HAVE_NAMESPACES
|
||||
namespace QtUi
|
||||
{
|
||||
/*! Qt TestRunner (DEPRECATED).
|
||||
* \deprecated Use CppUnit::QtTestRunner instead.
|
||||
*/
|
||||
typedef CPPUNIT_NS::QtTestRunner TestRunner;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_QTUI_QTTESTRUNNER_H
|
||||
11
3rdParty/include/cppunit/ui/qt/TestRunner.h
vendored
11
3rdParty/include/cppunit/ui/qt/TestRunner.h
vendored
@@ -1,11 +0,0 @@
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
// Header file TestRunner.h for class TestRunner
|
||||
// (c)Copyright 2000, Baptiste Lepilleur.
|
||||
// Created: 2001/09/19
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
#ifndef CPPUNIT_QTUI_TESTRUNNER_H
|
||||
#define CPPUNIT_QTUI_TESTRUNNER_H
|
||||
|
||||
#include <cppunit/ui/qt/QtTestRunner.h>
|
||||
|
||||
#endif // CPPUNIT_QTUI_TESTRUNNER_H
|
||||
24
3rdParty/include/cppunit/ui/text/TestRunner.h
vendored
24
3rdParty/include/cppunit/ui/text/TestRunner.h
vendored
@@ -1,24 +0,0 @@
|
||||
#ifndef CPPUNIT_UI_TEXT_TESTRUNNER_H
|
||||
#define CPPUNIT_UI_TEXT_TESTRUNNER_H
|
||||
|
||||
#include <cppunit/ui/text/TextTestRunner.h>
|
||||
|
||||
|
||||
#if defined(CPPUNIT_HAVE_NAMESPACES)
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
namespace TextUi
|
||||
{
|
||||
|
||||
/*! Text TestRunner (DEPRECATED).
|
||||
* \deprecated Use TextTestRunner instead.
|
||||
*/
|
||||
typedef TextTestRunner TestRunner;
|
||||
|
||||
}
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // defined(CPPUNIT_HAVE_NAMESPACES)
|
||||
|
||||
|
||||
#endif // CPPUNIT_UI_TEXT_TESTRUNNER_H
|
||||
@@ -1,97 +0,0 @@
|
||||
#ifndef CPPUNIT_UI_TEXT_TEXTTESTRUNNER_H
|
||||
#define CPPUNIT_UI_TEXT_TEXTTESTRUNNER_H
|
||||
|
||||
|
||||
#include <cppunit/Portability.h>
|
||||
#include <string>
|
||||
#include <cppunit/TestRunner.h>
|
||||
|
||||
CPPUNIT_NS_BEGIN
|
||||
|
||||
|
||||
class Outputter;
|
||||
class Test;
|
||||
class TestSuite;
|
||||
class TextOutputter;
|
||||
class TestResult;
|
||||
class TestResultCollector;
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
* \brief A text mode test runner.
|
||||
* \ingroup WritingTestResult
|
||||
* \ingroup ExecutingTest
|
||||
*
|
||||
* The test runner manage the life cycle of the added tests.
|
||||
*
|
||||
* The test runner can run only one of the added tests or all the tests.
|
||||
*
|
||||
* TestRunner prints out a trace as the tests are executed followed by a
|
||||
* summary at the end. The trace and summary print are optional.
|
||||
*
|
||||
* Here is an example of use:
|
||||
*
|
||||
* \code
|
||||
* CppUnit::TextTestRunner runner;
|
||||
* runner.addTest( ExampleTestCase::suite() );
|
||||
* runner.run( "", true ); // Run all tests and wait
|
||||
* \endcode
|
||||
*
|
||||
* The trace is printed using a TextTestProgressListener. The summary is printed
|
||||
* using a TextOutputter.
|
||||
*
|
||||
* You can specify an alternate Outputter at construction
|
||||
* or later with setOutputter().
|
||||
*
|
||||
* After construction, you can register additional TestListener to eventManager(),
|
||||
* for a custom progress trace, for example.
|
||||
*
|
||||
* \code
|
||||
* CppUnit::TextTestRunner runner;
|
||||
* runner.addTest( ExampleTestCase::suite() );
|
||||
* runner.setOutputter( CppUnit::CompilerOutputter::defaultOutputter(
|
||||
* &runner.result(),
|
||||
* std::cerr ) );
|
||||
* MyCustomProgressTestListener progress;
|
||||
* runner.eventManager().addListener( &progress );
|
||||
* runner.run( "", true ); // Run all tests and wait
|
||||
* \endcode
|
||||
*
|
||||
* \see CompilerOutputter, XmlOutputter, TextOutputter.
|
||||
*/
|
||||
class CPPUNIT_API TextTestRunner : public CPPUNIT_NS::TestRunner
|
||||
{
|
||||
public:
|
||||
TextTestRunner( Outputter *outputter =NULL );
|
||||
|
||||
virtual ~TextTestRunner();
|
||||
|
||||
bool run( std::string testPath ="",
|
||||
bool doWait = false,
|
||||
bool doPrintResult = true,
|
||||
bool doPrintProgress = true );
|
||||
|
||||
void setOutputter( Outputter *outputter );
|
||||
|
||||
TestResultCollector &result() const;
|
||||
|
||||
TestResult &eventManager() const;
|
||||
|
||||
public: // overridden from TestRunner (to avoid hidden virtual function warning)
|
||||
virtual void run( TestResult &controller,
|
||||
const std::string &testPath = "" );
|
||||
|
||||
protected:
|
||||
virtual void wait( bool doWait );
|
||||
virtual void printResult( bool doPrintResult );
|
||||
|
||||
TestResultCollector *m_result;
|
||||
TestResult *m_eventManager;
|
||||
Outputter *m_outputter;
|
||||
};
|
||||
|
||||
|
||||
CPPUNIT_NS_END
|
||||
|
||||
#endif // CPPUNIT_UI_TEXT_TEXTTESTRUNNER_H
|
||||
340
3rdParty/include/fftw3/COPYING
vendored
340
3rdParty/include/fftw3/COPYING
vendored
@@ -1,340 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
19
3rdParty/include/fftw3/COPYRIGHT
vendored
19
3rdParty/include/fftw3/COPYRIGHT
vendored
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2007-11 Matteo Frigo
|
||||
* Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
411
3rdParty/include/fftw3/fftw3.h
vendored
411
3rdParty/include/fftw3/fftw3.h
vendored
@@ -1,411 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2007-11 Matteo Frigo
|
||||
* Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
|
||||
*
|
||||
* The following statement of license applies *only* to this header file,
|
||||
* and *not* to the other files distributed with FFTW or derived therefrom:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/***************************** NOTE TO USERS *********************************
|
||||
*
|
||||
* THIS IS A HEADER FILE, NOT A MANUAL
|
||||
*
|
||||
* If you want to know how to use FFTW, please read the manual,
|
||||
* online at http://www.fftw.org/doc/ and also included with FFTW.
|
||||
* For a quick start, see the manual's tutorial section.
|
||||
*
|
||||
* (Reading header files to learn how to use a library is a habit
|
||||
* stemming from code lacking a proper manual. Arguably, it's a
|
||||
* *bad* habit in most cases, because header files can contain
|
||||
* interfaces that are not part of the public, stable API.)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef FFTW3_H
|
||||
#define FFTW3_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* If <complex.h> is included, use the C99 complex type. Otherwise
|
||||
define a type bit-compatible with C99 complex */
|
||||
#if !defined(FFTW_NO_Complex) && defined(_Complex_I) && defined(complex) && defined(I)
|
||||
# define FFTW_DEFINE_COMPLEX(R, C) typedef R _Complex C
|
||||
#else
|
||||
# define FFTW_DEFINE_COMPLEX(R, C) typedef R C[2]
|
||||
#endif
|
||||
|
||||
#define FFTW_CONCAT(prefix, name) prefix ## name
|
||||
#define FFTW_MANGLE_DOUBLE(name) FFTW_CONCAT(fftw_, name)
|
||||
#define FFTW_MANGLE_FLOAT(name) FFTW_CONCAT(fftwf_, name)
|
||||
#define FFTW_MANGLE_LONG_DOUBLE(name) FFTW_CONCAT(fftwl_, name)
|
||||
#define FFTW_MANGLE_QUAD(name) FFTW_CONCAT(fftwq_, name)
|
||||
|
||||
/* IMPORTANT: for Windows compilers, you should add a line
|
||||
*/
|
||||
#define FFTW_DLL
|
||||
/*
|
||||
here and in kernel/ifftw.h if you are compiling/using FFTW as a
|
||||
DLL, in order to do the proper importing/exporting, or
|
||||
alternatively compile with -DFFTW_DLL or the equivalent
|
||||
command-line flag. This is not necessary under MinGW/Cygwin, where
|
||||
libtool does the imports/exports automatically. */
|
||||
#if defined(FFTW_DLL) && (defined(_WIN32) || defined(__WIN32__))
|
||||
/* annoying Windows syntax for shared-library declarations */
|
||||
# if defined(COMPILING_FFTW) /* defined in api.h when compiling FFTW */
|
||||
# define FFTW_EXTERN extern __declspec(dllexport)
|
||||
# else /* user is calling FFTW; import symbol */
|
||||
# define FFTW_EXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
#else
|
||||
# define FFTW_EXTERN extern
|
||||
#endif
|
||||
|
||||
enum fftw_r2r_kind_do_not_use_me {
|
||||
FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2,
|
||||
FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6,
|
||||
FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10
|
||||
};
|
||||
|
||||
struct fftw_iodim_do_not_use_me {
|
||||
int n; /* dimension size */
|
||||
int is; /* input stride */
|
||||
int os; /* output stride */
|
||||
};
|
||||
|
||||
#include <stddef.h> /* for ptrdiff_t */
|
||||
struct fftw_iodim64_do_not_use_me {
|
||||
ptrdiff_t n; /* dimension size */
|
||||
ptrdiff_t is; /* input stride */
|
||||
ptrdiff_t os; /* output stride */
|
||||
};
|
||||
|
||||
typedef void (*fftw_write_char_func_do_not_use_me)(char c, void *);
|
||||
typedef int (*fftw_read_char_func_do_not_use_me)(void *);
|
||||
|
||||
/*
|
||||
huge second-order macro that defines prototypes for all API
|
||||
functions. We expand this macro for each supported precision
|
||||
|
||||
X: name-mangling macro
|
||||
R: real data type
|
||||
C: complex data type
|
||||
*/
|
||||
|
||||
#define FFTW_DEFINE_API(X, R, C) \
|
||||
\
|
||||
FFTW_DEFINE_COMPLEX(R, C); \
|
||||
\
|
||||
typedef struct X(plan_s) *X(plan); \
|
||||
\
|
||||
typedef struct fftw_iodim_do_not_use_me X(iodim); \
|
||||
typedef struct fftw_iodim64_do_not_use_me X(iodim64); \
|
||||
\
|
||||
typedef enum fftw_r2r_kind_do_not_use_me X(r2r_kind); \
|
||||
\
|
||||
typedef fftw_write_char_func_do_not_use_me X(write_char_func); \
|
||||
typedef fftw_read_char_func_do_not_use_me X(read_char_func); \
|
||||
\
|
||||
FFTW_EXTERN void X(execute)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_dft)(int rank, const int *n, \
|
||||
C *in, C *out, int sign, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_dft_1d)(int n, C *in, C *out, int sign, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_dft_2d)(int n0, int n1, \
|
||||
C *in, C *out, int sign, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_dft_3d)(int n0, int n1, int n2, \
|
||||
C *in, C *out, int sign, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_many_dft)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
C *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
C *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
int sign, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru_dft)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
C *in, C *out, \
|
||||
int sign, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_guru_split_dft)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *ri, R *ii, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_dft)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
C *in, C *out, \
|
||||
int sign, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_split_dft)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *ri, R *ii, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN void X(execute_dft)(const X(plan) p, C *in, C *out); \
|
||||
FFTW_EXTERN void X(execute_split_dft)(const X(plan) p, R *ri, R *ii, \
|
||||
R *ro, R *io); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_many_dft_r2c)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
R *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
C *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_dft_r2c)(int rank, const int *n, \
|
||||
R *in, C *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_dft_r2c_1d)(int n,R *in,C *out,unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_dft_r2c_2d)(int n0, int n1, \
|
||||
R *in, C *out, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_dft_r2c_3d)(int n0, int n1, \
|
||||
int n2, \
|
||||
R *in, C *out, unsigned flags); \
|
||||
\
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_many_dft_c2r)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
C *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
R *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_dft_c2r)(int rank, const int *n, \
|
||||
C *in, R *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_dft_c2r_1d)(int n,C *in,R *out,unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_dft_c2r_2d)(int n0, int n1, \
|
||||
C *in, R *out, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_dft_c2r_3d)(int n0, int n1, \
|
||||
int n2, \
|
||||
C *in, R *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru_dft_r2c)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *in, C *out, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_guru_dft_c2r)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
C *in, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru_split_dft_r2c)( \
|
||||
int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *in, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_guru_split_dft_c2r)( \
|
||||
int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *ri, R *ii, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_dft_r2c)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *in, C *out, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_dft_c2r)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
C *in, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_split_dft_r2c)( \
|
||||
int rank, const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *in, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_split_dft_c2r)( \
|
||||
int rank, const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *ri, R *ii, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN void X(execute_dft_r2c)(const X(plan) p, R *in, C *out); \
|
||||
FFTW_EXTERN void X(execute_dft_c2r)(const X(plan) p, C *in, R *out); \
|
||||
\
|
||||
FFTW_EXTERN void X(execute_split_dft_r2c)(const X(plan) p, \
|
||||
R *in, R *ro, R *io); \
|
||||
FFTW_EXTERN void X(execute_split_dft_c2r)(const X(plan) p, \
|
||||
R *ri, R *ii, R *out); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_many_r2r)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
R *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
R *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_r2r)(int rank, const int *n, R *in, R *out, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_r2r_1d)(int n, R *in, R *out, \
|
||||
X(r2r_kind) kind, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_r2r_2d)(int n0, int n1, R *in, R *out, \
|
||||
X(r2r_kind) kind0, X(r2r_kind) kind1, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) X(plan_r2r_3d)(int n0, int n1, int n2, \
|
||||
R *in, R *out, X(r2r_kind) kind0, \
|
||||
X(r2r_kind) kind1, X(r2r_kind) kind2, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru_r2r)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *in, R *out, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) X(plan_guru64_r2r)(int rank, const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *in, R *out, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN void X(execute_r2r)(const X(plan) p, R *in, R *out); \
|
||||
\
|
||||
FFTW_EXTERN void X(destroy_plan)(X(plan) p); \
|
||||
FFTW_EXTERN void X(forget_wisdom)(void); \
|
||||
FFTW_EXTERN void X(cleanup)(void); \
|
||||
\
|
||||
FFTW_EXTERN void X(set_timelimit)(double t); \
|
||||
\
|
||||
FFTW_EXTERN void X(plan_with_nthreads)(int nthreads); \
|
||||
FFTW_EXTERN int X(init_threads)(void); \
|
||||
FFTW_EXTERN void X(cleanup_threads)(void); \
|
||||
\
|
||||
FFTW_EXTERN int X(export_wisdom_to_filename)(const char *filename); \
|
||||
FFTW_EXTERN void X(export_wisdom_to_file)(FILE *output_file); \
|
||||
FFTW_EXTERN char *X(export_wisdom_to_string)(void); \
|
||||
FFTW_EXTERN void X(export_wisdom)(X(write_char_func) write_char, \
|
||||
void *data); \
|
||||
FFTW_EXTERN int X(import_system_wisdom)(void); \
|
||||
FFTW_EXTERN int X(import_wisdom_from_filename)(const char *filename); \
|
||||
FFTW_EXTERN int X(import_wisdom_from_file)(FILE *input_file); \
|
||||
FFTW_EXTERN int X(import_wisdom_from_string)(const char *input_string); \
|
||||
FFTW_EXTERN int X(import_wisdom)(X(read_char_func) read_char, void *data); \
|
||||
\
|
||||
FFTW_EXTERN void X(fprint_plan)(const X(plan) p, FILE *output_file); \
|
||||
FFTW_EXTERN void X(print_plan)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN void *X(malloc)(size_t n); \
|
||||
FFTW_EXTERN R *X(alloc_real)(size_t n); \
|
||||
FFTW_EXTERN C *X(alloc_complex)(size_t n); \
|
||||
FFTW_EXTERN void X(free)(void *p); \
|
||||
\
|
||||
FFTW_EXTERN void X(flops)(const X(plan) p, \
|
||||
double *add, double *mul, double *fmas); \
|
||||
FFTW_EXTERN double X(estimate_cost)(const X(plan) p); \
|
||||
FFTW_EXTERN double X(cost)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN const char X(version)[]; \
|
||||
FFTW_EXTERN const char X(cc)[]; \
|
||||
FFTW_EXTERN const char X(codelet_optim)[];
|
||||
|
||||
|
||||
/* end of FFTW_DEFINE_API macro */
|
||||
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_DOUBLE, double, fftw_complex)
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_FLOAT, float, fftwf_complex)
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_LONG_DOUBLE, long double, fftwl_complex)
|
||||
|
||||
/* __float128 (quad precision) is a gcc extension on i386, x86_64, and ia64
|
||||
for gcc >= 4.6 (compiled in FFTW with --enable-quad-precision) */
|
||||
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) \
|
||||
&& (defined(__i386__) || defined(__x86_64__) || defined(__ia64__))
|
||||
# if !defined(FFTW_NO_Complex) && defined(_Complex_I) && defined(complex) && defined(I)
|
||||
/* note: __float128 is a typedef, which is not supported with the _Complex
|
||||
keyword in gcc, so instead we use this ugly __attribute__ version.
|
||||
However, we can't simply pass the __attribute__ version to
|
||||
FFTW_DEFINE_API because the __attribute__ confuses gcc in pointer
|
||||
types. Hence redefining FFTW_DEFINE_COMPLEX. Ugh. */
|
||||
# undef FFTW_DEFINE_COMPLEX
|
||||
# define FFTW_DEFINE_COMPLEX(R, C) typedef _Complex float __attribute__((mode(TC))) C
|
||||
# endif
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_QUAD, __float128, fftwq_complex)
|
||||
#endif
|
||||
|
||||
#define FFTW_FORWARD (-1)
|
||||
#define FFTW_BACKWARD (+1)
|
||||
|
||||
#define FFTW_NO_TIMELIMIT (-1.0)
|
||||
|
||||
/* documented flags */
|
||||
#define FFTW_MEASURE (0U)
|
||||
#define FFTW_DESTROY_INPUT (1U << 0)
|
||||
#define FFTW_UNALIGNED (1U << 1)
|
||||
#define FFTW_CONSERVE_MEMORY (1U << 2)
|
||||
#define FFTW_EXHAUSTIVE (1U << 3) /* NO_EXHAUSTIVE is default */
|
||||
#define FFTW_PRESERVE_INPUT (1U << 4) /* cancels FFTW_DESTROY_INPUT */
|
||||
#define FFTW_PATIENT (1U << 5) /* IMPATIENT is default */
|
||||
#define FFTW_ESTIMATE (1U << 6)
|
||||
|
||||
/* undocumented beyond-guru flags */
|
||||
#define FFTW_ESTIMATE_PATIENT (1U << 7)
|
||||
#define FFTW_BELIEVE_PCOST (1U << 8)
|
||||
#define FFTW_NO_DFT_R2HC (1U << 9)
|
||||
#define FFTW_NO_NONTHREADED (1U << 10)
|
||||
#define FFTW_NO_BUFFERING (1U << 11)
|
||||
#define FFTW_NO_INDIRECT_OP (1U << 12)
|
||||
#define FFTW_ALLOW_LARGE_GENERIC (1U << 13) /* NO_LARGE_GENERIC is default */
|
||||
#define FFTW_NO_RANK_SPLITS (1U << 14)
|
||||
#define FFTW_NO_VRANK_SPLITS (1U << 15)
|
||||
#define FFTW_NO_VRECURSE (1U << 16)
|
||||
#define FFTW_NO_SIMD (1U << 17)
|
||||
#define FFTW_NO_SLOW (1U << 18)
|
||||
#define FFTW_NO_FIXED_RADIX_LARGE_N (1U << 19)
|
||||
#define FFTW_ALLOW_PRUNING (1U << 20)
|
||||
#define FFTW_WISDOM_ONLY (1U << 21)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* FFTW3_H */
|
||||
@@ -1,190 +0,0 @@
|
||||
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 5.01.0164 */
|
||||
/* at Sat Apr 13 11:47:16 2002
|
||||
*/
|
||||
/* Compiler settings for G:\prg\vc\Lib\cppunit\src\msvc6\DSPlugIn\TestRunnerDSPlugin.idl:
|
||||
Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
|
||||
error checks: allocation ref bounds_check enum stub_data
|
||||
*/
|
||||
//@@MIDL_FILE_HEADING( )
|
||||
|
||||
|
||||
/* verify that the <rpcndr.h> version is high enough to compile this file*/
|
||||
#ifndef __REQUIRED_RPCNDR_H_VERSION__
|
||||
#define __REQUIRED_RPCNDR_H_VERSION__ 440
|
||||
#endif
|
||||
|
||||
#include "rpc.h"
|
||||
#include "rpcndr.h"
|
||||
|
||||
#ifndef __RPCNDR_H_VERSION__
|
||||
#error this stub requires an updated version of <rpcndr.h>
|
||||
#endif // __RPCNDR_H_VERSION__
|
||||
|
||||
#ifndef COM_NO_WINDOWS_H
|
||||
#include "windows.h"
|
||||
#include "ole2.h"
|
||||
#endif /*COM_NO_WINDOWS_H*/
|
||||
|
||||
#ifndef __TestRunnerDSPluginVC6_h__
|
||||
#define __TestRunnerDSPluginVC6_h__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/* Forward Declarations */
|
||||
|
||||
#ifndef __ITestRunnerDSPlugin_FWD_DEFINED__
|
||||
#define __ITestRunnerDSPlugin_FWD_DEFINED__
|
||||
typedef interface ITestRunnerDSPlugin ITestRunnerDSPlugin;
|
||||
#endif /* __ITestRunnerDSPlugin_FWD_DEFINED__ */
|
||||
|
||||
|
||||
#ifndef __DSAddIn_FWD_DEFINED__
|
||||
#define __DSAddIn_FWD_DEFINED__
|
||||
|
||||
#ifdef __cplusplus
|
||||
typedef class DSAddIn DSAddIn;
|
||||
#else
|
||||
typedef struct DSAddIn DSAddIn;
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __DSAddIn_FWD_DEFINED__ */
|
||||
|
||||
|
||||
/* header files for imported files */
|
||||
#include "oaidl.h"
|
||||
#include "ocidl.h"
|
||||
|
||||
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
|
||||
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
|
||||
|
||||
#ifndef __ITestRunnerDSPlugin_INTERFACE_DEFINED__
|
||||
#define __ITestRunnerDSPlugin_INTERFACE_DEFINED__
|
||||
|
||||
/* interface ITestRunnerDSPlugin */
|
||||
/* [oleautomation][unique][helpstring][uuid][object] */
|
||||
|
||||
|
||||
EXTERN_C const IID IID_ITestRunnerDSPlugin;
|
||||
|
||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
|
||||
MIDL_INTERFACE("3ADE0E37-5A56-4a68-BD8D-67E9E7502971")
|
||||
ITestRunnerDSPlugin : public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE goToLineInSourceCode(
|
||||
/* [in] */ BSTR fileName,
|
||||
/* [in] */ int lineNumber) = 0;
|
||||
|
||||
};
|
||||
|
||||
#else /* C style interface */
|
||||
|
||||
typedef struct ITestRunnerDSPluginVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
||||
ITestRunnerDSPlugin __RPC_FAR * This,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
||||
ITestRunnerDSPlugin __RPC_FAR * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
||||
ITestRunnerDSPlugin __RPC_FAR * This);
|
||||
|
||||
/* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *goToLineInSourceCode )(
|
||||
ITestRunnerDSPlugin __RPC_FAR * This,
|
||||
/* [in] */ BSTR fileName,
|
||||
/* [in] */ int lineNumber);
|
||||
|
||||
END_INTERFACE
|
||||
} ITestRunnerDSPluginVtbl;
|
||||
|
||||
interface ITestRunnerDSPlugin
|
||||
{
|
||||
CONST_VTBL struct ITestRunnerDSPluginVtbl __RPC_FAR *lpVtbl;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#ifdef COBJMACROS
|
||||
|
||||
|
||||
#define ITestRunnerDSPlugin_QueryInterface(This,riid,ppvObject) \
|
||||
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
||||
|
||||
#define ITestRunnerDSPlugin_AddRef(This) \
|
||||
(This)->lpVtbl -> AddRef(This)
|
||||
|
||||
#define ITestRunnerDSPlugin_Release(This) \
|
||||
(This)->lpVtbl -> Release(This)
|
||||
|
||||
|
||||
#define ITestRunnerDSPlugin_goToLineInSourceCode(This,fileName,lineNumber) \
|
||||
(This)->lpVtbl -> goToLineInSourceCode(This,fileName,lineNumber)
|
||||
|
||||
#endif /* COBJMACROS */
|
||||
|
||||
|
||||
#endif /* C style interface */
|
||||
|
||||
|
||||
|
||||
/* [helpstring] */ HRESULT STDMETHODCALLTYPE ITestRunnerDSPlugin_goToLineInSourceCode_Proxy(
|
||||
ITestRunnerDSPlugin __RPC_FAR * This,
|
||||
/* [in] */ BSTR fileName,
|
||||
/* [in] */ int lineNumber);
|
||||
|
||||
|
||||
void __RPC_STUB ITestRunnerDSPlugin_goToLineInSourceCode_Stub(
|
||||
IRpcStubBuffer *This,
|
||||
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||
PRPC_MESSAGE _pRpcMessage,
|
||||
DWORD *_pdwStubPhase);
|
||||
|
||||
|
||||
|
||||
#endif /* __ITestRunnerDSPlugin_INTERFACE_DEFINED__ */
|
||||
|
||||
|
||||
|
||||
#ifndef __TestRunnerDSPluginLib_LIBRARY_DEFINED__
|
||||
#define __TestRunnerDSPluginLib_LIBRARY_DEFINED__
|
||||
|
||||
/* library TestRunnerDSPluginLib */
|
||||
/* [helpstring][version][uuid] */
|
||||
|
||||
|
||||
EXTERN_C const IID LIBID_TestRunnerDSPluginLib;
|
||||
|
||||
EXTERN_C const CLSID CLSID_DSAddIn;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
class DECLSPEC_UUID("F193CE54-716C-41CB-80B2-FA74CA3EE2AC")
|
||||
DSAddIn;
|
||||
#endif
|
||||
#endif /* __TestRunnerDSPluginLib_LIBRARY_DEFINED__ */
|
||||
|
||||
/* Additional Prototypes for ALL interfaces */
|
||||
|
||||
unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
|
||||
unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
|
||||
unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
|
||||
void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
|
||||
|
||||
/* end of Additional Prototypes */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,50 +0,0 @@
|
||||
/* this file contains the actual definitions of */
|
||||
/* the IIDs and CLSIDs */
|
||||
|
||||
/* link this file in with the server and any clients */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 5.01.0164 */
|
||||
/* at Sat Apr 13 11:47:16 2002
|
||||
*/
|
||||
/* Compiler settings for G:\prg\vc\Lib\cppunit\src\msvc6\DSPlugIn\TestRunnerDSPlugin.idl:
|
||||
Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
|
||||
error checks: allocation ref bounds_check enum stub_data
|
||||
*/
|
||||
//@@MIDL_FILE_HEADING( )
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __IID_DEFINED__
|
||||
#define __IID_DEFINED__
|
||||
|
||||
typedef struct _IID
|
||||
{
|
||||
unsigned long x;
|
||||
unsigned short s1;
|
||||
unsigned short s2;
|
||||
unsigned char c[8];
|
||||
} IID;
|
||||
|
||||
#endif // __IID_DEFINED__
|
||||
|
||||
#ifndef CLSID_DEFINED
|
||||
#define CLSID_DEFINED
|
||||
typedef IID CLSID;
|
||||
#endif // CLSID_DEFINED
|
||||
|
||||
const IID IID_ITestRunnerDSPlugin = {0x3ADE0E37,0x5A56,0x4a68,{0xBD,0x8D,0x67,0xE9,0xE7,0x50,0x29,0x71}};
|
||||
|
||||
|
||||
const IID LIBID_TestRunnerDSPluginLib = {0x3ADE0E38,0x5A56,0x4a68,{0xBD,0x8D,0x67,0xE9,0xE7,0x50,0x29,0x71}};
|
||||
|
||||
|
||||
const CLSID CLSID_DSAddIn = {0xF193CE54,0x716C,0x41CB,{0x80,0xB2,0xFA,0x74,0xCA,0x3E,0xE2,0xAC}};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
#ifndef CPPUNIT_TESTPLUGINRUNNER_TESTPLUGININTERFACE_H
|
||||
#define CPPUNIT_TESTPLUGINRUNNER_TESTPLUGININTERFACE_H
|
||||
|
||||
#include <cppunit/Test.h>
|
||||
#include <cppunit/TestSuite.h>
|
||||
|
||||
#if !defined(WINAPI)
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define NOGDI
|
||||
#define NOUSER
|
||||
#define NOKERNEL
|
||||
#define NOSOUND
|
||||
#define NOMINMAX
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
/*! \brief Abstract TestPlugIn for DLL.
|
||||
* \deprecated Use CppUnitTestPlugIn instead.
|
||||
*
|
||||
* A Test plug-in DLL must subclass this class and "publish" an instance
|
||||
* using the following exported function:
|
||||
* \code
|
||||
* extern "C" {
|
||||
* __declspec(dllimport) TestPlugInInterface *GetTestPlugInInterface();
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* When loading the DLL, the TestPlugIn runner look-up this function and
|
||||
* retreives the
|
||||
*
|
||||
* See the TestPlugIn example for VC++ for details.
|
||||
*/
|
||||
class TestPlugInInterface
|
||||
{
|
||||
public:
|
||||
virtual ~TestPlugInInterface() {}
|
||||
|
||||
/*! Returns an instance of the "All Tests" suite.
|
||||
*
|
||||
* \return Instance of the top-level suite that contains all test. Ownership
|
||||
* is granted to the method caller.
|
||||
*/
|
||||
virtual CppUnit::Test *makeTest() =0;
|
||||
};
|
||||
|
||||
typedef TestPlugInInterface* (WINAPI *GetTestPlugInInterfaceFunction)(void);
|
||||
|
||||
|
||||
extern "C" {
|
||||
__declspec(dllexport) TestPlugInInterface *GetTestPlugInInterface();
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // CPPUNIT_TESTPLUGINRUNNER_TESTPLUGININTERFACE_H
|
||||
17
3rdParty/include/msvc6/testrunner/TestRunner.h
vendored
17
3rdParty/include/msvc6/testrunner/TestRunner.h
vendored
@@ -1,17 +0,0 @@
|
||||
#ifndef CPPUNIT_MSVC_TESTRUNNER_H
|
||||
#define CPPUNIT_MSVC_TESTRUNNER_H
|
||||
|
||||
|
||||
#if _MSC_VER >= 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER >= 1000
|
||||
|
||||
#include <cppunit/ui/mfc/MfcTestRunner.h>
|
||||
|
||||
/*! \brief MFC test runner (DEPRECATED)
|
||||
* \ingroup ExecutingTest
|
||||
* \deprecated Use CppUnit::MfcUi::TestRunner instead.
|
||||
*/
|
||||
typedef CPPUNIT_NS::MfcTestRunner TestRunner;
|
||||
|
||||
#endif // CPPUNIT_MSVC_TESTRUNNER_H
|
||||
468
3rdParty/include/zconf.h
vendored
468
3rdParty/include/zconf.h
vendored
@@ -1,468 +0,0 @@
|
||||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-2011 Jean-loup Gailly.
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
/* #undef Z_PREFIX */
|
||||
#define Z_HAVE_UNISTD_H
|
||||
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
||||
* Even better than compiling with -DZ_PREFIX would be to use configure to set
|
||||
* this permanently in zconf.h using "./configure --zprefix".
|
||||
*/
|
||||
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
|
||||
# define Z_PREFIX_SET
|
||||
|
||||
/* all linked symbols */
|
||||
# define _dist_code z__dist_code
|
||||
# define _length_code z__length_code
|
||||
# define _tr_align z__tr_align
|
||||
# define _tr_flush_block z__tr_flush_block
|
||||
# define _tr_init z__tr_init
|
||||
# define _tr_stored_block z__tr_stored_block
|
||||
# define _tr_tally z__tr_tally
|
||||
# define adler32 z_adler32
|
||||
# define adler32_combine z_adler32_combine
|
||||
# define adler32_combine64 z_adler32_combine64
|
||||
# ifndef Z_SOLO
|
||||
# define compress z_compress
|
||||
# define compress2 z_compress2
|
||||
# define compressBound z_compressBound
|
||||
# endif
|
||||
# define crc32 z_crc32
|
||||
# define crc32_combine z_crc32_combine
|
||||
# define crc32_combine64 z_crc32_combine64
|
||||
# define deflate z_deflate
|
||||
# define deflateBound z_deflateBound
|
||||
# define deflateCopy z_deflateCopy
|
||||
# define deflateEnd z_deflateEnd
|
||||
# define deflateInit2_ z_deflateInit2_
|
||||
# define deflateInit_ z_deflateInit_
|
||||
# define deflateParams z_deflateParams
|
||||
# define deflatePending z_deflatePending
|
||||
# define deflatePrime z_deflatePrime
|
||||
# define deflateReset z_deflateReset
|
||||
# define deflateResetKeep z_deflateResetKeep
|
||||
# define deflateSetDictionary z_deflateSetDictionary
|
||||
# define deflateSetHeader z_deflateSetHeader
|
||||
# define deflateTune z_deflateTune
|
||||
# define deflate_copyright z_deflate_copyright
|
||||
# define get_crc_table z_get_crc_table
|
||||
# ifndef Z_SOLO
|
||||
# define gz_error z_gz_error
|
||||
# define gz_intmax z_gz_intmax
|
||||
# define gz_strwinerror z_gz_strwinerror
|
||||
# define gzbuffer z_gzbuffer
|
||||
# define gzclearerr z_gzclearerr
|
||||
# define gzclose z_gzclose
|
||||
# define gzclose_r z_gzclose_r
|
||||
# define gzclose_w z_gzclose_w
|
||||
# define gzdirect z_gzdirect
|
||||
# define gzdopen z_gzdopen
|
||||
# define gzeof z_gzeof
|
||||
# define gzerror z_gzerror
|
||||
# define gzflags z_gzflags
|
||||
# define gzflush z_gzflush
|
||||
# define gzgetc z_gzgetc
|
||||
# define gzgetc_ z_gzgetc_
|
||||
# define gzgets z_gzgets
|
||||
# define gzoffset z_gzoffset
|
||||
# define gzoffset64 z_gzoffset64
|
||||
# define gzopen z_gzopen
|
||||
# define gzopen64 z_gzopen64
|
||||
# define gzprintf z_gzprintf
|
||||
# define gzputc z_gzputc
|
||||
# define gzputs z_gzputs
|
||||
# define gzread z_gzread
|
||||
# define gzrewind z_gzrewind
|
||||
# define gzseek z_gzseek
|
||||
# define gzseek64 z_gzseek64
|
||||
# define gzsetparams z_gzsetparams
|
||||
# define gztell z_gztell
|
||||
# define gztell64 z_gztell64
|
||||
# define gzungetc z_gzungetc
|
||||
# define gzwrite z_gzwrite
|
||||
# endif
|
||||
# define inflate z_inflate
|
||||
# define inflateBack z_inflateBack
|
||||
# define inflateBackEnd z_inflateBackEnd
|
||||
# define inflateBackInit_ z_inflateBackInit_
|
||||
# define inflateCopy z_inflateCopy
|
||||
# define inflateEnd z_inflateEnd
|
||||
# define inflateGetHeader z_inflateGetHeader
|
||||
# define inflateInit2_ z_inflateInit2_
|
||||
# define inflateInit_ z_inflateInit_
|
||||
# define inflateMark z_inflateMark
|
||||
# define inflatePrime z_inflatePrime
|
||||
# define inflateReset z_inflateReset
|
||||
# define inflateReset2 z_inflateReset2
|
||||
# define inflateSetDictionary z_inflateSetDictionary
|
||||
# define inflateSync z_inflateSync
|
||||
# define inflateSyncPoint z_inflateSyncPoint
|
||||
# define inflateUndermine z_inflateUndermine
|
||||
# define inflateResetKeep z_inflateResetKeep
|
||||
# define inflate_copyright z_inflate_copyright
|
||||
# define inflate_fast z_inflate_fast
|
||||
# define inflate_table z_inflate_table
|
||||
# ifndef Z_SOLO
|
||||
# define uncompress z_uncompress
|
||||
# endif
|
||||
# define zError z_zError
|
||||
# ifndef Z_SOLO
|
||||
# define zcalloc z_zcalloc
|
||||
# define zcfree z_zcfree
|
||||
# endif
|
||||
# define zlibCompileFlags z_zlibCompileFlags
|
||||
# define zlibVersion z_zlibVersion
|
||||
|
||||
/* all zlib typedefs in zlib.h and zconf.h */
|
||||
# define Byte z_Byte
|
||||
# define Bytef z_Bytef
|
||||
# define alloc_func z_alloc_func
|
||||
# define charf z_charf
|
||||
# define free_func z_free_func
|
||||
# ifndef Z_SOLO
|
||||
# define gzFile z_gzFile
|
||||
# define gz_header z_gz_header
|
||||
# define gz_headerp z_gz_headerp
|
||||
# endif
|
||||
# define in_func z_in_func
|
||||
# define intf z_intf
|
||||
# define out_func z_out_func
|
||||
# define uInt z_uInt
|
||||
# define uIntf z_uIntf
|
||||
# define uLong z_uLong
|
||||
# define uLongf z_uLongf
|
||||
# define voidp z_voidp
|
||||
# define voidpc z_voidpc
|
||||
# define voidpf z_voidpf
|
||||
|
||||
/* all zlib structs in zlib.h and zconf.h */
|
||||
# ifndef Z_SOLO
|
||||
# define gz_header_s z_gz_header_s
|
||||
# endif
|
||||
# define internal_state z_internal_state
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__MSDOS__) && !defined(MSDOS)
|
||||
# define MSDOS
|
||||
#endif
|
||||
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
|
||||
# define OS2
|
||||
#endif
|
||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||
# define WINDOWS
|
||||
#endif
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||
# ifndef WIN32
|
||||
# define WIN32
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||
# ifndef SYS16BIT
|
||||
# define SYS16BIT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
|
||||
* than 64k bytes at a time (needed on systems with 16-bit int).
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# define MAXSEG_64K
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
# define UNALIGNED_OK
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_VERSION__
|
||||
# ifndef STDC
|
||||
# define STDC
|
||||
# endif
|
||||
# if __STDC_VERSION__ >= 199901L
|
||||
# ifndef STDC99
|
||||
# define STDC99
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#ifndef STDC
|
||||
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
|
||||
# define const /* note: need a more gentle solution here */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(ZLIB_CONST) && !defined(z_const)
|
||||
# define z_const const
|
||||
#else
|
||||
# define z_const
|
||||
#endif
|
||||
|
||||
/* Some Mac compilers merge all .h files incorrectly: */
|
||||
#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
|
||||
# define NO_DUMMY_DECL
|
||||
#endif
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# ifdef MAXSEG_64K
|
||||
# define MAX_MEM_LEVEL 8
|
||||
# else
|
||||
# define MAX_MEM_LEVEL 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
|
||||
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
|
||||
* created by gzip. (Files created by minigzip can still be extracted by
|
||||
* gzip.)
|
||||
*/
|
||||
#ifndef MAX_WBITS
|
||||
# define MAX_WBITS 15 /* 32K LZ77 window */
|
||||
#endif
|
||||
|
||||
/* The memory requirements for deflate are (in bytes):
|
||||
(1 << (windowBits+2)) + (1 << (memLevel+9))
|
||||
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
|
||||
plus a few kilobytes for small objects. For example, if you want to reduce
|
||||
the default memory requirements from 256K to 128K, compile with
|
||||
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus a few kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
/* Type declarations */
|
||||
|
||||
#ifndef OF /* function prototypes */
|
||||
# ifdef STDC
|
||||
# define OF(args) args
|
||||
# else
|
||||
# define OF(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef Z_ARG /* function prototypes for stdarg */
|
||||
# if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# define Z_ARG(args) args
|
||||
# else
|
||||
# define Z_ARG(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The following definitions for FAR are needed only for MSDOS mixed
|
||||
* model programming (small or medium model with some far allocations).
|
||||
* This was tested only with MSC; for other MSDOS compilers you may have
|
||||
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
|
||||
* just define FAR to be empty.
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# if defined(M_I86SM) || defined(M_I86MM)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
# if (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
/* Turbo C small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef __BORLANDC__
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(WINDOWS) || defined(WIN32)
|
||||
/* If building or using zlib as a DLL, define ZLIB_DLL.
|
||||
* This is not mandatory, but it offers a little performance increase.
|
||||
*/
|
||||
# ifdef ZLIB_DLL
|
||||
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# endif /* ZLIB_DLL */
|
||||
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
|
||||
* define ZLIB_WINAPI.
|
||||
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
|
||||
*/
|
||||
# ifdef ZLIB_WINAPI
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# include <windows.h>
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
# define ZEXPORT WINAPI
|
||||
# ifdef WIN32
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# else
|
||||
# define ZEXPORTVA FAR CDECL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined (__BEOS__)
|
||||
# ifdef ZLIB_DLL
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXPORT __declspec(dllexport)
|
||||
# define ZEXPORTVA __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXPORT __declspec(dllimport)
|
||||
# define ZEXPORTVA __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA
|
||||
#endif
|
||||
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
#if !defined(__MACTYPES__)
|
||||
typedef unsigned char Byte; /* 8 bits */
|
||||
#endif
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
typedef unsigned long uLong; /* 32 bits or more */
|
||||
|
||||
#ifdef SMALL_MEDIUM
|
||||
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
|
||||
# define Bytef Byte FAR
|
||||
#else
|
||||
typedef Byte FAR Bytef;
|
||||
#endif
|
||||
typedef char FAR charf;
|
||||
typedef int FAR intf;
|
||||
typedef uInt FAR uIntf;
|
||||
typedef uLong FAR uLongf;
|
||||
|
||||
#ifdef STDC
|
||||
typedef void const *voidpc;
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
#else
|
||||
typedef Byte const *voidpc;
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_STDARG_H
|
||||
#endif
|
||||
|
||||
#ifdef STDC
|
||||
# ifndef Z_SOLO
|
||||
# include <sys/types.h> /* for off_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
|
||||
* "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
|
||||
* though the former does not conform to the LFS document), but considering
|
||||
* both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
|
||||
* equivalently requesting no 64-bit operations
|
||||
*/
|
||||
#if -_LARGEFILE64_SOURCE - -1 == 1
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
|
||||
# define Z_LARGE
|
||||
#endif
|
||||
|
||||
#if (defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE)) && !defined(Z_SOLO)
|
||||
# include <unistd.h> /* for SEEK_* and off_t */
|
||||
# ifdef VMS
|
||||
# include <unixio.h> /* for off_t */
|
||||
# endif
|
||||
# ifndef z_off_t
|
||||
# define z_off_t off_t
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(SEEK_SET) && !defined(Z_SOLO)
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
#if !defined(_WIN32) && (defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0)
|
||||
# define z_off64_t off64_t
|
||||
#else
|
||||
# if defined(_WIN32)
|
||||
# define z_off64_t __int64
|
||||
# else
|
||||
# define z_off64_t z_off_t
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* MVS linker does not support external names larger than 8 bytes */
|
||||
#if defined(__MVS__)
|
||||
#pragma map(deflateInit_,"DEIN")
|
||||
#pragma map(deflateInit2_,"DEIN2")
|
||||
#pragma map(deflateEnd,"DEEND")
|
||||
#pragma map(deflateBound,"DEBND")
|
||||
#pragma map(inflateInit_,"ININ")
|
||||
#pragma map(inflateInit2_,"ININ2")
|
||||
#pragma map(inflateEnd,"INEND")
|
||||
#pragma map(inflateSync,"INSY")
|
||||
#pragma map(inflateSetDictionary,"INSEDI")
|
||||
#pragma map(compressBound,"CMBND")
|
||||
#pragma map(inflate_table,"INTABL")
|
||||
#pragma map(inflate_fast,"INFA")
|
||||
#pragma map(inflate_copyright,"INCOPY")
|
||||
#endif
|
||||
|
||||
#endif /* ZCONF_H */
|
||||
1732
3rdParty/include/zlib.h
vendored
1732
3rdParty/include/zlib.h
vendored
File diff suppressed because it is too large
Load Diff
BIN
3rdParty/lib/libcppunit.dll.a
vendored
BIN
3rdParty/lib/libcppunit.dll.a
vendored
Binary file not shown.
BIN
3rdParty/lib/libfftw3-3.lib
vendored
BIN
3rdParty/lib/libfftw3-3.lib
vendored
Binary file not shown.
BIN
3rdParty/lib/libfftw3f-3.lib
vendored
BIN
3rdParty/lib/libfftw3f-3.lib
vendored
Binary file not shown.
BIN
3rdParty/lib/libfftw3l-3.lib
vendored
BIN
3rdParty/lib/libfftw3l-3.lib
vendored
Binary file not shown.
BIN
3rdParty/lib/libzlib.dll.a
vendored
BIN
3rdParty/lib/libzlib.dll.a
vendored
Binary file not shown.
Reference in New Issue
Block a user