[Buildroot] [PATCH v3 5/7] support/testing/infra/emulator.py: update encoding when calling qemu

Peter Korsgaard peter at korsgaard.com
Wed Oct 6 14:59:20 UTC 2021


>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:

 > Köry, All,
 > On 2021-09-23 17:57 +0200, Kory Maincent spake thusly:
 >> With UTF-8 got issue with wrong character returned by Qemu when using EFI
 >> BIOS. This breaks the test process with the following error. Update to
 >> ISO-8859-1 encoding to avoid it.
 >> 
 >> emulator.login()
 >> File "/home/kmaincent/Documents/projects/ariane-groupe/buildroot/support/testing/infra/emulator.py", line 89, in login
 >> index = self.qemu.expect(["buildroot login:", pexpect.TIMEOUT],
 >> File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 340, in expect
 >> return self.expect_list(compiled_pattern_list,
 >> File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 369, in expect_list
 >> return exp.expect_loop(timeout)
 >> File "/usr/lib/python3/dist-packages/pexpect/expect.py", line 111, in expect_loop
 >> incoming = spawn.read_nonblocking(spawn.maxread, timeout)
 >> File "/usr/lib/python3/dist-packages/pexpect/pty_spawn.py", line 485, in read_nonblocking
 >> return super(spawn, self).read_nonblocking(size)
 >> File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 178, in read_nonblocking
 >> s = self._decoder.decode(s, final=False)
 >> File "/usr/lib/python3.8/codecs.py", line 322, in decode
 >> (result, consumed) = self._buffer_decode(data, self.errors, final)
 >> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xda in position 0: invalid continuation byte
 >> 
 >> Signed-off-by: Kory Maincent <kory.maincent at bootlin.com>
 >> ---
 >> support/testing/infra/emulator.py | 2 +-
 >> 1 file changed, 1 insertion(+), 1 deletion(-)
 >> 
 >> diff --git a/support/testing/infra/emulator.py b/support/testing/infra/emulator.py
 >> index 0a77eb80fc..1fab9caad8 100644
 >> --- a/support/testing/infra/emulator.py
 >> +++ b/support/testing/infra/emulator.py
 >> @@ -76,7 +76,7 @@ class Emulator(object):
 >> self.logfile.write("> starting qemu with '%s'\n" % " ".join(qemu_cmd))
 >> self.qemu = pexpect.spawn(qemu_cmd[0], qemu_cmd[1:],
 >> timeout=5 * self.timeout_multiplier,
 >> -                                  encoding='utf-8',
 >> +                                  encoding='ISO-8859-1',

 > After review from Thomas, I've indeed reverted to using utf-8, but using
 > codecerrors='replace' to fix invalid utf-8 sequences.

 > I've also reworded the commit log accordingly.

 > Applied to master, thanks.

Committed to 2021.02.x, 2021.05.x and 2021.08.x, thanks.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list