void TestMapSettingsManager::testMapMetaSaveLoad() { Settings conf; std::string path = getTestTempDirectory() + DIR_DELIM + "foobar" + DIR_DELIM + "map_meta.txt"; // Create a set of mapgen params and save them to map meta conf.set("seed", "12345"); conf.set("water_level", "5"); MapSettingsManager mgr1(&conf, path); MapgenParams *params1 = mgr1.makeMapgenParams(); UASSERT(params1); UASSERT(mgr1.saveMapMeta()); // Now try loading the map meta to mapgen params conf.set("seed", "67890"); conf.set("water_level", "32"); MapSettingsManager mgr2(&conf, path); UASSERT(mgr2.loadMapMeta()); MapgenParams *params2 = mgr2.makeMapgenParams(); UASSERT(params2); // Check that both results are correct UASSERTEQ(u64, params1->seed, 12345); UASSERTEQ(s16, params1->water_level, 5); UASSERTEQ(u64, params2->seed, 12345); UASSERTEQ(s16, params2->water_level, 5); }
void TestMapSettingsManager::testMapMetaFailures() { std::string test_mapmeta_path; Settings conf; // Check to see if it'll fail on a non-existent map meta file test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt"; UASSERT(!fs::PathExists(test_mapmeta_path)); MapSettingsManager mgr1(&conf, test_mapmeta_path); UASSERT(!mgr1.loadMapMeta()); // Check to see if it'll fail on a corrupt map meta file test_mapmeta_path = makeMetaFile(true); UASSERT(fs::PathExists(test_mapmeta_path)); MapSettingsManager mgr2(&conf, test_mapmeta_path); UASSERT(!mgr2.loadMapMeta()); }
/*! * @brief add_members() and remove_member() */ void test_add_remove_members() { // std::cout << "test_add_remove_members IN" << std::endl; CORBA::Boolean ret; SDOPackage::SDO_var sdo; SDOPackage::SDOList slist; SDOPackage::SDOList* rslist; Organization_impl* m_pOi2; std::string str; CORBA::Any any; RTC::RTObject_impl* rtobj2; RTC::Manager& mgr2(RTC::Manager::instance()); mgr2.activateManager(); rtobj2 = new ::RTC::RTObject_impl(&mgr2); m_pOi2 = new Organization_impl(rtobj2->getObjRef()); // SDO のセット時、InvalidParameter を取得できるか? // add_members()に、NULL や 空のリストを渡してもlength()=0となるため // InvalidParameterを返すケースはない。 // SDOList のセット時、空のリストを渡して true を取得できるか? short sflg = -1; try { slist = NULL; ret = m_pOi->add_members(slist); CPPUNIT_ASSERT(ret); sflg = 0; } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 0); // SDOList のセット時、リストをセットして true を取得できるか? sflg = -1; try { sdo = SDOPackage::SDO::_duplicate(rtobj2->getObjRef()); CORBA_SeqUtil::push_back(slist, sdo); rtobj2->setInstanceName("hoge1"); // SDOメンバーの追加が成功するか? ret = m_pOi2->add_members(slist); CPPUNIT_ASSERT(ret); sflg = 0; str = m_pOi2->get_organization_id(); any <<= str.c_str(); ret = m_pOi2->set_organization_property_value("instance_name", any); } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 0); // 1件のSDOList取得が行えるか? rslist = m_pOi2->get_members(); CPPUNIT_ASSERT(rslist->length() == 1); // SDOList削除時、引数未定義でInvalidParameterを取得できるか? sflg = -1; try { ret = m_pOi2->remove_member(""); CPPUNIT_ASSERT(ret); sflg = 0; } catch (InvalidParameter ip) { // cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 1); // SDOList削除時、引数不正でInvalidParameterを取得できるか? sflg = -1; try { ret = m_pOi2->remove_member("dummy"); CPPUNIT_ASSERT(ret); sflg = 0; } catch (InvalidParameter ip) { // cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 1); // SDOList削除時、正しい引数で削除できるか? sflg = -1; try { ret = m_pOi2->remove_member("hoge1"); CPPUNIT_ASSERT(ret); sflg = 0; } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 0); // 0件のSDOList取得が行えるか? rslist = m_pOi2->get_members(); CPPUNIT_ASSERT(rslist->length() == 0); if ( !CORBA::is_nil( mgr2.getPOA()) ) { if ( !CORBA::is_nil(mgr2.getPOAManager()) ) { mgr2.getPOAManager()->deactivate(false, true); } } rtobj2->_remove_ref(); m_pOi2->_remove_ref(); // std::cout << "test_add_remove_members OUT" << std::endl; }
/*! * @brief set_members() and get_members() */ void test_set_get_members() { // std::cout << "test_set_get_members IN" << std::endl; CORBA::Boolean ret; SDOPackage::SDO_var sdo; SDOPackage::SDOList slist; SDOPackage::SDOList* rslist; // SDO のセット時、InvalidParameter を取得できるか? // set_members()に、NULL や 空のリストを渡してもlength()=0となるため // InvalidParameterを返すケースはない。 // SDOList のセット時、空のリストを渡して取得できるか? short sflg = -1; try { slist = NULL; ret = m_pOi->set_members(slist); CPPUNIT_ASSERT(ret); sflg = 0; } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 0); // 0件のSDOList取得が行えるか? rslist = m_pOi->get_members(); CPPUNIT_ASSERT(rslist->length() == 0); // SDOList のセット時、リストをセットして true を取得できるか? sflg = -1; try { RTC::RTObject_impl* rtobj2; RTC::Manager& mgr2(RTC::Manager::instance()); rtobj2 = new ::RTC::RTObject_impl(&mgr2); sdo = SDOPackage::SDO::_duplicate(rtobj2->getObjRef()); CORBA_SeqUtil::push_back(slist, sdo); ret = m_pOi->set_members(slist); CPPUNIT_ASSERT(ret); sflg = 0; rtobj2->_remove_ref(); } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 0); // 1件のSDOList取得が行えるか? rslist = m_pOi->get_members(); CPPUNIT_ASSERT(rslist->length() == 1); // std::cout << "test_set_get_members OUT" << std::endl; }
/*! * @brief set_owner() and get_owner() */ void test_set_get_owner() { // std::cout << "test_set_get_owner IN" << std::endl; CORBA::Boolean ret; SDOPackage::SDOSystemElement_var varOwner; SDOPackage::SDOSystemElement_ptr ptrOwner; try { // オーナー取得が行えるか? varOwner = m_pOi->get_owner(); CPPUNIT_ASSERT(!::CORBA::is_nil(varOwner)); // InvalidParameter exceptionを確認 short sflg = -1; try { // オーナー設定時、InvalidParameter が返されるか? ptrOwner = SDOPackage::SDOSystemElement::_nil(); ret = m_pOi->set_owner(ptrOwner); CPPUNIT_ASSERT(ret); sflg = 0; } catch (InvalidParameter ip) { // cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 1); // 戻り値:true を確認 sflg = -1; try { // オーナー設定時、true が返されるか? ::RTC::RTObject_impl* rtobj2; ::RTC::Manager& mgr2(RTC::Manager::instance()); rtobj2 = new ::RTC::RTObject_impl(&mgr2); ptrOwner = rtobj2->getObjRef(); ret = m_pOi->set_owner(ptrOwner); CPPUNIT_ASSERT(ret); sflg = 0; rtobj2->_remove_ref(); } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; sflg = 1; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; sflg = 2; } catch (InternalError ip) { cout << "InternalError exception." << endl; sflg = 3; } catch (...) { cout << "othrer exception." << endl; sflg = 4; } CPPUNIT_ASSERT(sflg == 0); } catch (InvalidParameter ip) { cout << "InvalidParameter exception." << endl; } catch (NotAvailable na) { cout << "NotAvailable exception." << endl; } catch (InternalError ip) { cout << "InternalError exception." << endl; } catch (...) { cout << "othrer exception." << endl; } // std::cout << "test_set_get_owner OUT" << std::endl; }
int main(int argc, char** argv) { int i; char c; int verb=0; int startValue=63130; int nentries=100; while( (c=getopt(argc, argv, "vs:n:")) != -1 ) switch(c) { case 's': startValue=atoi(optarg); break; case 'n': nentries=atoi(optarg); break; case 'v': verb=1; break; default: usage(); } if(optind==argc) usage(); string rootDBFileName = argv[optind]; H4DBManager mgr(false, rootDBFileName.c_str()); H4Run* runEntry=(H4Run*)mgr.getEntry("H4Run", startValue); if(!runEntry) { std::cout << "testAsciiDB: wrong start value val=" << startValue << std::endl; usage(); } // loop over a few runs and dumps them into an ASCII file ofstream ofs("rootdbDump.txt"); ofs << "class H4Run" << std::endl; for(i=0;i<nentries;i++) { int n = mgr.update(startValue+i, H4DBEntry::NoSuchSubindex, runEntry); if(n<1) continue; if(n>1) continue; // we don't care (but we certainly should) runEntry->dumpToAsciiFile(ofs); } ofs.close(); if(verb) std::cout << "testAsciiDB: dumped " << nentries << " events," << std::endl << " starting from evt# " << startValue << " into file rootdbDump.txt" << std::endl; if(verb) std::cout << "testAsciiDB: now attempting to reread the ASCII file..."; // Now, we want to re-read the ASCII file with a new H4DBManager // in write mode ... H4DBManager* mgr_tmp = new H4DBManager; mgr_tmp->openDB(true, "rootdbDump.root"); mgr_tmp->readAsciiFile("rootdbDump.txt"); delete mgr_tmp; if(verb) std::cout << "testAsciiDB: done." << std::endl; if(verb) std::cout << "testAsciiDB: checking that no information was lost during the operation..." << std::endl; H4DBManager mgr2(false, "rootdbDump.root"); H4Run* runEntry2=(H4Run*)mgr2.getEntry("H4Run", startValue); if(!runEntry2) { std::cout << "testAsciiDB: unable to reread root database created from Ascii file" << std::endl; exit(-2); } for(i=0;i<nentries;i++) { int index = i+startValue; int n = mgr.update(index, H4DBEntry::NoSuchSubindex, runEntry); int n2 = mgr2.update(index, H4DBEntry::NoSuchSubindex, runEntry2); if(n != n2) { std::cout << "testAsciiDB: ERROR rereading db, index=" << index << " n,n2=" << n << "," << n2 << std::endl; continue; } if(runEntry->getRunNumber() != runEntry2->getRunNumber() ) { std::cout << "testAsciiDB: ERROR rereading db, index=" << index << " runNumbers 1,2=" << runEntry->getRunNumber() << ", " << runEntry2->getRunNumber() << std::endl; continue; } if(runEntry->getSubRun() != runEntry2->getSubRun() ) { std::cout << "testAsciiDB: ERROR rereading db, index=" << index << " subRuns 1,2=" << runEntry->getSubRun() << ", " << runEntry2->getSubRun() << std::endl; continue; } if(runEntry->getStartTime() != runEntry2->getStartTime() ) { std::cout << "testAsciiDB: ERROR rereading db, index=" << index << " startTime 1,2=" << runEntry->getStartTime() << ", " << runEntry2->getStartTime() << std::endl; continue; } if(runEntry->getStopTime() != runEntry2->getStopTime() ) { std::cout << "testAsciiDB: ERROR rereading db, index=" << index << " startTime 1,2=" << runEntry->getStopTime() << ", " << runEntry2->getStopTime() << std::endl; continue; } if(verb) { runEntry->print(); runEntry2->print(); } } if(verb) std::cout << "OK!" << std::endl; }
void CEZX::get_wallpaper(char* ret) { QString wall; SETUP_SET_Manager mgr2(FILE_THEME_CFG, false); mgr2.getSettingInfo("THEME_CONFIG_TABLE", "WallPaper", wall, "", true); sprintf(ret, "%s", (const char*)wall); }