summaryrefslogtreecommitdiff
path: root/src/unitsuite.cpp
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2007-04-10 16:02:07 +0000
committerMike Buland <eichlan@xagasoft.com>2007-04-10 16:02:07 +0000
commitb6e100b94b12f3f92ec025dc2363eaf7c0ee6662 (patch)
tree7fa6f7c9450f0ef866e50e1d096ad854a5892aa0 /src/unitsuite.cpp
parent5a0d7856dc265580cebaa833e0367d03ef21bbc3 (diff)
downloadlibbu++-b6e100b94b12f3f92ec025dc2363eaf7c0ee6662.tar.gz
libbu++-b6e100b94b12f3f92ec025dc2363eaf7c0ee6662.tar.bz2
libbu++-b6e100b94b12f3f92ec025dc2363eaf7c0ee6662.tar.xz
libbu++-b6e100b94b12f3f92ec025dc2363eaf7c0ee6662.zip
Well, we've got the basis of a workable unit test harness thing. There should
be a few more add-ons to it, but it works just fine, and eventually it should cover command line options and creating logs, and possibly even provide output functionality so that output from tests can be logged and kept track of well.
Diffstat (limited to 'src/unitsuite.cpp')
-rw-r--r--src/unitsuite.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/unitsuite.cpp b/src/unitsuite.cpp
new file mode 100644
index 0000000..2a28eb5
--- /dev/null
+++ b/src/unitsuite.cpp
@@ -0,0 +1,67 @@
1#include "unitsuite.h"
2
3Bu::UnitSuite::UnitSuite()
4{
5}
6
7Bu::UnitSuite::~UnitSuite()
8{
9}
10
11int Bu::UnitSuite::run( int argc, char *argv[] )
12{
13 for( TestList::iterator i = lTests.begin(); i != lTests.end(); i++ )
14 {
15 printf("%s: ", i->sName.getStr() );
16 fflush( stdout );
17 try
18 {
19 (this->*(i->fTest))();
20 printf("passed.\n");
21 }
22 catch( Failed &e )
23 {
24 if( e.bFile )
25 {
26 printf("unitTest(%s) failed. (%s:%d)\n",
27 e.str.getStr(),
28 e.sFile.getStr(),
29 e.nLine
30 );
31 }
32 else
33 {
34 printf("unitTest(%s) failed.\n",
35 e.str.getStr()
36 );
37 }
38 }
39 catch( ... )
40 {
41 printf("failed with external exception.\n");
42 }
43 }
44
45 return 0;
46}
47
48void Bu::UnitSuite::add( Test fTest, Bu::FString sName )
49{
50 TestInfo ti;
51 ti.sName = sName;
52 long index = ti.sName.rfind("::");
53 if( index != -1 )
54 {
55 FString tmp = sSuiteName;
56 tmp += ti.sName.getStr()+index;
57 ti.sName = tmp;
58 }
59 ti.fTest = fTest;
60 lTests.push_back( ti );
61}
62
63void Bu::UnitSuite::setName( const FString &sName )
64{
65 sSuiteName = sName;
66}
67