From 32877e0c8bfda2c281d86896c583ccba11ab24eb Mon Sep 17 00:00:00 2001 From: Marijke Hengstmengel Date: Mon, 12 Dec 2011 11:02:33 +0000 Subject: Mon Dec 12 10:59:27 UTC 2011 Marijke Hengstmengel * connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc: * connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC.idl: * connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp: * connectors/dds4ccm/tests/HomeTest/HomeComp/controller.cpp: * connectors/dds4ccm/tests/HomeTest/descriptors/DeploymentPlanConnOnly.cdp: * connectors/dds4ccm/tests/HomeTest/descriptors/run_test.pl: Add controller, acting on Home component * connectors/dds4ccm/tests/HomeTest/HomeComp/client.cpp: Removed this file. --- CIAO/ChangeLog.BRANCH | 13 +++ .../dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc | 6 +- .../tests/HomeTest/HomeComp/HomeT_HomeC.idl | 6 ++ .../tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp | 14 +-- .../dds4ccm/tests/HomeTest/HomeComp/controller.cpp | 105 +++++++++++++++++++++ .../descriptors/DeploymentPlanConnOnly.cdp | 30 +++++- .../dds4ccm/tests/HomeTest/descriptors/run_test.pl | 35 ++++++- 7 files changed, 192 insertions(+), 17 deletions(-) create mode 100644 CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/controller.cpp diff --git a/CIAO/ChangeLog.BRANCH b/CIAO/ChangeLog.BRANCH index feca76f4b68..b4a93bb62cb 100644 --- a/CIAO/ChangeLog.BRANCH +++ b/CIAO/ChangeLog.BRANCH @@ -1,3 +1,16 @@ +Mon Dec 12 10:59:27 UTC 2011 Marijke Hengstmengel + + * connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc: + * connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC.idl: + * connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp: + * connectors/dds4ccm/tests/HomeTest/HomeComp/controller.cpp: + * connectors/dds4ccm/tests/HomeTest/descriptors/DeploymentPlanConnOnly.cdp: + * connectors/dds4ccm/tests/HomeTest/descriptors/run_test.pl: + Add controller, acting on Home component + + * connectors/dds4ccm/tests/HomeTest/HomeComp/client.cpp: + Removed this file. + Thu Dec 8 16:08:07 UTC 2011 Marijke Hengstmengel * connectors/dds4ccm/tests/HomeTest: diff --git a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc index 08e5c0ec906..0cb4a376e8e 100644 --- a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc +++ b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_Home.mpc @@ -137,9 +137,9 @@ project(HomeT_HomeC_svnt) : ciao_servant, avoids_ccm_noevent, dds4ccm_base { } } -project (HomeT_HomeC_client) : ccm_stub , dds4ccm_base{ +project (HomeT_HomeC_control) : ccm_stub , dds4ccm_base{ after += HomeT_HomeC_stub - exename = client + exename = controller libs += HomeT_HomeC_stub HomeT_Base_stub includes += .. libout = ../lib @@ -152,7 +152,7 @@ project (HomeT_HomeC_client) : ccm_stub , dds4ccm_base{ } Source_Files { - client.cpp + controller.cpp } Inline_Files { diff --git a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC.idl b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC.idl index e83be01b1ba..9d3f2aab1fd 100644 --- a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC.idl +++ b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC.idl @@ -24,6 +24,12 @@ home ConnHome manages ConnComp factory new_ConnComp (); }; +// Interface for IDL2.x client +interface IDL2Client { +// short get_number (); +}; + + #endif /* HOMET_HOMEC_IDL_ */ diff --git a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp index 63c7b19b7b4..1f675b0d191 100644 --- a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp +++ b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/HomeT_HomeC_exec.cpp @@ -27,7 +27,7 @@ #include "HomeT_HomeC_exec.h" #include "./Connector/HomeT_Connector_conn.h" -/* + namespace CIAO_ConnComp_Impl { @@ -104,6 +104,7 @@ namespace CIAO_ConnComp_Impl ConnHome_exec_i::ConnHome_exec_i (void) { + new_ConnComp(); } ConnHome_exec_i::~ConnHome_exec_i (void) @@ -113,9 +114,10 @@ namespace CIAO_ConnComp_Impl ::Components::EnterpriseComponent_ptr ConnHome_exec_i::new_ConnComp (void) { + printf("ConnHome_exec_i::new_ConnComp !!!!!!!!!!!1"); /* Your code here. */ //return ::CCM_ConnComp::_nil (); - return CIAO_HomeCompTest_DDS_Event_Impl::create_HomeCompTest_DDS_Event_Impl(); + // return CIAO_HomeCompTest_DDS_Event_Impl::create_HomeCompTest_DDS_Event_Impl(); } // Implicit operations. @@ -126,10 +128,10 @@ namespace CIAO_ConnComp_Impl ::Components::EnterpriseComponent_ptr retval = ::Components::EnterpriseComponent::_nil (); - // ACE_NEW_THROW_EX ( - // retval, - // ConnComp_exec_i, - // ::CORBA::NO_MEMORY ()); + ACE_NEW_THROW_EX ( + retval, + ConnComp_exec_i, + ::CORBA::NO_MEMORY ()); return retval; } diff --git a/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/controller.cpp b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/controller.cpp new file mode 100644 index 00000000000..a20e49201e4 --- /dev/null +++ b/CIAO/connectors/dds4ccm/tests/HomeTest/HomeComp/controller.cpp @@ -0,0 +1,105 @@ +// $Id$ + +//============================================================== +/** + * @file controller.cpp + * + * This is a controller tat interact with the Home-component implementation. + * This test uses the explicit factory + * operation in the home interface to create a connector component + * instance, run it for a while, and destroy the component instance. + */ +//============================================================== + +#include "HomeT_HomeCC.h" +#include "ace/streams.h" +#include "ace/OS_NS_unistd.h" +#include "ace/Get_Opt.h" + +const ACE_TCHAR *home_comp_ior_ = 0; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:of")); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'o': + break; + case 'f': + break; + case 'k': + home_comp_ior_ = get_opts.opt_arg (); + break; + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-k (default is file://HomeC.ior)\n" + "\n", + argv [0]), + -1); + break; + } + } + + if (home_comp_ior_ == 0) + { + home_comp_ior_ = ACE_TEXT("file://HomeC.ior"); + } + + return 0; +} + + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + { + return -1; + } + + // Resolve Home interface + CORBA::Object_var obj + = orb->string_to_object (home_comp_ior_); + + ConnHome_var home + = ConnHome::_narrow (obj.in ()); + if (CORBA::is_nil (home.in ())) + ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire ConnHome objref\n"), -1); + + // starting Connector component + printf("starting Connector component home->new_ConnComp ()\n"); + + home->new_ConnComp (); + + printf("started Connector component home->new_ConnComp ()\n"); + + // Place to plug in the rate + + ACE_OS::sleep (5); + + // home->remove_component (); + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Who is the culprit\n"); + ACE_ERROR_RETURN ((LM_ERROR, + "Uncaught CORBA exception\n"), + 1); + } + + return 0; +} diff --git a/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/DeploymentPlanConnOnly.cdp b/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/DeploymentPlanConnOnly.cdp index 8d945da3aae..373515ee89b 100644 --- a/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/DeploymentPlanConnOnly.cdp +++ b/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/DeploymentPlanConnOnly.cdp @@ -6,7 +6,7 @@ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> Hello_Depl_1 - + HomeTest_HomeImplementation @@ -58,13 +58,36 @@ + HomeTest_HomeInstance ReceiverNode - - + + edu.vanderbilt.dre.DAnCE.InstanceIOR + + + tk_string + + + HomeC.ior + + + + + edu.vanderbilt.dre.DAnCE.RegisterNaming + + + tk_string + + + HomeC + + + + + HomeT_HomeC_exec @@ -84,5 +107,4 @@ HomeT_HomeC_stub - diff --git a/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/run_test.pl index 75e6f8e93dc..b1f0244c65b 100755 --- a/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/HomeTest/descriptors/run_test.pl @@ -25,9 +25,12 @@ $ns_running = 0; $nr_daemon = 2; @ports = ( 60001, 60002 ); -@iorbases = ( "Sender.ior", "Receiver.ior" ); +@iorbases = ( "HomeC.ior", "Sender.ior" ); @iorfiles = 0; -@nodenames = ( "SenderNode", "ReceiverNode" ); +@nodenames = ("ReceiverNode" , "SenderNode"); + +$controller_exec = "$CIAO_ROOT/connectors/dds4ccm/tests/HomeTest/HomeComp/controller"; + # ior files other than daemon # ior files other than daemon @@ -225,8 +228,32 @@ for ($i = 0; $i < $nr_daemon; ++$i) { } } -print "Sleeping 60 seconds to allow task to complete\n"; -sleep (60); +print "Sleeping 5 seconds to allow task to complete\n"; +sleep (5); +print "Invoking the controller\n"; +$controller = $tg_executor->CreateProcess ("$controller_exec", "-k file://HomeC.ior -o"); +$result = $controller->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ()); +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# put some delay here. +sleep (30); + +# invoking the controller again to stop the rategen +print "Invoking the controller to stop RateGen\n"; +$controller = $tg_executor->CreateProcess ("$controller_exec", "-k file://HomeC.ior -f"); +$result = $controller->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ()); +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} +print "Sleeping 5 seconds to allow task to complete\n"; +sleep (5); + + + # Invoke executor - stop the application -. print "Invoking executor - stop the application -\n"; -- cgit v1.2.1