summaryrefslogtreecommitdiff
path: root/TAO/tests/Bug_2345_Regression
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:21 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:21 +0000
commit3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (patch)
tree197c810e5f5bce17b1233a7cb8d7b50c0bcd25e2 /TAO/tests/Bug_2345_Regression
parent6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (diff)
downloadATCD-3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c.tar.gz
Repo restructuring
Diffstat (limited to 'TAO/tests/Bug_2345_Regression')
-rw-r--r--TAO/tests/Bug_2345_Regression/Bug_2345_Regression.mpc8
-rwxr-xr-xTAO/tests/Bug_2345_Regression/run_test.pl22
-rw-r--r--TAO/tests/Bug_2345_Regression/server.cpp41
3 files changed, 71 insertions, 0 deletions
diff --git a/TAO/tests/Bug_2345_Regression/Bug_2345_Regression.mpc b/TAO/tests/Bug_2345_Regression/Bug_2345_Regression.mpc
new file mode 100644
index 00000000000..7223fb9069c
--- /dev/null
+++ b/TAO/tests/Bug_2345_Regression/Bug_2345_Regression.mpc
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project(*Server) : taoserver, imr_client, exceptions {
+ Source_Files {
+ server.cpp
+ }
+}
diff --git a/TAO/tests/Bug_2345_Regression/run_test.pl b/TAO/tests/Bug_2345_Regression/run_test.pl
new file mode 100755
index 00000000000..fa8e977afd2
--- /dev/null
+++ b/TAO/tests/Bug_2345_Regression/run_test.pl
@@ -0,0 +1,22 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib '../../../bin';
+use PerlACE::Run_Test;
+
+$status = 0;
+
+$SV = new PerlACE::Process ("server", "-ORBUseIMR 1 -ORBDefaultInitRef corbaloc:iiop:localhost:12345");
+
+$server = $SV->SpawnWaitKill (30);
+
+if ($server != 0) {
+ print STDERR "ERROR: server returned $server\n";
+ $status = 1;
+}
+
+exit $status;
diff --git a/TAO/tests/Bug_2345_Regression/server.cpp b/TAO/tests/Bug_2345_Regression/server.cpp
new file mode 100644
index 00000000000..f134a745d3b
--- /dev/null
+++ b/TAO/tests/Bug_2345_Regression/server.cpp
@@ -0,0 +1,41 @@
+// $Id$
+
+#include "tao/PortableServer/PortableServer.h"
+#include "tao/ImR_Client/ImR_Client.h"
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB::_nil();
+
+ // Initialize the ORB.
+ //
+ orb = CORBA::ORB_init(argc, argv);
+ CORBA::Object_var poa_obj = orb->resolve_initial_references("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow(poa_obj.in ());
+
+ // Create a PERSISTENT POA
+ //
+ // Create the policy list
+ CORBA::PolicyList policies(2);
+ policies.length(2);
+ policies[0] = root_poa->create_lifespan_policy(PortableServer::PERSISTENT);
+ policies[1] = root_poa->create_id_assignment_policy(PortableServer::USER_ID);
+
+ // create the poa.
+ // for ORBUseIMR=1 -ORBDefaultInitRef corbaloc:iiop:<HOST>:<PORT>
+ // this will cause an access violation if no IMR server is found.
+ // The access violation WILL NOT HAPPEN if a POAManager is created and
+ // given as a parameter to create_POA (instead of a nil POAManager)
+ PortableServer::POA_var persistent_poa =
+ root_poa->create_POA("myPoa", PortableServer::POAManager::_nil(), policies);
+
+ return 0;
+ }
+ catch (CORBA::Exception&)
+ {
+ // ... normally print an error here
+ }
+ return 0;
+}