3 /// Routines for testing the Barry libraries
7 Copyright (C) 2011-2012, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
28 typedef std::pair
<const char*, testfunc
> TestPair
;
29 typedef std::vector
<TestPair
> TestList
;
33 static TestList tests
;
37 void AddTest(const char *name
, testfunc test
)
39 GetTests().push_back(TestPair(name
, test
));
46 TestList::iterator b
= GetTests().begin(), e
= GetTests().end();
47 for( ; b
!= e
; ++b
) {
48 cout
<< "Testing: " << b
->first
<< "... " << flush
;
49 if( !(*b
->second
)() ) {
51 cout
<< "FAILED" << endl
;
54 cout
<< "passed" << endl
;
59 cout
<< dec
<< failures
<< " tests failed" << endl
;
62 cout
<< "All tests passed" << endl
;
65 return failures
? 1 : 0;