HEPnOSTestMain.cpp 1.36 KB
Newer Older
1
#include <fstream>
2 3 4 5 6 7
#include <cppunit/CompilerOutputter.h>
#include <cppunit/XmlOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>
#include <hepnos.hpp>

8
hepnos::DataStore* datastore = nullptr;
9 10 11

int main(int argc, char* argv[])
{
12
    if(argc < 2) return 1;
13

14
    sleep(1);
15
    // Create the datastore
16 17
    hepnos::DataStore ds = hepnos::DataStore::connect(argv[1]);
    datastore = &ds;
18 19 20 21 22 23 24 25

    // Get the top level suite from the registry
    CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();

    // Adds the test to the list of test to run
    CppUnit::TextUi::TestRunner runner;
    runner.addTest( suite );

26 27 28 29 30 31 32 33 34 35 36
    std::ofstream xmlOutFile;
    if(argc >= 3) {
        const char* xmlOutFileName = argv[2];
        xmlOutFile.open(xmlOutFileName);
        // Change the default outputter to a compiler error format outputter
        runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), xmlOutFile));
    } else {
        // Change the default outputter to a compiler error format outputter
        runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), std::cerr));
    }

37 38 39
    // Run the tests.
    bool wasSucessful = runner.run();

40 41 42
    ds.shutdown();
    if(argc >= 3)
       xmlOutFile.close(); 
43

44 45 46
    // Return error code 1 if the one of test failed.
    return wasSucessful ? 0 : 1;
}