浏览代码

support/testing: test_xen: fix runtime test

The test_xen.py runtime test, introduced in [1] and improved in [2],
is calling a "stty raw" command, just after the emulated machine
login, to avoid double-cooking the consoles. This double-cooking
prevents the test controller to correctly get the command error codes.

Buildroot commit [3] "support/testing: set date in emulated machine"
introduced an invocation of the date command to set time on the
emulated machine, just after the login. The returned error code is also
checked. Since this commit [3], the test_xen runtime test is failing
while attempting to set the date. This is because it is invoked before
the test script executes this "stty raw" command.

The need of executing a command just after the login, and just
before we set the emulated machine date is very limited. It is almost
specific to this test. So, rather than changing the test
infrastructure, this commit simply moves this "stty raw" invocation
from the runtime test script to a custom /etc/profile.d/stty-raw.sh
file on target rootfs overlay, to do this call just at the login.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/10000011350

[1] https://gitlab.com/buildroot.org/buildroot/-/commit/055f82ebbd07b582c992eed30ef5191f18873ba4
[2] https://gitlab.com/buildroot.org/buildroot/-/commit/cd0ffd598cf94b9d15c489f2429602825a18753c
[3] https://gitlab.com/buildroot.org/buildroot/-/commit/cf8641b73e7f1577637bfef0ece78dd519b25d19

Cc: Vincent Stehlé <vincent.stehle@laposte.net>
Tested-by: Vincent Stehlé <vincent.stehle@laposte.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Julien Olivain 2 月之前
父节点
当前提交
04c9ecd788

+ 0 - 7
support/testing/tests/package/test_xen.py

@@ -73,10 +73,6 @@ class TestXen(infra.basetest.BRTest):
         self.emulator.boot(arch="aarch64", options=qemu_opts)
         self.emulator.login()
 
-        # Avoid double-cooking the terminal, otherwise the test infrastructure
-        # would not be able to retrieve e.g. return codes properly.
-        self.assertRunOk("stty raw")
-
         # Verify that we are indeed running under Xen.
         self.assertRunOk("xl info")
 
@@ -92,9 +88,6 @@ class TestXen(infra.basetest.BRTest):
         self.emulator.qemu.sendline("xl create -c /etc/xen/dom1.cfg")
         self.emulator.login()
 
-        # Avoid double-cooking the terminal for dom1, too.
-        self.assertRunOk("stty raw")
-
         # Check that we are not talking to dom0 anymore.
         uuid = self.get_dom_uuid()
         self.assertNotEqual(uuid, dom0_uuid, "Unexpected dom0 UUID")

+ 3 - 0
support/testing/tests/package/test_xen/overlay/etc/profile.d/stty-raw.sh

@@ -0,0 +1,3 @@
+# Avoid double-cooking the terminal, otherwise the test infrastructure
+# would not be able to retrieve return codes properly.
+stty raw