Added clean-up

Clean-up statics at the end of main to avoid added noise when looking for leaks
This commit is contained in:
Phil Nash 2012-02-18 09:58:30 +00:00
parent 333e6e6254
commit dd5b9c2ae5
4 changed files with 58 additions and 8 deletions

View File

@ -24,14 +24,14 @@ int main (int argc, char * const argv[])
int result = Catch::Main( argc, (char* const*)argv );
[pool drain];
return result;
#else
return Catch::Main( argc, argv );
int result =Catch::Main( argc, argv );
#endif
Catch::Hub::cleanUp();
return result;
}
#endif // TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED

View File

@ -77,7 +77,13 @@ namespace Catch
static bool advanceGeneratorsForCurrentTest
();
static void cleanUp
();
private:
static Hub*& singleInstance();
GeneratorsForTest* findGeneratorsForCurrentTest
();

View File

@ -32,8 +32,27 @@ namespace Catch
Hub& Hub::me
()
{
static Hub hub;
Hub*& hub = singleInstance();
if( !hub )
hub = new Hub();
return *hub;
}
///////////////////////////////////////////////////////////////////////////
void Hub::cleanUp
()
{
Hub*& hub = singleInstance();
delete hub;
hub = NULL;
}
///////////////////////////////////////////////////////////////////////////
Hub*& Hub::singleInstance()
{
static Hub* hub = NULL;
return hub;
}
///////////////////////////////////////////////////////////////////////////

View File

@ -370,7 +370,13 @@ namespace Catch
static bool advanceGeneratorsForCurrentTest
();
static void cleanUp
();
private:
static Hub*& singleInstance();
GeneratorsForTest* findGeneratorsForCurrentTest
();
@ -4513,8 +4519,27 @@ namespace Catch
Hub& Hub::me
()
{
static Hub hub;
Hub*& hub = singleInstance();
if( !hub )
hub = new Hub();
return *hub;
}
///////////////////////////////////////////////////////////////////////////
void Hub::cleanUp
()
{
Hub*& hub = singleInstance();
delete hub;
hub = NULL;
}
///////////////////////////////////////////////////////////////////////////
Hub*& Hub::singleInstance()
{
static Hub* hub = NULL;
return hub;
}
///////////////////////////////////////////////////////////////////////////
@ -6276,16 +6301,16 @@ int main (int argc, char * const argv[])
int result = Catch::Main( argc, (char* const*)argv );
[pool drain];
return result;
#else
return Catch::Main( argc, argv );
int result =Catch::Main( argc, argv );
#endif
Catch::Hub::cleanUp();
return result;
}
#endif
//////