PortAdminTests.cpp
Go to the documentation of this file.
1 // -*- C++ -*-
21 /*
22  * $Log: PortAdminTests.cpp,v $
23  * Revision 1.2 2008/04/21 04:01:01 arafune
24  * Modified some tests.
25  *
26  * Revision 1.1 2007/12/20 07:50:16 arafune
27  * *** empty log message ***
28  *
29  * Revision 1.3 2007/04/13 15:05:03 n-ando
30  * Now RTC::OK becomes RTC::RTC_OK in RTC.idl.
31  *
32  * Revision 1.2 2007/01/12 14:44:36 n-ando
33  * Some fixes for distribution control.
34  *
35  * Revision 1.1 2006/11/27 08:34:18 n-ando
36  * TestSuites are devided into each directory.
37  *
38  * Revision 1.2 2006/11/14 02:21:09 kurihara
39  *
40  * test_deletePortByName() and test_finalizePorts() were added.
41  *
42  * Revision 1.1 2006/11/13 04:18:45 kurihara
43  *
44  * test program for PortAdmin class.
45  *
46  */
47 
48 #ifndef PortAdmin_cpp
49 #define PortAdmin_cpp
50 
51 #include <cppunit/ui/text/TestRunner.h>
52 #include <cppunit/TextOutputter.h>
53 #include <cppunit/extensions/TestFactoryRegistry.h>
54 #include <cppunit/extensions/HelperMacros.h>
55 #include <cppunit/TestAssert.h>
56 
57 #include <vector>
58 #include <string>
59 
60 #include <rtm/PortAdmin.h>
61 
66 namespace PortAdmin
67 {
68  int g_argc;
69  std::vector<std::string> g_argv;
70 
76  class Logger
77  {
78  public:
79  void log(const std::string& msg)
80  {
81  m_log.push_back(msg);
82  }
83 
84  int countLog(const std::string& msg)
85  {
86  int count = 0;
87  for (int i = 0; i < (int) m_log.size(); ++i)
88  {
89  if (m_log[i] == msg) ++count;
90  }
91  return count;
92  }
93 
94  void clearLog(void)
95  {
96  m_log.clear();
97  }
98  private:
99  std::vector<std::string> m_log;
100  };
106  class PortMock
107  : public RTC::PortBase
108  {
109  protected:
110  virtual RTC::ReturnCode_t publishInterfaces(RTC::ConnectorProfile&)
111  {
112  return RTC::RTC_OK;
113  }
114  virtual RTC::ReturnCode_t subscribeInterfaces(const RTC::ConnectorProfile&)
115  {
116  return RTC::RTC_OK;
117  }
118  virtual void unsubscribeInterfaces(const RTC::ConnectorProfile&)
119  {
120  }
121  virtual void activateInterfaces()
122  {
123  if (m_logger != NULL)
124  {
125  m_logger->log("PortMock::activateInterfaces");
126  }
127  }
128  virtual void deactivateInterfaces()
129  {
130  if (m_logger != NULL)
131  {
132  m_logger->log("PortMock::deactivateInterfaces");
133  }
134  }
135  public:
137  {
138  m_logger = NULL;
139  }
145  {
146  m_logger = logger;
147  }
148  private:
150 
151  };
152 
154  : public CppUnit::TestFixture
155  {
156  CPPUNIT_TEST_SUITE(PortAdminTests);
157  CPPUNIT_TEST(test_getPortList);
158  CPPUNIT_TEST(test_getPortRef);
159  CPPUNIT_TEST(test_getPort);
160  CPPUNIT_TEST(test_addPort);
161  CPPUNIT_TEST(test_registerPort);
162  CPPUNIT_TEST(test_removePort);
163  CPPUNIT_TEST(test_deletePortByName);
164  CPPUNIT_TEST(test_finalizePorts);
165  CPPUNIT_TEST(test_activatePorts);
166  CPPUNIT_TEST(test_deactivatePorts);
167  CPPUNIT_TEST_SUITE_END();
168 
169  private:
170  CORBA::ORB_ptr m_orb;
171  PortableServer::POA_ptr m_poa;
172 
173  public:
175  {
176  char* argv[g_argc];
177  for (int i = 0; i < g_argc; i++) {
178  argv[i] = (char *)g_argv[i].c_str();
179  }
180 
181  m_orb = CORBA::ORB_init(g_argc, argv);
182  CORBA::Object_var obj = m_orb->resolve_initial_references("RootPOA");
183  m_poa = PortableServer::POA::_narrow(obj);
184  PortableServer::POAManager_var pman = m_poa->the_POAManager();
185  pman->activate();
186  }
187 
189  {
190  }
191 
192  virtual void setUp()
193  {
194  sleep(1);
195  }
196 
197  virtual void tearDown()
198  {
199  }
200 
207  {
208  RTC::PortAdmin portAdmin(m_orb, m_poa);
209 
210  // Portを登録しておく
211  PortMock* port0 = new PortMock();
212  port0->setName("port0");
213  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0));
214 
215  PortMock* port1 = new PortMock();
216  port1->setName("port1");
217  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port1));
218 
219  // getPortList()で登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得されたPortが、あらかじめ登録したものと一致するか? RTC::PortProfile* portProf0 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT(portProf0 != NULL); CPPUNIT_ASSERT_EQUAL(std::string("port0"), std::string(portProf0->name)); RTC::PortProfile* portProf1 = (*portList)[1]->get_port_profile(); CPPUNIT_ASSERT(portProf1 != NULL); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); portAdmin.removePort(*port1); portAdmin.removePort(*port0); delete port1; delete port0; } /*! * @brief getPortRef()メソッドのテスト * * - 登録されているPortの参照を正しく取得できるか? * - 登録されていないPortの名称を指定した場合、意図どおりnil参照が得られるか? */ void test_getPortRef() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0)); PortMock* port1 = new PortMock(); port1->setName("port1"); CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port1)); // 登録されているPortの参照を正しく取得できるか? RTC::PortService_var portRef0 = portAdmin.getPortRef("port0"); CPPUNIT_ASSERT(! CORBA::is_nil(portRef0)); RTC::PortProfile* portProf0 = portRef0->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port0"), std::string(portProf0->name)); RTC::PortService_var portRef1 = portAdmin.getPortRef("port1"); CPPUNIT_ASSERT(! CORBA::is_nil(portRef1)); RTC::PortProfile* portProf1 = portRef1->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 登録されていないPortの名称を指定した場合、意図どおりnil参照が得られるか? CPPUNIT_ASSERT(CORBA::is_nil(portAdmin.getPortRef("inexist"))); delete port1; delete port0; } /*! * @brief getPort()メソッドのテスト * * - ポート名称を指定して、登録されているPortオブジェクトを正しく取得できるか? */ void test_getPort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0)); PortMock* port1 = new PortMock(); port1->setName("port1"); CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port1)); // ポート名称を指定して、登録されているPortオブジェクトを正しく取得できるか? RTC::PortBase* portRet0 = portAdmin.getPort("port0"); RTC::PortProfile* portProf0 = portRet0->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port0"), std::string(portProf0->name)); RTC::PortBase* portRet1 = portAdmin.getPort("port1"); RTC::PortProfile* portProf1 = portRet1->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); delete port1; delete port0; } /*! * @brief addPort()メソッドのテスト */ void test_addPort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); // test for addPort(PortBase&) CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0)); CPPUNIT_ASSERT_EQUAL(false, portAdmin.addPort(*port0)); PortMock* port1 = new PortMock(); port1->setName("port1"); // test for addPort(PortService_ptr) CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(port1->getPortRef())); CPPUNIT_ASSERT_EQUAL(false, portAdmin.addPort(port1->getPortRef())); delete port1; delete port0; } /*! * @brief registerPort(),deletePort()メソッドのテスト */ void test_registerPort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); // test for registerPort(PortBase&) portAdmin.registerPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); // test for registerPort(PortService_ptr) portAdmin.registerPort(port1->getPortRef()); // 登録されているうち、1つのPortを削除する portAdmin.deletePort(*port0); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief removePort()のテスト * * - Portを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_removePort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する CPPUNIT_ASSERT_EQUAL(true, portAdmin.removePort(*port0)); CPPUNIT_ASSERT_EQUAL(false, portAdmin.removePort(*port0)); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
220  RTC::PortServiceList* portList = portAdmin.getPortServiceList();
221 
222  // 取得されたPortが、あらかじめ登録したものと一致するか?
223  RTC::PortProfile* portProf0 = (*portList)[0]->get_port_profile();
224  CPPUNIT_ASSERT(portProf0 != NULL);
225  CPPUNIT_ASSERT_EQUAL(std::string("port0"), std::string(portProf0->name));
226 
227  RTC::PortProfile* portProf1 = (*portList)[1]->get_port_profile();
228  CPPUNIT_ASSERT(portProf1 != NULL);
229  CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name));
230  portAdmin.removePort(*port1);
231  portAdmin.removePort(*port0);
232  delete port1;
233  delete port0;
234  }
235 
243  {
244  RTC::PortAdmin portAdmin(m_orb, m_poa);
245 
246  // Portを登録しておく
247  PortMock* port0 = new PortMock();
248  port0->setName("port0");
249  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0));
250 
251  PortMock* port1 = new PortMock();
252  port1->setName("port1");
253  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port1));
254 
255  // 登録されているPortの参照を正しく取得できるか?
256  RTC::PortService_var portRef0 = portAdmin.getPortRef("port0");
257  CPPUNIT_ASSERT(! CORBA::is_nil(portRef0));
258  RTC::PortProfile* portProf0 = portRef0->get_port_profile();
259  CPPUNIT_ASSERT_EQUAL(std::string("port0"), std::string(portProf0->name));
260 
261  RTC::PortService_var portRef1 = portAdmin.getPortRef("port1");
262  CPPUNIT_ASSERT(! CORBA::is_nil(portRef1));
263  RTC::PortProfile* portProf1 = portRef1->get_port_profile();
264  CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name));
265 
266  // 登録されていないPortの名称を指定した場合、意図どおりnil参照が得られるか?
267  CPPUNIT_ASSERT(CORBA::is_nil(portAdmin.getPortRef("inexist")));
268  delete port1;
269  delete port0;
270  }
271 
278  {
279  RTC::PortAdmin portAdmin(m_orb, m_poa);
280 
281  // Portを登録しておく
282  PortMock* port0 = new PortMock();
283  port0->setName("port0");
284  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0));
285 
286  PortMock* port1 = new PortMock();
287  port1->setName("port1");
288  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port1));
289 
290  // ポート名称を指定して、登録されているPortオブジェクトを正しく取得できるか?
291  RTC::PortBase* portRet0 = portAdmin.getPort("port0");
292  RTC::PortProfile* portProf0 = portRet0->get_port_profile();
293  CPPUNIT_ASSERT_EQUAL(std::string("port0"), std::string(portProf0->name));
294 
295  RTC::PortBase* portRet1 = portAdmin.getPort("port1");
296  RTC::PortProfile* portProf1 = portRet1->get_port_profile();
297  CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name));
298  delete port1;
299  delete port0;
300  }
301 
306  {
307  RTC::PortAdmin portAdmin(m_orb, m_poa);
308 
309  // Portを登録しておく
310  PortMock* port0 = new PortMock();
311  port0->setName("port0");
312  // test for addPort(PortBase&)
313  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(*port0));
314  CPPUNIT_ASSERT_EQUAL(false, portAdmin.addPort(*port0));
315 
316  PortMock* port1 = new PortMock();
317  port1->setName("port1");
318  // test for addPort(PortService_ptr)
319  CPPUNIT_ASSERT_EQUAL(true, portAdmin.addPort(port1->getPortRef()));
320  CPPUNIT_ASSERT_EQUAL(false, portAdmin.addPort(port1->getPortRef()));
321  delete port1;
322  delete port0;
323  }
324 
329  {
330  RTC::PortAdmin portAdmin(m_orb, m_poa);
331 
332  // Portを登録しておく
333  PortMock* port0 = new PortMock();
334  port0->setName("port0");
335  // test for registerPort(PortBase&)
336  portAdmin.registerPort(*port0);
337 
338  PortMock* port1 = new PortMock();
339  port1->setName("port1");
340  // test for registerPort(PortService_ptr)
341  portAdmin.registerPort(port1->getPortRef());
342 
343  // 登録されているうち、1つのPortを削除する portAdmin.deletePort(*port0); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief removePort()のテスト * * - Portを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_removePort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する CPPUNIT_ASSERT_EQUAL(true, portAdmin.removePort(*port0)); CPPUNIT_ASSERT_EQUAL(false, portAdmin.removePort(*port0)); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
344  portAdmin.deletePort(*port0);
345 
346  // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief removePort()のテスト * * - Portを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_removePort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する CPPUNIT_ASSERT_EQUAL(true, portAdmin.removePort(*port0)); CPPUNIT_ASSERT_EQUAL(false, portAdmin.removePort(*port0)); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
347  RTC::PortServiceList* portList = portAdmin.getPortServiceList();
348 
349  // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief removePort()のテスト * * - Portを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_removePort() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する CPPUNIT_ASSERT_EQUAL(true, portAdmin.removePort(*port0)); CPPUNIT_ASSERT_EQUAL(false, portAdmin.removePort(*port0)); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
350  CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length());
351  RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile();
352  CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name));
353 
354  // 削除したPortのProfileのリファレンスがnilになっているか?
355  const RTC::PortProfile& portProf0 = port0->getProfile();
356  CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref));
357  delete port1;
358  delete port0;
359  }
360 
361 
369  {
370  RTC::PortAdmin portAdmin(m_orb, m_poa);
371 
372  // Portを登録しておく
373  PortMock* port0 = new PortMock();
374  port0->setName("port0");
375  portAdmin.addPort(*port0);
376 
377  PortMock* port1 = new PortMock();
378  port1->setName("port1");
379  portAdmin.addPort(*port1);
380 
381  // 登録されているうち、1つのPortを削除する CPPUNIT_ASSERT_EQUAL(true, portAdmin.removePort(*port0)); CPPUNIT_ASSERT_EQUAL(false, portAdmin.removePort(*port0)); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
382  CPPUNIT_ASSERT_EQUAL(true, portAdmin.removePort(*port0));
383  CPPUNIT_ASSERT_EQUAL(false, portAdmin.removePort(*port0));
384 
385  // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
386  RTC::PortServiceList* portList = portAdmin.getPortServiceList();
387 
388  // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief deletePortByName()メソッドのテスト * * - 指定した名称を持つPortを正しく削除できるか? * - 削除したPortのProfileのリファレンスがnilになっているか? */ void test_deletePortByName() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
389  CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length());
390  RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile();
391  CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name));
392 
393  // 削除したPortのProfileのリファレンスがnilになっているか?
394  const RTC::PortProfile& portProf0 = port0->getProfile();
395  CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref));
396  delete port1;
397  delete port0;
398  }
399 
407  {
408  RTC::PortAdmin portAdmin(m_orb, m_poa);
409 
410  // Portを登録しておく
411  PortMock* port0 = new PortMock();
412  port0->setName("port0");
413  portAdmin.addPort(*port0);
414 
415  PortMock* port1 = new PortMock();
416  port1->setName("port1");
417  portAdmin.addPort(*port1);
418 
419  // 登録されているうち、1つのPortを削除する portAdmin.deletePortByName("port0"); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
420  portAdmin.deletePortByName("port0");
421 
422  // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
423  RTC::PortServiceList* portList = portAdmin.getPortServiceList();
424 
425  // 削除したPortが、取得したPortList内に含まれていないことを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length()); RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile(); CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name)); // 削除したPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); delete port1; delete port0; } /*! * @brief finalizePorts()メソッドのテスト * * - 登録されているすべてのPortを、PortAdminから削除できるか? * - すべてのPortのProfileのリファレンスがnilになっているか? */ void test_finalizePorts() { RTC::PortAdmin portAdmin(m_orb, m_poa); // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); portAdmin.addPort(*port1); // finalizePorts()を呼出す portAdmin.finalizePorts(); // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
426  CPPUNIT_ASSERT_EQUAL(CORBA::ULong(1), portList->length());
427  RTC::PortProfile* portProf1 = (*portList)[0]->get_port_profile();
428  CPPUNIT_ASSERT_EQUAL(std::string("port1"), std::string(portProf1->name));
429 
430  // 削除したPortのProfileのリファレンスがnilになっているか?
431  const RTC::PortProfile& portProf0 = port0->getProfile();
432  CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref));
433  delete port1;
434  delete port0;
435  }
436 
444  {
445  RTC::PortAdmin portAdmin(m_orb, m_poa);
446 
447  // Portを登録しておく
448  PortMock* port0 = new PortMock();
449  port0->setName("port0");
450  portAdmin.addPort(*port0);
451 
452  PortMock* port1 = new PortMock();
453  port1->setName("port1");
454  portAdmin.addPort(*port1);
455 
456  // finalizePorts()を呼出す
457  portAdmin.finalizePorts();
458 
459  // getPortList()にて、登録されている全Portを取得する RTC::PortServiceList* portList = portAdmin.getPortServiceList(); // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
460  RTC::PortServiceList* portList = portAdmin.getPortServiceList();
461 
462  // 取得したPortListが空であることを確認する CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length()); // すべてのPortのProfileのリファレンスがnilになっているか? const RTC::PortProfile& portProf0 = port0->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref)); const RTC::PortProfile& portProf1 = port1->getProfile(); CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref)); delete port1; delete port0; } /*! * * * */ void test_activatePorts(void) { RTC::PortAdmin portAdmin(m_orb, m_poa); Logger logger; // Portを登録しておく PortMock* port0 = new PortMock(); port0->setName("port0"); port0->setLogger(&logger); portAdmin.addPort(*port0); PortMock* port1 = new PortMock(); port1->setName("port1"); port1->setLogger(&logger); portAdmin.addPort(*port1); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces")); portAdmin.activatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces")); CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces")); portAdmin.deactivatePorts(); CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces")); m_poa->deactivate_object(*m_poa->servant_to_id(port0)); m_poa->deactivate_object(*m_poa->servant_to_id(port1)); delete port1; delete port0; } /*! * * * */ void test_deactivatePorts(void) { } }; }; // namespace PortAdmin /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // PortAdmin_cpp
463  CPPUNIT_ASSERT_EQUAL(CORBA::ULong(0), portList->length());
464 
465  // すべてのPortのProfileのリファレンスがnilになっているか?
466  const RTC::PortProfile& portProf0 = port0->getProfile();
467  CPPUNIT_ASSERT(CORBA::is_nil(portProf0.port_ref));
468  const RTC::PortProfile& portProf1 = port1->getProfile();
469  CPPUNIT_ASSERT(CORBA::is_nil(portProf1.port_ref));
470  delete port1;
471  delete port0;
472  }
479  {
480  RTC::PortAdmin portAdmin(m_orb, m_poa);
481 
482  Logger logger;
483 
484  // Portを登録しておく
485  PortMock* port0 = new PortMock();
486  port0->setName("port0");
487  port0->setLogger(&logger);
488  portAdmin.addPort(*port0);
489 
490  PortMock* port1 = new PortMock();
491  port1->setName("port1");
492  port1->setLogger(&logger);
493  portAdmin.addPort(*port1);
494 
495  CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::activateInterfaces"));
496  portAdmin.activatePorts();
497  CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::activateInterfaces"));
498 
499  CPPUNIT_ASSERT_EQUAL(0,logger.countLog("PortMock::deactivateInterfaces"));
500  portAdmin.deactivatePorts();
501  CPPUNIT_ASSERT_EQUAL(2,logger.countLog("PortMock::deactivateInterfaces"));
502 
503  m_poa->deactivate_object(*m_poa->servant_to_id(port0));
504  m_poa->deactivate_object(*m_poa->servant_to_id(port1));
505  delete port1;
506  delete port0;
507  }
514  {
515  }
516 
517  };
518 }; // namespace PortAdmin
519 
520 /*
521  * Register test suite
522  */
524 
525 #ifdef LOCAL_MAIN
526 int main(int argc, char* argv[])
527 {
528 
529  FORMAT format = TEXT_OUT;
530  int target = 0;
531  std::string xsl;
532  std::string ns;
533  std::string fname;
534  std::ofstream ofs;
535 
536  int i(1);
537  while (i < argc)
538  {
539  std::string arg(argv[i]);
540  std::string next_arg;
541  if (i + 1 < argc) next_arg = argv[i + 1];
542  else next_arg = "";
543 
544  if (arg == "--text") { format = TEXT_OUT; break; }
545  if (arg == "--xml")
546  {
547  if (next_arg == "")
548  {
549  fname = argv[0];
550  fname += ".xml";
551  }
552  else
553  {
554  fname = next_arg;
555  }
556  format = XML_OUT;
557  ofs.open(fname.c_str());
558  }
559  if ( arg == "--compiler" ) { format = COMPILER_OUT; break; }
560  if ( arg == "--cerr" ) { target = 1; break; }
561  if ( arg == "--xsl" )
562  {
563  if (next_arg == "") xsl = "default.xsl";
564  else xsl = next_arg;
565  }
566  if ( arg == "--namespace" )
567  {
568  if (next_arg == "")
569  {
570  std::cerr << "no namespace specified" << std::endl;
571  exit(1);
572  }
573  else
574  {
575  xsl = next_arg;
576  }
577  }
578  ++i;
579  }
580  CppUnit::TextUi::TestRunner runner;
581  if ( ns.empty() )
582  runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
583  else
584  runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest());
585  CppUnit::Outputter* outputter = 0;
586  std::ostream* stream = target ? &std::cerr : &std::cout;
587  switch ( format )
588  {
589  case TEXT_OUT :
590  outputter = new CppUnit::TextOutputter(&runner.result(),*stream);
591  break;
592  case XML_OUT :
593  std::cout << "XML_OUT" << std::endl;
594  outputter = new CppUnit::XmlOutputter(&runner.result(),
595  ofs, "shift_jis");
596  static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl);
597  break;
598  case COMPILER_OUT :
599  outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream);
600  break;
601  }
602  runner.setOutputter(outputter);
603  runner.run();
604  return 0; // runner.run() ? 0 : 1;
605 }
606 #endif // MAIN
607 #endif // PortAdmin_cpp
int main(int argc, char **argv)
PortService_ptr getPortRef(const char *port_name) const
Get the reference to Port object.
Definition: PortAdmin.cpp:161
std::vector< std::string > m_log
void finalizePorts()
Deactivate all Ports and unregister them.
Definition: PortAdmin.cpp:368
void test_getPort()
getPort()メソッドのテスト
unsigned int sleep(unsigned int seconds)
Stop a processing at specified second time.
Definition: ace/coil/Time.h:40
void test_deletePortByName()
deletePortByName()メソッドのテスト
const PortProfile & getProfile() const
Get the PortProfile of the Port.
Definition: PortBase.cpp:517
PortService_ptr getPortRef()
Get the object reference of this Port.
Definition: PortBase.cpp:545
ReturnCode_t
Definition: doil.h:53
PortBase * getPort(const char *port_name) const
Get pointer to the Port&#39;s servant.
Definition: PortAdmin.cpp:179
PortableServer::POA_ptr m_poa
CPPUNIT_TEST_SUITE_REGISTRATION(PortAdmin::PortAdminTests)
void test_getPortList()
getPortList()メソッドのテスト
void test_getPortRef()
getPortRef()メソッドのテスト
void log(const std::string &msg)
void activatePorts()
Activate all Port interfaces.
Definition: PortAdmin.cpp:334
PortAdmin class.
Definition: PortAdmin.h:52
virtual RTC::ReturnCode_t publishInterfaces(RTC::ConnectorProfile &)
PortServiceList * getPortServiceList() const
Get PortServiceList.
Definition: PortAdmin.cpp:108
Port base class.
Definition: PortBase.h:134
void test_addPort()
addPort()メソッドのテスト
void registerPort(PortBase &port)
Regsiter the Port.
Definition: PortAdmin.cpp:239
void test_removePort()
removePort()のテスト
virtual PortProfile * get_port_profile()
[CORBA interface] Get the PortProfile of the Port
Definition: PortBase.cpp:100
void deactivatePorts()
Deactivate all Port interfaces.
Definition: PortAdmin.cpp:351
bool removePort(PortBase &port)
Unregister the Port registration.
Definition: PortAdmin.cpp:262
void test_registerPort()
registerPort(),deletePort()メソッドのテスト
int countLog(const std::string &msg)
std::vector< IPortService * > PortServiceList
Definition: IPortService.h:39
void deletePortByName(const char *port_name)
Unregister the Port&#39;s registration by its name.
Definition: PortAdmin.cpp:320
void test_finalizePorts()
finalizePorts()メソッドのテスト
virtual RTC::ReturnCode_t subscribeInterfaces(const RTC::ConnectorProfile &)
void setLogger(Logger *logger)
bool addPort(PortBase &port)
Regsiter the Port.
Definition: PortAdmin.cpp:191
::OutPortBase::Logger logger
void deletePort(PortBase &port)
Unregister the Port registration.
Definition: PortAdmin.cpp:297
virtual void unsubscribeInterfaces(const RTC::ConnectorProfile &)
std::vector< std::string > g_argv
void setName(const char *name)
Set the name of this Port.
Definition: PortBase.cpp:488
RTC&#39;s Port administration class.
virtual void deactivateInterfaces()
Deactivate all Port interfaces.
virtual void activateInterfaces()
Activate all Port interfaces.


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Mon Feb 28 2022 23:00:44