group all interactive tests together to make it easier to understand what's going on when running the sample

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2010-06-19 12:48:46 +00:00
parent e7747eb2e0
commit 8193a0bd2c

View File

@@ -103,6 +103,9 @@
// test, define it to 1 to do all tests.
#define TEST_ALL 1
// some tests are interactive, define this to run them
#define TEST_INTERACTIVE 1
#if TEST_ALL
#define TEST_DATETIME
#define TEST_VOLUME
@@ -117,15 +120,6 @@
#else // #if TEST_ALL
#endif
// some tests are interactive, define this to run them
#ifdef TEST_INTERACTIVE
#undef TEST_INTERACTIVE
#define TEST_INTERACTIVE 1
#else
#define TEST_INTERACTIVE 1
#endif
// ============================================================================
// implementation
// ============================================================================
@@ -313,14 +307,14 @@ static void TestDiskInfo()
for ( ;; )
{
wxChar pathname[128];
wxPrintf(wxT("\nEnter a directory name (or 'quit' to escape): "));
wxPrintf(wxT("Enter a directory name (press ENTER or type 'quit' to escape): "));
if ( !wxFgets(pathname, WXSIZEOF(pathname), stdin) )
break;
// kill the last '\n'
pathname[wxStrlen(pathname) - 1] = 0;
if (wxStrcmp(pathname, "quit") == 0)
if (pathname[0] == '\0' || wxStrcmp(pathname, "quit") == 0)
break;
wxLongLong total, free;
@@ -335,7 +329,11 @@ static void TestDiskInfo()
(free / 1024).ToString().c_str(),
pathname);
}
wxPuts("\n");
}
wxPuts("\n");
}
#endif // TEST_INTERACTIVE
@@ -402,14 +400,14 @@ static void TestRegExInteractive()
for ( ;; )
{
wxChar pattern[128];
wxPrintf(wxT("\nEnter a pattern (or 'quit' to escape): "));
wxPrintf(wxT("Enter a pattern (press ENTER or type 'quit' to escape): "));
if ( !wxFgets(pattern, WXSIZEOF(pattern), stdin) )
break;
// kill the last '\n'
pattern[wxStrlen(pattern) - 1] = 0;
if (wxStrcmp(pattern, "quit") == 0)
if (pattern[0] == '\0' || wxStrcmp(pattern, "quit") == 0)
break;
wxRegEx re;
@@ -449,6 +447,8 @@ static void TestRegExInteractive()
}
}
}
wxPuts("\n");
}
}
@@ -458,13 +458,12 @@ static void TestRegExInteractive()
// FTP
// ----------------------------------------------------------------------------
#ifdef TEST_FTP
#if defined(TEST_FTP) && TEST_INTERACTIVE
#include "wx/protocol/ftp.h"
#include "wx/protocol/log.h"
#define FTP_ANONYMOUS
static wxFTP *ftp;
#ifdef FTP_ANONYMOUS
@@ -473,9 +472,9 @@ static wxFTP *ftp;
static const wxChar *hostname = "localhost";
#endif
static bool TestFtpConnect()
static void TestFtpInteractive()
{
wxPuts(wxT("*** Testing FTP connect ***"));
wxPuts(wxT("\n*** Interactive wxFTP test ***"));
#ifdef FTP_ANONYMOUS
wxPrintf(wxT("--- Attempting to connect to %s:21 anonymously...\n"), hostname);
@@ -498,34 +497,27 @@ static bool TestFtpConnect()
{
wxPrintf(wxT("ERROR: failed to connect to %s\n"), hostname);
return false;
return;
}
else
{
wxPrintf(wxT("--- Connected to %s, current directory is '%s'\n"),
hostname, ftp->Pwd().c_str());
ftp->Close();
}
return true;
}
#if TEST_INTERACTIVE
static void TestFtpInteractive()
{
wxPuts(wxT("\n*** Interactive wxFTP test ***"));
wxChar buf[128];
for ( ;; )
{
wxPrintf(wxT("Enter FTP command (or 'quit' to escape): "));
wxPrintf(wxT("Enter FTP command (press ENTER or type 'quit' to escape): "));
if ( !wxFgets(buf, WXSIZEOF(buf), stdin) )
break;
// kill the last '\n'
buf[wxStrlen(buf) - 1] = 0;
if (buf[0] == '\0' || wxStrcmp(buf, "quit") == 0)
break;
// special handling of LIST and NLST as they require data connection
wxString start(buf, 4);
start.MakeUpper();
@@ -552,10 +544,6 @@ static void TestFtpInteractive()
wxPuts(wxT("--- End of the file list"));
}
}
else if ( start == wxT("QUIT") )
{
break; // get out of here!
}
else // !list
{
wxChar ch = ftp->SendCommand(buf);
@@ -571,7 +559,6 @@ static void TestFtpInteractive()
wxPuts(wxT("\n"));
}
#endif // TEST_INTERACTIVE
#endif // TEST_FTP
// ----------------------------------------------------------------------------
@@ -767,14 +754,14 @@ static void TestDateTimeInteractive()
for ( ;; )
{
wxPrintf(wxT("Enter a date (or 'quit' to escape): "));
wxPrintf(wxT("Enter a date (press ENTER or type 'quit' to escape): "));
if ( !wxFgets(buf, WXSIZEOF(buf), stdin) )
break;
// kill the last '\n'
buf[wxStrlen(buf) - 1] = 0;
if ( wxString(buf).CmpNoCase("quit") == 0 )
if ( buf[0] == '\0' || wxStrcmp(buf, "quit") == 0 )
break;
wxDateTime dt;
@@ -808,7 +795,7 @@ static void TestDateTimeInteractive()
// single instance
// ----------------------------------------------------------------------------
#ifdef TEST_SNGLINST
#if defined(TEST_SNGLINST) && TEST_INTERACTIVE
#include "wx/snglinst.h"
@@ -840,7 +827,7 @@ static bool TestSingleIstance()
return true;
}
#endif // TEST_SNGLINST
#endif // defined(TEST_SNGLINST) && TEST_INTERACTIVE
// ----------------------------------------------------------------------------
@@ -849,24 +836,6 @@ static bool TestSingleIstance()
int main(int argc, char **argv)
{
#if wxUSE_UNICODE
wxChar **wxArgv = new wxChar *[argc + 1];
{
int n;
for (n = 0; n < argc; n++ )
{
wxMB2WXbuf warg = wxConvertMB2WX(argv[n]);
wxArgv[n] = wxStrdup(warg);
}
wxArgv[n] = NULL;
}
#else // !wxUSE_UNICODE
#define wxArgv argv
#endif // wxUSE_UNICODE/!wxUSE_UNICODE
wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program");
wxInitializer initializer;
@@ -877,29 +846,14 @@ int main(int argc, char **argv)
return -1;
}
#ifdef TEST_SNGLINST
if (!TestSingleIstance())
return 1;
#endif // TEST_SNGLINST
// run all non-interactive tests:
// ------------------------------
#ifdef TEST_DYNLIB
TestDllListLoaded();
#endif // TEST_DYNLIB
#ifdef TEST_FTP
wxLog::AddTraceMask(FTP_TRACE_MASK);
// wxFTP cannot be a static variable as its ctor needs to access
// wxWidgets internals after it has been initialized
ftp = new wxFTP;
ftp->SetLog(new wxProtocolLog(FTP_TRACE_MASK));
if ( TestFtpConnect() )
TestFtpInteractive();
//else: connecting to the FTP server failed
delete ftp;
#endif // TEST_FTP
#ifdef TEST_MIME
TestMimeEnum();
TestMimeAssociate();
@@ -910,26 +864,12 @@ int main(int argc, char **argv)
TestOsInfo();
TestPlatformInfo();
TestUserInfo();
#if TEST_INTERACTIVE
TestDiskInfo();
#endif
#endif // TEST_INFO_FUNCTIONS
#ifdef TEST_PRINTF
TestPrintf();
#endif // TEST_PRINTF
#if defined TEST_REGEX && TEST_INTERACTIVE
TestRegExInteractive();
#endif // defined TEST_REGEX && TEST_INTERACTIVE
#ifdef TEST_DATETIME
#if TEST_INTERACTIVE
TestDateTimeInteractive();
#endif
#endif // TEST_DATETIME
#ifdef TEST_STACKWALKER
#if wxUSE_STACKWALKER
TestStackWalk(argv[0]);
@@ -944,14 +884,43 @@ int main(int argc, char **argv)
TestFSVolume();
#endif // TEST_VOLUME
#if wxUSE_UNICODE
{
for ( int n = 0; n < argc; n++ )
free(wxArgv[n]);
delete [] wxArgv;
}
#endif // wxUSE_UNICODE
// run all interactive tests:
// --------------------------
#if TEST_INTERACTIVE
wxPuts(wxT("***************** INTERACTIVE TESTS *****************\n"));
#ifdef TEST_SNGLINST
if (!TestSingleIstance())
return 1;
#endif // TEST_SNGLINST
#ifdef TEST_FTP
wxLog::AddTraceMask(FTP_TRACE_MASK);
// wxFTP cannot be a static variable as its ctor needs to access
// wxWidgets internals after it has been initialized
ftp = new wxFTP;
ftp->SetLog(new wxProtocolLog(FTP_TRACE_MASK));
TestFtpInteractive();
delete ftp;
#endif // TEST_FTP
#ifdef TEST_INFO_FUNCTIONS
TestDiskInfo();
#endif // TEST_INFO_FUNCTIONS
#if defined TEST_REGEX
TestRegExInteractive();
#endif // defined TEST_REGEX
#ifdef TEST_DATETIME
TestDateTimeInteractive();
#endif // TEST_DATETIME
#endif // TEST_INTERACTIVE
wxUnusedVar(argc);
wxUnusedVar(argv);