summaryrefslogtreecommitdiff
path: root/trunk/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/README
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/README')
-rw-r--r--trunk/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/README60
1 files changed, 60 insertions, 0 deletions
diff --git a/trunk/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/README b/trunk/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/README
new file mode 100644
index 00000000000..0ccccc13a8c
--- /dev/null
+++ b/trunk/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/README
@@ -0,0 +1,60 @@
+The test should complete without exceptions or asserts.
+
+This test checks that simply calling GetSlot works at every
+Server side interception point.
+
+This used to trigger the following assert in the send_reply
+interception point if the slot had not actually been updated
+after the RSC->TSC logical copy that occurs after the
+"receive_request_service_contexts" (such as in the
+"receive_request" or the actual IDL interface implementation
+code) before the logical copy TSC->RSC that then occurs
+before the "send_reply" interception point.
+
+send_reply -> get_slot(TSC) -> long (62) SERVER
+send_reply -> get_slot(RSC)
+ACE_ASSERT: file ...\TAO\tao\PI\PICurrent_Impl.cpp, line 53
+assertion failed for 'this->lc_slot_table_ !=
+&this->slot_table_'.Aborting...
+
+This test also checks that the set_slot(RSC) does not effect
+the TSC that exists before the first logical copy (at the end
+of receive_request_service_contexts) and after the second
+logical copy that occurs after the IDL interface implimentation
+call (i.e. during send_reply).
+
+The run should look like this:
+
+Allocated slot with id 0.
+Server is ready, IOR is in 'server.ior'
+SERVER receive_request_service_contexts -> get_slot(TSC) -> is EMPTY -> OK
+SERVER receive_request_service_contexts -> get_slot(RSC) -> is EMPTY -> OK
+SERVER receive_request_service_contexts -> set_slot(RSC) -> long (62)
+SERVER receive_request_service_contexts -> get_slot(TSC) -> is EMPTY -> OK
+SERVER receive_request_service_contexts -> get_slot(RSC) -> is long (62) -> OK
+SERVER receive_request -> get_slot(TSC) -> is long (62) -> OK
+SERVER receive_request -> get_slot(RSC) -> is long (62) -> OK
+invoke_me
+SERVER send_reply -> get_slot(TSC) -> is long (62) -> OK
+SERVER send_reply -> get_slot(RSC) -> is long (62) -> OK
+SERVER send_reply -> set_slot(RSC) -> long (63)
+SERVER send_reply -> get_slot(TSC) -> is long (62) -> OK
+SERVER send_reply -> get_slot(RSC) -> is long (63) -> OK
+
+SERVER receive_request_service_contexts -> get_slot(TSC) -> is long (62) -> OK
+SERVER receive_request_service_contexts -> get_slot(RSC) -> is EMPTY -> OK
+SERVER receive_request_service_contexts -> set_slot(RSC) -> long (62)
+SERVER receive_request_service_contexts -> get_slot(TSC) -> is long (62) -> OK
+SERVER receive_request_service_contexts -> get_slot(RSC) -> is long (62) -> OK
+SERVER receive_request -> get_slot(TSC) -> is long (62) -> OK
+SERVER receive_request -> get_slot(RSC) -> is long (62) -> OK
+invoke_me
+SERVER send_reply -> get_slot(TSC) -> is long (62) -> OK
+SERVER send_reply -> get_slot(RSC) -> is long (62) -> OK
+SERVER send_reply -> set_slot(RSC) -> long (63)
+SERVER send_reply -> get_slot(TSC) -> is long (62) -> OK
+SERVER send_reply -> get_slot(RSC) -> is long (63) -> OK
+
+
+Server is shutting down.
+Event loop finished.