summaryrefslogtreecommitdiff
path: root/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp')
-rw-r--r--TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp b/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp
index 190e2e94cd8..d21f93720ca 100644
--- a/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp
+++ b/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp
@@ -48,9 +48,6 @@ static void del_message (TAO_Queued_Message *&head,
TAO_Queued_Message *&tail,
ACE_RANDR_TYPE &seed)
{
- if (head == 0)
- return;
-
// ACE_DEBUG ((LM_DEBUG, "Removing message\n"));
TAO_Queued_Message *current = head;
current->remove_from_list (head, tail);
@@ -98,15 +95,23 @@ main (int, ACE_TCHAR *[])
TAO_Queued_Message *head = 0;
TAO_Queued_Message *tail = 0;
+ int add_count = 0;
+ int del_count = 0;
+
const int iterations = 100;
int i;
for (i = 0; i != iterations; ++i)
{
add_message (head, tail, seed);
+ add_count++;
if (ACE_OS::rand_r(seed) % 100 > 90)
{
// every so often remove a message also.
- del_message (head, tail, seed);
+ if (head != 0)
+ {
+ del_message (head, tail, seed);
+ del_count++;
+ }
}
}
@@ -115,15 +120,20 @@ main (int, ACE_TCHAR *[])
{
if (ACE_OS::rand_r(seed) % 100 > 90)
{
- add_message (head, tail, seed);
+ add_message (head, tail, seed); add_count++;
+ }
+ if (head != 0)
+ {
+ del_message (head, tail, seed);
+ del_count++;
}
- del_message (head, tail, seed);
}
// Go through a phase where all messages are removed.
while (head != 0)
{
del_message (head, tail, seed);
+ del_count++;
}
if (tail != 0)
@@ -133,5 +143,14 @@ main (int, ACE_TCHAR *[])
1);
}
+ if (add_count != del_count)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ERROR: mismatched (%d != %d) add and del counts\n",
+ add_count, del_count),
+ 1);
+ }
+
+
return 0;
}