libtasks Documentation  1.6
main.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013-2014 ADTECH GmbH
3  * Licensed under MIT (https://github.com/adtechlabs/libtasks/blob/master/COPYING)
4  *
5  * Author: Andreas Pohl
6  */
7 
8 #include <cppunit/TestCase.h>
9 #include <cppunit/TestFixture.h>
10 #include <cppunit/ui/text/TextTestRunner.h>
11 #include <cppunit/extensions/HelperMacros.h>
12 #include <cppunit/extensions/TestFactoryRegistry.h>
13 #include <cppunit/TestResult.h>
14 #include <cppunit/TestResultCollector.h>
15 #include <cppunit/TestRunner.h>
16 #include <cppunit/BriefTestProgressListener.h>
17 #include <cppunit/CompilerOutputter.h>
18 #include <cppunit/XmlOutputter.h>
19 
20 #include "test_http_sender.h"
21 #include "test_disk_io_task.h"
22 #include "test_socket.h"
23 #include "test_uwsgi_thrift.h"
25 #include "test_bitset.h"
26 #include "test_exec.h"
27 
28 #include <tasks/dispatcher.h>
29 #include <tasks/executor.h>
30 
31 #include <string>
32 
33 using namespace tasks;
34 
42 
43 int main(int argc, char** argv) {
44  if (argc > 1 && std::string(argv[1]) == "multi") {
46  }
47  // use 4 worker threads
49  // reduce the idle timeout for executor threads for the tests
51 
52  dispatcher::instance()->start();
53 
54  // informs test-listener about testresults
55  CPPUNIT_NS::TestResult testresult;
56 
57  // register listener for collecting the test-results
58  CPPUNIT_NS::TestResultCollector collectedresults;
59  testresult.addListener(&collectedresults);
60 
61  // register listener for per-test progress output
62  CPPUNIT_NS::BriefTestProgressListener progress;
63  testresult.addListener(&progress);
64 
65  // insert test-suite at test-runner by registry
66  CPPUNIT_NS::TestRunner testrunner;
67  testrunner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest());
68  testrunner.run(testresult);
69 
70  // output results in compiler-format
71  CPPUNIT_NS::CompilerOutputter compileroutputter(&collectedresults, std::cerr);
72  compileroutputter.write();
73 
74  // Output XML for Jenkins CPPunit plugin
75  std::ofstream xmlFileOut("libtasks_results.xml");
76  CPPUNIT_NS::XmlOutputter xmlOut(&collectedresults, xmlFileOut);
77  xmlOut.write();
78 
80 
81  // return 0 if tests were successful
82  return collectedresults.wasSuccessful() ? 0 : 1;
83 }
static void init_workers(uint8_t num_workers)
Definition: dispatcher.h:47
static std::shared_ptr< dispatcher > instance()
Definition: dispatcher.h:75
int main(int argc, char **argv)
Definition: main.cpp:43
static void set_timeout(uint32_t timeout)
Definition: executor.h:55
static void init_run_mode(mode m)
Definition: dispatcher.h:65
CPPUNIT_TEST_SUITE_REGISTRATION(test_http_sender)
static void destroy()
Definition: dispatcher.h:83