diff options
author | mcorino <mcorino@users.noreply.github.com> | 2011-04-09 17:53:42 +0000 |
---|---|---|
committer | mcorino <mcorino@users.noreply.github.com> | 2011-04-09 17:53:42 +0000 |
commit | 6a37f2958678992758d74411587ae03124a7e91a (patch) | |
tree | e9a2a0150a2f19216a2279939099287759345faa | |
parent | 2b0efc29d0e3a06ac6a03c956a3bc6ba764edff9 (diff) | |
download | ATCD-6a37f2958678992758d74411587ae03124a7e91a.tar.gz |
Sat Apr 9 17:47:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
Merged changes from Remedy work branch.
18 files changed, 548 insertions, 104 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index da03272a4ba..ff4f394346a 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,52 @@ +Sat Apr 9 17:47:00 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged changes from Remedy work branch. + + === start changelog === + + Fri Apr 8 13:57:42 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * connectors/dds4ccm/tests/SLManyByMany/descriptors/Plan.cdp: + Alignment. + + * connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.cpp: + * connectors/dds4ccm/tests/SLOneByOne/descriptors/Plan.cdp: + Added check on received sample during on_deletion. on_deletion should be invoked + with a valid key. Therefor changed the QOS settings. + + Thu Apr 7 15:55:20 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * connectors/dds4ccm/tests/SLManyByMany/Sender/SL_ManyByMany_Sender_exec.cpp: + * connectors/dds4ccm/tests/SLManyByMany/descriptors/Plan.cdp: + * connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.h: + * connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.cpp: + * connectors/dds4ccm/tests/SLManyByMany/descriptors/USER_QOS_PROFILES.xml: + * connectors/dds4ccm/tests/SLManyByMany/README: + Changed timing in test. Added extra check on key content in on_deletion. Therefore also added QoS file. + + + + Thu Apr 7 12:26:20 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver.idl: + * connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.h: + * connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.cpp: + Using the getter as well to read samples from DDS. + + * connectors/dds4ccm/tests/CoherentWriter/descriptors/Plan.cdp: + Rewritten in order to use the state and event connectors properly. + + * tests/DAnCE/Progressive_Deployments/run_test.pl: + Optimized logging. + + Thu Apr 7 12:15:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * connectors/dds4ccm/impl/ConditionManager.h: + Fixed doxygen warning + + === end changelog === + Sat Apr 9 11:39:26 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu> * tests/DAnCE/Launch-Failures/Component/Launch_Failure.mpc: diff --git a/CIAO/connectors/dds4ccm/impl/ConditionManager.h b/CIAO/connectors/dds4ccm/impl/ConditionManager.h index 6f74aedbf1a..c8451b6f579 100644 --- a/CIAO/connectors/dds4ccm/impl/ConditionManager.h +++ b/CIAO/connectors/dds4ccm/impl/ConditionManager.h @@ -187,7 +187,7 @@ namespace CIAO * * Internal getter for the DataReader. * If the internal dds_entity is not set before this method - * is called, a ::CORBA::BAD_INV_ORDER exception is thrown. + * is called, a CORBA::BAD_INV_ORDER exception is thrown. * */ ::DDS::DataReader_ptr dds_entity (void); diff --git a/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver.idl b/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver.idl index 08a5cf09eb0..52d4c12a8cb 100644 --- a/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver.idl +++ b/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver.idl @@ -15,7 +15,7 @@ module CoherentWrite_Test { component Receiver { - port CoherentWriteTestConnector::DDS_Read info_out; + port CoherentWriteTestConnector::DDS_Get info_out; provides CoherentWriteStarter reader_start; uses CoherentWriteRestarter writer_restart; diff --git a/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.cpp index b834c542218..48fd54e6059 100644 --- a/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.cpp +++ b/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.cpp @@ -51,7 +51,16 @@ namespace CIAO_CoherentWrite_Test_Receiver_Impl { ACE_DEBUG ((LM_DEBUG, "Checking if last sample " "is available in DDS...\n")); - if (this->callback_.check_last ()) + // Use get_many for every even number. In that case, don't check whether + // the last sample has arrived since the samples are read by then (the + // getter only reads unread samples). + if (this->run_ % 2 == 1) + { + // Odd number so check if the last sample is available in DDS. + if (this->callback_.check_last ()) + this->callback_.run (this->run_); + } + else this->callback_.run (this->run_); return 0; } @@ -192,17 +201,98 @@ namespace CIAO_CoherentWrite_Test_Receiver_Impl } void + Receiver_exec_i::check_iters (const char * test, + const CoherentWriteTestSeq& coherentwrite_info_seq) + { + for (CORBA::ULong it = 0; it < coherentwrite_info_seq.length (); ++it) + { + if (coherentwrite_info_seq[it].iteration > this->last_iter_) + { + if (coherentwrite_info_seq[it].iteration == ++this->last_iter_) + { + ACE_DEBUG ((LM_DEBUG, "%C ALL OK: ", test)); + } + else + { + ACE_ERROR ((LM_ERROR, "%C ALL ERROR: ", test)); + } + ACE_DEBUG ((LM_DEBUG, "expected: <%u> - " + "received <%d>\n", + this->last_iter_, + coherentwrite_info_seq[it].iteration)); + } + } + if (this->run_ < this->nr_runs () + 1) + { + ::CoherentWriteRestarter_var restarter = + this->ciao_context_->get_connection_writer_restart (); + if (!::CORBA::is_nil (restarter.in ())) + restarter->restart_write (); + else + ACE_ERROR ((LM_ERROR, "Receiver_exec_i::get_all - " + "Unable to restart the writer " + "since the restarter is nil.\n")); + } + else + { + ACE_DEBUG ((LM_DEBUG, "Finished: wait for shutdown\n")); + } + } + + void + Receiver_exec_i::get_all (void) + { + try + { + ::CoherentWriteTestConnector::Getter_var getter = + this->ciao_context_->get_connection_info_out_fresh_data (); + + if (::CORBA::is_nil (getter.in ())) + { + ACE_ERROR ((LM_ERROR, "Receiver_exec_i::get_all - " + "Unable to get samples since " + "getter is nil.\n")); + return; + } + DDS::Duration_t to; + to.sec = 5; + to.nanosec = 0; + getter->time_out (to); + + CoherentWriteTestSeq coherentwrite_info_seq; + ::CCM_DDS::ReadInfoSeq readinfo_seq; + getter->get_many (coherentwrite_info_seq, readinfo_seq); + + this->check_iters ("GET", coherentwrite_info_seq); + } + catch (const CCM_DDS::NonExistent& ex) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: GET ALL: ") + ACE_TEXT ("caught NonExistent exception\n"))); + } + catch (const CCM_DDS::InternalError& ex) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: GET ALL: ") + ACE_TEXT ("caught InternalError exception: retval <%u>\n"), + ex.error_code)); + } + catch (const ::CORBA::Exception& ex) + { + ex._tao_print_exception ("ERROR: GET ALL: "); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("ERROR: Receiver_exec_i::get_all : Exception caught\n"))); + } + } + + void Receiver_exec_i::read_all (void) { try { ::CoherentWriteTestConnector::Reader_var reader = this->ciao_context_->get_connection_info_out_data (); - CoherentWriteRestarter_var restarter = - this->ciao_context_->get_connection_writer_restart (); - if (::CORBA::is_nil (reader.in ()) || - ::CORBA::is_nil (restarter.in ())) + if (::CORBA::is_nil (reader.in ())) { ACE_ERROR ((LM_ERROR, "Receiver_exec_i::read_all - " "Unable to read since reader or " @@ -214,32 +304,7 @@ namespace CIAO_CoherentWrite_Test_Receiver_Impl ::CCM_DDS::ReadInfoSeq readinfo_seq; reader->read_all (coherentwrite_info_seq, readinfo_seq); - for (CORBA::ULong it = 0; it < coherentwrite_info_seq.length (); ++it) - { - if (coherentwrite_info_seq[it].iteration > this->last_iter_) - { - if (coherentwrite_info_seq[it].iteration == ++this->last_iter_) - { - ACE_DEBUG ((LM_DEBUG, "OK: ")); - } - else - { - ACE_ERROR ((LM_ERROR, "ERROR: ")); - } - ACE_DEBUG ((LM_DEBUG, "expected: <%u> - " - "received <%d>\n", - this->last_iter_, - coherentwrite_info_seq[it].iteration)); - } - } - if (this->run_ < this->nr_runs () + 1) - { - restarter->restart_write (); - } - else - { - ACE_DEBUG ((LM_DEBUG, "Finished: wait for shutdown\n")); - } + this->check_iters ("READ", coherentwrite_info_seq); } catch (const CCM_DDS::NonExistent& ex) { @@ -293,7 +358,10 @@ namespace CIAO_CoherentWrite_Test_Receiver_Impl "Starting run number <%d>\n", run)); this->run_ = run; - read_all (); + if (this->run_ % 2 == 1) + this->read_all (); + else + this->get_all (); } ::CORBA::UShort diff --git a/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.h b/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.h index 3a5231ed465..be797696480 100644 --- a/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.h +++ b/CIAO/connectors/dds4ccm/tests/CoherentWriter/Receiver/CoherentWrite_Test_Receiver_exec.h @@ -190,6 +190,10 @@ namespace CIAO_CoherentWrite_Test_Receiver_Impl read_action_Generator *ticker_; + void check_iters (const char * test, + const CoherentWriteTestSeq& coherentwrite_info_seq); + + void get_all (void); void read_all (void); //@} diff --git a/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/Plan.cdp b/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/Plan.cdp index 7b27c761106..bd78b9fb47f 100644 --- a/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/Plan.cdp +++ b/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/Plan.cdp @@ -59,8 +59,60 @@ </execParameter> </implementation> - <implementation xmi:id="CoherentWrite_Test_ConnectorComponentImplementation"> - <name>CoherentWrite_Test_ConnectorComponentImplementation</name> + <implementation xmi:id="CoherentWrite_Test_StateConnectorImplementation"> + <name>CoherentWrite_Test_StateConnectorImplementation</name> + <source/> + <artifact xmi:idref="CoherentWrite_Test_Connector_ExecArtifact" /> + <artifact xmi:idref="CoherentWrite_Test_Connector_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_CoherentWriteTestConnector_DDS_State_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_CoherentWriteTestConnector_DDS_State_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>CoherentWrite_Test_Connector_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>CoherentWrite_Test_Connector_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="CoherentWrite_Test_EventConnectorImplementation"> + <name>CoherentWrite_Test_EventConnectorImplementation</name> <source/> <artifact xmi:idref="CoherentWrite_Test_Connector_ExecArtifact" /> <artifact xmi:idref="CoherentWrite_Test_Connector_SvntArtifact" /> @@ -110,6 +162,7 @@ </value> </execParameter> </implementation> + <implementation xmi:id="SenderComponentImplementation"> <name>SenderComponentImplementation</name> <source/> @@ -161,6 +214,7 @@ </value> </execParameter> </implementation> + <instance xmi:id="ReceiverComponentInstance"> <name>ReceiverComponent</name> <node>ReceiverNode</node> @@ -179,12 +233,13 @@ </value> </configProperty> </instance> - <instance xmi:id="CoherentWrite_Test_ConnectorComponentInstance"> + + <instance xmi:id="CoherentWrite_Test_SenderConnectorInstance"> <name>CoherentWrite_Test_ConnectorComponent</name> <node>SenderNode</node> <!-- hostname --> <source/> - <implementation xmi:idref="CoherentWrite_Test_ConnectorComponentImplementation" /> + <implementation xmi:idref="CoherentWrite_Test_EventConnectorImplementation" /> <configProperty> <name>qos_profile</name> <value> @@ -208,12 +263,13 @@ </value> </configProperty> </instance> - <instance xmi:id="CoherentWrite_Test_ConnectorComponentInstance2"> - <name>CoherentWrite_Test_ConnectorComponent2</name> + + <instance xmi:id="CoherentWrite_Test_ReceiverConnectorInstance"> + <name>CoherentWrite_Test_ReceiverConnector</name> <node>ReceiverNode</node> <!-- hostname --> <source/> - <implementation xmi:idref="CoherentWrite_Test_ConnectorComponentImplementation" /> + <implementation xmi:idref="CoherentWrite_Test_StateConnectorImplementation" /> <configProperty> <name>qos_profile</name> <value> @@ -237,6 +293,7 @@ </value> </configProperty> </instance> + <instance xmi:id="SenderComponentInstance"> <name>SenderComponent</name> <node>SenderNode</node> @@ -269,10 +326,30 @@ <instance xmi:idref="ReceiverComponentInstance" /> </internalEndpoint> <internalEndpoint> - <portName>push_consumer_data</portName> + <portName>pull_observer_data</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="CoherentWrite_Test_ReceiverConnectorInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>info_out_fresh_data</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_out_fresh_data</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>pull_observer_fresh_data</portName> <provider>true</provider> <kind>Facet</kind> - <instance xmi:idref="CoherentWrite_Test_ConnectorComponentInstance2" /> + <instance xmi:idref="CoherentWrite_Test_ReceiverConnectorInstance" /> </internalEndpoint> </connection> @@ -292,7 +369,7 @@ <portName>supplier_data</portName> <provider>true</provider> <kind>Facet</kind> - <instance xmi:idref="CoherentWrite_Test_ConnectorComponentInstance" /> + <instance xmi:idref="CoherentWrite_Test_SenderConnectorInstance" /> </internalEndpoint> </connection> diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/README b/CIAO/connectors/dds4ccm/tests/SLManyByMany/README new file mode 100644 index 00000000000..b7cacabe8ed --- /dev/null +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/README @@ -0,0 +1,26 @@ +# $Id$ + +This is a test for the StateListener when the StateListenerControl is in the MANY_BY_MANY mode. + +The test uses the Updater to sent samples. +With a create_one ( 1 sample) and create_many (3 samples) of the Updater, +the on_creation must be triggered ( 4 times 1 sample). + +With a delete_one ( 1 sample) and a delete_many (3 samples) of the Updater, + the on_deletion must betriggered( 4 times 1 sample). + +With update_one ( 1 sample) and update_many (3 samples) of the Updater, + the on_many_updates must ideal be triggered 2 times (1 and 3 samples), +but it is possible through timing problems that the 3 samples are nor received at one time. + +Because of the MANY_BY_MANY mode, the on_one_update must not be triggered, +even if the Updater does a update_one. + +In on_deletion, the returning dataum.key is tested . The key shouldn't be empty, but have a valid value +because of the <serialize_key_with_dispose> and <propagate_dispose_of_unregistered_instances> settings in the QoS . + + +Beccause the StateListener performs a get, a read_all of a Reader shouldn't receive any samples +after the Statelistener has received his triggers. + + diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.cpp index 1f77b91bd01..f748a6ced92 100644 --- a/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.cpp +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.cpp @@ -33,6 +33,7 @@ #define ON_CREATION_EXPECTED 4 #define ON_MANY_EXPECTED 4 +#define ON_MANY_TRIGGERED 2 #define ON_DELETION_EXPECTED 4 #define ON_READER_EXPECTED 0 @@ -67,6 +68,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl Atomic_Long &no_operation, Atomic_Long &on_creation, Atomic_Long &on_many_update, + Atomic_Long &on_many_upd_trigger, Atomic_Long &on_deletion, Atomic_Bool &create_data, Atomic_Bool &update_data) @@ -75,6 +77,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl , no_operation_ (no_operation) , on_creation_ (on_creation) , on_many_update_ (on_many_update) + , on_many_upd_trigger_ (on_many_upd_trigger) , on_deletion_ (on_deletion) , create_data_ (create_data) , update_data_ (update_data) @@ -120,16 +123,25 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl info_out_data_listener_exec_i::on_many_updates (const ::TestTopicSeq & data, const ::CCM_DDS::ReadInfoSeq & infos) { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("on_many_update triggered,") + ACE_TEXT (" received sequence of ") + ACE_TEXT ("<%u> samples\n"), + infos.length())); + //number of times this is triggered + this->on_many_upd_trigger_ ++; + + //number of total samples received this->on_many_update_ += infos.length(); for(CORBA::ULong i = 0; i < infos.length(); ++i) { if (infos[i].instance_status != CCM_DDS::INSTANCE_UPDATED) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: did not receive the expected ") - ACE_TEXT ("info.instance_status ") - ACE_TEXT ("'CCM_DDS::INSTANCE_UPDATED' ") - ACE_TEXT ("with operation 'on_many_updates' ") - ACE_TEXT ("from StateListener in Receiver\n") + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("ERROR: did not receive the expected ") + ACE_TEXT ("info.instance_status ") + ACE_TEXT ("'CCM_DDS::INSTANCE_UPDATED' ") + ACE_TEXT ("with operation 'on_many_updates' ") + ACE_TEXT ("from StateListener in Receiver\n") )); } @@ -141,8 +153,8 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl } for (CORBA::ULong i = 0; i < data.length(); ++i) { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("on_many_updates info : ") - ACE_TEXT ("Number <%d> : received TestTopic_info ") + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("on_many_updates info : Number <%d> :") + ACE_TEXT (" received TestTopic_info ") ACE_TEXT ("for <%C> at %u\n"), i, data[i].key.in (), @@ -161,15 +173,35 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl { if (info.instance_status != CCM_DDS::INSTANCE_DELETED) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: did not receive the expected info.instance_status ") - ACE_TEXT ("'CCM_DDS::INSTANCE_DELETED'") - ACE_TEXT (" with operation 'on_deletion' from StateListener in Receiver\n") - )); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("ERROR: did not receive the expected ") + ACE_TEXT ("info.instance_status ") + ACE_TEXT ("'CCM_DDS::INSTANCE_DELETED' with operation ") + ACE_TEXT ("'on_deletion' from StateListener in Receiver\n") + )); } - if (!datum.key.in() == 0 && info.instance_status == CCM_DDS::INSTANCE_DELETED) + else { - ++this->on_deletion_; + // Because of the settings <serialize_key_with_dispose> and + // <propagate_dispose_of_unregistered_instances> in the QoS , we expect + // an existing datum.key + if ((ACE_OS::strncmp (datum.key.in(), "KEY", 3) == 0 ) || + (ACE_OS::strncmp (datum.key.in(), "many", 4) == 0 )) + { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Statelistener:on_deletion : ") + ACE_TEXT ("Received datum for <%C> \n"), + datum.key.in ())); + ++this->on_deletion_; + } + else + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("ERROR Statelistener:on_deletion : did not ") + ACE_TEXT ("receive the expected datum, received <%C>") + ACE_TEXT (", expected <KEY_.> or <many_.>\n"), + datum.key.in ())); + } } } @@ -212,6 +244,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl : no_operation_ (0) , on_creation_ (0) , on_many_update_ (0) + , on_many_upd_trigger_ (0) , on_deletion_ (0) , create_data_ (false) , update_data_ (false) @@ -263,7 +296,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl } try { - TestTopicSeq TestTopic_infos; + TestTopicSeq TestTopic_infos; ::CCM_DDS::ReadInfoSeq readinfoseq; reader->read_all (TestTopic_infos, readinfoseq); this->reader_data_ += TestTopic_infos.length (); @@ -305,6 +338,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl this->no_operation_, this->on_creation_, this->on_many_update_, + this->on_many_upd_trigger_, this->on_deletion_, this->create_data_, this->update_data_), @@ -375,8 +409,10 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl lc->mode (::CCM_DDS::MANY_BY_MANY); if (this->reactor ()->schedule_timer (this->ticker_, 0, - ACE_Time_Value(3, 0), - ACE_Time_Value(3, 0)) == -1) + ACE_Time_Value(18, 0), + ACE_Time_Value(1, 0)) == -1) + // ACE_Time_Value(1, 0), + // ACE_Time_Value(1, 0)) == -1) { ACE_ERROR ((LM_INFO, "Receiver_exec_i::ccm_activate - " "ERROR: Unable to schedule timer!\n")); @@ -441,6 +477,24 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl )); } + if(this->on_many_upd_trigger_.value () < ON_MANY_TRIGGERED) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: didn't trigger the expected ") + ACE_TEXT ("number of 'on_many_update': ") + ACE_TEXT ("expected minimum <%d> - received <%d>\n"), + ON_MANY_TRIGGERED, + this->on_many_upd_trigger_.value () + )); + } + else + { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("OK: did trigger the minimum expected ") + ACE_TEXT ("number of 'on_many_update': ") + ACE_TEXT ("expected <%d> - received <%d>\n"), + ON_MANY_TRIGGERED, + this->on_many_upd_trigger_.value () + )); + } if(this->on_many_update_.value () != ON_MANY_EXPECTED) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: didn't receive the expected ") @@ -454,9 +508,11 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("OK: did receive the expected ") ACE_TEXT ("number of 'on_many_update' samples: ") - ACE_TEXT ("expected <%d> - received <%d>\n"), + ACE_TEXT ("expected <%d> - received <%d>,") + ACE_TEXT ("on_many_update triggered at <%d> times.\n"), ON_MANY_EXPECTED, - this->on_many_update_.value () + this->on_many_update_.value (), + ON_MANY_TRIGGERED )); } diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.h b/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.h index aed8f79ae84..5674cabf36d 100644 --- a/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.h +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/Receiver/SL_ManyByMany_Receiver_exec.h @@ -81,6 +81,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl Atomic_Long &no_operation, Atomic_Long &on_creation, Atomic_Long &on_many_update, + Atomic_Long &on_many_upd_trigger, Atomic_Long &on_deletion, Atomic_Bool &create_data, Atomic_Bool &update_data); @@ -111,6 +112,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl Atomic_Long &no_operation_; Atomic_Long &on_creation_; Atomic_Long &on_many_update_; + Atomic_Long &on_many_upd_trigger_; Atomic_Long &on_deletion_; Atomic_Bool &create_data_; Atomic_Bool &update_data_; @@ -203,6 +205,7 @@ namespace CIAO_SL_ManyByMany_Receiver_Impl Atomic_Long no_operation_; Atomic_Long on_creation_; Atomic_Long on_many_update_; + Atomic_Long on_many_upd_trigger_; Atomic_Long on_deletion_; Atomic_Bool create_data_; Atomic_Bool update_data_; diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/Sender/SL_ManyByMany_Sender_exec.cpp b/CIAO/connectors/dds4ccm/tests/SLManyByMany/Sender/SL_ManyByMany_Sender_exec.cpp index c2541560c0b..c9ec998d3e2 100644 --- a/CIAO/connectors/dds4ccm/tests/SLManyByMany/Sender/SL_ManyByMany_Sender_exec.cpp +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/Sender/SL_ManyByMany_Sender_exec.cpp @@ -101,20 +101,23 @@ namespace CIAO_SL_ManyByMany_Sender_Impl return false; } updater->create_one (i); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("SL_ManyByMany: create_one with instance key <%C>\n"), - i.key.in ())); + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("SL_ManyByMany: create_one with instance key ") + ACE_TEXT (" <%C>\n"), + i.key.in ())); } catch (const CCM_DDS::AlreadyCreated &) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: ") - ACE_TEXT ("AlreadyCreated with test updater create_one <%C>.\n"), + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: AlreadyCreated ") + ACE_TEXT ("with test updater create_one <%C>.\n"), i.key.in ())); return false; } catch (const CCM_DDS::InternalError& ) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while create_one for <%C>.\n"), - i.key.in ())); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("Internal Error while create_one for <%C>.\n"), + i.key.in ())); return false; } return true; @@ -137,19 +140,23 @@ namespace CIAO_SL_ManyByMany_Sender_Impl } i.x++; updater->update_one (i, DDS::HANDLE_NIL); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Updater: update_one with already existing instance with DDS::HANDLE_NIL, key <%C>\n"), - i.key.in ())); + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("Updater: update_one with already existing ") + ACE_TEXT ("instance with DDS::HANDLE_NIL, key <%C>\n"), + i.key.in ())); } catch (const CCM_DDS::NonExistent &) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: NonExistent with test updater update_one <%C>.\n"), + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: NonExistent ") + ACE_TEXT ("with test updater update_one <%C>.\n"), i.key.in ())); return false; } catch (const CCM_DDS::InternalError& ) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while update_one for <%C>.\n"), - i.key.in ())); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("Internal Error while update_one for <%C>.\n"), + i.key.in ())); return false; } return true; @@ -170,20 +177,24 @@ namespace CIAO_SL_ManyByMany_Sender_Impl "ERROR: Updater seems nil\n")); return false; } - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Updater: delete_one with registered instance with DDS::HANDLE_NIL, key <%C>\n"), - i.key.in ())); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Updater: delete_one with registered ") + ACE_TEXT ("instance with DDS::HANDLE_NIL, ") + ACE_TEXT ("key <%C>\n"), + i.key.in ())); updater->delete_one(i, DDS::HANDLE_NIL); } catch (const CCM_DDS::NonExistent &) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: NonExistent with test updater delete_one <%C>.\n"), - i.key.in ())); + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: NonExistent ") + ACE_TEXT ("with test updater delete_one <%C>.\n"), + i.key.in ())); return false; } catch (const CCM_DDS::InternalError& ) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while delete_one for <%C>.\n"), - i.key.in ())); + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("Internal Error while delete_one for <%C>.\n"), + i.key.in ())); return false; } return true; @@ -237,13 +248,15 @@ namespace CIAO_SL_ManyByMany_Sender_Impl "ERROR: Updater seems nil\n")); return false; } - for(CORBA::ULong i = 0; i < this->topic_seq_many_.length(); i++) + for(CORBA::ULong i = 0; i < this->topic_seq_many_.length(); i++) { this->topic_seq_many_[i].x= i+ 10; } updater->update_many (this->topic_seq_many_); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("update_many : written <%u> samples\n"), this->topic_seq_many_.length ())); + updater->is_coherent_write (false); + } catch (const CCM_DDS::NonExistent& ) { @@ -279,14 +292,16 @@ namespace CIAO_SL_ManyByMany_Sender_Impl } catch (const CCM_DDS::NonExistent& ) { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: NonExistent with test updater delete_many\n"))); + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception: NonExistent ") + ACE_TEXT ("with test updater delete_many\n"))); return false; } catch (const CCM_DDS::InternalError& ex) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Internal Error ") - ACE_TEXT ("with test updater delete_many: index <%d> - retval <%d>\n"), - ex.index, ex.error_code)); + ACE_TEXT ("with test updater delete_many:") + ACE_TEXT ("index <%d> - retval <%d>\n"), + ex.index, ex.error_code)); return false; } @@ -375,7 +390,7 @@ namespace CIAO_SL_ManyByMany_Sender_Impl void Sender_exec_i::start (void) { - long sec = 3L; + long sec = 2L; long const usec = 0L; if (this->reactor ()->schedule_timer ( this->ticker_, diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/Plan.cdp b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/Plan.cdp index bee09a6c97c..0238211ad98 100644 --- a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/Plan.cdp +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/Plan.cdp @@ -186,6 +186,17 @@ </value> </value> </configProperty> + <configProperty> + <name>qos_profile</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SlMbM_Library#SlMbM_Profile</string> + </value> + </value> + </configProperty> </instance> <instance xmi:id="SL_ManyByMany_ConnectorComponentInstance2"> <name>SL_ManyByMany_ConnectorComponent2</name> @@ -204,6 +215,17 @@ </value> </value> </configProperty> + <configProperty> + <name>qos_profile</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SlMbM_Library#SlMbM_Profile</string> + </value> + </value> + </configProperty> </instance> <instance xmi:id="SenderComponentInstance"> <name>SenderComponent</name> diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/USER_QOS_PROFILES.xml b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/USER_QOS_PROFILES.xml new file mode 100644 index 00000000000..0985f8d04e5 --- /dev/null +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/USER_QOS_PROFILES.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +Description +XML QoS Profile + +The QoS configuration of the DDS entities in the generated example is +loaded from this file. + +This file is used only when it is in the current working directory +or when the enviroment variable +NDDS_QOS_PROFILES is defined and points to this file. + +For more information about XML QoS Profiles see Chapter 15 in the +RTI Data Distribution Service user manual. +--> +<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="c:/ndds/ndds.4.5d/scripts/../resource/rtiddsgen/../qos_profiles_4.5d/schema/rti_dds_qos_profiles.xsd" version="4.5d"> + <!-- QoS Library containing the QoS profile used in the generated example. + + A QoS library is a named set of QoS profiles. + --> + <qos_library name="SlMbM_Library"> + <!-- QoS profile used to configure reliable communication between the DataWriter + and DataReader created in the example code. + + A QoS profile groups a set of related QoS. + --> + <qos_profile name="SlMbM_Profile" is_default_qos="true"> + <!-- QoS used to configure the data writer created in the example code --> + <datawriter_qos> + <reliability> + <kind>RELIABLE_RELIABILITY_QOS</kind> + <max_blocking_time> + <sec>10</sec> + <nanosec>0</nanosec> + </max_blocking_time> + </reliability> + <history> + <kind>KEEP_ALL_HISTORY_QOS</kind> + </history> + <resource_limits> + <max_instances>4</max_instances> + <initial_instances>4</initial_instances> + <max_samples>25</max_samples> + <initial_samples>10</initial_samples> + <max_samples_per_instance>5</max_samples_per_instance> + </resource_limits> + <protocol> + <rtps_reliable_writer> + <max_heartbeat_retries>10</max_heartbeat_retries> + </rtps_reliable_writer> + <serialize_key_with_dispose>BOOLEAN_TRUE</serialize_key_with_dispose> + </protocol> + </datawriter_qos> + <!-- QoS used to configure the data reader created in the example code --> + <datareader_qos> + <reliability> + <kind>RELIABLE_RELIABILITY_QOS</kind> + </reliability> + <history> + <kind>KEEP_ALL_HISTORY_QOS</kind> + </history> + <resource_limits> + <max_instances>4</max_instances> + <initial_instances>4</initial_instances> + <max_samples>25</max_samples> + <initial_samples>10</initial_samples> + <max_samples_per_instance>5</max_samples_per_instance> + </resource_limits> + <protocol> + <propagate_dispose_of_unregistered_instances>BOOLEAN_TRUE</propagate_dispose_of_unregistered_instances> + </protocol> + </datareader_qos> + </qos_profile> + </qos_library> +</dds> diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl index cdc95da3df3..acc2fa5c0ee 100755 --- a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl @@ -218,8 +218,8 @@ for ($i = 0; $i < $nr_daemon; ++$i) { } } -print "Sleeping 20 seconds to allow task to complete\n"; -sleep (20); +print "Sleeping 30 seconds to allow task to complete\n"; +sleep (30); # Invoke executor - stop the application -. print "Invoking executor - stop the application -\n"; diff --git a/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.cpp index 7334aca3cfc..0daa3a26fef 100644 --- a/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.cpp +++ b/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.cpp @@ -126,15 +126,28 @@ namespace CIAO_SL_OneByOne_Receiver_Impl ACE_TEXT ("from StateListener in Receiver\n"))); } - if (!datum.key.in() == 0 && - info.instance_status == CCM_DDS::INSTANCE_DELETED) + else { - ++this->on_deletion_; + // Because of the settings <serialize_key_with_dispose> and + // <propagate_dispose_of_unregistered_instances> in the QoS , we expect + // an existing datum.key + if ((ACE_OS::strncmp (datum.key.in(), "KEY", 3) == 0 ) || + (ACE_OS::strncmp (datum.key.in(), "many", 4) == 0 )) + { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Statelistener:on_deletion : ") + ACE_TEXT ("Received datum for <%C> \n"), + datum.key.in ())); + ++this->on_deletion_; + } + else + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("ERROR Statelistener:on_deletion : did not ") + ACE_TEXT ("receive the expected datum, received <%C>") + ACE_TEXT (", expected <KEY_.> or <many_.>\n"), + datum.key.in ())); + } } - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("StateListener_exec_i::on_deletion - ") - ACE_TEXT ("Received sample: key <%C> - iteration <%d>\n"), - datum.key.in (), - datum.x)); } /** diff --git a/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/Plan.cdp b/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/Plan.cdp index 4e797b1bf0f..fda7618e870 100644 --- a/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/Plan.cdp +++ b/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/Plan.cdp @@ -186,6 +186,17 @@ </value> </value> </configProperty> + <configProperty> + <name>qos_profile</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SlObO_Library#SlObO_Profile</string> + </value> + </value> + </configProperty> </instance> <instance xmi:id="SL_OneByOne_ConnectorComponentInstance2"> <name>SL_OneByOne_ConnectorComponent2</name> @@ -204,6 +215,17 @@ </value> </value> </configProperty> + <configProperty> + <name>qos_profile</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SlObO_Library#SlObO_Profile</string> + </value> + </value> + </configProperty> </instance> <instance xmi:id="SenderComponentInstance"> <name>SenderComponent</name> diff --git a/CIAO/tests/DAnCE/Progressive_Deployments/run_test.pl b/CIAO/tests/DAnCE/Progressive_Deployments/run_test.pl index 90418d4f183..2cec7141f26 100755 --- a/CIAO/tests/DAnCE/Progressive_Deployments/run_test.pl +++ b/CIAO/tests/DAnCE/Progressive_Deployments/run_test.pl @@ -26,7 +26,6 @@ $nr_daemon = 2; $status = 0; $dat_file = "NodeManagerMap.cdd"; -$cdp_file = "DeploymentPlan.cdp"; # ior files other than daemon $ior_nsbase = "ns.ior"; @@ -179,7 +178,7 @@ if ($status != 0) { $daemons_running = 1; # Invoke execution manager. -print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n"; +print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile --cdd $dat_file\n"; $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager", "-e$ior_emfile --cdd $dat_file"); $EM->Spawn (); @@ -197,17 +196,17 @@ $em_running = 1; # Invoke executor - start the application -. print "Invoking executor - launch the application -\n"; -print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n"; +print "Start dance_plan_launcher.exe with -x Plan_A.cpd -k file://$ior_emfile -l\n"; $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", "-x Plan_A.cdp -k file://$ior_emfile -l"); $E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ()); -print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n"; +print "Start dance_plan_launcher.exe with -x Plan_B.cpd -k file://$ior_emfile -l\n"; $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", "-x Plan_B.cdp -k file://$ior_emfile -l"); $E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ()); -print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n"; +print "Start dance_plan_launcher.exe with -x Plan_C.cpd -k file://$ior_emfile -l\n"; $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", "-x Plan_C.cdp -k file://$ior_emfile -l"); $E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ()); @@ -223,19 +222,19 @@ for ($i = 0; $i < $nr_daemon; ++$i) { # Invoke executor - stop the application -. print "Invoking executor - stop the application -\n"; -print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n"; +print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x Plan_C.cdp -s\n"; $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", - "-k file://$ior_emfile -x Plan_A.cdp -s"); + "-k file://$ior_emfile -x Plan_C.cdp -s"); $E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ()); -print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n"; +print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x Plan_B.cdp -s\n"; $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", "-k file://$ior_emfile -x Plan_B.cdp -s"); $E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ()); -print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n"; +print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x Plan_A.cdp -s\n"; $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", - "-k file://$ior_emfile -x Plan_C.cdp -s"); + "-k file://$ior_emfile -x Plan_A.cdp -s"); $E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ()); print "Executor returned.\n"; diff --git a/DAnCE/ChangeLog b/DAnCE/ChangeLog index 37fb2721d28..78ca5cd5ed7 100644 --- a/DAnCE/ChangeLog +++ b/DAnCE/ChangeLog @@ -1,3 +1,17 @@ +Sat Apr 9 17:47:00 UTC 2011 Martin Corino <mcorino@remedy.nl> + + Merged changes from Remedy work branch. + + === start changelog === + + Thu Apr 7 12:24:30 UTC 2011 Marcel Smit <msmit@remedy.nl> + + * dance/DomainApplicationManager/Node_Locator.cpp: + Removed comma after DLINFO in a log message. Therefor the message + will be logged properly. + + === end changelog === + Sat Apr 9 11:36:47 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu> * dance/LocalityManager/Daemon/Locality_Manager_Impl.cpp: diff --git a/DAnCE/dance/DomainApplicationManager/Node_Locator.cpp b/DAnCE/dance/DomainApplicationManager/Node_Locator.cpp index 5d03d39b5e7..d5464526888 100644 --- a/DAnCE/dance/DomainApplicationManager/Node_Locator.cpp +++ b/DAnCE/dance/DomainApplicationManager/Node_Locator.cpp @@ -217,7 +217,7 @@ namespace DAnCE resources[i].resourceType[k]) == 0) { DANCE_DEBUG (DANCE_LOG_EVENT_TRACE, - (LM_TRACE, DLINFO, + (LM_TRACE, DLINFO ACE_TEXT("Node_Locator::get_resource_value - ") ACE_TEXT("Found resource for type '%C'\n"), type)); |