tests/avocado/machine_aspeed.py | 2 ++ 1 file changed, 2 insertions(+)
This is really a limitation of the underlying console code which
doesn't allow us to detect the login: and following "#" prompts
because it reads input line wise. By adding a small delay we ensure
that the login prompt has appeared so we don't accidentally spaff the
shell commands to a confused getty in the guest.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Cédric Le Goater <clg@kaod.org>
Cc: John Snow <jsnow@redhat.com>
---
tests/avocado/machine_aspeed.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py
index c54da0fd8f..65d38f4efa 100644
--- a/tests/avocado/machine_aspeed.py
+++ b/tests/avocado/machine_aspeed.py
@@ -101,7 +101,9 @@ def do_test_arm_aspeed_buidroot_start(self, image, cpu_id):
self.wait_for_console_pattern('Starting kernel ...')
self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
self.wait_for_console_pattern('lease of 10.0.2.15')
+ # the line before login:
self.wait_for_console_pattern('Aspeed EVB')
+ time.sleep(0.1)
exec_command(self, 'root')
time.sleep(0.1)
--
2.30.2
On Thu, Aug 11, 2022 at 7:43 AM Alex Bennée <alex.bennee@linaro.org> wrote: > > This is really a limitation of the underlying console code which > doesn't allow us to detect the login: and following "#" prompts > because it reads input line wise. By adding a small delay we ensure > that the login prompt has appeared so we don't accidentally spaff the > shell commands to a confused getty in the guest. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Cédric Le Goater <clg@kaod.org> > Cc: John Snow <jsnow@redhat.com> > --- > tests/avocado/machine_aspeed.py | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py > index c54da0fd8f..65d38f4efa 100644 > --- a/tests/avocado/machine_aspeed.py > +++ b/tests/avocado/machine_aspeed.py > @@ -101,7 +101,9 @@ def do_test_arm_aspeed_buidroot_start(self, image, cpu_id): > self.wait_for_console_pattern('Starting kernel ...') > self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id) > self.wait_for_console_pattern('lease of 10.0.2.15') > + # the line before login: > self.wait_for_console_pattern('Aspeed EVB') > + time.sleep(0.1) > exec_command(self, 'root') > time.sleep(0.1) > > -- > 2.30.2 > Augh. Sorry my hunch was wrong. I wasn't aware of this problem. Is ... this 0.1 second sleep really sufficient? I guess it's better than not having it, and I can't reasonably ask for something more thorough. Acked-by: John Snow <jsnow@redhat.com>
John Snow <jsnow@redhat.com> writes: > On Thu, Aug 11, 2022 at 7:43 AM Alex Bennée <alex.bennee@linaro.org> wrote: >> >> This is really a limitation of the underlying console code which >> doesn't allow us to detect the login: and following "#" prompts >> because it reads input line wise. By adding a small delay we ensure >> that the login prompt has appeared so we don't accidentally spaff the >> shell commands to a confused getty in the guest. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> Cc: Cédric Le Goater <clg@kaod.org> >> Cc: John Snow <jsnow@redhat.com> >> --- >> tests/avocado/machine_aspeed.py | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py >> index c54da0fd8f..65d38f4efa 100644 >> --- a/tests/avocado/machine_aspeed.py >> +++ b/tests/avocado/machine_aspeed.py >> @@ -101,7 +101,9 @@ def do_test_arm_aspeed_buidroot_start(self, image, cpu_id): >> self.wait_for_console_pattern('Starting kernel ...') >> self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id) >> self.wait_for_console_pattern('lease of 10.0.2.15') >> + # the line before login: >> self.wait_for_console_pattern('Aspeed EVB') >> + time.sleep(0.1) >> exec_command(self, 'root') >> time.sleep(0.1) >> >> -- >> 2.30.2 >> > > Augh. Sorry my hunch was wrong. I wasn't aware of this problem. > > Is ... this 0.1 second sleep really sufficient? I guess it's better > than not having it, and I can't reasonably ask for something more > thorough. We could still do with fixing _console_interaction() so we can handle waiting for prompts without newlines in them. I had a go but it just got messy. > > Acked-by: John Snow <jsnow@redhat.com> -- Alex Bennée
On 8/11/22 16:08, John Snow wrote: > On Thu, Aug 11, 2022 at 7:43 AM Alex Bennée <alex.bennee@linaro.org> wrote: >> >> This is really a limitation of the underlying console code which >> doesn't allow us to detect the login: and following "#" prompts >> because it reads input line wise. By adding a small delay we ensure >> that the login prompt has appeared so we don't accidentally spaff the >> shell commands to a confused getty in the guest. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> Cc: Cédric Le Goater <clg@kaod.org> >> Cc: John Snow <jsnow@redhat.com> >> --- >> tests/avocado/machine_aspeed.py | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py >> index c54da0fd8f..65d38f4efa 100644 >> --- a/tests/avocado/machine_aspeed.py >> +++ b/tests/avocado/machine_aspeed.py >> @@ -101,7 +101,9 @@ def do_test_arm_aspeed_buidroot_start(self, image, cpu_id): >> self.wait_for_console_pattern('Starting kernel ...') >> self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id) >> self.wait_for_console_pattern('lease of 10.0.2.15') >> + # the line before login: >> self.wait_for_console_pattern('Aspeed EVB') >> + time.sleep(0.1) >> exec_command(self, 'root') >> time.sleep(0.1) >> >> -- >> 2.30.2 >> > > Augh. Sorry my hunch was wrong. I wasn't aware of this problem. > > Is ... this 0.1 second sleep really sufficient? I guess it's better > than not having it, and I can't reasonably ask for something more > thorough. tests/avocado/machine_aarch64_virt.py has a few of these for the same reason I guess. C.
On 8/11/22 13:43, Alex Bennée wrote: > This is really a limitation of the underlying console code which > doesn't allow us to detect the login: and following "#" prompts > because it reads input line wise. By adding a small delay we ensure > that the login prompt has appeared so we don't accidentally spaff the > shell commands to a confused getty in the guest. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Cédric Le Goater <clg@kaod.org> > Cc: John Snow <jsnow@redhat.com> May be you should also add the missing timeout setting ? Anyhow, Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > tests/avocado/machine_aspeed.py | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py > index c54da0fd8f..65d38f4efa 100644 > --- a/tests/avocado/machine_aspeed.py > +++ b/tests/avocado/machine_aspeed.py > @@ -101,7 +101,9 @@ def do_test_arm_aspeed_buidroot_start(self, image, cpu_id): > self.wait_for_console_pattern('Starting kernel ...') > self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id) > self.wait_for_console_pattern('lease of 10.0.2.15') > + # the line before login: > self.wait_for_console_pattern('Aspeed EVB') > + time.sleep(0.1) > exec_command(self, 'root') > time.sleep(0.1) >
Cédric Le Goater <clg@kaod.org> writes: > On 8/11/22 13:43, Alex Bennée wrote: >> This is really a limitation of the underlying console code which >> doesn't allow us to detect the login: and following "#" prompts >> because it reads input line wise. By adding a small delay we ensure >> that the login prompt has appeared so we don't accidentally spaff the >> shell commands to a confused getty in the guest. >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> Cc: Cédric Le Goater <clg@kaod.org> >> Cc: John Snow <jsnow@redhat.com> > > > May be you should also add the missing timeout setting ? That's in another patch - I'll post the whole series now. > > Anyhow, > > Reviewed-by: Cédric Le Goater <clg@kaod.org> > > Thanks, > > C. > >> --- >> tests/avocado/machine_aspeed.py | 2 ++ >> 1 file changed, 2 insertions(+) >> diff --git a/tests/avocado/machine_aspeed.py >> b/tests/avocado/machine_aspeed.py >> index c54da0fd8f..65d38f4efa 100644 >> --- a/tests/avocado/machine_aspeed.py >> +++ b/tests/avocado/machine_aspeed.py >> @@ -101,7 +101,9 @@ def do_test_arm_aspeed_buidroot_start(self, image, cpu_id): >> self.wait_for_console_pattern('Starting kernel ...') >> self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id) >> self.wait_for_console_pattern('lease of 10.0.2.15') >> + # the line before login: >> self.wait_for_console_pattern('Aspeed EVB') >> + time.sleep(0.1) >> exec_command(self, 'root') >> time.sleep(0.1) >> -- Alex Bennée
© 2016 - 2024 Red Hat, Inc.