core/target/ssh.py: use reader to handle partial data
cover core/target/ssh.py: use reader to handle partial data
The following changes since commit dcb6cd19fb8c639cb844d116fb83827267f37421:
buildhistory.bbclass: add ptest (2017-08-23 14:12:39 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/ptest
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/ptest
Robert Yang (1):
core/target/ssh.py: use reader to handle partial data
meta/lib/oeqa/core/target/ssh.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Signature · 1 line
2.10.2
PATCH 1/1 core/target/ssh.py: use reader to handle partial data
This can avoid UnicodeDecodeError error.
Signed-off-by Robert Yang <[email protected]>
--- meta/lib/oeqa/core/target/ssh.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
meta/lib/oeqa/core/target/ssh.py +3 -2
@@ -6,6 +6,7 @@ import time import select import logging import subprocess +import codecs from . import OETarget
@@ -206,12 +207,12 @@ def SSHCall(command, logger, timeout=None, **opts): logger.debug('time: %s, endtime: %s' % (time.time(), endtime)) try: if select.select([process.stdout], [], [], 5)[0] != []: - data = os.read(process.stdout.fileno(), 1024) + reader = codecs.getreader('utf-8')(process.stdout) + data = reader.read(1024, 1024) if not data: process.stdout.close() eof = True else: - data = data.decode("utf-8", errors='replace') output += data logger.debug('Partial data from SSH call: %s' % data) endtime = time.time() + timeout
Signature · 1 line
2.10.2