Skip to content

Commit 5b14474

Browse files
sobucherhankur
authored andcommitted
testing/esp: fixes to enable uart logging in CI
1 parent 42aa0e5 commit 5b14474

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

testing/esp/run_tests.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ def is_connected(self):
205205
def start(self):
206206
self.ser.open()
207207
self.do_work = True
208+
self.paused = False
208209
threading.Thread.start(self)
209210

210211
def stop(self):
@@ -214,14 +215,24 @@ def stop(self):
214215
self.ser.close()
215216
self._logger.debug('Reader thread to finished')
216217

218+
def pause(self):
219+
self.paused = True
220+
221+
def resume(self):
222+
self.paused = False
223+
217224
def run(self):
218225
self._logger.debug('Start reading from "{}"'.format(self.ser.name))
219226
line = b''
220227
while self.do_work:
221-
line += self.ser.read(1)
222-
if line.endswith(b'\n'):
223-
self._logger.info(line.rstrip(b'\r\n'))
224-
line = b''
228+
if not self.paused:
229+
try:
230+
line += self.ser.read(1)
231+
except serial.SerialException:
232+
line += b'<exc>'
233+
if line.endswith(b'\n'):
234+
self._logger.info(line.rstrip(b'\r\n'))
235+
line = b''
225236

226237

227238
def dbg_start(toolchain, oocd, oocd_tcl, oocd_cfg_files, oocd_cfg_cmds, debug_oocd,
@@ -358,6 +369,7 @@ def main():
358369
if board_uart_reader:
359370
setup_logger(board_uart_reader.get_logger(), ch, fh, log_lev)
360371
board_uart_reader.start()
372+
time.sleep(1)
361373
board_tcl = BOARD_TCL_CONFIG[args.board_type]
362374
board_tcl['commands'] = args.oocd_cmds.split(",")
363375

testing/esp/test_special.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,18 @@ def test_debugging_works_after_hw_reset(self):
5656
5) Wait some time.
5757
6) Run simple debug session.
5858
"""
59-
# avoid simultaneous access to UART with SerialReader
60-
self.assertIsNone(self.uart_reader, "Can not run this test with UART logging enabled!")
6159
self.select_sub_test("blink")
6260
self.resume_exec()
6361
time.sleep(2.0)
6462
assert self.port_name is not None
63+
# avoid simultaneous access to UART with SerialReader
64+
if self.uart_reader:
65+
self.uart_reader.pause()
6566
cmd = ['esptool.py', '-p', self.port_name, '--no-stub', 'chip_id']
6667
proc = subprocess.run(cmd)
6768
proc.check_returncode()
69+
if self.uart_reader:
70+
self.uart_reader.resume()
6871
time.sleep(2.0)
6972
self.stop_exec()
7073
self.prepare_app_for_debugging(self.test_app_cfg.app_off)
@@ -262,18 +265,21 @@ def test_cores_states_after_esptool_connection(self):
262265
5) Wait some time.
263266
6) Check that all targets are in state 'running'.
264267
"""
265-
# avoid simultaneous access to UART with SerialReader
266-
self.assertIsNone(self.uart_reader, "Can not run this test with UART logging enabled!")
267268
self.select_sub_test("blink")
268269
self.resume_exec()
269270
time.sleep(2.0)
270271
for target in self.oocd.targets():
271272
state = self.oocd.target_state(target)
272273
self.assertEqual(state, 'running')
273274
assert self.port_name is not None
275+
# avoid simultaneous access to UART with SerialReader
276+
if self.uart_reader:
277+
self.uart_reader.pause()
274278
cmd = ['esptool.py', '-p', self.port_name, '--no-stub', 'chip_id']
275279
proc = subprocess.run(cmd)
276280
proc.check_returncode()
281+
if self.uart_reader:
282+
self.uart_reader.resume()
277283
time.sleep(2.0)
278284
for target in self.oocd.targets():
279285
state = self.oocd.target_state(target)

0 commit comments

Comments
 (0)