diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-01-21 00:38:21 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-01-21 00:38:21 +0000 |
commit | 5e0c6275149e09c524a6b8974addd3cff5e013b8 (patch) | |
tree | 2bf845f0d04a6536904df992e68eca94b5c6293d /tests | |
parent | db6bc193c914ce9e6592539601787058ce70972c (diff) | |
download | ATCD-5e0c6275149e09c524a6b8974addd3cff5e013b8.tar.gz |
ChangeLogTag:Sat Jan 20 14:53:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Message_Queue_Test.cpp | 87 |
1 files changed, 54 insertions, 33 deletions
diff --git a/tests/Message_Queue_Test.cpp b/tests/Message_Queue_Test.cpp index 5fdcd6798bd..cb2553dc9bd 100644 --- a/tests/Message_Queue_Test.cpp +++ b/tests/Message_Queue_Test.cpp @@ -18,7 +18,9 @@ // 3) a test/usage example of ACE_Message_Queue_Vx. // // = AUTHORS -// Irfan Pyarali <irfan@cs.wustl.edu> and David L. Levine <levine@cs.wustl.edu> +// Irfan Pyarali <irfan@cs.wustl.edu>, +// Michael Vitlo <mvitalo@sprynet.com>, and +// David L. Levine <levine@cs.wustl.edu> // // ============================================================================ @@ -33,12 +35,13 @@ ACE_RCSID(tests, Message_Queue_Test, "$Id$") const ACE_TCHAR usage[] = ACE_TEXT ("usage: Message_Queue_Test <number of messages>\n"); typedef ACE_Message_Queue<ACE_NULL_SYNCH> QUEUE; +typedef ACE_Message_Queue_Ex<ACE_Message_Block, ACE_NULL_SYNCH> QUEUE_EXy; typedef ACE_Message_Queue_Iterator<ACE_NULL_SYNCH> ITERATOR; typedef ACE_Message_Queue_Reverse_Iterator<ACE_NULL_SYNCH> REVERSE_ITERATOR; static const int MAX_MESSAGES = 10000; static const int MAX_MESSAGE_SIZE = 32; -static const char test_message[] = "ACE_Message_Queue Test Message"; +static const char test_message[] = "ACE_Message_Queue_Test Message"; static int max_messages = MAX_MESSAGES; @@ -47,6 +50,7 @@ static ACE_High_Res_Timer *timer = 0; #if defined (ACE_HAS_THREADS) typedef ACE_Message_Queue<ACE_SYNCH> SYNCH_QUEUE; +typedef ACE_Message_Queue_Ex<ACE_Message_Block, ACE_SYNCH> SYNCH_QUEUE_EX; struct Queue_Wrapper { @@ -176,7 +180,7 @@ static int single_thread_performance_test (int queue_type = 0) { const char test_message[] = - "ACE_Message_Queue Test Message"; + "ACE_Message_Queue_Test Message"; const ACE_TCHAR *message = ACE_TEXT ("ACE_Message_Queue<ACE_NULL_SYNCH>, single thread"); int i; @@ -441,44 +445,39 @@ performance_test (int queue_type = 0) } #endif /* ACE_HAS_THREADS */ -int -main (int argc, ACE_TCHAR *argv[]) +static int +test_message_queue (void) { - ACE_START_TEST (ACE_TEXT ("Message_Queue_Test")); - int status = 0; - if (argc == 2) - if (! ACE_OS::strcmp (argv[1], ACE_TEXT ("-?"))) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%s/n"), - usage)); - else - max_messages = ACE_OS::atoi (argv[1]); - // Be sure that the a timed out get sets the error code properly. ACE_Message_Queue<ACE_SYNCH> q1; - if (!q1.is_empty ()) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("New queue is not empty!\n"))); - status = 1; - } - else { - ACE_Message_Block *b; - ACE_Time_Value tv (ACE_OS::gettimeofday()); // Now - if (q1.dequeue_head (b, &tv) != -1) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Dequeued from empty queue!\n"))); - status = 1; - } - else if (errno != EWOULDBLOCK) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), - ACE_TEXT ("Dequeue timeout should be EWOULDBLOCK, got"))); + if (!q1.is_empty ()) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("New queue is not empty!\n"))); status = 1; } - else { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Timed dequeue test: OK\n"))); - status = 0; // All is well + else + { + ACE_Message_Block *b; + ACE_Time_Value tv (ACE_OS::gettimeofday ()); // Now + if (q1.dequeue_head (b, &tv) != -1) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Dequeued from empty queue!\n"))); + status = 1; + } + else if (errno != EWOULDBLOCK) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), + ACE_TEXT ("Dequeue timeout should be EWOULDBLOCK, got"))); + status = 1; + } + else + { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Timed dequeue test: OK\n"))); + status = 0; // All is well + } } - } #if !defined (VXWORKS) // The iterator test occasionally causes a page fault or a hang on @@ -517,6 +516,28 @@ main (int argc, ACE_TCHAR *argv[]) ACE_TEXT ("test failed"))); delete timer; timer = 0; + return status; +} + +int +main (int argc, ACE_TCHAR *argv[]) +{ + ACE_START_TEST (ACE_TEXT ("Message_Queue_Test")); + + if (argc == 2) + if (! ACE_OS::strcmp (argv[1], ACE_TEXT ("-?"))) + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("%s/n"), + usage)); + else + max_messages = ACE_OS::atoi (argv[1]); + + int status = 0; + + if (test_message_queue () != 0) + status = 1; + else if (test_message_queue_ex () != 0) + status = 1; ACE_END_TEST; return status; |