Skip to content

Commit c0d4e52

Browse files
author
Sebastiano Merlino
committed
Added automatic test environment
Created methods to get statistics
1 parent 8bec3fc commit c0d4e52

File tree

1 file changed

+45
-7
lines changed

1 file changed

+45
-7
lines changed

test/littletest.hpp

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,13 @@
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+
339350
struct 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

444486
test_runner auto_test_runner;
445-
std::vector<test_base*> auto_test_vector;
446487

447488
template <class test_impl>
448489
class 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

Comments
 (0)