From afb5308770de776181da5b44f9dc30922836bc38 Mon Sep 17 00:00:00 2001 From: Mariano Lopez Date: Thu, 1 Oct 2015 10:40:46 +0000 Subject: report-error.bbclass: Support Unicode reports Currently error-report doesn't manage Unicode because the files are opened with the default codec. This patch changes the codec of the files to UTF-8, this way the reports will include Unicode characters. This is useful for the qemu output when doing the testimage task. [YOCTO #8225] Signed-off-by: Mariano Lopez Signed-off-by: Richard Purdie --- meta/classes/report-error.bbclass | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/meta/classes/report-error.bbclass b/meta/classes/report-error.bbclass index 040c29ea24..82b5bcd690 100644 --- a/meta/classes/report-error.bbclass +++ b/meta/classes/report-error.bbclass @@ -9,22 +9,25 @@ ERR_REPORT_DIR ?= "${LOG_DIR}/error-report" def errorreport_getdata(e): + import codecs logpath = e.data.getVar('ERR_REPORT_DIR', True) datafile = os.path.join(logpath, "error-report.txt") - with open(datafile) as f: + with codecs.open(datafile, 'r', 'utf-8') as f: data = f.read() return data def errorreport_savedata(e, newdata, file): import json + import codecs logpath = e.data.getVar('ERR_REPORT_DIR', True) datafile = os.path.join(logpath, file) - with open(datafile, "w") as f: + with codecs.open(datafile, 'w', 'utf-8') as f: json.dump(newdata, f, indent=4, sort_keys=True) return datafile python errorreport_handler () { import json + import codecs logpath = e.data.getVar('ERR_REPORT_DIR', True) datafile = os.path.join(logpath, "error-report.txt") @@ -53,8 +56,8 @@ python errorreport_handler () { taskdata['task'] = task if log: try: - logFile = open(log, 'r') - logdata = logFile.read().decode('utf-8') + logFile = codecs.open(log, 'r', 'utf-8') + logdata = logFile.read() logFile.close() except: logdata = "Unable to read log file" -- cgit 1.2.3-korg