diff options
Diffstat (limited to '')
-rw-r--r-- | src/stable/unitsuite.cpp | 20 | ||||
-rw-r--r-- | src/stable/unitsuite.h | 4 |
2 files changed, 23 insertions, 1 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 ); |