|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PATCH v3 3/9] tests/acceptance: Send <carriage return> on serial lines |
Date: | Sun, 20 Oct 2019 16:11:20 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 |
Cc'ing Paolo/Samuel/Marc-André On 10/20/19 12:09 PM, David Gibson wrote:
On Thu, Oct 17, 2019 at 06:52:33PM +0200, Philippe Mathieu-Daudé wrote:Some firmwares don't parse the <Newline> control character and expect a <carriage return>. Signed-off-by: Philippe Mathieu-Daudé <address@hidden> --- tests/acceptance/boot_linux_console.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index 9ff2213874..bf9861296a 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -30,7 +30,7 @@ class BootLinuxConsole(Test): KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 'def exec_command_and_wait_for_pattern(self, command, success_message):- command += '\n' + command += '\r\n'I'm actually wondering if '\r' alone is really what we should be using here. Isn't that usually the character that actually pressing the Enter key generates (on an old school tty)? IIRC it's the thing on the other side of the console that echoes back a \r and \n in order to reposition the cursor on the next line.
Our current tests mostly target Linux/*BSD.When I started testing U-boot/VxWorks images, I noticed the tests were stuck, why testing manually it was working, then this patch solved my issue. I haven't checked the source but think the readline() implementation of these do strchr('\r') instead of strchr('\n') to match a newline?
So input sending Cartridge Return makes more sense here... I tested with: -- >8 -- def exec_command_and_wait_for_pattern(self, command, success_message): - command += '\n' + command += '\r' self.vm.console_socket.sendall(command.encode()) self.wait_for_console_pattern(success_message) --- And everything works fine, so we don't need to send the New Line char :) Thanks for helping me figure this out! I'll wait if there are other comments then respin. Regards, Phil.
self.vm.console_socket.sendall(command.encode()) wait_for_console_pattern(self, success_message)
[Prev in Thread] | Current Thread | [Next in Thread] |