diff options
author | Mike Buland <eichlan@xagasoft.com> | 2007-08-23 20:17:52 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2007-08-23 20:17:52 +0000 |
commit | 4873aad0fe15b3f46c6372b661ce926795922a6e (patch) | |
tree | 4a03079f45e39e2ed9d42f389f299f1d6dbe007a /src/unit | |
parent | da6ebe9bd659916122ee973818c3d1f98ce2e007 (diff) | |
download | libbu++-4873aad0fe15b3f46c6372b661ce926795922a6e.tar.gz libbu++-4873aad0fe15b3f46c6372b661ce926795922a6e.tar.bz2 libbu++-4873aad0fe15b3f46c6372b661ce926795922a6e.tar.xz libbu++-4873aad0fe15b3f46c6372b661ce926795922a6e.zip |
The list now supports insertSorted, and the UnitSuite supports more options,
including StopOnError and handling/reporting of external exceptions.
Diffstat (limited to '')
-rw-r--r-- | src/unitsuite.cpp | 21 | ||||
-rw-r--r-- | src/unitsuite.h | 8 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/unitsuite.cpp b/src/unitsuite.cpp index 2a28eb5..b61f486 100644 --- a/src/unitsuite.cpp +++ b/src/unitsuite.cpp | |||
@@ -1,6 +1,12 @@ | |||
1 | #include "unitsuite.h" | 1 | #include "unitsuite.h" |
2 | 2 | ||
3 | Bu::UnitSuite::UnitSuite() | 3 | Bu::UnitSuite::UnitSuite() : |
4 | iOptions( 0 ) | ||
5 | { | ||
6 | } | ||
7 | |||
8 | Bu::UnitSuite::UnitSuite( int iOptions ) : | ||
9 | iOptions( iOptions ) | ||
4 | { | 10 | { |
5 | } | 11 | } |
6 | 12 | ||
@@ -35,10 +41,23 @@ int Bu::UnitSuite::run( int argc, char *argv[] ) | |||
35 | e.str.getStr() | 41 | e.str.getStr() |
36 | ); | 42 | ); |
37 | } | 43 | } |
44 | |||
45 | if( (iOptions & optStopOnError) ) | ||
46 | return 0; | ||
47 | } | ||
48 | catch( std::exception &e ) | ||
49 | { | ||
50 | printf("failed with unknown exception. what: %s\n", e.what() ); | ||
51 | |||
52 | if( (iOptions & optStopOnError) ) | ||
53 | return 0; | ||
38 | } | 54 | } |
39 | catch( ... ) | 55 | catch( ... ) |
40 | { | 56 | { |
41 | printf("failed with external exception.\n"); | 57 | printf("failed with external exception.\n"); |
58 | |||
59 | if( (iOptions & optStopOnError) ) | ||
60 | return 0; | ||
42 | } | 61 | } |
43 | } | 62 | } |
44 | 63 | ||
diff --git a/src/unitsuite.h b/src/unitsuite.h index 578b4cc..aed7659 100644 --- a/src/unitsuite.h +++ b/src/unitsuite.h | |||
@@ -49,6 +49,7 @@ namespace Bu | |||
49 | { | 49 | { |
50 | public: | 50 | public: |
51 | UnitSuite(); | 51 | UnitSuite(); |
52 | UnitSuite( int iOptions ); | ||
52 | virtual ~UnitSuite(); | 53 | virtual ~UnitSuite(); |
53 | 54 | ||
54 | int run( int argc=0, char *argv[]=NULL ); | 55 | int run( int argc=0, char *argv[]=NULL ); |
@@ -68,6 +69,11 @@ namespace Bu | |||
68 | int nLine; | 69 | int nLine; |
69 | bool bFile; | 70 | bool bFile; |
70 | }; | 71 | }; |
72 | |||
73 | enum | ||
74 | { | ||
75 | optStopOnError = 0x000001 | ||
76 | }; | ||
71 | 77 | ||
72 | protected: | 78 | protected: |
73 | void add( Test fTest, Bu::FString sName ); | 79 | void add( Test fTest, Bu::FString sName ); |
@@ -83,6 +89,8 @@ namespace Bu | |||
83 | typedef std::list<TestInfo> TestList; | 89 | typedef std::list<TestInfo> TestList; |
84 | TestList lTests; | 90 | TestList lTests; |
85 | FString sSuiteName; | 91 | FString sSuiteName; |
92 | |||
93 | int iOptions; | ||
86 | }; | 94 | }; |
87 | } | 95 | } |
88 | 96 | ||