From d84a718dabc36087a51297b0de7d7c8c6bd8a104 Mon Sep 17 00:00:00 2001 From: Tomas Pecka <peckato1@fit.cvut.cz> Date: Sat, 23 Feb 2019 12:30:05 +0100 Subject: [PATCH] Unit tests: CPPUNIT -> Catch2: xml --- alib2xml/test-src/container/ContainerTest.cpp | 160 +++++++---------- alib2xml/test-src/container/ContainerTest.h | 24 --- alib2xml/test-src/main.cpp | 168 +----------------- .../measurements/MeasurementsTest.cpp | 20 +-- .../test-src/measurements/MeasurementsTest.h | 18 -- alib2xml/test-src/primitive/PrimitiveTest.cpp | 23 +-- alib2xml/test-src/primitive/PrimitiveTest.h | 19 -- alib2xml/test-src/sax/SaxTest.cpp | 22 +-- alib2xml/test-src/sax/SaxTest.h | 19 -- 9 files changed, 84 insertions(+), 389 deletions(-) delete mode 100644 alib2xml/test-src/container/ContainerTest.h delete mode 100644 alib2xml/test-src/measurements/MeasurementsTest.h delete mode 100644 alib2xml/test-src/primitive/PrimitiveTest.h delete mode 100644 alib2xml/test-src/sax/SaxTest.h diff --git a/alib2xml/test-src/container/ContainerTest.cpp b/alib2xml/test-src/container/ContainerTest.cpp index bc96b4b536..8ca69d8428 100644 --- a/alib2xml/test-src/container/ContainerTest.cpp +++ b/alib2xml/test-src/container/ContainerTest.cpp @@ -1,4 +1,4 @@ -#include "ContainerTest.h" +#include <catch2/catch.hpp> #include <container/xml/ObjectsSet.h> #include <container/xml/ObjectsVariant.h> @@ -11,122 +11,90 @@ #include "factory/XmlDataFactory.hpp" -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( ContainerTest, "container" ); -CPPUNIT_TEST_SUITE_REGISTRATION ( ContainerTest ); +TEST_CASE ( "XML Container Parsing", "[unit][xml][container]" ) { + SECTION ( "Test XML Parser" ) { + object::Object tmp ( object::AnyObject < std::string > ( "1" ) ); -void ContainerTest::setUp ( ) { -} - -void ContainerTest::tearDown ( ) { -} - -void ContainerTest::testXMLParser ( ) { - - object::Object tmp ( object::AnyObject < std::string > ( "1" ) ); + ext::set < object::Object > set = { tmp }; - ext::set < object::Object > set; + object::Object object { object::AnyObject < ext::set < object::Object > > ( set ) }; - set.insert ( tmp ); - - object::Object object { object::AnyObject < ext::set < object::Object > > ( set ) }; - - { std::string tmp2 = factory::XmlDataFactory::toString ( object ); - - std::cout << tmp2 << std::endl; - object::Object object2 = factory::XmlDataFactory::fromString ( tmp2 ); - CPPUNIT_ASSERT ( object == object2 ); + CAPTURE ( tmp2 ); + REQUIRE ( object == object2 ); ext::set < std::string > concrete = factory::XmlDataFactory::fromString ( tmp2 ); std::string tmp3 = factory::XmlDataFactory::toString ( concrete ); - std::cout << tmp3 << std::endl; - object::Object object3 = factory::XmlDataFactory::fromString ( tmp3 ); - CPPUNIT_ASSERT ( object == object3 ); + CAPTURE ( tmp3 ); + REQUIRE ( object == object3 ); } -} -void ContainerTest::testVariantParsing ( ) { - { - std::string string = "<String>aaa</String>"; + SECTION ( "Test Variant Parser" ) { + const std::string string = "<String>aaa</String>"; ext::variant < int, std::string > object = factory::XmlDataFactory::fromString ( string ); - - CPPUNIT_ASSERT ( "aaa" == object.get < std::string > ( ) ); + CHECK ( "aaa" == object.get < std::string > ( ) ); std::string string2 = factory::XmlDataFactory::toString ( object ); - ext::variant < int, std::string > object2 = factory::XmlDataFactory::fromString ( string2 ); - - CPPUNIT_ASSERT ( object == object2 ); - } -} - -void ContainerTest::testTreeParsing ( ) { - { - ext::tree < int > t ( 1 ); - - std::string string = factory::XmlDataFactory::toString ( t ); - std::cout << string << std::endl; - - ext::tree < int > t2 = factory::XmlDataFactory::fromString ( string ); - - CPPUNIT_ASSERT ( t == t2 ); - } - { - ext::tree < int > t ( 1, ext::tree < int > ( 2 ), ext::tree < int > ( 4 ) ); - - std::string string = factory::XmlDataFactory::toString ( t ); - std::cout << string << std::endl; - - ext::tree < int > t2 = factory::XmlDataFactory::fromString ( string ); - - CPPUNIT_ASSERT ( t == t2 ); + CHECK( object == object2 ); } - { - ext::tree < int > t ( 1, ext::tree < int > ( 2, ext::tree < int > ( 3 ) ), ext::tree < int > ( 4 ) ); - std::string string = factory::XmlDataFactory::toString ( t ); - std::cout << string << std::endl; - - ext::tree < int > t2 = factory::XmlDataFactory::fromString ( string ); - - CPPUNIT_ASSERT ( t == t2 ); + SECTION ( "Test Tree Parsing" ) { + { + ext::tree < int > t ( 1 ); + std::string string = factory::XmlDataFactory::toString ( t ); + ext::tree < int > t2 = factory::XmlDataFactory::fromString ( string ); + + CAPTURE ( string ); + CHECK ( t == t2 ); + } + { + ext::tree < int > t ( 1, ext::tree < int > ( 2 ), ext::tree < int > ( 4 ) ); + std::string string = factory::XmlDataFactory::toString ( t ); + ext::tree < int > t2 = factory::XmlDataFactory::fromString ( string ); + + CAPTURE ( string ); + CHECK ( t == t2 ); + } + { + ext::tree < int > t ( 1, ext::tree < int > ( 2, ext::tree < int > ( 3 ) ), ext::tree < int > ( 4 ) ); + std::string string = factory::XmlDataFactory::toString ( t ); + ext::tree < int > t2 = factory::XmlDataFactory::fromString ( string ); + + CAPTURE ( string ); + CHECK ( t == t2 ); + } } -} - -void ContainerTest::testTrieParsing ( ) { - { - ext::trie < char, int > t ( 1 ); - - std::string string = factory::XmlDataFactory::toString ( t ); - std::cout << string << std::endl; - - ext::trie < char, int > t2 = factory::XmlDataFactory::fromString ( string ); - - CPPUNIT_ASSERT ( t == t2 ); - } - { - ext::trie < char, int > t ( 0, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 1 ) ), std::make_pair ( 'b', ext::trie < char, int > ( 2 ) ) } ); - - std::string string = factory::XmlDataFactory::toString ( t ); - std::cout << string << std::endl; - - ext::trie < char, int > t2 = factory::XmlDataFactory::fromString ( string ); - - CPPUNIT_ASSERT ( t == t2 ); - } - { - ext::trie < char, int > t ( 0, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 1, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 3 ) ), std::make_pair ( 'b', ext::trie < char, int > ( 4 ) ) } ) ), std::make_pair ( 'b', ext::trie < char, int > ( 2, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 5 ) ), std::make_pair ( 'b', ext::trie < char, int > ( 6 ) ) } ) ) } ); - - std::string string = factory::XmlDataFactory::toString ( t ); - std::cout << string << std::endl; - - ext::trie < char, int > t2 = factory::XmlDataFactory::fromString ( string ); - CPPUNIT_ASSERT ( t == t2 ); + SECTION ( "Test Trie Parsing" ) { + { + ext::trie < char, int > t ( 1 ); + std::string string = factory::XmlDataFactory::toString ( t ); + ext::trie < char, int > t2 = factory::XmlDataFactory::fromString ( string ); + + CAPTURE ( string ); + CHECK ( t == t2 ); + } + { + ext::trie < char, int > t ( 0, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 1 ) ), std::make_pair ( 'b', ext::trie < char, int > ( 2 ) ) } ); + std::string string = factory::XmlDataFactory::toString ( t ); + ext::trie < char, int > t2 = factory::XmlDataFactory::fromString ( string ); + + CAPTURE ( string ); + CHECK ( t == t2 ); + } + { + ext::trie < char, int > t ( 0, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 1, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 3 ) ), std::make_pair ( 'b', ext::trie < char, int > ( 4 ) ) } ) ), std::make_pair ( 'b', ext::trie < char, int > ( 2, ext::map < char, ext::trie < char, int > > { std::make_pair ( 'a', ext::trie < char, int > ( 5 ) ), std::make_pair ( 'b', ext::trie < char, int > ( 6 ) ) } ) ) } ); + std::string string = factory::XmlDataFactory::toString ( t ); + ext::trie < char, int > t2 = factory::XmlDataFactory::fromString ( string ); + + CAPTURE ( string ); + CHECK ( t == t2 ); + } } } diff --git a/alib2xml/test-src/container/ContainerTest.h b/alib2xml/test-src/container/ContainerTest.h deleted file mode 100644 index 454c57164f..0000000000 --- a/alib2xml/test-src/container/ContainerTest.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CONTAINER_TEST_H_ -#define CONTAINER_TEST_H_ - -#include <cppunit/extensions/HelperMacros.h> - -class ContainerTest : public CppUnit::TestFixture { - CPPUNIT_TEST_SUITE ( ContainerTest ); - CPPUNIT_TEST ( testXMLParser ); - CPPUNIT_TEST ( testVariantParsing ); - CPPUNIT_TEST ( testTreeParsing ); - CPPUNIT_TEST ( testTrieParsing ); - CPPUNIT_TEST_SUITE_END ( ); - -public: - void setUp ( ); - void tearDown ( ); - - void testXMLParser ( ); - void testVariantParsing ( ); - void testTreeParsing ( ); - void testTrieParsing ( ); -}; - -#endif // CONTAINER_TEST_H_ diff --git a/alib2xml/test-src/main.cpp b/alib2xml/test-src/main.cpp index adb58324a1..4ed06df1f7 100644 --- a/alib2xml/test-src/main.cpp +++ b/alib2xml/test-src/main.cpp @@ -1,166 +1,2 @@ -#include <version.hpp> - -#include <tclap/CmdLine.h> - -#include <cppunit/CompilerOutputter.h> -#include <cppunit/extensions/TestFactoryRegistry.h> -#include <cppunit/ui/text/TestRunner.h> -#include <cppunit/TestResultCollector.h> -#include <cppunit/TestResult.h> -#include <cppunit/XmlOutputter.h> - -#include <cppunit/Test.h> -#include <cppunit/TestFailure.h> -#include <cppunit/portability/Stream.h> -#include <cppunit/TestListener.h> -#include <cppunit/SourceLine.h> -#include <cppunit/Exception.h> - -#include <exception/CommonException.h> - -CPPUNIT_NS_BEGIN - -class CPPUNIT_API TestProgressListener : public TestListener -{ -public: - TestProgressListener(); - - virtual ~TestProgressListener(); - - void startTest( Test *test ); - - void addFailure( const TestFailure &failure ); - - void endTest( Test *test ); - - int getResult() const; - - void printResults() const; - -private: - TestProgressListener( const TestProgressListener © ); - - void operator =( const TestProgressListener © ); - -private: - int m_Failures; - int m_Tests; - int m_Assertions; - bool m_lastTestFailed; -}; - -TestProgressListener::TestProgressListener() : m_Failures( 0 ), m_Tests(0), m_Assertions(0), m_lastTestFailed( false ) -{ -} - -TestProgressListener::~TestProgressListener() -{ -} - -void TestProgressListener::startTest( Test * test ) -{ - stdCOut() << test->getName() << ":" << "\n"; - stdCOut().flush(); - - m_lastTestFailed = false; - m_Tests++; -} - -void TestProgressListener::addFailure( const TestFailure &failure ) -{ - stdCOut() << (failure.isError() ? "error" : "assertion") << " : " << failure.failedTestName() << " : " << failure.sourceLine().lineNumber() << "\n"; - stdCOut() << "Exception " << failure.thrownException()->message().details(); - - m_lastTestFailed = true; - if(failure.isError()) m_Failures++; else m_Assertions++; -} - -void TestProgressListener::endTest( Test * test) -{ - stdCOut() << "Result (" << test->getName() << ")"; - stdCOut().flush(); - - if ( !m_lastTestFailed ) - stdCOut() << " : OK"; - else - stdCOut() << " : Fail"; - stdCOut() << "\n\n"; -} - -int TestProgressListener::getResult() const { - return m_Failures + m_Assertions; -} - -void TestProgressListener::printResults() const { - stdCOut() << "Overal result: Tests: " << m_Tests << " Assertions: " << m_Assertions << " Failures: " << m_Failures << "\n"; -} - -CPPUNIT_NS_END - -int main(int argc, char* argv[]) { - try { - TCLAP::CmdLine cmd("Main test binary.", ' ', ALIB_VERSION_INFO); - - TCLAP::MultiArg<std::string> testPathSegments("p", "path", "test path", false, "string" ); - cmd.add( testPathSegments ); - - cmd.parse(argc, argv); - - CppUnit::TestResult controller; - - CppUnit::TestResultCollector result; - controller.addListener( &result ); - - CppUnit::TestProgressListener progressListener; - controller.addListener( &progressListener ); - - CppUnit::Test *suite = NULL; - std::string testPath = ""; - if(testPathSegments.getValue().size() == 0) { - // Get the top level suite from the registry - suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest(); - } else if(testPathSegments.getValue().size() == 1) { - suite = CppUnit::TestFactoryRegistry::getRegistry(testPathSegments.getValue()[0]).makeTest(); - } else { - suite = CppUnit::TestFactoryRegistry::getRegistry(testPathSegments.getValue()[0]).makeTest(); - bool first = true; - for(const std::string& path : testPathSegments.getValue()) { - if(first) { - first = false; - continue; - } - testPath += path + "/"; - } - testPath.pop_back(); - } - - // Adds the test to the list of test to run - CppUnit::TextUi::TestRunner runner; - runner.addTest( suite ); - - // Change the default outputter to a compiler error format outputter - runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), std::cerr ) ); - // Run the tests. - runner.run( controller, testPath ); - - progressListener.printResults(); - - std::ofstream xmlFileResults("CppUnitTestResults.xml"); - CppUnit::XmlOutputter xmlOut(&result, xmlFileResults); - xmlOut.write(); - - return progressListener.getResult(); - } catch(const exception::CommonException& exception) { - std::cerr << exception.getCause() << std::endl; - return 1; - } catch(const TCLAP::ArgException& exception) { - std::cerr << exception.error() << std::endl; - return 2; - } catch (const std::exception& exception) { - std::cerr << "Exception caught: " << exception.what() << std::endl; - return 3; - } catch(...) { - std::cerr << "Unknown exception caught." << std::endl; - return 127; - } -} +#define CATCH_CONFIG_MAIN +#include <catch2/catch.hpp> diff --git a/alib2xml/test-src/measurements/MeasurementsTest.cpp b/alib2xml/test-src/measurements/MeasurementsTest.cpp index 6e846395aa..50997cc809 100644 --- a/alib2xml/test-src/measurements/MeasurementsTest.cpp +++ b/alib2xml/test-src/measurements/MeasurementsTest.cpp @@ -1,21 +1,12 @@ -#include "MeasurementsTest.h" +#include <catch2/catch.hpp> + #include <thread> #include <alib/measure> #include <factory/XmlDataFactory.hpp> #include <measure/xml/MeasurementResults.hpp> -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( MeasurementsTest, "measurements" ); -CPPUNIT_TEST_SUITE_REGISTRATION ( MeasurementsTest ); - -void MeasurementsTest::setUp ( ) { - measurements::reset ( ); -} - -void MeasurementsTest::tearDown ( ) { -} - -void MeasurementsTest::testMeasurementResultsXml ( ) { +TEST_CASE ( "XML Measurements", "[unit][measurements][xml]" ) { measurements::start ( "global", measurements::Type::OVERALL ); measurements::start ( "init", measurements::Type::INIT ); std::this_thread::sleep_for ( std::chrono::milliseconds ( 100 ) ); @@ -90,7 +81,6 @@ void MeasurementsTest::testMeasurementResultsXml ( ) { ossconverted << measurements::MeasurementFormat::LIST << convertedResults << std::endl; - std::cout << ossoriginal.str ( ) << std::endl << ossconverted.str ( ) << std::endl; - - CPPUNIT_ASSERT ( ossoriginal.str ( ) == ossconverted.str ( ) ); + CAPTURE ( ossoriginal.str ( ), ossconverted.str ( ) ); + CHECK ( ossoriginal.str ( ) == ossconverted.str ( ) ); } diff --git a/alib2xml/test-src/measurements/MeasurementsTest.h b/alib2xml/test-src/measurements/MeasurementsTest.h deleted file mode 100644 index 05dac21a35..0000000000 --- a/alib2xml/test-src/measurements/MeasurementsTest.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MEASUREMENTS_TEST_H_ -#define MEASUREMENTS_TEST_H_ - -#include <cppunit/extensions/HelperMacros.h> - -class MeasurementsTest : public CppUnit::TestFixture { - CPPUNIT_TEST_SUITE ( MeasurementsTest ); - CPPUNIT_TEST ( testMeasurementResultsXml ); - CPPUNIT_TEST_SUITE_END ( ); - -public: - void setUp ( ); - void tearDown ( ); - - void testMeasurementResultsXml( ); -}; - -#endif // MEASUREMENTS_TEST_H_ diff --git a/alib2xml/test-src/primitive/PrimitiveTest.cpp b/alib2xml/test-src/primitive/PrimitiveTest.cpp index 4b4ef824e9..d69aeb7e47 100644 --- a/alib2xml/test-src/primitive/PrimitiveTest.cpp +++ b/alib2xml/test-src/primitive/PrimitiveTest.cpp @@ -1,40 +1,29 @@ +#include <catch2/catch.hpp> + #include <alib/list> -#include "PrimitiveTest.h" #include <primitive/xml/String.h> #include <sax/SaxParseInterface.h> #include <sax/SaxComposeInterface.h> #include <factory/XmlDataFactory.hpp> -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( PrimitiveTest, "primitive" ); -CPPUNIT_TEST_SUITE_REGISTRATION( PrimitiveTest ); - -void PrimitiveTest::setUp() { -} - -void PrimitiveTest::tearDown() { -} - -void PrimitiveTest::testXMLParser() { - - std::string primitive = "aaa"; - std::cout << primitive << std::endl; +TEST_CASE ( "XML Primitives Parser", "[unit][xml][primitive]" ) { + const std::string primitive = "aaa"; { ext::deque<sax::Token> tokens = factory::XmlDataFactory::toTokens(primitive); - std::cout << tokens << std::endl; std::string tmp = sax::SaxComposeInterface::composeMemory ( tokens ); ext::deque<sax::Token> tokens2 = sax::SaxParseInterface::parseMemory ( tmp ); std::string primitive2 = factory::XmlDataFactory::fromTokens (std::move(tokens2)); - CPPUNIT_ASSERT( primitive == primitive2 ); + CHECK ( primitive == primitive2 ); } { std::string tmp = factory::XmlDataFactory::toString(primitive); std::string primitive2 = factory::XmlDataFactory::fromString (tmp); - CPPUNIT_ASSERT( primitive == primitive2 ); + CHECK ( primitive == primitive2 ); } } diff --git a/alib2xml/test-src/primitive/PrimitiveTest.h b/alib2xml/test-src/primitive/PrimitiveTest.h deleted file mode 100644 index e24b6ff857..0000000000 --- a/alib2xml/test-src/primitive/PrimitiveTest.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef PRIMITIVE_TEST_H_ -#define PRIMITIVE_TEST_H_ - -#include <cppunit/extensions/HelperMacros.h> - -class PrimitiveTest : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE( PrimitiveTest ); - CPPUNIT_TEST( testXMLParser ); - CPPUNIT_TEST_SUITE_END(); - -public: - void setUp(); - void tearDown(); - - void testXMLParser(); -}; - -#endif // PRIMITIVE_TEST_H_ diff --git a/alib2xml/test-src/sax/SaxTest.cpp b/alib2xml/test-src/sax/SaxTest.cpp index 983fd15b88..791486ce2b 100644 --- a/alib2xml/test-src/sax/SaxTest.cpp +++ b/alib2xml/test-src/sax/SaxTest.cpp @@ -1,34 +1,26 @@ -#include "SaxTest.h" +#include <catch2/catch.hpp> + #include <alib/string> #include <alib/iostream> #include "sax/SaxParseInterface.h" #include "sax/SaxComposeInterface.h" -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( SaxTest, "sax" ); -CPPUNIT_TEST_SUITE_REGISTRATION ( SaxTest ); - -void SaxTest::setUp ( ) { -} - -void SaxTest::tearDown ( ) { -} - -void SaxTest::testSax ( ) { - std::string tmp = "<?xml version=\"1.0\"?>\n<aa bb=\"cc\"><xx/>dd<ee ff=\"gg\"/></aa>\n"; +TEST_CASE ( "Sax", "[unit][sax][xml]" ) { + const std::string tmp = "<?xml version=\"1.0\"?>\n<aa bb=\"cc\"><xx/>dd<ee ff=\"gg\"/></aa>\n"; ext::deque < sax::Token > tokens; sax::SaxParseInterface::parseMemory ( tmp, tokens ); - std::cout << tokens << std::endl; + CAPTURE ( tokens ); std::string tmp2; sax::SaxComposeInterface::composeMemory ( tmp2, tokens ); - CPPUNIT_ASSERT ( tmp == tmp2 ); + REQUIRE ( tmp == tmp2 ); ext::deque < sax::Token > tokens2; sax::SaxParseInterface::parseMemory ( tmp2, tokens2 ); - CPPUNIT_ASSERT ( tokens == tokens2 ); + CHECK ( tokens == tokens2 ); } diff --git a/alib2xml/test-src/sax/SaxTest.h b/alib2xml/test-src/sax/SaxTest.h deleted file mode 100644 index 2f1a651007..0000000000 --- a/alib2xml/test-src/sax/SaxTest.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef SAX_TEST_H_ -#define SAX_TEST_H_ - -#include <cppunit/extensions/HelperMacros.h> - -class SaxTest : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE( SaxTest ); - CPPUNIT_TEST( testSax ); - CPPUNIT_TEST_SUITE_END(); - -public: - void setUp(); - void tearDown(); - - void testSax(); -}; - -#endif // SAX_TEST_H_ -- GitLab