Commit 4299a71b authored by Pavel Vainerman's avatar Pavel Vainerman

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

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