Skip to content

Commit 6eda965

Browse files
authored
[vstest]Migrating vs tests from using click commands to direct DB access (sonic-net#2179)
* [vstest]Migrating vs tests from using click commands to direct DB access Signed-off-by: Sudharsan Dhamal Gopalarathnam <[email protected]>
1 parent d80094b commit 6eda965

24 files changed

+239
-497
lines changed

tests/conftest.py

+38
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,44 @@ def getCrmCounterValue(self, key, counter):
11571157
if k[0] == counter:
11581158
return int(k[1])
11591159

1160+
def port_field_set(self, port, field, value):
1161+
cdb = swsscommon.DBConnector(4, self.redis_sock, 0)
1162+
tbl = swsscommon.Table(cdb, "PORT")
1163+
fvs = swsscommon.FieldValuePairs([(field, value)])
1164+
tbl.set(port, fvs)
1165+
time.sleep(1)
1166+
1167+
def port_admin_set(self, port, status):
1168+
self.port_field_set(port, "admin_status", status)
1169+
1170+
def interface_ip_add(self, port, ip_address):
1171+
cdb = swsscommon.DBConnector(4, self.redis_sock, 0)
1172+
tbl = swsscommon.Table(cdb, "INTERFACE")
1173+
fvs = swsscommon.FieldValuePairs([("NULL", "NULL")])
1174+
tbl.set(port, fvs)
1175+
tbl.set(port + "|" + ip_address, fvs)
1176+
time.sleep(1)
1177+
1178+
def crm_poll_set(self, value):
1179+
cdb = swsscommon.DBConnector(4, self.redis_sock, 0)
1180+
tbl = swsscommon.Table(cdb, "CRM")
1181+
fvs = swsscommon.FieldValuePairs([("polling_interval", value)])
1182+
tbl.set("Config", fvs)
1183+
time.sleep(1)
1184+
1185+
def clear_fdb(self):
1186+
adb = swsscommon.DBConnector(0, self.redis_sock, 0)
1187+
opdata = ["ALL", "ALL"]
1188+
msg = json.dumps(opdata,separators=(',',':'))
1189+
adb.publish('FLUSHFDBREQUEST', msg)
1190+
1191+
def warm_restart_swss(self, enable):
1192+
db = swsscommon.DBConnector(6, self.redis_sock, 0)
1193+
1194+
tbl = swsscommon.Table(db, "WARM_RESTART_ENABLE_TABLE")
1195+
fvs = swsscommon.FieldValuePairs([("enable",enable)])
1196+
tbl.set("swss", fvs)
1197+
11601198
# deps: acl, crm, fdb
11611199
def setReadOnlyAttr(self, obj, attr, val):
11621200
db = swsscommon.DBConnector(swsscommon.ASIC_DB, self.redis_sock, 0)

tests/p4rt/test_l3.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1328,7 +1328,7 @@ def test_PruneNextHopOnWarmBoot(self, dvs, testlog):
13281328
util.set_interface_status(dvs, if_name)
13291329

13301330
# Execute the warm reboot.
1331-
dvs.runcmd("config warm_restart enable swss")
1331+
dvs.warm_restart_swss("true")
13321332
dvs.stop_swss()
13331333
dvs.start_swss()
13341334

tests/p4rt/util.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ def get_port_oid_by_name(dvs, port_name):
8484
return port_oid
8585

8686
def initialize_interface(dvs, port_name, ip):
87-
dvs.runcmd("config interface startup {}".format(port_name))
88-
dvs.runcmd("config interface ip add {} {}".format(port_name, ip))
87+
dvs.port_admin_set(port_name, "up")
88+
dvs.interface_ip_add(port_name, ip)
8989

9090
def set_interface_status(dvs, if_name, status = "down", server = 0):
9191
dvs.servers[0].runcmd("ip link set {} dev {}".format(status, if_name)) == 0

tests/test_acl.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -553,11 +553,11 @@ def test_AclRuleRedirect(self, dvs, dvs_acl, l3_acl_table, setup_teardown_neighb
553553
class TestAclCrmUtilization:
554554
@pytest.fixture(scope="class", autouse=True)
555555
def configure_crm_polling_interval_for_test(self, dvs):
556-
dvs.runcmd("crm config polling interval 1")
556+
dvs.crm_poll_set("1")
557557

558558
yield
559559

560-
dvs.runcmd("crm config polling interval 300")
560+
dvs.crm_poll_set("300")
561561

562562
def test_ValidateAclTableBindingCrmUtilization(self, dvs, dvs_acl):
563563
counter_db = dvs.get_counters_db()

tests/test_acl_cli.py

-33
This file was deleted.

tests/test_acl_portchannel.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def check_asic_table_absent(self, dvs):
129129
# Second create ACL table
130130
def test_PortChannelAfterAcl(self, dvs):
131131
self.setup_db(dvs)
132-
dvs.runcmd("crm config polling interval 1")
132+
dvs.crm_poll_set("1")
133133
time.sleep(2)
134134

135135
used_counter = dvs.getCrmCounterValue('ACL_STATS:INGRESS:LAG', 'crm_stats_acl_group_used')
@@ -162,7 +162,7 @@ def test_PortChannelAfterAcl(self, dvs):
162162
new_new_used_counter = 0
163163
assert new_used_counter - new_new_used_counter == 1
164164
# slow down crm polling
165-
dvs.runcmd("crm config polling interval 10000")
165+
dvs.crm_poll_set("10000")
166166

167167
# Frist create ACL table
168168
# Second create port channel

0 commit comments

Comments
 (0)