Skip to content

Commit f7c52f4

Browse files
Update Unit tests for code coverage
1 parent 527dc86 commit f7c52f4

File tree

3 files changed

+68
-19
lines changed

3 files changed

+68
-19
lines changed

orchagent/portsorch.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5153,21 +5153,21 @@ void PortsOrch::doPortTask(Consumer &consumer)
51535153
it++;
51545154
continue;
51555155
}
5156-
if (pCfg.media_type.is_set)
5157-
{
5158-
if (setPortMediaType(p, pCfg.media_type.value))
5159-
{
5160-
SWSS_LOG_NOTICE("Set port %s Media Type %s is successful",
5161-
p.m_alias.c_str(), pCfg.media_type.value.c_str());
5162-
}
5163-
else
5164-
{
5165-
SWSS_LOG_ERROR("Failed to set port %s Media Type %s",
5166-
p.m_alias.c_str(), pCfg.media_type.value.c_str());
5167-
it++;
5168-
continue;
5169-
}
5170-
}
5156+
}
5157+
}
5158+
if (pCfg.media_type.is_set)
5159+
{
5160+
if (setPortMediaType(p, pCfg.media_type.value))
5161+
{
5162+
SWSS_LOG_NOTICE("Set port %s Media Type %s is successful",
5163+
p.m_alias.c_str(), pCfg.media_type.value.c_str());
5164+
}
5165+
else
5166+
{
5167+
SWSS_LOG_ERROR("Failed to set port %s Media Type %s",
5168+
p.m_alias.c_str(), pCfg.media_type.value.c_str());
5169+
it++;
5170+
continue;
51715171
}
51725172
}
51735173

tests/mock_tests/portsorch_ut.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,8 @@ namespace portsorch_test
12081208
{ "media_type", "backplane" }
12091209
}
12101210
}};
1211+
std::deque<KeyOpFieldsValuesTuple> kfvList1 = {{"Ethernet0", SET_COMMAND, {{ "media_type", "" }}}};
1212+
std::deque<KeyOpFieldsValuesTuple> kfvList2 = {"Ethernet0", SET_COMMAND, {{ "media_type", "none" }}};
12111213

12121214
// Refill consumer
12131215
auto consumer = dynamic_cast<Consumer*>(gPortsOrch->getExecutor(APP_PORT_TABLE_NAME));
@@ -1295,6 +1297,19 @@ namespace portsorch_test
12951297
// Verify unreliablelos
12961298
ASSERT_EQ(p.m_unreliable_los, false);
12971299

1300+
//empty media_type should not be processed
1301+
consumer->addToSync(kfvList1);
1302+
static_cast<Orch*>(gPortsOrch)->doTask();
1303+
Port p1;
1304+
ASSERT_TRUE(gPortsOrch->getPort("Ethernet0", p1));
1305+
ASSERT_EQ(p1.m_media_type, media_type); // it should be still backplane
1306+
1307+
consumer->addToSync(kfvList2);
1308+
static_cast<Orch*>(gPortsOrch)->doTask();
1309+
Port p2;
1310+
ASSERT_TRUE(gPortsOrch->getPort("Ethernet0", p2));
1311+
ASSERT_EQ(p2.m_media_type, media_type); // it should be still backplane
1312+
12981313
// Dump pending tasks
12991314
std::vector<std::string> taskList;
13001315
gPortsOrch->dumpPendingTasks(taskList);

tests/test_port.py

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -538,15 +538,45 @@ def test_PortAdminRestore(self, dvs, testlog):
538538

539539
def test_media_type(self, dvs, testlog):
540540

541-
media_name = 'media_type'
542-
media_val = "backplane"
543-
fvs = swsscommon.FieldValuePairs([(media_name, media_val)])
544541
db = swsscommon.DBConnector(0, dvs.redis_sock, 0)
545542
adb = swsscommon.DBConnector(1, dvs.redis_sock, 0)
546543

544+
tbl = swsscommon.Table(db, "PORT_TABLE")
547545
ptbl = swsscommon.ProducerStateTable(db, "PORT_TABLE")
548546
atbl = swsscommon.Table(adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
549547

548+
media_name = 'media_type'
549+
media_val = ""
550+
551+
fvs = swsscommon.FieldValuePairs([(media_name, media_val)])
552+
ptbl.set("Ethernet0", fvs)
553+
554+
time.sleep(1)
555+
556+
# get media_type
557+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
558+
assert status == True
559+
#empty media_type should be rejected
560+
for fv in fvs:
561+
assert fv[0] != "SAI_PORT_ATTR_MEDIA_TYPE"
562+
563+
media_name = 'media_type'
564+
media_val = "none"
565+
fvs = swsscommon.FieldValuePairs([(media_name, media_val)])
566+
ptbl.set("Ethernet0", fvs)
567+
568+
time.sleep(1)
569+
570+
# get media_type
571+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
572+
assert status == True
573+
#"none" media_type should be rejected
574+
for fv in fvs:
575+
assert fv[0] != "SAI_PORT_ATTR_MEDIA_TYPE"
576+
577+
media_name = 'media_type'
578+
media_val = "backplane"
579+
fvs = swsscommon.FieldValuePairs([(media_name, media_val)])
550580
ptbl.set("Ethernet0", fvs)
551581

552582
time.sleep(1)
@@ -555,9 +585,13 @@ def test_media_type(self, dvs, testlog):
555585
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
556586
assert status == True
557587

588+
found = False
589+
#check the media_type is added in ASIC_DB
558590
for fv in fvs:
559591
if fv[0] == "SAI_PORT_ATTR_MEDIA_TYPE":
560-
assert fv[1] == SAI_PORT_MEDIA_TYPE_BACKPLANE
592+
assert fv[1] == "SAI_PORT_MEDIA_TYPE_BACKPLANE"
593+
found = True
594+
assert found == True
561595

562596
# Add Dummy always-pass test at end as workaroud
563597
# for issue when Flaky fail on final test it invokes module tear-down before retrying

0 commit comments

Comments
 (0)