summaryrefslogtreecommitdiff
path: root/tests/Process_Manager_Test.cpp
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2002-01-24 23:34:29 +0000
committerSteve Huston <shuston@riverace.com>2002-01-24 23:34:29 +0000
commit4b9472db9d502231a8a2abb071de6fe16123e6ac (patch)
tree63b87927141a613d535b78d46b47af8dc539687d /tests/Process_Manager_Test.cpp
parentf1f5af1a452651d203834aabc6635a047194ea0d (diff)
downloadATCD-4b9472db9d502231a8a2abb071de6fe16123e6ac.tar.gz
ChangeLogTag:Thu Jan 24 18:31:49 2002 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'tests/Process_Manager_Test.cpp')
-rw-r--r--tests/Process_Manager_Test.cpp172
1 files changed, 104 insertions, 68 deletions
diff --git a/tests/Process_Manager_Test.cpp b/tests/Process_Manager_Test.cpp
index 5b5a9ef1d0e..3f31036d3a8 100644
--- a/tests/Process_Manager_Test.cpp
+++ b/tests/Process_Manager_Test.cpp
@@ -50,12 +50,11 @@ public:
virtual int handle_exit (ACE_Process *proc)
{
- if (debug_test)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) Exit_Handler(%s) got %d: %d\n"),
- msg_,
- int (proc->getpid ()),
- int (proc->exit_code ()) ));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P) Exit_Handler(%s) got %d: %d\n"),
+ msg_,
+ int (proc->getpid ()),
+ int (proc->exit_code ()) ));
return 0;
}
private:
@@ -85,10 +84,13 @@ spawn_child (const ACE_TCHAR *argv0,
pid_t result = mgr.spawn (opts);
- if (debug_test)
+ if (result != ACE_INVALID_PID)
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) spawned child: %d\n"),
+ ACE_TEXT ("(%P) spawned child: pid %d\n"),
int (result)));
+ else
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("spawn failed")));
+
return result;
}
@@ -114,7 +116,7 @@ main (int argc, ACE_TCHAR *argv[])
ACE_OS::sleep (secs ? secs : 1);
if (debug_test)
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) about to exit with code %d\n"),
+ ACE_TEXT ("(%P) about to exit with code %d\n"),
secs));
return secs;
}
@@ -126,7 +128,7 @@ main (int argc, ACE_TCHAR *argv[])
// Try the explicit <ACE_Process_Manager::wait> functions
- int result = 0;
+ int result = 0, test_status = 0;
ACE_Process_Manager mgr;
mgr.register_handler (new Exit_Handler ("default"));
@@ -138,15 +140,22 @@ main (int argc, ACE_TCHAR *argv[])
pid_t child1 = spawn_child (argv[0],
mgr,
1);
- pid_t result1 = mgr.wait (child1,
- &exitcode);
-
- ACE_ASSERT (result1 == child1);
- // ACE_ASSERT (exitcode == 1);
-
- if (debug_test)
+ result = mgr.wait (child1,
+ &exitcode);
+
+ if (result != child1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: expected to reap child1 (%d); got %d\n"),
+ child1,
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("error")));
+ test_status = 1;
+ }
+ else
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) waited for child %d: %d\n"),
+ ACE_TEXT ("(%P) waited for child1, pid %d: %d\n"),
child1,
exitcode));
@@ -158,34 +167,45 @@ main (int argc, ACE_TCHAR *argv[])
pid_t child3 = spawn_child (argv[0],
mgr,
4);
- pid_t result2 = mgr.wait (child3,
- &exitcode);
-
- ACE_ASSERT (result2 == child3);
- // ACE_ASSERT (exitcode == 4);
-
- if (debug_test)
+ result = mgr.wait (child3,
+ &exitcode);
+
+ if (result != child3)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: expected to reap child3 (%d); got %d\n"),
+ child3,
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("error")));
+ test_status = 1;
+ }
+ else
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) waited for child %d: %d\n"),
+ ACE_TEXT ("(%P) waited for child 3, pid %d: %d\n"),
child3,
exitcode));
// Now wait for any...should get the one that finished earlier.
- pid_t result3 = mgr.wait (0,
- &exitcode);
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) expected to reap %d, got %d\n"),
- child2,
- result3));
- ACE_ASSERT (result3 == child2);
+ result = mgr.wait (0, &exitcode);
+
+ if (result != child2)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: expected to reap child2 (%d); got %d\n"),
+ child2,
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("error")));
+ test_status = 1;
+ }
// ACE_ASSERT (exitcode == 1);
- if (debug_test)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) waited for any child: %d\n"),
- exitcode));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P) waited for any child, got pid %d: %d\n"),
+ result,
+ exitcode));
// --------------------------------------------------
// Try the timed wait functions
@@ -194,43 +214,59 @@ main (int argc, ACE_TCHAR *argv[])
pid_t child4 = spawn_child (argv[0],
mgr,
1);
- pid_t result4 = mgr.wait (0,
- ACE_Time_Value (4),
- &exitcode);
-
- ACE_ASSERT (result4 == child4);
+ result = mgr.wait (0, ACE_Time_Value (4), &exitcode);
+
+ if (result != child4)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: expected to reap child4 (%d); got %d\n"),
+ child4,
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("error")));
+ test_status = 1;
+ }
// ACE_ASSERT (exitcode == 1);
- if (debug_test)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) waited for any child: %d\n"),
- exitcode));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P) waited for any child, got pid %d: %d\n"),
+ result,
+ exitcode));
// This one should timeout:
pid_t child5 = spawn_child (argv[0],
mgr,
4);
- pid_t result5 = mgr.wait (0,
- ACE_Time_Value (1),
- &exitcode);
-
- ACE_ASSERT (result5 == 0); // should have timed out
-
- if (debug_test)
+ result = mgr.wait (0, ACE_Time_Value (1), &exitcode);
+ if (result != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: expected wait to time out; got %d\n"),
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("error")));
+ test_status = 1;
+ }
+ else
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) waited for any child: %d\n"),
- exitcode));
+ ACE_TEXT ("(%P) Correctly timed out wait at child 5\n")));
// Now wait indefinitely to clean up...
- result5 = mgr.wait (0,
- &exitcode);
-
- ACE_ASSERT (result5 == child5);
- // ACE_ASSERT (exitcode == 4);
-
- if (debug_test)
+ result = mgr.wait (0, &exitcode);
+
+ if (result != child5)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: expected to reap child5 pid %d; got %d\n"),
+ child5,
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("error")));
+ test_status = 1;
+ }
+ else
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) waited for child 5 again: %d\n"),
+ ACE_TEXT ("(%P) waited for child 5 again: %d\n"),
exitcode));
// --------------------------------------------------
@@ -250,14 +286,14 @@ main (int argc, ACE_TCHAR *argv[])
ACE_Time_Value how_long (10);
+ ACE_Reactor::instance ()->owner (ACE_Thread::self ());
ACE_Reactor::instance ()->run_event_loop (how_long);
- if (debug_test)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) done!\n") ));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P) Reactor loop done!\n") ));
ACE_END_TEST;
- return result;
+ return test_status;
}
#else /* (!ACE_LACKS_FORK || ACE_WIN32) && ACE_HAS_THREADS */