3636
3737#define LT_BEGIN_TEST_ENV () int main () {
3838
39- #define LT_END_TEST_ENV () return 0 ; }
39+ #define LT_END_TEST_ENV () }
40+
41+ #define LT_BEGIN_AUTO_TEST_ENV () LT_BEGIN_TEST_ENV()
42+
43+ #define LT_END_AUTO_TEST_ENV () \
44+ return !littletest::auto_test_result; \
45+ }
4046
4147#define AUTORUN_TESTS () \
4248 std::vector<littletest::test_base*>::iterator autorun_it; \
@@ -336,6 +342,11 @@ double calculate_duration(timeval* before, timeval* after)
336342 (before->tv_sec * 1000 + (before->tv_usec / 1000.0 )));
337343}
338344
345+ class test_base ;
346+
347+ std::vector<test_base*> auto_test_vector;
348+ bool auto_test_result = true ;
349+
339350struct test_runner
340351{
341352 public:
@@ -387,6 +398,7 @@ struct test_runner
387398 void add_failure ()
388399 {
389400 failures_counter++;
401+ auto_test_result = false ;
390402 }
391403
392404 void add_success ()
@@ -420,6 +432,36 @@ struct test_runner
420432 total_time += t;
421433 }
422434
435+ operator int ()
436+ {
437+ return failures_counter;
438+ }
439+
440+ int get_test_number ()
441+ {
442+ return test_counter;
443+ }
444+
445+ int get_successes ()
446+ {
447+ return success_counter;
448+ }
449+
450+ int get_failures ()
451+ {
452+ return failures_counter;
453+ }
454+
455+ double get_test_time ()
456+ {
457+ return good_time_total;
458+ }
459+
460+ double get_total_time ()
461+ {
462+ return total_time;
463+ }
464+
423465 std::string last_checkpoint_file;
424466 int last_checkpoint_line;
425467
@@ -437,17 +479,16 @@ class test_base
437479{
438480 public:
439481 const char * name;
440- virtual bool run_test (test_runner* tr) { }
482+ virtual void run_test (test_runner* tr) { }
441483 virtual void operator ()() { }
442484};
443485
444486test_runner auto_test_runner;
445- std::vector<test_base*> auto_test_vector;
446487
447488template <class test_impl >
448489class test : public test_base
449490{
450- virtual bool run_test (test_runner* tr)
491+ virtual void run_test (test_runner* tr)
451492 {
452493 double set_up_duration = 0.0 , tier_down_duration = 0.0 , test_duration = 0.0 ;
453494 timeval before, after;
@@ -468,12 +509,10 @@ class test : public test_base
468509 {
469510 std::cout << " Exception during " << static_cast <test_impl* >(this )->name << " set up" << std::endl;
470511 }
471- bool result = false ;
472512 try
473513 {
474514 gettimeofday (&before, NULL );
475515 (*static_cast <test_impl*>(this ))(tr);
476- result = true ;
477516 }
478517 catch (assert_unattended& au)
479518 {
@@ -519,7 +558,6 @@ class test : public test_base
519558 }
520559 double total = set_up_duration + test_duration + tier_down_duration;
521560 tr->add_total_time (total);
522- return result;
523561 }
524562 protected:
525563 test () { }
0 commit comments