Просмотр исходного кода

Merge branch 'fix/impr_idf_hint_error_handling' into 'master'

Tools: Handle IO error in idf.py output capturing

Closes IDFGH-8153

See merge request espressif/esp-idf!19926
Roland Dobai 3 лет назад
Родитель
Сommit
a565f0635b
1 измененных файлов с 7 добавлено и 3 удалено
  1. 7 3
      tools/idf_py_actions/tools.py

+ 7 - 3
tools/idf_py_actions/tools.py

@@ -240,10 +240,14 @@ class RunTool:
             print(fit_text_in_terminal(output.strip('\n\r')), end='', file=output_stream)
 
         async def read_stream() -> Optional[str]:
-            output_b = await input_stream.readline()
-            if not output_b:
+            try:
+                output_b = await input_stream.readline()
+                return output_b.decode(errors='ignore')
+            except (asyncio.LimitOverrunError, asyncio.IncompleteReadError) as e:
+                print(e, file=sys.stderr)
+                return None
+            except AttributeError:
                 return None
-            return output_b.decode(errors='ignore')
 
         async def read_interactive_stream() -> Optional[str]:
             buffer = b''