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é <f4...@amsat.org>
---
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)