summaryrefslogtreecommitdiff
path: root/TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp')
-rw-r--r--TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp90
1 files changed, 58 insertions, 32 deletions
diff --git a/TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp b/TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp
index 1bec57c8fde..3745e6bad19 100644
--- a/TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp
+++ b/TAO/tests/Bug_1535_Regression/bug_1535_regression.cpp
@@ -1,6 +1,6 @@
// $Id$
-#include "TestS.h"
+#include "Test.h"
#include "tao/Utils/ORB_Destroyer.h"
#include "tao/Utils/RIR_Narrow.h"
#include "tao/Utils/PolicyList_Destroyer.h"
@@ -21,22 +21,18 @@ create_persistent_POA (PortableServer::POA_ptr parent,
plist[0] =
parent->create_lifespan_policy (PortableServer::PERSISTENT
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (PortableServer::POA::_nil ());
plist[1] =
parent->create_id_assignment_policy (PortableServer::USER_ID
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (PortableServer::POA::_nil ());
plist[2] =
parent->create_implicit_activation_policy (
PortableServer::NO_IMPLICIT_ACTIVATION
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (PortableServer::POA::_nil ());
PortableServer::POAManager_var mgr =
- parent->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (PortableServer::POA::_nil ());
+ parent->the_POAManager ();
return parent->create_POA (name,
mgr.in(),
@@ -55,21 +51,18 @@ test_create_object_before_servant_reactivation (
create_persistent_POA(root_poa,
"T1"
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
PortableServer::ObjectId_var oid =
PortableServer::string_to_ObjectId ("TestServant");
- char const * id = _tc_Test->id (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
+ char const * id = _tc_Test->id ();
CORBA::Object_var object =
persistent_poa->create_reference_with_id (
oid.in (),
id
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
if (CORBA::is_nil (object.in ()))
{
@@ -82,7 +75,6 @@ test_create_object_before_servant_reactivation (
CORBA::String_var ior =
orb->object_to_string (object.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
// Now destroy the POA...
persistent_poa->destroy (true,
@@ -93,13 +85,11 @@ test_create_object_before_servant_reactivation (
create_persistent_POA (root_poa,
"T1"
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
// And try to create the object again...
object =
orb->string_to_object (ior.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
if(CORBA::is_nil (object.in ()))
{
@@ -111,7 +101,6 @@ test_create_object_before_servant_reactivation (
persistent_poa->destroy (true,
true
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
}
void
@@ -125,19 +114,16 @@ test_create_object_before_POA_reactivation(
create_persistent_POA (root_poa,
"T2"
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
PortableServer::ObjectId_var oid =
PortableServer::string_to_ObjectId ("TestServant");
- char const * id = _tc_Test->id (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
+ char const * id = _tc_Test->id ();
CORBA::Object_var object =
persistent_poa->create_reference_with_id (oid.in (),
id
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
if (CORBA::is_nil (object.in ()))
{
@@ -149,18 +135,15 @@ test_create_object_before_POA_reactivation(
CORBA::String_var ior =
orb->object_to_string (object.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
// Now destroy the POA...
persistent_poa->destroy (true,
true
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
// And try to create the object again...
object = orb->string_to_object (ior.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
if (CORBA::is_nil (object.in ()))
{
@@ -173,13 +156,60 @@ test_create_object_before_POA_reactivation(
persistent_poa->destroy (true,
true
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+}
+
+void
+test_no_implicit_activation (
+ PortableServer::POA_ptr root_poa
+ ACE_ENV_ARG_DECL)
+{
+ // Create a persistent POA and then create a reference in it...
+ PortableServer::POA_var persistent_poa =
+ create_persistent_POA (root_poa,
+ "T3"
+ ACE_ENV_ARG_PARAMETER);
+
+ Hello myhello (persistent_poa.in ());
+
+ bool succeed = false;
+ ACE_TRY_NEW_ENV
+ {
+ // Implicit activation should fail
+ Test_var myservant =
+ myhello._this ();
+
+ }
+ ACE_CATCH (PortableServer::POA::WrongPolicy, ex)
+ {
+ succeed = true;
+ }
+ ACE_CATCH (PortableServer::POA::ServantNotActive, ex)
+ {
+ // This is now the case when looking at the corba spec, raised
+ // an issue 10522 about this
+ succeed = true;
+ }
+ ACE_CATCHANY
+ {
+ }
+ ACE_ENDTRY;
+
+ if (!succeed)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "(%t) ERROR, Implicit activation failed with invalid exception\n"));
+ }
+
+ // Now destroy the POA...
+ persistent_poa->destroy (true,
+ true
+ ACE_ENV_ARG_PARAMETER);
}
int
main (int argc, char *argv[])
{
- ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_DECLARE_NEW_ CORBA_ENV;
ACE_TRY
{
@@ -188,7 +218,6 @@ main (int argc, char *argv[])
argv,
""
ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
TAO::Utils::ORB_Destroyer orb_destroyer (orb.in());
@@ -196,24 +225,22 @@ main (int argc, char *argv[])
TAO::Utils::RIR_Narrow<PortableServer::POA>::narrow (orb.in (),
"RootPOA"
ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
PortableServer::POAManager_var poa_manager =
- root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
+ root_poa->the_POAManager ();
- poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
+ poa_manager->activate ();
test_create_object_before_POA_reactivation (orb.in(),
root_poa.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
test_create_object_before_servant_reactivation (orb.in (),
root_poa.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
+
+ test_no_implicit_activation (root_poa.in ()
+ ACE_ENV_ARG_PARAMETER);
}
ACE_CATCHANY
{
@@ -226,7 +253,6 @@ main (int argc, char *argv[])
return 1;
}
ACE_ENDTRY;
- ACE_CHECK_RETURN (1);
return 0;
}