suppress output from the test commands; use CPPUNIT_ASSERT_EQUAL() whenever possible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,13 +25,13 @@
|
||||
#ifdef __UNIX__
|
||||
#define COMMAND "echo hi"
|
||||
#define ASYNC_COMMAND "xclock"
|
||||
#define SHELL_COMMAND "echo hi from shell"
|
||||
#define REDIRECT_COMMAND "cat -n Makefile"
|
||||
#define SHELL_COMMAND "echo hi from shell>/dev/null"
|
||||
#define COMMAND_NO_OUTPUT "echo -n"
|
||||
#elif defined(__WXMSW__)
|
||||
#define COMMAND "cmd.exe /c \"echo hi\""
|
||||
#define ASYNC_COMMAND "notepad"
|
||||
#define SHELL_COMMAND "echo hi"
|
||||
#define REDIRECT_COMMAND COMMAND
|
||||
#define SHELL_COMMAND "echo hi > nul:"
|
||||
#define COMMAND_NO_OUTPUT COMMAND " > nul:"
|
||||
#else
|
||||
#error "no command to exec"
|
||||
#endif // OS
|
||||
@@ -73,8 +73,9 @@ void ExecTestCase::TestShell()
|
||||
|
||||
void ExecTestCase::TestExecute()
|
||||
{
|
||||
// test sync exec:
|
||||
CPPUNIT_ASSERT( wxExecute(COMMAND, wxEXEC_SYNC) == 0 );
|
||||
// test sync exec (with a command not producing any output to avoid
|
||||
// interfering with the test):
|
||||
CPPUNIT_ASSERT( wxExecute(COMMAND_NO_OUTPUT, wxEXEC_SYNC) == 0 );
|
||||
|
||||
// test asynch exec
|
||||
long pid = wxExecute(ASYNC_COMMAND, wxEXEC_ASYNC);
|
||||
@@ -83,15 +84,15 @@ void ExecTestCase::TestExecute()
|
||||
// NOTE: under Windows the first wxKill() invocation with wxSIGTERM
|
||||
// may fail if the system is fast and the ASYNC_COMMAND app
|
||||
// doesn't manage to create its HWND before our wxKill() is
|
||||
// executed; in that case we "fall back" to the second invocation
|
||||
// executed; in that case we "fall back" to the second invocation
|
||||
// with wxSIGKILL (which should always succeed)
|
||||
CPPUNIT_ASSERT( wxKill(pid, wxSIGTERM) == 0 ||
|
||||
wxKill(pid, wxSIGKILL) == 0 );
|
||||
|
||||
// test running COMMAND again, but this time with redirection:
|
||||
wxArrayString stdout_arr;
|
||||
CPPUNIT_ASSERT( wxExecute(COMMAND, stdout_arr, wxEXEC_SYNC) == 0 );
|
||||
CPPUNIT_ASSERT( stdout_arr[0] == "hi" );
|
||||
CPPUNIT_ASSERT_EQUAL( 0, wxExecute(COMMAND, stdout_arr, wxEXEC_SYNC) );
|
||||
CPPUNIT_ASSERT_EQUAL( "hi", stdout_arr[0] );
|
||||
}
|
||||
|
||||
void ExecTestCase::TestProcess()
|
||||
@@ -100,24 +101,24 @@ void ExecTestCase::TestProcess()
|
||||
wxProcess *proc = new wxProcess;
|
||||
long pid = wxExecute(ASYNC_COMMAND, wxEXEC_ASYNC, proc);
|
||||
CPPUNIT_ASSERT( proc->GetPid() == pid && pid != 0 );
|
||||
|
||||
|
||||
// we're not going to process the wxEVT_END_PROCESS event,
|
||||
// so the proc instance will auto-delete itself after we kill
|
||||
// the asynch process:
|
||||
CPPUNIT_ASSERT( wxKill(pid, wxSIGTERM) == 0 ||
|
||||
wxKill(pid, wxSIGKILL) == 0 );
|
||||
|
||||
|
||||
|
||||
// test wxExecute with wxProcess and REDIRECTION
|
||||
wxProcess *proc2 = new wxProcess;
|
||||
proc2->Redirect();
|
||||
CPPUNIT_ASSERT( wxExecute(COMMAND, wxEXEC_SYNC, proc2) == 0 );
|
||||
|
||||
|
||||
wxStringOutputStream stdout_stream;
|
||||
CPPUNIT_ASSERT( proc2->GetInputStream() );
|
||||
CPPUNIT_ASSERT_EQUAL( wxSTREAM_EOF,
|
||||
proc2->GetInputStream()->Read(stdout_stream).GetLastError() );
|
||||
|
||||
|
||||
wxString str(stdout_stream.GetString());
|
||||
CPPUNIT_ASSERT_EQUAL( "hi", str.Trim() );
|
||||
}
|
||||
|
Reference in New Issue
Block a user