diff options
author | Mike Buland <eichlan@xagasoft.com> | 2007-04-10 16:02:07 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2007-04-10 16:02:07 +0000 |
commit | b6e100b94b12f3f92ec025dc2363eaf7c0ee6662 (patch) | |
tree | 7fa6f7c9450f0ef866e50e1d096ad854a5892aa0 /src/unitsuite.cpp | |
parent | 5a0d7856dc265580cebaa833e0367d03ef21bbc3 (diff) | |
download | libbu++-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.cpp | 67 |
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 | |||
3 | Bu::UnitSuite::UnitSuite() | ||
4 | { | ||
5 | } | ||
6 | |||
7 | Bu::UnitSuite::~UnitSuite() | ||
8 | { | ||
9 | } | ||
10 | |||
11 | int 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 | |||
48 | void 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 | |||
63 | void Bu::UnitSuite::setName( const FString &sName ) | ||
64 | { | ||
65 | sSuiteName = sName; | ||
66 | } | ||
67 | |||