Skip to content

Commit 5ab3f6b

Browse files
Sudharsan D.Gprsunny
Sudharsan D.G
authored andcommitted
Updating pytest for sflow (#1095)
1 parent d4ccdc3 commit 5ab3f6b

File tree

1 file changed

+199
-26
lines changed

1 file changed

+199
-26
lines changed

tests/test_sflow.py

+199-26
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,107 @@
33
import time
44
import os
55

6+
67
class TestSflow(object):
8+
speed_rate_table = {
9+
"400000":"40000",
10+
"100000":"10000",
11+
"50000":"5000",
12+
"40000":"4000",
13+
"25000":"2500",
14+
"10000":"1000",
15+
"1000":"100"
16+
}
717
def setup_sflow(self, dvs):
8-
self.pdb = swsscommon.DBConnector(0, dvs.redis_sock, 0)
918
self.adb = swsscommon.DBConnector(1, dvs.redis_sock, 0)
10-
ptbl = swsscommon.ProducerStateTable(self.pdb, "SFLOW_TABLE")
19+
self.cdb = swsscommon.DBConnector(4, dvs.redis_sock, 0)
20+
ctbl = swsscommon.Table(self.cdb, "SFLOW")
21+
1122
fvs = swsscommon.FieldValuePairs([("admin_state", "up")])
12-
ptbl.set("global", fvs)
23+
ctbl.set("global", fvs)
1324

1425
time.sleep(1)
1526

16-
def test_SflowDisble(self, dvs, testlog):
27+
def test_defaultGlobal(self, dvs, testlog):
1728
self.setup_sflow(dvs)
18-
ptbl = swsscommon.ProducerStateTable(self.pdb, "SFLOW_SESSION_TABLE")
19-
gtbl = swsscommon.ProducerStateTable(self.pdb, "SFLOW_TABLE")
29+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
30+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
31+
32+
assert status == True
33+
34+
sample_session = ""
35+
speed = ""
36+
for fv in fvs:
37+
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
38+
sample_session = fv[1]
39+
elif fv[0] == "SAI_PORT_ATTR_SPEED":
40+
speed = fv[1]
41+
42+
assert sample_session != ""
43+
assert speed != ""
44+
45+
rate = ""
46+
47+
if speed in self.speed_rate_table:
48+
rate = self.speed_rate_table[speed]
49+
50+
assert rate != ""
51+
52+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_SAMPLEPACKET")
53+
(status, fvs) = atbl.get(sample_session)
54+
55+
assert status == True
56+
57+
for fv in fvs:
58+
if fv[0] == "SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE":
59+
assert fv[1] == rate
60+
61+
ctbl = swsscommon.Table(self.cdb, "SFLOW")
2062
fvs = swsscommon.FieldValuePairs([("admin_state", "down")])
21-
gtbl.set("global", fvs)
63+
ctbl.set("global", fvs)
2264

2365
time.sleep(1)
24-
fvs = swsscommon.FieldValuePairs([("admin_state", "up"),("sample_rate","1000")])
25-
ptbl.set("Ethernet0", fvs)
2666

27-
time.sleep(1)
67+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
68+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
2869

70+
assert status == True
71+
72+
sample_session = ""
73+
speed = ""
74+
for fv in fvs:
75+
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
76+
sample_session = fv[1]
77+
78+
assert sample_session == "oid:0x0"
79+
80+
def test_globalAll(self, dvs, testlog):
81+
self.setup_sflow(dvs)
82+
83+
ctbl = swsscommon.Table(self.cdb, "SFLOW_SESSION")
84+
fvs = swsscommon.FieldValuePairs([("admin_state", "down")])
85+
ctbl.set("all", fvs)
86+
87+
time.sleep(1)
2988

3089
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
3190
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
3291

3392
assert status == True
3493

3594
sample_session = ""
95+
speed = ""
3696
for fv in fvs:
3797
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
3898
sample_session = fv[1]
3999

40-
assert sample_session == ""
100+
assert sample_session == "oid:0x0"
41101

42102
fvs = swsscommon.FieldValuePairs([("admin_state", "up")])
43-
gtbl.set("global", fvs)
103+
ctbl.set("all", fvs)
44104

45105
time.sleep(1)
46106

47-
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
48107
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
49108

50109
assert status == True
@@ -54,7 +113,45 @@ def test_SflowDisble(self, dvs, testlog):
54113
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
55114
sample_session = fv[1]
56115

116+
assert sample_session != ""
57117
assert sample_session != "oid:0x0"
118+
119+
ctbl._del("all")
120+
121+
time.sleep(1)
122+
123+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
124+
125+
assert status == True
126+
127+
sample_session = ""
128+
for fv in fvs:
129+
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
130+
sample_session = fv[1]
131+
132+
assert sample_session != ""
133+
assert sample_session != "oid:0x0"
134+
135+
136+
def test_InterfaceSet(self, dvs, testlog):
137+
self.setup_sflow(dvs)
138+
ctbl = swsscommon.Table(self.cdb, "SFLOW_SESSION")
139+
gtbl = swsscommon.Table(self.cdb, "SFLOW")
140+
fvs = swsscommon.FieldValuePairs([("admin_state", "up"),("sample_rate","1000")])
141+
ctbl.set("Ethernet0", fvs)
142+
143+
time.sleep(1)
144+
145+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
146+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
147+
148+
assert status == True
149+
150+
sample_session = ""
151+
for fv in fvs:
152+
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
153+
sample_session = fv[1]
154+
58155
assert sample_session != ""
59156

60157
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_SAMPLEPACKET")
@@ -66,14 +163,25 @@ def test_SflowDisble(self, dvs, testlog):
66163
if fv[0] == "SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE":
67164
assert fv[1] == "1000"
68165

69-
ptbl._del("Ethernet0")
166+
fvs = swsscommon.FieldValuePairs([("admin_state", "down")])
167+
ctbl.set("all", fvs)
70168

71-
def test_InterfaceSet(self, dvs, testlog):
72-
self.setup_sflow(dvs)
73-
ptbl = swsscommon.ProducerStateTable(self.pdb, "SFLOW_SESSION_TABLE")
74-
gtbl = swsscommon.ProducerStateTable(self.pdb, "SFLOW_TABLE")
75-
fvs = swsscommon.FieldValuePairs([("admin_state", "up"),("sample_rate","1000")])
76-
ptbl.set("Ethernet0", fvs)
169+
time.sleep(1)
170+
171+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
172+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet0"])
173+
174+
assert status == True
175+
176+
sample_session = ""
177+
for fv in fvs:
178+
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
179+
sample_session = fv[1]
180+
assert sample_session != ""
181+
assert sample_session != "oid:0x0"
182+
183+
fvs = swsscommon.FieldValuePairs([("admin_state", "down")])
184+
gtbl.set("global", fvs)
77185

78186
time.sleep(1)
79187

@@ -87,7 +195,40 @@ def test_InterfaceSet(self, dvs, testlog):
87195
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
88196
sample_session = fv[1]
89197

198+
assert sample_session == "oid:0x0"
199+
ctbl._del("all")
200+
ctbl._del("Ethernet0")
201+
202+
def test_defaultRate(self, dvs, testlog):
203+
self.setup_sflow(dvs)
204+
ctbl = swsscommon.Table(self.cdb, "SFLOW_SESSION")
205+
fvs = swsscommon.FieldValuePairs([("admin_state", "up")])
206+
ctbl.set("Ethernet4", fvs)
207+
208+
time.sleep(1)
209+
210+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_PORT")
211+
(status, fvs) = atbl.get(dvs.asicdb.portnamemap["Ethernet4"])
212+
213+
assert status == True
214+
215+
sample_session = ""
216+
speed = ""
217+
for fv in fvs:
218+
if fv[0] == "SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE":
219+
sample_session = fv[1]
220+
elif fv[0] == "SAI_PORT_ATTR_SPEED":
221+
speed = fv[1]
222+
90223
assert sample_session != ""
224+
assert speed != ""
225+
226+
rate = ""
227+
228+
if speed in self.speed_rate_table:
229+
rate = self.speed_rate_table[speed]
230+
231+
assert rate != ""
91232

92233
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_SAMPLEPACKET")
93234
(status, fvs) = atbl.get(sample_session)
@@ -96,19 +237,19 @@ def test_InterfaceSet(self, dvs, testlog):
96237

97238
for fv in fvs:
98239
if fv[0] == "SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE":
99-
assert fv[1] == "1000"
240+
assert fv[1] == rate
100241

101-
ptbl._del("Ethernet0")
242+
ctbl._del("Ethernet4")
102243

103244
def test_ConfigDel(self, dvs, testlog):
104245
self.setup_sflow(dvs)
105-
ptbl = swsscommon.ProducerStateTable(self.pdb, "SFLOW_SESSION_TABLE")
246+
ctbl = swsscommon.Table(self.cdb, "SFLOW_SESSION_TABLE")
106247
fvs = swsscommon.FieldValuePairs([("admin_state", "up"),("sample_rate","1000")])
107-
ptbl.set("Ethernet0", fvs)
248+
ctbl.set("Ethernet0", fvs)
108249

109250
time.sleep(1)
110251

111-
ptbl._del("Ethernet0")
252+
ctbl._del("Ethernet0")
112253

113254
time.sleep(1)
114255

@@ -127,4 +268,36 @@ def test_ConfigDel(self, dvs, testlog):
127268
speed = fv[1]
128269

129270
assert speed != ""
130-
assert sample_session == "oid:0x0"
271+
assert sample_session != ""
272+
assert sample_session != "oid:0x0"
273+
274+
rate = ""
275+
276+
if speed in self.speed_rate_table:
277+
rate = self.speed_rate_table[speed]
278+
279+
assert rate != ""
280+
281+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_SAMPLEPACKET")
282+
(status, fvs) = atbl.get(sample_session)
283+
284+
assert status == True
285+
286+
rf = False
287+
for fv in fvs:
288+
if fv[0] == "SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE":
289+
assert fv[1] == rate
290+
rf = True
291+
292+
assert rf == True
293+
294+
def test_Teardown(self, dvs, testlog):
295+
self.setup_sflow(dvs)
296+
ctbl = swsscommon.Table(self.cdb, "SFLOW")
297+
ctbl._del("global")
298+
299+
time.sleep(1)
300+
301+
302+
atbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_SAMPLEPACKET")
303+
assert len(atbl.getKeys()) == 0

0 commit comments

Comments
 (0)