qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 3/9] tests/acceptance: Send <carriage return> on serial li


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)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]