|
Packit |
8c9aa0 |
#include "CommandLineParser.h"
|
|
Packit |
8c9aa0 |
#include "CommandLineParserTest.h"
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_TEST_SUITE_REGISTRATION( CommandLineParserTest );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CommandLineParserTest::CommandLineParserTest()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CommandLineParserTest::~CommandLineParserTest()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::setUp()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
_parser = NULL;
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::tearDown()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
delete _parser;
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::parse( const char **lines )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
int count =0;
|
|
Packit |
8c9aa0 |
for ( const char **line = lines; *line != NULL; ++line, ++count )
|
|
Packit |
8c9aa0 |
;
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
delete _parser;
|
|
Packit |
8c9aa0 |
_parser = new CommandLineParser( count, lines );
|
|
Packit |
8c9aa0 |
_parser->parse();
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testEmptyCommandLine()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->noTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useBriefTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCompilerOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCoutStream() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useTextOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useXmlOutputter() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testFlagCompiler()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "-c", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->noTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useBriefTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( _parser->useCompilerOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCoutStream() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useTextOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useXmlOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testLongFlagBriefProgress()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "--brief-progress", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->noTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( _parser->useBriefTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCompilerOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCoutStream() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useTextOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useXmlOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testFileName()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "TestPlugIn.dll", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->noTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useBriefTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCompilerOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCoutStream() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useTextOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useXmlOutputter() );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( 1, _parser->getPlugInCount() );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CommandLinePlugInInfo info( _parser->getPlugInAt( 0 ) );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( std::string("TestPlugIn.dll"), info.m_fileName );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( info.m_parameters.getCommandLine().empty() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testTestPath()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", ":Core", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( std::string("Core"), _parser->getTestPath() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->noTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useBriefTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCompilerOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCoutStream() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useTextOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useXmlOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testParameterWithSpace()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "--xml", "Test Results.xml", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( std::string("Test Results.xml"),
|
|
Packit |
8c9aa0 |
_parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->noTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useBriefTestProgress() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCompilerOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useCoutStream() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( !_parser->useTextOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( _parser->useXmlOutputter() );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testMissingStyleSheetParameterThrow()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "--xsl", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testMissingEncodingParameterThrow()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "--encoding", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testXmlFileNameIsOptional()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "--xml", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string none;
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
CommandLineParserTest::testPlugInsWithParameters()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
static const char *lines[] = { "", "TestPlugIn1.dll=login = lain",
|
|
Packit |
8c9aa0 |
"Clocker.dll", NULL };
|
|
Packit |
8c9aa0 |
parse( lines );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( 2, _parser->getPlugInCount() );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CommandLinePlugInInfo info1( _parser->getPlugInAt( 0 ) );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( std::string("TestPlugIn1.dll"), info1.m_fileName );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( std::string("login = lain"),
|
|
Packit |
8c9aa0 |
info1.m_parameters.getCommandLine() );
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CommandLinePlugInInfo info2( _parser->getPlugInAt( 1 ) );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT_EQUAL( std::string("Clocker.dll"), info2.m_fileName );
|
|
Packit |
8c9aa0 |
CPPUNIT_ASSERT( info2.m_parameters.getCommandLine().empty() );
|
|
Packit |
8c9aa0 |
}
|