diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2010-05-28 19:23:45 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2010-05-28 19:23:45 +0000 |
| commit | 674274ed06dfdf9488e7f3bc9e3b45b9f7f4fb18 (patch) | |
| tree | df88d2ee7f25614e16ce2df7c07ca191f1745ac8 /src/unitsuite.cpp | |
| parent | 5b68b0c6abd98fc99acd57a2c5c691468e7dcb97 (diff) | |
| download | libbu++-674274ed06dfdf9488e7f3bc9e3b45b9f7f4fb18.tar.gz libbu++-674274ed06dfdf9488e7f3bc9e3b45b9f7f4fb18.tar.bz2 libbu++-674274ed06dfdf9488e7f3bc9e3b45b9f7f4fb18.tar.xz libbu++-674274ed06dfdf9488e7f3bc9e3b45b9f7f4fb18.zip | |
More myriad testing and unit test features, not unit tests that may take a
while are welcome to provide progress info with some builtin functions.
The Bu::Archive class now throws an exception if reading is interrupted by EOS
Diffstat (limited to 'src/unitsuite.cpp')
| -rw-r--r-- | src/unitsuite.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/unitsuite.cpp b/src/unitsuite.cpp index 0a531c0..7a20128 100644 --- a/src/unitsuite.cpp +++ b/src/unitsuite.cpp | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include "bu/sio.h" | 10 | #include "bu/sio.h" |
| 11 | #include "bu/optparser.h" | 11 | #include "bu/optparser.h" |
| 12 | #include <stdlib.h> | 12 | #include <stdlib.h> |
| 13 | #include <time.h> | ||
| 13 | 14 | ||
| 14 | using namespace Bu; | 15 | using namespace Bu; |
| 15 | 16 | ||
| @@ -53,6 +54,8 @@ int Bu::UnitSuite::run( int argc, char *argv[] ) | |||
| 53 | << sio.flush; | 54 | << sio.flush; |
| 54 | try | 55 | try |
| 55 | { | 56 | { |
| 57 | iStepCount = -1; | ||
| 58 | iProgress = 0; | ||
| 56 | (this->*(i->fTest))(); | 59 | (this->*(i->fTest))(); |
| 57 | switch( i->eExpect ) | 60 | switch( i->eExpect ) |
| 58 | { | 61 | { |
| @@ -185,6 +188,44 @@ void Bu::UnitSuite::setName( const FString &sName ) | |||
| 185 | sSuiteName = sName; | 188 | sSuiteName = sName; |
| 186 | } | 189 | } |
| 187 | 190 | ||
| 191 | void Bu::UnitSuite::dispProgress() | ||
| 192 | { | ||
| 193 | if( tLastUpdate == time( NULL ) ) | ||
| 194 | return; | ||
| 195 | sio << Fmt(3) << (iProgress*100/iStepCount) << "%" << "\b\b\b\b" | ||
| 196 | << sio.flush; | ||
| 197 | tLastUpdate = time( NULL ); | ||
| 198 | } | ||
| 199 | |||
| 200 | void Bu::UnitSuite::setStepCount( int iSteps ) | ||
| 201 | { | ||
| 202 | iStepCount = iSteps; | ||
| 203 | if( iStepCount < 0 ) | ||
| 204 | return; | ||
| 205 | tLastUpdate = 0; | ||
| 206 | dispProgress(); | ||
| 207 | } | ||
| 208 | |||
| 209 | void Bu::UnitSuite::incProgress( int iAmnt ) | ||
| 210 | { | ||
| 211 | iProgress += iAmnt; | ||
| 212 | if( iProgress < 0 ) | ||
| 213 | iProgress = 0; | ||
| 214 | if( iProgress > iStepCount ) | ||
| 215 | iProgress = iStepCount; | ||
| 216 | dispProgress(); | ||
| 217 | } | ||
| 218 | |||
| 219 | void Bu::UnitSuite::setProgress( int iAmnt ) | ||
| 220 | { | ||
| 221 | iProgress = iAmnt; | ||
| 222 | if( iProgress < 0 ) | ||
| 223 | iProgress = 0; | ||
| 224 | if( iProgress > iStepCount ) | ||
| 225 | iProgress = iStepCount; | ||
| 226 | dispProgress(); | ||
| 227 | } | ||
| 228 | |||
| 188 | int Bu::UnitSuite::onListCases( StrArray ) | 229 | int Bu::UnitSuite::onListCases( StrArray ) |
| 189 | { | 230 | { |
| 190 | sio << "Test cases:" << sio.nl; | 231 | sio << "Test cases:" << sio.nl; |
