diff options
Diffstat (limited to '3rdParty/CppUnit/cppunit/XmlOutputter.h')
| -rw-r--r-- | 3rdParty/CppUnit/cppunit/XmlOutputter.h | 167 | 
1 files changed, 167 insertions, 0 deletions
| diff --git a/3rdParty/CppUnit/cppunit/XmlOutputter.h b/3rdParty/CppUnit/cppunit/XmlOutputter.h new file mode 100644 index 0000000..0de9676 --- /dev/null +++ b/3rdParty/CppUnit/cppunit/XmlOutputter.h @@ -0,0 +1,167 @@ +#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 | 
 Swift
 Swift