Commit 56265349 authored by Pavel Vainerman's avatar Pavel Vainerman

(ModbusMultiMaster): подправлен тест

parent f832289d
...@@ -197,7 +197,7 @@ std::shared_ptr<ModbusClient> MBTCPMultiMaster::initMB( bool reopen ) ...@@ -197,7 +197,7 @@ std::shared_ptr<ModbusClient> MBTCPMultiMaster::initMB( bool reopen )
{ {
uniset_rwmutex_wrlock l(tcpMutex); uniset_rwmutex_wrlock l(tcpMutex);
// сперва надо обновить все ignore // сперва надо обновить все ignore
// т.к. фактически флаги выставляются и сбрасываются только здесь // т.к. фактически флаги выставляются и сбрасываются только здесь
for( auto it = mblist.rbegin(); it != mblist.rend(); ++it ) for( auto it = mblist.rbegin(); it != mblist.rend(); ++it )
{ {
......
...@@ -13,7 +13,7 @@ cd - ...@@ -13,7 +13,7 @@ cd -
--smemory-id SharedMemory \ --smemory-id SharedMemory \
--mbtcp-filter-field mb \ --mbtcp-filter-field mb \
--mbtcp-filter-value 1 \ --mbtcp-filter-value 1 \
--mbtcp-polltime 50 --mbtcp-recv-timeout 500 --mbtcp-timeout 3000 --mbtcp-ignore-timeout 3000 --dlog-add-levels warn,crit --mbtcp-polltime 50 --mbtcp-recv-timeout 500 --mbtcp-checktime 1000 --mbtcp-timeout 3000 --mbtcp-ignore-timeout 3000 --dlog-add-levels warn,crit
# --dlog-add-levels any # --dlog-add-levels any
#--mbtcp-force-out 1 #--mbtcp-force-out 1
#--dlog-add-levels any #--dlog-add-levels any
...@@ -117,6 +117,14 @@ static void InitTest() ...@@ -117,6 +117,14 @@ static void InitTest()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
TEST_CASE("MBTCPMultiMaster: rotate channel", "[modbus][mbmaster][mbtcpmultimaster]") TEST_CASE("MBTCPMultiMaster: rotate channel", "[modbus][mbmaster][mbtcpmultimaster]")
{ {
// Т.к. respond/notrespond проверяется по возможности создать соединение
// а мы имитируем отключение просто отключением обмена
// то датчик связи всё-равно будет показывать что канал1 доступен
// поэтому датчик 12 - не проверяем..
// а просто проверяем что теперь значение приходит по другому каналу
// (см. setReply)
// ----------------------------
InitTest(); InitTest();
CHECK( ui->isExist(mbID) ); CHECK( ui->isExist(mbID) );
...@@ -126,28 +134,19 @@ TEST_CASE("MBTCPMultiMaster: rotate channel", "[modbus][mbmaster][mbtcpmultimast ...@@ -126,28 +134,19 @@ TEST_CASE("MBTCPMultiMaster: rotate channel", "[modbus][mbmaster][mbtcpmultimast
msleep(polltime + 1000); msleep(polltime + 1000);
REQUIRE( ui->getValue(1003) == 100 ); REQUIRE( ui->getValue(1003) == 100 );
mbs1->disableExchange(true); mbs1->disableExchange(true);
mbs2->disableExchange(false);
msleep(4000); // --mbtcp-timeout 3000 (см. run_test_mbtcmultipmaster.sh) msleep(4000); // --mbtcp-timeout 3000 (см. run_test_mbtcmultipmaster.sh)
REQUIRE( ui->getValue(1003) == 10 ); REQUIRE( ui->getValue(1003) == 10 );
// Т.к. respond/notrespond проверяется по возможности создать соединение // проверяем что канал остался на втором, хотя на первом мы включили связь
// а мы имитируем отключение просто отключением обмена
// то датчик связи всё-равно будет показывать что канал1 доступен
// поэтому датчик 12 - не проверяем..
// а просто проверяем что теперь значение приходит по другому каналу
// (см. setReply)
// ----------------------------
// REQUIRE( ui->getValue(12) == true );
REQUIRE( ui->getValue(13) == false );
mbs1->disableExchange(false); mbs1->disableExchange(false);
mbs2->disableExchange(true); mbs2->disableExchange(false);
msleep(4000); // --mbtcp-timeout 3000 (см. run_test_mbtcmultipmaster.sh) msleep(4000); // --mbtcp-timeout 3000 (см. run_test_mbtcmultipmaster.sh)
REQUIRE( ui->getValue(1003) == 100 ); REQUIRE( ui->getValue(1003) == 10 );
// REQUIRE( ui->getValue(12) == false );
mbs2->disableExchange(false); mbs2->disableExchange(true);
mbs1->disableExchange(false);
msleep(4000); // --mbtcp-timeout 3000 (см. run_test_mbtcmultipmaster.sh)
REQUIRE( ui->getValue(1003) == 100 ); REQUIRE( ui->getValue(1003) == 100 );
// REQUIRE( ui->getValue(13) == true );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
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