Commit 314d9a78 authored by Pavel Vainerman's avatar Pavel Vainerman

[http-resolver]: minor fixes

parent 43a8ce2f
...@@ -19,10 +19,6 @@ jobs: ...@@ -19,10 +19,6 @@ jobs:
libcomedi-devel libmariadb-devel libpqxx-devel librrd-devel libsqlite3-devel \ libcomedi-devel libmariadb-devel libpqxx-devel librrd-devel libsqlite3-devel \
libxml2-devel libsigc++2-devel libpoco-devel libev-devel libomniORB-devel libmosquitto-devel \ libxml2-devel libsigc++2-devel libpoco-devel libev-devel libomniORB-devel libmosquitto-devel \
xsltproc python-devel python-module-distribute libomniORB-names libomniORB-idl libomniORB-utils xsltproc python-devel python-module-distribute libomniORB-names libomniORB-idl libomniORB-utils
- name: prepare builder
run: |
useradd builder
su - builder
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: configure - name: configure
run: | run: |
......
...@@ -46,7 +46,8 @@ TEST_CASE("HttpResolver: resolve", "[httpresolver][ui]") ...@@ -46,7 +46,8 @@ TEST_CASE("HttpResolver: resolve", "[httpresolver][ui]")
InitTest(); InitTest();
REQUIRE_NOTHROW( ui->resolve(TestProc, Node1) ); REQUIRE_NOTHROW( ui->resolve(TestProc, Node1) );
REQUIRE_THROWS_AS( ui->resolve(DefaultObjectId, Node1), uniset::ResolveNameError ); REQUIRE_NOTHROW( ui->resolve("UNISET_PLC/UniObjects/TestProc") );
REQUIRE_THROWS_AS( ui->resolve(DefaultObjectId, Node1), uniset::ResolveNameError& );
REQUIRE( ui->isExist(TestProc, Node1) ); REQUIRE( ui->isExist(TestProc, Node1) );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
......
...@@ -47,14 +47,14 @@ TEST_CASE("UInterface", "[UInterface]") ...@@ -47,14 +47,14 @@ TEST_CASE("UInterface", "[UInterface]")
SECTION( "GET/SET" ) SECTION( "GET/SET" )
{ {
REQUIRE_THROWS_AS( ui->getValue(DefaultObjectId), uniset::ORepFailed ); REQUIRE_THROWS_AS( ui->getValue(DefaultObjectId), uniset::ORepFailed& );
REQUIRE_NOTHROW( ui->setValue(sid, 1) ); REQUIRE_NOTHROW( ui->setValue(sid, 1) );
REQUIRE( ui->getValue(sid) == 1 ); REQUIRE( ui->getValue(sid) == 1 );
REQUIRE_NOTHROW( ui->setValue(sid, 100) ); REQUIRE_NOTHROW( ui->setValue(sid, 100) );
REQUIRE( ui->getValue(sid) == 100 ); // хоть это и дискретный датчик.. функция-то универсальная.. REQUIRE( ui->getValue(sid) == 100 ); // хоть это и дискретный датчик.. функция-то универсальная..
REQUIRE_THROWS_AS( ui->getValue(sid, DefaultObjectId), uniset::Exception ); REQUIRE_THROWS_AS( ui->getValue(sid, DefaultObjectId), uniset::Exception& );
REQUIRE_THROWS_AS( ui->getValue(sid, 100), uniset::Exception ); REQUIRE_THROWS_AS( ui->getValue(sid, 100), uniset::Exception& );
REQUIRE_NOTHROW( ui->setValue(aid, 10) ); REQUIRE_NOTHROW( ui->setValue(aid, 10) );
REQUIRE( ui->getValue(aid) == 10 ); REQUIRE( ui->getValue(aid) == 10 );
...@@ -67,16 +67,16 @@ TEST_CASE("UInterface", "[UInterface]") ...@@ -67,16 +67,16 @@ TEST_CASE("UInterface", "[UInterface]")
REQUIRE_NOTHROW( ui->fastSetValue(si, 20, DefaultObjectId) ); REQUIRE_NOTHROW( ui->fastSetValue(si, 20, DefaultObjectId) );
REQUIRE( ui->getValue(aid) == 20 ); REQUIRE( ui->getValue(aid) == 20 );
REQUIRE_THROWS_AS( ui->getValue(aid, -2), uniset::Exception ); REQUIRE_THROWS_AS( ui->getValue(aid, -2), uniset::Exception& );
si.id = sid; si.id = sid;
REQUIRE_NOTHROW( ui->setValue(si, 15, DefaultObjectId) ); REQUIRE_NOTHROW( ui->setValue(si, 15, DefaultObjectId) );
REQUIRE( ui->getValue(sid) == 15 ); REQUIRE( ui->getValue(sid) == 15 );
si.node = -2; si.node = -2;
REQUIRE_THROWS_AS( ui->setValue(si, 20, DefaultObjectId), uniset::Exception ); REQUIRE_THROWS_AS( ui->setValue(si, 20, DefaultObjectId), uniset::Exception& );
REQUIRE_THROWS_AS( ui->getTimeChange(sid, DefaultObjectId), uniset::ORepFailed ); REQUIRE_THROWS_AS( ui->getTimeChange(sid, DefaultObjectId), uniset::ORepFailed& );
REQUIRE_NOTHROW( ui->getTimeChange(sid, conf->getLocalNode()) ); REQUIRE_NOTHROW( ui->getTimeChange(sid, conf->getLocalNode()) );
si.id = aid; si.id = aid;
...@@ -96,8 +96,9 @@ TEST_CASE("UInterface", "[UInterface]") ...@@ -96,8 +96,9 @@ TEST_CASE("UInterface", "[UInterface]")
SECTION( "resolve" ) SECTION( "resolve" )
{ {
REQUIRE_NOTHROW( ui->resolve(sid) ); REQUIRE_NOTHROW( ui->resolve(sid) );
REQUIRE_THROWS_AS( ui->resolve(sid, 10), uniset::ResolveNameError ); REQUIRE_THROWS_AS( ui->resolve(sid, 10), uniset::ResolveNameError& );
REQUIRE_THROWS_AS( ui->resolve(sid, DefaultObjectId), uniset::ResolveNameError ); REQUIRE_THROWS_AS( ui->resolve(sid, DefaultObjectId), uniset::ResolveNameError& );
REQUIRE_NOTHROW( ui->resolve("UNISET_PLC/Controllers/SharedMemory") );
} }
SECTION( "send" ) SECTION( "send" )
...@@ -163,17 +164,17 @@ TEST_CASE("UInterface", "[UInterface]") ...@@ -163,17 +164,17 @@ TEST_CASE("UInterface", "[UInterface]")
SECTION( "ask" ) SECTION( "ask" )
{ {
REQUIRE_THROWS_AS( ui->askSensor(sid, UniversalIO::UIONotify), uniset::IOBadParam ); REQUIRE_THROWS_AS( ui->askSensor(sid, UniversalIO::UIONotify), uniset::IOBadParam& );
REQUIRE_NOTHROW( ui->askSensor(sid, UniversalIO::UIONotify, testOID) ); REQUIRE_NOTHROW( ui->askSensor(sid, UniversalIO::UIONotify, testOID) );
REQUIRE_NOTHROW( ui->askSensor(aid, UniversalIO::UIONotify, testOID) ); REQUIRE_NOTHROW( ui->askSensor(aid, UniversalIO::UIONotify, testOID) );
REQUIRE_NOTHROW( ui->askSensor(aid, UniversalIO::UIODontNotify, testOID) ); REQUIRE_NOTHROW( ui->askSensor(aid, UniversalIO::UIODontNotify, testOID) );
REQUIRE_NOTHROW( ui->askSensor(sid, UniversalIO::UIODontNotify, testOID) ); REQUIRE_NOTHROW( ui->askSensor(sid, UniversalIO::UIODontNotify, testOID) );
REQUIRE_THROWS_AS( ui->askSensor(-20, UniversalIO::UIONotify), uniset::Exception ); REQUIRE_THROWS_AS( ui->askSensor(-20, UniversalIO::UIONotify), uniset::Exception& );
REQUIRE_NOTHROW( ui->askRemoteSensor(sid, UniversalIO::UIONotify, conf->getLocalNode(), testOID) ); REQUIRE_NOTHROW( ui->askRemoteSensor(sid, UniversalIO::UIONotify, conf->getLocalNode(), testOID) );
REQUIRE_NOTHROW( ui->askRemoteSensor(aid, UniversalIO::UIONotify, conf->getLocalNode(), testOID) ); REQUIRE_NOTHROW( ui->askRemoteSensor(aid, UniversalIO::UIONotify, conf->getLocalNode(), testOID) );
REQUIRE_THROWS_AS( ui->askRemoteSensor(sid, UniversalIO::UIONotify, -3, testOID), uniset::Exception ); REQUIRE_THROWS_AS( ui->askRemoteSensor(sid, UniversalIO::UIONotify, -3, testOID), uniset::Exception& );
uniset::IDList lst; uniset::IDList lst;
lst.add(aid); lst.add(aid);
...@@ -189,7 +190,7 @@ TEST_CASE("UInterface", "[UInterface]") ...@@ -189,7 +190,7 @@ TEST_CASE("UInterface", "[UInterface]")
REQUIRE_NOTHROW( ui->askThreshold(aid, 10, UniversalIO::UIONotify, 90, 100, false, testOID) ); REQUIRE_NOTHROW( ui->askThreshold(aid, 10, UniversalIO::UIONotify, 90, 100, false, testOID) );
REQUIRE_NOTHROW( ui->askThreshold(aid, 11, UniversalIO::UIONotify, 50, 70, false, testOID) ); REQUIRE_NOTHROW( ui->askThreshold(aid, 11, UniversalIO::UIONotify, 50, 70, false, testOID) );
REQUIRE_NOTHROW( ui->askThreshold(aid, 12, UniversalIO::UIONotify, 20, 40, false, testOID) ); REQUIRE_NOTHROW( ui->askThreshold(aid, 12, UniversalIO::UIONotify, 20, 40, false, testOID) );
REQUIRE_THROWS_AS( ui->askThreshold(aid, 3, UniversalIO::UIONotify, 50, 20, false, testOID), IONotifyController_i::BadRange ); REQUIRE_THROWS_AS( ui->askThreshold(aid, 3, UniversalIO::UIONotify, 50, 20, false, testOID), IONotifyController_i::BadRange& );
IONotifyController_i::ThresholdsListSeq_var slist = ui->getThresholdsList(aid); IONotifyController_i::ThresholdsListSeq_var slist = ui->getThresholdsList(aid);
REQUIRE( slist->length() == 1 ); // количество датчиков с порогами = 1 (это aid) REQUIRE( slist->length() == 1 ); // количество датчиков с порогами = 1 (это aid)
...@@ -212,7 +213,7 @@ TEST_CASE("UInterface", "[UInterface]") ...@@ -212,7 +213,7 @@ TEST_CASE("UInterface", "[UInterface]")
REQUIRE( ti3.lowlimit == 20 ); REQUIRE( ti3.lowlimit == 20 );
REQUIRE( ti3.hilimit == 40 ); REQUIRE( ti3.hilimit == 40 );
REQUIRE_THROWS_AS( ui->getThresholdInfo(sid, 10), uniset::NameNotFound ); REQUIRE_THROWS_AS( ui->getThresholdInfo(sid, 10), uniset::NameNotFound& );
// проверяем thresholds который был сформирован из секции <thresholds> // проверяем thresholds который был сформирован из секции <thresholds>
ui->setValue(10, 378); ui->setValue(10, 378);
......
...@@ -167,13 +167,7 @@ namespace uniset ...@@ -167,13 +167,7 @@ namespace uniset
// throw(uniset::ORepFailed) // throw(uniset::ORepFailed)
void unregister(const uniset::ObjectId id); void unregister(const uniset::ObjectId id);
/*! получение ссылки на объект (по полному имени) */ uniset::ObjectPtr resolve( const std::string& name ) const;
inline uniset::ObjectPtr resolve( const std::string& name ) const
{
return rep.resolve(name);
}
// с поддержкой localIOR
uniset::ObjectPtr resolve( const uniset::ObjectId id ) const; uniset::ObjectPtr resolve( const uniset::ObjectId id ) const;
// throw(uniset::ResolveNameError, uniset::TimeOut); // throw(uniset::ResolveNameError, uniset::TimeOut);
......
...@@ -922,7 +922,7 @@ namespace uniset ...@@ -922,7 +922,7 @@ namespace uniset
ostringstream s; ostringstream s;
s << uconf << oind->getNodeName(node); s << uconf << oind->getNodeName(node);
string nodeName(s.str()); string nodeName(s.str());
string bname(nodeName); // сохраняем базовое название const string bname(nodeName); // сохраняем базовое название
for( size_t curNet = 1; curNet <= uconf->getCountOfNet(); curNet++) for( size_t curNet = 1; curNet <= uconf->getCountOfNet(); curNet++)
{ {
...@@ -1512,6 +1512,21 @@ namespace uniset ...@@ -1512,6 +1512,21 @@ namespace uniset
throw uniset::TimeOut(set_err("UI(apiRequest): Timeout", id, node)); throw uniset::TimeOut(set_err("UI(apiRequest): Timeout", id, node));
} }
// ------------------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------------
uniset::ObjectPtr UInterface::resolve( const std::string& name ) const
{
if( uconf->isLocalIOR() )
{
if( CORBA::is_nil(orb) )
orb = uconf->getORB();
const string sior( uconf->iorfile->getIOR(oind->getIdByName(name)) );
if( !sior.empty() )
return orb->string_to_object(sior.c_str());
}
return rep.resolve( name );
}
// ------------------------------------------------------------------------------------------------------------
uniset::ObjectPtr UInterface::resolve( const uniset::ObjectId id ) const uniset::ObjectPtr UInterface::resolve( const uniset::ObjectId id ) const
{ {
if( uconf->isLocalIOR() ) if( uconf->isLocalIOR() )
...@@ -1519,14 +1534,14 @@ namespace uniset ...@@ -1519,14 +1534,14 @@ namespace uniset
if( CORBA::is_nil(orb) ) if( CORBA::is_nil(orb) )
orb = uconf->getORB(); orb = uconf->getORB();
string sior( uconf->iorfile->getIOR(id) ); const string sior( uconf->iorfile->getIOR(id) );
if( !sior.empty() ) if( !sior.empty() )
return orb->string_to_object(sior.c_str()); return orb->string_to_object(sior.c_str());
} }
return rep.resolve( oind->getNameById(id) ); return rep.resolve( oind->getNameById(id) );
} }
// ------------------------------------------------------------------------------------------------------------
uniset::ObjectPtr UInterface::CacheOfResolve::resolve( const uniset::ObjectId id, const uniset::ObjectId node ) const uniset::ObjectPtr UInterface::CacheOfResolve::resolve( const uniset::ObjectId id, const uniset::ObjectId node ) const
{ {
try try
...@@ -1633,7 +1648,7 @@ namespace uniset ...@@ -1633,7 +1648,7 @@ namespace uniset
if( CORBA::is_nil(orb) ) if( CORBA::is_nil(orb) )
orb = uconf->getORB(); orb = uconf->getORB();
string sior( uconf->iorfile->getIOR(id) ); const string sior( uconf->iorfile->getIOR(id) );
if( !sior.empty() ) if( !sior.empty() )
{ {
...@@ -1685,13 +1700,10 @@ namespace uniset ...@@ -1685,13 +1700,10 @@ namespace uniset
if( id == uniset::DefaultObjectId ) if( id == uniset::DefaultObjectId )
return string(pre + " uniset::DefaultObjectId"); return string(pre + " uniset::DefaultObjectId");
string nm( oind->getNameById(node) ); const string nm = oind->getNameById(id);
if( nm.empty() )
nm = "UnknownName";
ostringstream s; ostringstream s;
s << pre << " (" << id << ":" << node << ")" << nm; s << pre << " (" << id << ":" << node << ")" << (nm.empty() ? "UnknownName" : nm);
return s.str(); return s.str();
} }
// -------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------
......
...@@ -14,4 +14,3 @@ m4_include(../extensions/LogicProcessor/tests/lproc-tests.at) ...@@ -14,4 +14,3 @@ m4_include(../extensions/LogicProcessor/tests/lproc-tests.at)
m4_include(../extensions/IOControl/tests/iocontrol-tests.at) m4_include(../extensions/IOControl/tests/iocontrol-tests.at)
m4_include(../extensions/LogDB/tests/logdb-tests.at) m4_include(../extensions/LogDB/tests/logdb-tests.at)
m4_include(../extensions/HttpResolver/tests/uresolver-tests.at) m4_include(../extensions/HttpResolver/tests/uresolver-tests.at)
m4_include(../extensions/LogicProcessor/tests/lproc-tests.at)
...@@ -550,7 +550,6 @@ ...@@ -550,7 +550,6 @@
./tests/umutex.cc ./tests/umutex.cc
./tests/UniXmlTest/Makefile.am ./tests/UniXmlTest/Makefile.am
./tests/UniXmlTest/XmlTest.cc ./tests/UniXmlTest/XmlTest.cc
./tt.cc
./uniset-config.h ./uniset-config.h
./Utilities/Admin/admin.cc ./Utilities/Admin/admin.cc
./Utilities/Admin/c.cc ./Utilities/Admin/c.cc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment