Merge branch 'bugfix/ttfw_example_test_fails_port_remains_open' into 'master'

ci: Fix CI issue if one example test fails, and if serial port returns some noise

Closes IDFCI-236

See merge request espressif/esp-idf!11273
This commit is contained in:
Angus Gratton 2020-11-26 08:04:00 +08:00
commit 190aed41ee
2 changed files with 8 additions and 4 deletions

View File

@ -40,6 +40,7 @@ If they using different port then need to implement their DUTPort class as well.
from __future__ import print_function from __future__ import print_function
import time import time
import re import re
import sys
import threading import threading
import copy import copy
import functools import functools
@ -78,11 +79,12 @@ def _expect_lock(func):
def _decode_data(data): def _decode_data(data):
""" for python3, if the data is bytes, then decode it to string """ """ for python3, if the data is bytes, then decode it to string """
if isinstance(data, bytes): if isinstance(data, bytes):
# convert bytes to string # convert bytes to string. This is a bit of a hack, we know that we want to log this
# later so encode to the stdout encoding with backslash escapes for anything non-encodable
try: try:
data = data.decode("utf-8", "ignore") return data.decode(sys.stdout.encoding, "backslashreplace")
except UnicodeDecodeError: except UnicodeDecodeError: # Python <3.5 doesn't support backslashreplace
data = data.decode("iso8859-1", ) return data.decode(sys.stdout.encoding, "replace")
return data return data

View File

@ -18,6 +18,7 @@ import threading
import functools import functools
import netifaces import netifaces
import traceback
from . import EnvConfig from . import EnvConfig
@ -190,6 +191,7 @@ class Env(object):
dut.print_debug_info() dut.print_debug_info()
dut.close() dut.close()
except Exception as e: except Exception as e:
traceback.print_exc()
dut_close_errors.append(e) dut_close_errors.append(e)
self.allocated_duts = dict() self.allocated_duts = dict()
return dut_close_errors return dut_close_errors