
On 10/18/19 10:53 PM, Tom Rini wrote:
- 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 need to encode / decode our pipes in a few areas, use utf-8 for this.
- Fix a typo noticed while doing the above ("tot he" -> "to the").
Signed-off-by: Tom Rini trini@konsulko.com
This patch breaks
./test/py/test.py --bd=qemu-arm64 --build-dir=.
INTERNALERROR> File "test/py/conftest.py", line 201, in pytest_configure INTERNALERROR> console = u_boot_console_exec_attach.ConsoleExecAttach(log, ubconfig) INTERNALERROR> File "test/py/u_boot_console_exec_attach.py", line 41, in __init__ INTERNALERROR> runner.run(cmd) INTERNALERROR> File "test/py/multiplexed_log.py", line 174, in run INTERNALERROR> raise exception INTERNALERROR> TypeError: __init__() got an unexpected keyword argument 'encoding'
Best regards
Heinrich
test/py/conftest.py | 2 +- test/py/multiplexed_log.py | 4 ++-- test/py/pytest.ini | 3 +++ test/py/u_boot_spawn.py | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/test/py/conftest.py b/test/py/conftest.py index 5c19af1d5034..02b61655dcee 100644 --- a/test/py/conftest.py +++ b/test/py/conftest.py @@ -168,7 +168,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
diff --git a/test/py/multiplexed_log.py b/test/py/multiplexed_log.py index de0aacc659b8..35d95fbe0fe8 100644 --- a/test/py/multiplexed_log.py +++ b/test/py/multiplexed_log.py @@ -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
@@ -133,7 +133,7 @@ class RunAndLog(object): self.logfile.write(self, msg)
try:
p = subprocess.Popen(cmd, cwd=cwd,
p = subprocess.Popen(cmd, cwd=cwd, encoding="utf-8", stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) (stdout, stderr) = p.communicate() output = ''
diff --git a/test/py/pytest.ini b/test/py/pytest.ini index 7e400682bf25..e93d010f1fa2 100644 --- a/test/py/pytest.ini +++ b/test/py/pytest.ini @@ -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.
diff --git a/test/py/u_boot_spawn.py b/test/py/u_boot_spawn.py index b011a3e3da25..63119229f420 100644 --- a/test/py/u_boot_spawn.py +++ b/test/py/u_boot_spawn.py @@ -113,7 +113,7 @@ class Spawn(object): Nothing. """
os.write(self.fd, data)
os.write(self.fd, data.encode("utf-8")) 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("utf-8") if not c: raise EOFError() if self.logfile_read: