diff options
author | Mike Buland <eichlan@xagasoft.com> | 2012-04-14 18:04:52 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2012-04-14 18:04:52 +0000 |
commit | da1de5cdb5c42ce811a66d377789e585042b98c7 (patch) | |
tree | 44f530399c603252535232ae6483abce734ca828 | |
parent | 49d9fa3c2435b8e97ffdc42e40a880a3dad82f8a (diff) | |
download | libbu++-da1de5cdb5c42ce811a66d377789e585042b98c7.tar.gz libbu++-da1de5cdb5c42ce811a66d377789e585042b98c7.tar.bz2 libbu++-da1de5cdb5c42ce811a66d377789e585042b98c7.tar.xz libbu++-da1de5cdb5c42ce811a66d377789e585042b98c7.zip |
Added support for running subsets of unit tests to Bu::UnitSuite, now just list
the names of the tests you want to run on the command line.
Also, fixed some minor issues in two of the test suites.
-rw-r--r-- | src/stable/unitsuite.cpp | 20 | ||||
-rw-r--r-- | src/stable/unitsuite.h | 4 | ||||
-rw-r--r-- | src/unit/file.unit | 4 | ||||
-rw-r--r-- | src/unit/variant.unit | 2 |
4 files changed, 28 insertions, 2 deletions
diff --git a/src/stable/unitsuite.cpp b/src/stable/unitsuite.cpp index db930a4..e508c6f 100644 --- a/src/stable/unitsuite.cpp +++ b/src/stable/unitsuite.cpp | |||
@@ -32,7 +32,6 @@ Bu::UnitSuite::~UnitSuite() | |||
32 | { | 32 | { |
33 | } | 33 | } |
34 | 34 | ||
35 | // Argument handling is coming soon, I promise. | ||
36 | int Bu::UnitSuite::run( int argc, char *argv[] ) | 35 | int Bu::UnitSuite::run( int argc, char *argv[] ) |
37 | { | 36 | { |
38 | bool bCleanup = true; | 37 | bool bCleanup = true; |
@@ -41,9 +40,22 @@ int Bu::UnitSuite::run( int argc, char *argv[] ) | |||
41 | "List available test cases." ); | 40 | "List available test cases." ); |
42 | p.addOption( bCleanup, "no-cleanup", "Don't erase temp files."); | 41 | p.addOption( bCleanup, "no-cleanup", "Don't erase temp files."); |
43 | p.setOverride( "no-cleanup", false ); | 42 | p.setOverride( "no-cleanup", false ); |
43 | p.setNonOption( Bu::slot( this, &Bu::UnitSuite::onAddTest ) ); | ||
44 | p.addHelpOption(); | 44 | p.addHelpOption(); |
45 | p.parse( argc, argv ); | 45 | p.parse( argc, argv ); |
46 | 46 | ||
47 | if( !hSelTests.isEmpty() ) | ||
48 | { | ||
49 | TestList lSub; | ||
50 | for( TestList::iterator i = lTests.begin(); i != lTests.end(); i++ ) | ||
51 | { | ||
52 | if( hSelTests.has( (*i).sName ) ) | ||
53 | lSub.append( *i ); | ||
54 | } | ||
55 | |||
56 | lTests = lSub; | ||
57 | } | ||
58 | |||
47 | int iEPass = 0; | 59 | int iEPass = 0; |
48 | int iEFail = 0; | 60 | int iEFail = 0; |
49 | int iUPass = 0; | 61 | int iUPass = 0; |
@@ -239,6 +251,12 @@ int Bu::UnitSuite::onListCases( StrArray ) | |||
239 | return 0; | 251 | return 0; |
240 | } | 252 | } |
241 | 253 | ||
254 | int Bu::UnitSuite::onAddTest( StrArray aParam ) | ||
255 | { | ||
256 | hSelTests.insert( aParam[0], true ); | ||
257 | return 0; | ||
258 | } | ||
259 | |||
242 | Bu::Formatter &Bu::operator<<( Bu::Formatter &f, const Bu::UnitSuite::Expect &e ) | 260 | Bu::Formatter &Bu::operator<<( Bu::Formatter &f, const Bu::UnitSuite::Expect &e ) |
243 | { | 261 | { |
244 | switch( e ) | 262 | switch( e ) |
diff --git a/src/stable/unitsuite.h b/src/stable/unitsuite.h index 2250a4d..6915fb4 100644 --- a/src/stable/unitsuite.h +++ b/src/stable/unitsuite.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #include "bu/string.h" | 13 | #include "bu/string.h" |
14 | #include "bu/file.h" | 14 | #include "bu/file.h" |
15 | #include "bu/array.h" | 15 | #include "bu/array.h" |
16 | #include "bu/hash.h" | ||
16 | 17 | ||
17 | namespace Bu | 18 | namespace Bu |
18 | { | 19 | { |
@@ -103,6 +104,7 @@ namespace Bu | |||
103 | 104 | ||
104 | private: | 105 | private: |
105 | int onListCases( Bu::Array<Bu::String> aParam ); | 106 | int onListCases( Bu::Array<Bu::String> aParam ); |
107 | int onAddTest( Bu::Array<Bu::String> aParam ); | ||
106 | 108 | ||
107 | private: | 109 | private: |
108 | typedef struct TestInfo | 110 | typedef struct TestInfo |
@@ -124,6 +126,8 @@ namespace Bu | |||
124 | int iStepCount; | 126 | int iStepCount; |
125 | int iProgress; | 127 | int iProgress; |
126 | time_t tLastUpdate; | 128 | time_t tLastUpdate; |
129 | |||
130 | Bu::Hash<Bu::String, bool> hSelTests; | ||
127 | }; | 131 | }; |
128 | 132 | ||
129 | Bu::Formatter &operator<<( Bu::Formatter &f, const Bu::UnitSuite::Expect &e ); | 133 | Bu::Formatter &operator<<( Bu::Formatter &f, const Bu::UnitSuite::Expect &e ); |
diff --git a/src/unit/file.unit b/src/unit/file.unit index fb04e57..efca4f1 100644 --- a/src/unit/file.unit +++ b/src/unit/file.unit | |||
@@ -48,7 +48,11 @@ suite File | |||
48 | if( s < 50 ) | 48 | if( s < 50 ) |
49 | { | 49 | { |
50 | unitTest( total == 256 ); | 50 | unitTest( total == 256 ); |
51 | unitTest( sf.isEos() == false ); | ||
52 | unitTest( sf.read( buf, 1 ) == 0 ); | ||
51 | unitTest( sf.isEos() == true ); | 53 | unitTest( sf.isEos() == true ); |
54 | // EOS is only set when an attempt to read past the end of | ||
55 | // the stream is made, not when a short block is returned. | ||
52 | break; | 56 | break; |
53 | } | 57 | } |
54 | } | 58 | } |
diff --git a/src/unit/variant.unit b/src/unit/variant.unit index 4fd5e26..53abdc0 100644 --- a/src/unit/variant.unit +++ b/src/unit/variant.unit | |||
@@ -55,7 +55,7 @@ suite Variant | |||
55 | arg( mkastring().getStr() ). | 55 | arg( mkastring().getStr() ). |
56 | arg( i1, Fmt(2).fill('0') ). | 56 | arg( i1, Fmt(2).fill('0') ). |
57 | arg( i2, Fmt(2).fill('0') ); | 57 | arg( i2, Fmt(2).fill('0') ); |
58 | sio << sio.nl << out << sio.nl; | 58 | // sio << sio.nl << out << sio.nl; |
59 | unitTest( out == "hello-stuff-32-00.odp" ); | 59 | unitTest( out == "hello-stuff-32-00.odp" ); |
60 | } | 60 | } |
61 | } | 61 | } |