Add 'print' unit test which prints the list of tests

This commit is contained in:
Vinnie Falco
2013-08-07 15:34:13 -07:00
parent c3f86da17a
commit f48ab1b286
4 changed files with 55 additions and 4 deletions

View File

@@ -1,5 +1,13 @@
Vinnie Falco's Change Log
2013/08/07
- Add 'print' test that shows all the tests
2013/08/04
- Begin reworking of socket code
2013/08/01
- Add beast::SemanticVersion

View File

@@ -323,11 +323,11 @@ public:
{
beginTestCase ("backtrace");
pass ();
String const s = SystemStats::getStackBacktrace ();
Logger::outputDebugString (s);
logMessage (s);
pass ();
}
};

View File

@@ -351,3 +351,46 @@ void UnitTests::runTest (UnitTest& test)
Throw (std::runtime_error ("unhandled exception during unit tests"));
}
}
//------------------------------------------------------------------------------
/** A UnitTest that prints the list of available unit tests.
Not an actual test (it always passes) but if you run it manually it
will print a list of the names of all available unit tests in the program.
*/
class UnitTestsPrinter : public UnitTest
{
public:
UnitTestsPrinter () : UnitTest ("print", "print", runManual)
{
}
void runTest ()
{
beginTestCase ("List available unit tests");
TestList const& list (UnitTest::getAllTests ());
for (int i = 0; i < list.size (); ++i)
{
UnitTest const& test (*list [i]);
String s;
switch (test.getWhen ())
{
default:
case UnitTest::runNormal: s << " "; break;
case UnitTest::runManual: s << "[manual] "; break;
case UnitTest::runStartup: s << "[FORCED] "; break;
};
s << test.getPackageName () << "/" << test.getClassName ();
logMessage (s);
}
pass ();
}
};
static UnitTestsPrinter unitTestsPrinter;

View File

@@ -269,7 +269,7 @@ bool ProxyHandshake::Version1::parse (void const* headerData, size_t headerBytes
class ProxyHandshakeTests : public UnitTest
{
public:
ProxyHandshakeTests () : UnitTest ("ProxyHandshake", "ripple", runManual)
ProxyHandshakeTests () : UnitTest ("ProxyHandshake", "ripple")
{
}