mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
test/py: Manual python3 fixes
- Modern pytest is more visible in telling us about parameters that we had not described, so describe a few more. - ConfigParser.readfp(...) is now configparser.read_file(...) - As part of the "strings vs bytes" conversions in Python 3, we use the default encoding/decoding of utf-8 but in some places tell Python to replace problematic conversions rather than throw a fatal error. - Fix a typo noticed while doing the above ("tot he" -> "to the"). - As suggested by Stephen, re-alphabetize the import list - Per Heinrich, replace how we write contents in test_fit.py Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stephen Warren <swarren@nvidia.com> Tested-by: Simon Glass <sjg@chromium.org> [on sandbox] Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
fe1193e254
commit
fd31fc172c
5 changed files with 19 additions and 12 deletions
|
@ -13,17 +13,16 @@
|
|||
# - Implementing custom pytest markers.
|
||||
|
||||
import atexit
|
||||
import configparser
|
||||
import errno
|
||||
import io
|
||||
import os
|
||||
import os.path
|
||||
import pytest
|
||||
from _pytest.runner import runtestprotocol
|
||||
import re
|
||||
import io
|
||||
from _pytest.runner import runtestprotocol
|
||||
import sys
|
||||
|
||||
import configparser
|
||||
|
||||
# Globals: The HTML log file, and the connection to the U-Boot console.
|
||||
log = None
|
||||
console = None
|
||||
|
@ -168,7 +167,7 @@ def pytest_configure(config):
|
|||
ini_str = '[root]\n' + f.read()
|
||||
ini_sio = io.StringIO(ini_str)
|
||||
parser = configparser.RawConfigParser()
|
||||
parser.readfp(ini_sio)
|
||||
parser.read_file(ini_sio)
|
||||
ubconfig.buildconfig.update(parser.items('root'))
|
||||
|
||||
ubconfig.test_py_dir = test_py_dir
|
||||
|
|
|
@ -51,7 +51,7 @@ class LogfileStream(object):
|
|||
"""Write data to the log stream.
|
||||
|
||||
Args:
|
||||
data: The data to write tot he file.
|
||||
data: The data to write to the file.
|
||||
implicit: Boolean indicating whether data actually appeared in the
|
||||
stream, or was implicitly generated. A valid use-case is to
|
||||
repeat a shell prompt at the start of each separate log
|
||||
|
@ -64,7 +64,8 @@ class LogfileStream(object):
|
|||
|
||||
self.logfile.write(self, data, implicit)
|
||||
if self.chained_file:
|
||||
self.chained_file.write(data)
|
||||
# Chained file is console, convert things a little
|
||||
self.chained_file.write((data.encode('ascii', 'replace')).decode())
|
||||
|
||||
def flush(self):
|
||||
"""Flush the log stream, to ensure correct log interleaving.
|
||||
|
@ -136,6 +137,10 @@ class RunAndLog(object):
|
|||
p = subprocess.Popen(cmd, cwd=cwd,
|
||||
stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
(stdout, stderr) = p.communicate()
|
||||
if stdout is not None:
|
||||
stdout = stdout.decode('utf-8')
|
||||
if stderr is not None:
|
||||
stderr = stderr.decode('utf-8')
|
||||
output = ''
|
||||
if stdout:
|
||||
if stderr:
|
||||
|
@ -215,7 +220,7 @@ class Logfile(object):
|
|||
Nothing.
|
||||
"""
|
||||
|
||||
self.f = open(fn, 'wt')
|
||||
self.f = open(fn, 'wt', encoding='utf-8')
|
||||
self.last_stream = None
|
||||
self.blocks = []
|
||||
self.cur_evt = 1
|
||||
|
|
|
@ -8,3 +8,6 @@
|
|||
markers =
|
||||
boardspec: U-Boot: Describes the set of boards a test can/can't run on.
|
||||
buildconfigspec: U-Boot: Describes Kconfig/config-header constraints.
|
||||
notbuildconfigspec: U-Boot: Describes required disabled Kconfig options.
|
||||
requiredtool: U-Boot: Required host tools for a test.
|
||||
slow: U-Boot: Specific test will run slowly.
|
||||
|
|
|
@ -153,7 +153,7 @@ def test_fit(u_boot_console):
|
|||
src = make_fname('u-boot.dts')
|
||||
dtb = make_fname('u-boot.dtb')
|
||||
with open(src, 'w') as fd:
|
||||
print(base_fdt, file=fd)
|
||||
fd.write(base_fdt)
|
||||
util.run_and_log(cons, ['dtc', src, '-O', 'dtb', '-o', dtb])
|
||||
return dtb
|
||||
|
||||
|
@ -186,7 +186,7 @@ def test_fit(u_boot_console):
|
|||
its = make_its(params)
|
||||
util.run_and_log(cons, [mkimage, '-f', its, fit])
|
||||
with open(make_fname('u-boot.dts'), 'w') as fd:
|
||||
print(base_fdt, file=fd)
|
||||
fd.write(base_fdt)
|
||||
return fit
|
||||
|
||||
def make_kernel(filename, text):
|
||||
|
|
|
@ -113,7 +113,7 @@ class Spawn(object):
|
|||
Nothing.
|
||||
"""
|
||||
|
||||
os.write(self.fd, data)
|
||||
os.write(self.fd, data.encode(errors='replace'))
|
||||
|
||||
def expect(self, patterns):
|
||||
"""Wait for the sub-process to emit specific data.
|
||||
|
@ -171,7 +171,7 @@ class Spawn(object):
|
|||
events = self.poll.poll(poll_maxwait)
|
||||
if not events:
|
||||
raise Timeout()
|
||||
c = os.read(self.fd, 1024)
|
||||
c = os.read(self.fd, 1024).decode(errors='replace')
|
||||
if not c:
|
||||
raise EOFError()
|
||||
if self.logfile_read:
|
||||
|
|
Loading…
Reference in a new issue