diff options
author | John Wiegley <johnw@newartisans.com> | 2008-04-13 03:35:00 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2008-04-13 03:35:00 -0400 |
commit | 42f43b7686038e4cbca16d8d2118b139544e6de3 (patch) | |
tree | 52c5473401c57282242d66b8dd75f4c07bf41d07 /tests/UnitTests.cc | |
parent | c7b4370ff9c8ab5c96f15b1e712e6db6bdab6324 (diff) | |
download | fork-ledger-42f43b7686038e4cbca16d8d2118b139544e6de3.tar.gz fork-ledger-42f43b7686038e4cbca16d8d2118b139544e6de3.tar.bz2 fork-ledger-42f43b7686038e4cbca16d8d2118b139544e6de3.zip |
Check in all changes made so far toward 3.0.
Diffstat (limited to 'tests/UnitTests.cc')
-rw-r--r-- | tests/UnitTests.cc | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/tests/UnitTests.cc b/tests/UnitTests.cc new file mode 100644 index 00000000..ee9c163e --- /dev/null +++ b/tests/UnitTests.cc @@ -0,0 +1,111 @@ +#include <cppunit/CompilerOutputter.h> +#include <cppunit/TestResult.h> +#include <cppunit/TestResultCollector.h> +#include <cppunit/TestRunner.h> +#include <cppunit/TextTestProgressListener.h> +#include <cppunit/BriefTestProgressListener.h> +#include <cppunit/XmlOutputter.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include <stdexcept> +#include <fstream> + +#include "UnitTests.h" + + +// Create the CppUnit registry + +CPPUNIT_REGISTRY_ADD_TO_DEFAULT("Framework"); + +CPPUNIT_REGISTRY_ADD_TO_DEFAULT("corelib"); + +CPPUNIT_REGISTRY_ADD("numerics", "corelib"); +CPPUNIT_REGISTRY_ADD("balances", "corelib"); +CPPUNIT_REGISTRY_ADD("values", "corelib"); + +CPPUNIT_REGISTRY_ADD_TO_DEFAULT("driver"); +CPPUNIT_REGISTRY_ADD_TO_DEFAULT("journal"); +CPPUNIT_REGISTRY_ADD_TO_DEFAULT("reports"); +CPPUNIT_REGISTRY_ADD_TO_DEFAULT("transforms"); + + +// Create a sample test, which acts both as a template, and a +// verification that the basic framework is functioning. + +class UnitTests : public CPPUNIT_NS::TestCase +{ + CPPUNIT_TEST_SUITE( UnitTests ); + CPPUNIT_TEST( testInitialization ); + CPPUNIT_TEST_SUITE_END(); + +public: + UnitTests() {} + virtual ~UnitTests() {} + + virtual void setUp() {} + virtual void tearDown() {} + + void testInitialization() { + assertEquals(std::string("Hello, world!"), + std::string("Hello, world!")); + } + +private: + UnitTests( const UnitTests © ); + void operator =( const UnitTests © ); +}; + +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(UnitTests, "framework"); + + +// Create the various runners and commence running the tests! + +int main(int argc, char* argv[]) +{ + // Retreive test path from command line first argument. Default to + // "" which resolves to the top level suite. + std::string testPath = (argc > 1) ? std::string(argv[1]) : std::string(""); + + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that collects test results + CPPUNIT_NS::TestResultCollector result; + controller.addListener(&result); + + // Add a listener that print dots as test run. +#if 1 + CPPUNIT_NS::TextTestProgressListener progress; +#else + CPPUNIT_NS::BriefTestProgressListener progress; +#endif + controller.addListener(&progress); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest()); + try { + runner.run(controller, testPath); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter(&result, CPPUNIT_NS::stdCOut()); + outputter.write(); + +#if 0 + // Uncomment this for XML output + std::ofstream file("tests.xml"); + CPPUNIT_NS::XmlOutputter xml(&result, file); + xml.setStyleSheet("report.xsl"); + xml.write(); + file.close(); +#endif + } + catch (std::invalid_argument &e) { // Test path not resolved + CPPUNIT_NS::stdCOut() << "\n" + << "ERROR: " << e.what() + << "\n"; + return 0; + } + + return result.wasSuccessful() ? 0 : 1; +} |