X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6b2edfc836c8867cb868e73d35f36a6e68f943..69fb24ce03b4dd40e7912936d628bea1719aaaa3:/samples/console/console.cpp?ds=sidebyside diff --git a/samples/console/console.cpp b/samples/console/console.cpp index 7921752aa4..27016fc935 100644 --- a/samples/console/console.cpp +++ b/samples/console/console.cpp @@ -88,7 +88,7 @@ #define TEST_WCHAR #define TEST_ZIP #else // #if TEST_ALL - #define TEST_CMDLINE + #define TEST_EXECUTE #endif // some tests are interactive, define this to run them @@ -150,6 +150,7 @@ static void ShowCmdLine(const wxCmdLineParser& parser) wxString strVal; long lVal; + double dVal; wxDateTime dt; if ( parser.Found(_T("o"), &strVal) ) s << _T("Output file:\t") << strVal << '\n'; @@ -157,6 +158,8 @@ static void ShowCmdLine(const wxCmdLineParser& parser) s << _T("Input dir:\t") << strVal << '\n'; if ( parser.Found(_T("s"), &lVal) ) s << _T("Size:\t") << lVal << '\n'; + if ( parser.Found(_T("f"), &dVal) ) + s << _T("Double:\t") << dVal << '\n'; if ( parser.Found(_T("d"), &dt) ) s << _T("Date:\t") << dt.FormatISODate() << '\n'; if ( parser.Found(_T("project_name"), &strVal) ) @@ -533,11 +536,13 @@ static void TestExecute() wxPuts(_T("*** testing wxExecute ***")); #ifdef __UNIX__ - #define COMMAND "cat -n ../../Makefile" // "echo hi" + #define COMMAND "echo hi" + #define ASYNC_COMMAND "xclock" #define SHELL_COMMAND "echo hi from shell" - #define REDIRECT_COMMAND COMMAND // "date" + #define REDIRECT_COMMAND "cat -n Makefile" #elif defined(__WXMSW__) #define COMMAND "command.com /c echo hi" + #define ASYNC_COMMAND "notepad" #define SHELL_COMMAND "echo hi" #define REDIRECT_COMMAND COMMAND #else @@ -553,19 +558,22 @@ static void TestExecute() wxPrintf(_T("Testing wxExecute: ")); fflush(stdout); - if ( wxExecute(_T(COMMAND), true /* sync */) == 0 ) + if ( wxExecute(_T(COMMAND), wxEXEC_SYNC) == 0 ) wxPuts(_T("Ok.")); else wxPuts(_T("ERROR.")); -#if 0 // no, it doesn't work (yet?) wxPrintf(_T("Testing async wxExecute: ")); fflush(stdout); - if ( wxExecute(COMMAND) != 0 ) + int pid = wxExecute(ASYNC_COMMAND); + if ( pid != 0 ) + { wxPuts(_T("Ok (command launched).")); + if ( wxKill(pid) == -1 ) + wxPuts("ERROR: failed to kill child process."); + } else wxPuts(_T("ERROR.")); -#endif // 0 wxPrintf(_T("Testing wxExecute with redirection:\n")); wxArrayString output; @@ -575,10 +583,25 @@ static void TestExecute() } else { - size_t count = output.GetCount(); - for ( size_t n = 0; n < count; n++ ) + // don't show too much output, MAX_LINES is enough + static const unsigned MAX_LINES = 20; + + const unsigned count = output.size(); + for ( unsigned n = 0; + n < (count > MAX_LINES ? MAX_LINES/2 : count); + n++ ) { - wxPrintf(_T("\t%s\n"), output[n].c_str()); + wxPrintf("%04u:\t%s\n", n + 1, output[n]); + } + + if ( count > MAX_LINES ) + { + wxPrintf("... skipping %u lines...\n", count - MAX_LINES); + + for ( unsigned n = count - MAX_LINES/2; n < count; n++ ) + { + wxPrintf("%04u:\t%s\n", n + 1, output[n]); + } } wxPuts(_T("Ok.")); @@ -4194,7 +4217,6 @@ static void TestSemaphore() #include "wx/snglinst.h" #endif // TEST_SNGLINST -#include "wx/filename.h" int main(int argc, char **argv) { #if wxUSE_UNICODE @@ -4263,6 +4285,8 @@ int main(int argc, char **argv) wxCMD_LINE_VAL_NUMBER }, { wxCMD_LINE_OPTION, "d", "date", "output file date", wxCMD_LINE_VAL_DATE }, + { wxCMD_LINE_OPTION, "f", "double", "output double", + wxCMD_LINE_VAL_DOUBLE }, { wxCMD_LINE_PARAM, NULL, NULL, "input file", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE },