1212sys .path .append ("scripts" )
1313import coredump_gen_handler as cdump_mod
1414
15+ AUTO_TS_STDOUT = """
16+ Techsupport is running with silent option. This command might take a long time.
17+ The SAI dump is generated to /tmp/saisdkdump/sai_sdk_dump_11_22_2021_11_07_PM
18+ /tmp/saisdkdump
19+ """
1520
1621def set_auto_ts_cfg (redis_mock , state = "disabled" ,
1722 rate_limit_interval = "0" ,
@@ -74,12 +79,13 @@ def test_invoc_ts_state_db_update(self):
7479 populate_state_db (redis_mock )
7580 with Patcher () as patcher :
7681 def mock_cmd (cmd , env ):
82+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
7783 cmd_str = " " .join (cmd )
7884 if "show techsupport" in cmd_str :
79- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
85+ patcher .fs .create_file (ts_dump )
8086 else :
8187 return 1 , "" , "Command Not Found"
82- return 0 , "" , ""
88+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
8389 cdump_mod .subprocess_exec = mock_cmd
8490 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
8591 patcher .fs .create_file ("/var/dump/sonic_dump_random2.tar.gz" )
@@ -105,12 +111,13 @@ def test_global_rate_limit_interval(self):
105111 populate_state_db (redis_mock )
106112 with Patcher () as patcher :
107113 def mock_cmd (cmd , env ):
114+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
108115 cmd_str = " " .join (cmd )
109116 if "show techsupport" in cmd_str :
110- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
117+ patcher .fs .create_file (ts_dump )
111118 else :
112119 return 1 , "" , "Command Not Found"
113- return 0 , "" , ""
120+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
114121 cdump_mod .subprocess_exec = mock_cmd
115122 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
116123 patcher .fs .create_file ("/var/dump/sonic_dump_random2.tar.gz" )
@@ -138,12 +145,13 @@ def test_per_container_rate_limit_interval(self):
138145 "orchagent;{};swss" .format (int (time .time ()))})
139146 with Patcher () as patcher :
140147 def mock_cmd (cmd , env ):
148+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
141149 cmd_str = " " .join (cmd )
142150 if "show techsupport" in cmd_str :
143- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
151+ patcher .fs .create_file (ts_dump )
144152 else :
145153 return 1 , "" , "Command Not Found"
146- return 0 , "" , ""
154+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
147155 cdump_mod .subprocess_exec = mock_cmd
148156 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
149157 patcher .fs .create_file ("/var/core/orchagent.12345.123.core.gz" )
@@ -167,12 +175,13 @@ def test_invoc_ts_after_rate_limit_interval(self):
167175 "orchagent;{};swss" .format (int (time .time ()))})
168176 with Patcher () as patcher :
169177 def mock_cmd (cmd , env ):
178+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
170179 cmd_str = " " .join (cmd )
171180 if "show techsupport" in cmd_str :
172- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
181+ patcher .fs .create_file (ts_dump )
173182 else :
174183 return 1 , "" , "Command Not Found"
175- return 0 , "" , ""
184+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
176185 cdump_mod .subprocess_exec = mock_cmd
177186 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
178187 patcher .fs .create_file ("/var/dump/sonic_dump_random2.tar.gz" )
@@ -197,12 +206,13 @@ def test_core_dump_with_invalid_container_name(self):
197206 populate_state_db (redis_mock , {})
198207 with Patcher () as patcher :
199208 def mock_cmd (cmd , env ):
209+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
200210 cmd_str = " " .join (cmd )
201211 if "show techsupport" in cmd_str :
202- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
212+ patcher .fs .create_file (ts_dump )
203213 else :
204214 return 1 , "" , "Command Not Found"
205- return 0 , "" , ""
215+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
206216 cdump_mod .subprocess_exec = mock_cmd
207217 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
208218 patcher .fs .create_file ("/var/core/snmpd.12345.123.core.gz" )
@@ -225,12 +235,13 @@ def test_feature_table_not_set(self):
225235 populate_state_db (redis_mock , {})
226236 with Patcher () as patcher :
227237 def mock_cmd (cmd , env ):
238+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
228239 cmd_str = " " .join (cmd )
229240 if "show techsupport" in cmd_str :
230- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
241+ patcher .fs .create_file (ts_dump )
231242 else :
232243 return 1 , "" , "Command Not Found"
233- return 0 , "" , ""
244+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
234245 cdump_mod .subprocess_exec = mock_cmd
235246 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
236247 patcher .fs .create_file ("/var/core/python3.12345.123.core.gz" )
@@ -251,10 +262,11 @@ def test_since_argument(self):
251262 populate_state_db (redis_mock )
252263 with Patcher () as patcher :
253264 def mock_cmd (cmd , env ):
265+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
254266 cmd_str = " " .join (cmd )
255- if "show techsupport --since '4 days ago'" in cmd_str :
256- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
257- return 0 , "" , ""
267+ if "--since '4 days ago'" in cmd_str :
268+ patcher .fs .create_file (ts_dump )
269+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
258270 elif "date --date='4 days ago'" in cmd_str :
259271 return 0 , "" , ""
260272 else :
@@ -284,12 +296,13 @@ def test_masic_core_dump(self):
284296 populate_state_db (redis_mock )
285297 with Patcher () as patcher :
286298 def mock_cmd (cmd , env ):
299+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
287300 cmd_str = " " .join (cmd )
288301 if "show techsupport" in cmd_str :
289- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
302+ patcher .fs .create_file (ts_dump )
290303 else :
291304 return 1 , "" , "Command Not Found"
292- return 0 , "" , ""
305+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
293306 cdump_mod .subprocess_exec = mock_cmd
294307 patcher .fs .create_file ("/var/dump/sonic_dump_random1.tar.gz" )
295308 patcher .fs .create_file ("/var/dump/sonic_dump_random2.tar.gz" )
@@ -315,10 +328,12 @@ def test_invalid_since_argument(self):
315328 populate_state_db (redis_mock )
316329 with Patcher () as patcher :
317330 def mock_cmd (cmd , env ):
331+ ts_dump = "/var/dump/sonic_dump_random3.tar.gz"
318332 cmd_str = " " .join (cmd )
319- if "show techsupport --since '2 days ago'" in cmd_str :
320- patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
321- return 0 , "" , ""
333+ if "--since '2 days ago'" in cmd_str :
334+ patcher .fs .create_file (ts_dump )
335+ print (AUTO_TS_STDOUT + ts_dump )
336+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
322337 elif "date --date='whatever'" in cmd_str :
323338 return 1 , "" , "Invalid Date Format"
324339 else :
@@ -370,7 +385,7 @@ def mock_cmd(cmd, env):
370385 cmd_str = " " .join (cmd )
371386 if "show techsupport" in cmd_str :
372387 patcher .fs .create_file ("/var/dump/sonic_dump_random3.tar.gz" )
373- return 0 , "" , ""
388+ return 0 , AUTO_TS_STDOUT + ts_dump , ""
374389 patcher .fs .set_disk_usage (2000 , path = "/var/core/" )
375390 patcher .fs .create_file ("/var/core/orchagent.12345.123.core.gz" , st_size = 25 )
376391 patcher .fs .create_file ("/var/core/lldpmgrd.12345.22.core.gz" , st_size = 25 )
0 commit comments