Commit bef5dade authored by Pavel Vainerman's avatar Pavel Vainerman

(PassiveTimer): исправление ошибки в функции millisecToPoco()

parent 5308b799
......@@ -14,7 +14,7 @@
Name: libuniset2
Version: 2.5
Release: alt9
Release: alt10
Summary: UniSet - library for building distributed industrial control systems
License: LGPL
......@@ -486,6 +486,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
# ..
%changelog
* Wed Sep 07 2016 Pavel Vainerman <pv@altlinux.ru> 2.5-alt10
- fixed bug in millisecToPoco() function
* Tue Sep 06 2016 Pavel Vainerman <pv@altlinux.ru> 2.5-alt9
- (UNetUDP): optimization use mutex
- (unet-udp-tester): add new command line agruments
......
......@@ -65,7 +65,7 @@ class UniSetTimer
*/
static const timeout_t WaitUpTime = std::numeric_limits<timeout_t>::max();
// преобразование с учётом WaitUpTime, т.к. в Poco::Timespan вечное ожидание это "0" :(
// преобразование в Poco::Timespan с учётом WaitUpTime
static const Poco::Timespan millisecToPoco( const timeout_t msec );
static const Poco::Timespan microsecToPoco( const timeout_t usec );
......
......@@ -114,16 +114,16 @@ void UniSetTimer::stop()
const Poco::Timespan UniSetTimer::millisecToPoco( const timeout_t msec )
{
if( msec == WaitUpTime )
return Poco::Timespan(0,0);
return Poco::Timespan(Poco::Timestamp::TIMEVAL_MAX,0);
// msec --> usec
return Poco::Timespan( long(msec/1000), long((msec%1000)*1000) );
return Poco::Timespan( long(msec/1000), long((msec*1000)%1000000) );
}
//------------------------------------------------------------------------------
const Poco::Timespan UniSetTimer::microsecToPoco( const timeout_t usec )
{
if( usec == WaitUpTime )
return Poco::Timespan(0,0);
return Poco::Timespan(Poco::Timestamp::TIMEVAL_MAX,0);
return Poco::Timespan( long(usec/1000000), long(usec%1000000) );
}
......
......@@ -107,15 +107,14 @@ TEST_CASE("UniSetTimer: conv to Poco", "[PassiveTimer][poco]" )
{
Poco::Timespan tm = UniSetTimer::millisecToPoco(UniSetTimer::WaitUpTime);
REQUIRE( tm.seconds() == 0 );
REQUIRE( tm.seconds() == -1 );
REQUIRE( tm.microseconds() == 0 );
}
{
Poco::Timespan tm = UniSetTimer::millisecToPoco(20);
REQUIRE( tm.seconds() == 0 );
REQUIRE( tm.milliseconds() == 20 );
REQUIRE( tm.microseconds() == 0 );
REQUIRE( tm.totalMilliseconds() == 20 );
REQUIRE( tm.totalMicroseconds() == 20000 );
}
......@@ -123,7 +122,7 @@ TEST_CASE("UniSetTimer: conv to Poco", "[PassiveTimer][poco]" )
// usec --> Poco::Timespan
{
Poco::Timespan tm = UniSetTimer::microsecToPoco(UniSetTimer::WaitUpTime);
REQUIRE( tm.seconds() == 0 );
REQUIRE( tm.seconds() == -1 );
REQUIRE( tm.microseconds() == 0 );
}
{
......
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