wxCmdLineParser tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -30,18 +30,59 @@
|
||||
// what to test?
|
||||
|
||||
//#define TEST_ARRAYS
|
||||
#define TEST_CMDLINE
|
||||
//#define TEST_DIR
|
||||
//#define TEST_LOG
|
||||
//#define TEST_LONGLONG
|
||||
//#define TEST_MIME
|
||||
//#define TEST_STRINGS
|
||||
#define TEST_THREADS
|
||||
//#define TEST_THREADS
|
||||
//#define TEST_TIME
|
||||
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// ============================================================================
|
||||
|
||||
#ifdef TEST_CMDLINE
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxCmdLineParser
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include <wx/cmdline.h>
|
||||
#include <wx/datetime.h>
|
||||
|
||||
static void ShowCmdLine(const wxCmdLineParser& parser)
|
||||
{
|
||||
wxString s = "Input files: ";
|
||||
|
||||
size_t count = parser.GetParamCount();
|
||||
for ( size_t param = 0; param < count; param++ )
|
||||
{
|
||||
s << parser.GetParam(param) << ' ';
|
||||
}
|
||||
|
||||
s << '\n'
|
||||
<< "Verbose:\t" << (parser.Found("v") ? "yes" : "no") << '\n'
|
||||
<< "Quiet:\t" << (parser.Found("q") ? "yes" : "no") << '\n';
|
||||
|
||||
wxString strVal;
|
||||
long lVal;
|
||||
wxDateTime dt;
|
||||
if ( parser.Found("o", &strVal) )
|
||||
s << "Output file:\t" << strVal << '\n';
|
||||
if ( parser.Found("i", &strVal) )
|
||||
s << "Input dir:\t" << strVal << '\n';
|
||||
if ( parser.Found("s", &lVal) )
|
||||
s << "Size:\t" << lVal << '\n';
|
||||
if ( parser.Found("d", &dt) )
|
||||
s << "Date:\t" << dt.FormatISODate() << '\n';
|
||||
|
||||
wxLogMessage(s);
|
||||
}
|
||||
|
||||
#endif // TEST_CMDLINE
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDir
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -1538,6 +1579,41 @@ int main(int argc, char **argv)
|
||||
fprintf(stderr, "Failed to initialize the wxWindows library, aborting.");
|
||||
}
|
||||
|
||||
#ifdef TEST_CMDLINE
|
||||
static const wxCmdLineEntryDesc cmdLineDesc[] =
|
||||
{
|
||||
{ wxCMD_LINE_SWITCH, "v", "verbose", "be verbose" },
|
||||
{ wxCMD_LINE_SWITCH, "q", "quiet", "be quiet" },
|
||||
|
||||
{ wxCMD_LINE_OPTION, "o", "output", "output file" },
|
||||
{ wxCMD_LINE_OPTION, "i", "input", "input dir" },
|
||||
{ wxCMD_LINE_OPTION, "s", "size", "output block size", wxCMD_LINE_VAL_NUMBER },
|
||||
{ wxCMD_LINE_OPTION, "d", "date", "output file date", wxCMD_LINE_VAL_NUMBER },
|
||||
|
||||
{ wxCMD_LINE_PARAM, NULL, NULL, "input file",
|
||||
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE },
|
||||
|
||||
{ wxCMD_LINE_NONE }
|
||||
};
|
||||
|
||||
wxCmdLineParser parser(cmdLineDesc, argc, argv);
|
||||
|
||||
switch ( parser.Parse() )
|
||||
{
|
||||
case -1:
|
||||
wxLogMessage("Help was given, terminating.");
|
||||
break;
|
||||
|
||||
case 0:
|
||||
ShowCmdLine(parser);
|
||||
break;
|
||||
|
||||
default:
|
||||
wxLogMessage("Syntax error detected, aborting.");
|
||||
break;
|
||||
}
|
||||
#endif // TEST_CMDLINE
|
||||
|
||||
#ifdef TEST_STRINGS
|
||||
if ( 0 )
|
||||
{
|
||||
|
Reference in New Issue
Block a user