diff options
-rw-r--r-- | ACE/ChangeLog | 17 | ||||
-rw-r--r-- | ACE/ace/Object_Manager.cpp | 1 | ||||
-rw-r--r-- | ACE/bin/PerlACE/Process_Win32.pm | 20 | ||||
-rwxr-xr-x | ACE/bin/auto_run_tests.pl | 5 |
4 files changed, 29 insertions, 14 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index b5a72a80c86..154f7902a43 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,20 @@ +Fri Apr 25 21:21:56 UTC 2008 Adam Mitz <mitza@ociweb.com> + + * ace/Object_Manager.cpp: + + Removed a comment that no longer applies. + + * bin/PerlACE/Process_Win32.pm: + + Changed the check for failure to spawn a process, in order to avoid + a race condition (the spawned process exits normally before we even + check its status). + + * bin/auto_run_tests.pl: + + With -s, account for different parameter formatting requirements in + the win32 and posix sandbox programs. + Fri Apr 25 14:25:00 UTC 2008 Simon Massey <sma at pristmech dot com> * tests/Unload_libACE.cpp: diff --git a/ACE/ace/Object_Manager.cpp b/ACE/ace/Object_Manager.cpp index aa46d5191e3..6a56de6db8a 100644 --- a/ACE/ace/Object_Manager.cpp +++ b/ACE/ace/Object_Manager.cpp @@ -246,7 +246,6 @@ ACE_Object_Manager::init (void) #if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \ defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) #if defined (_DEBUG) && (defined (_MSC_VER) || defined (__INTEL_COMPILER)) - // This will keep the ACE_Assert window _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE ); _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR ); _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE ); diff --git a/ACE/bin/PerlACE/Process_Win32.pm b/ACE/bin/PerlACE/Process_Win32.pm index 19acd991e2a..92a959b6223 100644 --- a/ACE/bin/PerlACE/Process_Win32.pm +++ b/ACE/bin/PerlACE/Process_Win32.pm @@ -287,18 +287,14 @@ sub Spawn () if (defined $ENV{'ACE_TEST_VERBOSE'}) { print "$executable $cmdline\n"; } - Win32::Process::Create ($self->{PROCESS}, - $executable, - $cmdline, - 0, - $state, - '.'); - - my $status = 0; - - Win32::Process::GetExitCode ($self->{PROCESS}, $status); - - if ($status != $STILL_ACTIVE) { + my $status = Win32::Process::Create ($self->{PROCESS}, + $executable, + $cmdline, + 0, + $state, + '.'); + + if ($status == 0) { print STDERR "ERROR: Spawn failed for <", $self->CommandLine (), ">\n"; return -1; } diff --git a/ACE/bin/auto_run_tests.pl b/ACE/bin/auto_run_tests.pl index 940a43c6327..e0feee381ba 100755 --- a/ACE/bin/auto_run_tests.pl +++ b/ACE/bin/auto_run_tests.pl @@ -179,7 +179,10 @@ foreach my $test_lst (@file_list) { $cmd = ''; if ($opt_s) { - $cmd = "$opt_s \"perl $program $inherited_options\""; + #The Win32 sandbox takes the program and options in quotes, but the + #posix sandbox takes the program and options as separate args. + my($q) = ($^O eq 'MSWin32') ? '"' : ''; + $cmd = "$opt_s ${q}perl $program $inherited_options${q}"; } else { $cmd = "perl $program$inherited_options"; |