1 /****************************************************************************
2 **
3 ** Copyright (c) 2008-2012 C.B. Barber. All rights reserved.
4 ** $Id: //main/2011/qhull/src/qhulltest/RoadTest.cpp#1 $$Change: 1490 $
5 ** $Date: 2012/02/19 $$Author: bbarber $
6 **
7 ****************************************************************************/
8 
9 //pre-compiled headers
10 #include <iostream>
11 #include <stdexcept>
12 #include "RoadTest.h"
13 
14 using std::cout;
15 using std::endl;
16 
17 namespace orgQhull {
18 
19 #//class variable
20 
21 QList<RoadTest*> RoadTest::
22 s_testcases;
23 
24 int RoadTest::
25 s_test_count= 0;
26 
27 int RoadTest::
28 s_test_fail= 0;
29 
30 QStringList RoadTest::
31 s_failed_tests;
32 
33 #//Slot
34 
35 //! Executed after each test
36 void RoadTest::
cleanup()37 cleanup()
38 {
39     s_test_count++;
40     if(QTest::currentTestFailed()){
41         recordFailedTest();
42     }
43 }//cleanup
44 
45 #//Helper
46 
47 void RoadTest::
recordFailedTest()48 recordFailedTest()
49 {
50     s_test_fail++;
51     QString className= metaObject()->className();
52     s_failed_tests << className + "::" + QTest::currentTestFunction();
53 }
54 
55 #//class function
56 
57 int RoadTest::
runTests(QStringList arguments)58 runTests(QStringList arguments)
59 {
60     int result= 0; // assume success
61 
62     foreach(RoadTest *testcase, s_testcases){
63         try{
64             result += QTest::qExec(testcase, arguments);
65         }catch(const std::exception &e){
66             cout << "FAIL!  : Threw error ";
67             cout << e.what() << endl;
68     s_test_count++;
69             testcase->recordFailedTest();
70             // Qt 4.5.2 OK.  In Qt 4.3.3, qtestcase did not clear currentTestObject
71         }
72     }
73     if(s_test_fail){
74         cout << "Failed " << s_test_fail << " of " << s_test_count << " tests.\n";
75         cout << s_failed_tests.join("\n").toLocal8Bit().constData() << std::endl;
76     }else{
77         cout << "Passed " << s_test_count << " tests.\n";
78     }
79     return result;
80 }//runTests
81 
82 }//orgQhull
83 
84 #include "moc/moc_RoadTest.cpp"
85