summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2002-11-28 00:43:36 +0000
committerSteve Huston <shuston@riverace.com>2002-11-28 00:43:36 +0000
commit032e0d7c444f5d02c6381c50243b535b142a3ef4 (patch)
tree66636aa33c3a35ee7d9273f0a75de77d98da9fd7 /tests
parentcf86898a39d66f38a9e4dbd6e1f516456d9f6327 (diff)
downloadATCD-032e0d7c444f5d02c6381c50243b535b142a3ef4.tar.gz
ChangeLogTag:Wed Nov 27 19:42:51 2002 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/MT_Reactor_Upcall_Test.cpp78
1 files changed, 51 insertions, 27 deletions
diff --git a/tests/MT_Reactor_Upcall_Test.cpp b/tests/MT_Reactor_Upcall_Test.cpp
index 89015574a7c..3342a947e9d 100644
--- a/tests/MT_Reactor_Upcall_Test.cpp
+++ b/tests/MT_Reactor_Upcall_Test.cpp
@@ -105,16 +105,24 @@ Handler::handle_input (ACE_HANDLE fd)
if (this->shutdown_)
return 0;
- // Read fixed part of message.
+ // Read fixed parts of message.
Message message;
- size_t fixed_size_of_message =
- sizeof (Message::Type) + sizeof (size_t);
-
ssize_t result =
ACE::recv_n (fd,
&message.type_,
- fixed_size_of_message);
- ACE_ASSERT (result == ssize_t (fixed_size_of_message));
+ sizeof (message.type_));
+ if (result != ACE_static_cast (ssize_t, sizeof (message.type_)))
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): read %d, %p\n"),
+ result,
+ ACE_TEXT ("recv 1")));
+ result =
+ ACE::recv_n (fd,
+ &message.size_,
+ sizeof (message.size_));
+ if (result != ACE_static_cast (ssize_t, sizeof (message.size_)))
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): read %d, %p\n"),
+ result,
+ ACE_TEXT ("recv 2")));
// On shutdown message, stop the event loop.
if (message.type_ == Message::SHUTDOWN)
@@ -134,14 +142,18 @@ Handler::handle_input (ACE_HANDLE fd)
ACE::recv_n (fd,
&message.data_,
message.size_);
- ACE_ASSERT (result == ssize_t (message.size_));
-
- message.data_[result] = '\0';
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Starting to handle message %d: %s\n"),
- this->number_of_messages_read_ + 1,
- message.data_));
+ if (result != ACE_static_cast (ssize_t, message.size_))
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): read %d, %p\n"),
+ result,
+ ACE_TEXT ("recv 3")));
+ else
+ {
+ message.data_[result] = '\0';
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Starting to handle message %d: %s\n"),
+ this->number_of_messages_read_ + 1,
+ message.data_));
+ }
// Process message (sleep).
ACE_OS::sleep (ACE_Time_Value (0,
@@ -198,24 +210,31 @@ test_reactor_upcall (ACE_Reactor &reactor)
ACE_OS_String::strlen (message);
ACE_OS_String::strcpy (data_message.data_, message);
- // Send in two pieces because the char array may not be aligned
- // directly after the size.
- size_t header_size = sizeof (Message::Type) + sizeof (size_t);
+ // Send in three pieces because the struct members may not be adjacent
+ // in memory.
for (int i = 0;
i < number_of_messages;
++i)
{
// This should trigger a call to <handle_input>.
- result =
+ ssize_t sent =
ACE::send_n (handler.pipe_.write_handle (),
&data_message.type_,
- header_size);
- ACE_ASSERT (result == ssize_t (header_size));
- result =
+ sizeof (data_message.type_));
+ if (sent == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): %p\n"), ACE_TEXT ("send 1")));
+ sent =
+ ACE::send_n (handler.pipe_.write_handle (),
+ &data_message.size_,
+ sizeof (data_message.size_));
+ if (sent == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): %p\n"), ACE_TEXT ("send 2")));
+ sent =
ACE::send_n (handler.pipe_.write_handle (),
&data_message.data_,
data_message.size_);
- ACE_ASSERT (result == ssize_t (data_message.size_));
+ if (sent == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): %p\n"), ACE_TEXT ("send 3")));
}
// We are done: send shutdown message.
@@ -225,11 +244,16 @@ test_reactor_upcall (ACE_Reactor &reactor)
shutdown_message.size_ = 0;
// This should trigger a call to <handle_input>.
- result =
- ACE::send_n (handler.pipe_.write_handle (),
- &shutdown_message.type_,
- header_size);
- ACE_ASSERT (result == ssize_t (header_size));
+ ssize_t sent = ACE::send_n (handler.pipe_.write_handle (),
+ &shutdown_message.type_,
+ sizeof (shutdown_message.type_));
+ if (sent == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): %p\n"), ACE_TEXT ("send 4")));
+ sent = ACE::send_n (handler.pipe_.write_handle (),
+ &shutdown_message.size_,
+ sizeof (shutdown_message.size_));
+ if (sent == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t): %p\n"), ACE_TEXT ("send 5")));
// Wait for the event loop tasks to exit.
event_loop_task.wait ();