summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ACE/ChangeLog17
-rw-r--r--ACE/ace/Object_Manager.cpp1
-rw-r--r--ACE/bin/PerlACE/Process_Win32.pm20
-rwxr-xr-xACE/bin/auto_run_tests.pl5
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";