All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Louis Rannou <lrannou@baylibre.com>
Cc: openembedded-core@lists.openembedded.org, khilman@baylibre.com
Subject: Re: [OE-core] [PATCH v3 2/2] oeqa/selftest: change deprecated usage of run_serial
Date: Sun, 9 Apr 2023 11:39:10 +0200	[thread overview]
Message-ID: <20230409093910134a3fb4@mail.local> (raw)
In-Reply-To: <20230407142622.632035-3-lrannou@baylibre.com>

Hello,

This breaks the overlayfs tests:

https://autobuilder.yoctoproject.org/typhoon/#builders/87/builds/5075/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#builders/86/builds/5036/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#builders/80/builds/4994/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#builders/79/builds/5045/steps/15/logs/stdio

On 07/04/2023 16:26:22+0200, Louis Rannou wrote:
> Prefer the new function run_serial_socket. Change calls where the modification
> is easy.
> 
> Signed-off-by: Louis Rannou <lrannou@baylibre.com>
> ---
>  meta/lib/oeqa/selftest/cases/debuginfod.py |  3 +-
>  meta/lib/oeqa/selftest/cases/gdbserver.py  |  7 ++--
>  meta/lib/oeqa/selftest/cases/locales.py    |  8 ++---
>  meta/lib/oeqa/selftest/cases/overlayfs.py  | 42 ++++++++++++++--------
>  meta/lib/oeqa/selftest/cases/package.py    |  7 ++--
>  meta/lib/oeqa/selftest/cases/runqemu.py    |  2 +-
>  6 files changed, 43 insertions(+), 26 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/debuginfod.py b/meta/lib/oeqa/selftest/cases/debuginfod.py
> index 37f51760fb..2571ce6989 100644
> --- a/meta/lib/oeqa/selftest/cases/debuginfod.py
> +++ b/meta/lib/oeqa/selftest/cases/debuginfod.py
> @@ -99,7 +99,8 @@ CORE_IMAGE_EXTRA_INSTALL += "elfutils"
>                      % (qemu.server_ip, port)
>                  )
>                  self.logger.info(f"Starting client {cmd}")
> -                status, output = qemu.run_serial(cmd)
> +                status, output = qemu.run_serial_socket(cmd)
> +                self.assertEqual(0, status)
>                  # This should be more comprehensive
>                  self.assertIn("/.cache/debuginfod_client/", output)
>          finally:
> diff --git a/meta/lib/oeqa/selftest/cases/gdbserver.py b/meta/lib/oeqa/selftest/cases/gdbserver.py
> index 9da97ae780..4f8c7d620f 100644
> --- a/meta/lib/oeqa/selftest/cases/gdbserver.py
> +++ b/meta/lib/oeqa/selftest/cases/gdbserver.py
> @@ -43,7 +43,8 @@ CORE_IMAGE_EXTRA_INSTALL = "gdbserver"
>              shutil.unpack_archive(filename, debugfs)
>  
>              with runqemu("core-image-minimal", runqemuparams="nographic") as qemu:
> -                status, output = qemu.run_serial("kmod --help")
> +                status, output = qemu.run_serial_socket("kmod --help")
> +                self.assertEqual(status, 0)
>                  self.assertIn("modprobe", output)
>  
>                  with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
> @@ -61,7 +62,7 @@ CORE_IMAGE_EXTRA_INSTALL = "gdbserver"
>                              self.fail("Timed out connecting to gdb")
>                      future = executor.submit(run_gdb)
>  
> -                    status, output = qemu.run_serial("gdbserver --once :9999 kmod --help")
> -                    self.assertEqual(status, 1)
> +                    status, output = qemu.run_serial_socket("gdbserver --once :9999 kmod --help")
> +                    self.assertEqual(status, 0)
>                      # The future either returns None, or raises an exception
>                      future.result()
> diff --git a/meta/lib/oeqa/selftest/cases/locales.py b/meta/lib/oeqa/selftest/cases/locales.py
> index 4ca8ffb7aa..98026d2c80 100644
> --- a/meta/lib/oeqa/selftest/cases/locales.py
> +++ b/meta/lib/oeqa/selftest/cases/locales.py
> @@ -27,15 +27,15 @@ class LocalesTest(OESelftestTestCase):
>  
>          with runqemu("core-image-minimal", ssh=False, runqemuparams='nographic') as qemu:
>              cmd = "locale -a"
> -            status, output = qemu.run_serial(cmd)
> +            status, output = qemu.run_serial_socket(cmd)
>              # output must includes fr_FR or fr_FR.UTF-8
> -            self.assertEqual(status, 1, msg='locale test command failed: output: %s' % output)
> +            self.assertEqual(status, 0, msg='locale test command failed: output: %s' % output)
>              self.assertIn("fr_FR", output, msg='locale -a test failed: output: %s' % output)
>  
>              cmd = "localedef --list-archive -v"
> -            status, output = qemu.run_serial(cmd)
> +            status, output = qemu.run_serial_socket(cmd)
>              # output must includes fr_FR.utf8
> -            self.assertEqual(status, 1, msg='localedef test command failed: output: %s' % output)
> +            self.assertEqual(status, 0, msg='localedef test command failed: output: %s' % output)
>              self.assertIn("fr_FR.utf8", output, msg='localedef test failed: output: %s' % output)
>  
>      def test_locales_on(self):
> diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py
> index b4f0663828..753821490b 100644
> --- a/meta/lib/oeqa/selftest/cases/overlayfs.py
> +++ b/meta/lib/oeqa/selftest/cases/overlayfs.py
> @@ -183,20 +183,24 @@ EOT
>  
>          with runqemu('core-image-minimal') as qemu:
>              # Check that application service started
> -            status, output = qemu.run_serial("systemctl status my-application")
> +            status, output = qemu.run_serial_socket("systemctl status my-application")
> +            self.assertEqual(0, status)
>              self.assertTrue("active (exited)" in output, msg=output)
>  
>              # Check that overlay mounts are dependencies of our application unit
> -            status, output = qemu.run_serial("systemctl list-dependencies my-application")
> +            status, output = qemu.run_serial_socket("systemctl list-dependencies my-application")
> +            self.assertEqual(0, status)
>              self.assertTrue("overlayfs-user-overlays.service" in output, msg=output)
>  
> -            status, output = qemu.run_serial("systemctl list-dependencies overlayfs-user-overlays")
> +            status, output = qemu.run_serial_socket("systemctl list-dependencies overlayfs-user-overlays")
> +            self.assertEqual(0, status)
>              self.assertTrue("usr-share-another\\x2doverlay\\x2dmount.mount" in output, msg=output)
>              self.assertTrue("usr-share-my\\x2dapplication.mount" in output, msg=output)
>  
>              # Check that we have /mnt/overlay fs mounted as tmpfs and
>              # /usr/share/my-application as an overlay (see overlayfs-user recipe)
> -            status, output = qemu.run_serial("/bin/mount -t tmpfs,overlay")
> +            status, output = qemu.run_serial_socket("/bin/mount -t tmpfs,overlay")
> +            self.assertEqual(0, status)
>  
>              line = getline_qemu(output, "on /mnt/overlay")
>              self.assertTrue(line and line.startswith("tmpfs"), msg=output)
> @@ -360,7 +364,8 @@ OVERLAYFS_ETC_DEVICE = "/dev/sda3"
>          bitbake('core-image-minimal')
>  
>          with runqemu('core-image-minimal', image_fstype='wic') as qemu:
> -            status, output = qemu.run_serial("/bin/mount")
> +            status, output = qemu.run_serial_socket("/bin/mount")
> +            self.assertEqual(0, status)
>  
>              line = getline_qemu(output, "upperdir=/data/overlay-etc/upper")
>              self.assertFalse(line, msg=output)
> @@ -393,7 +398,8 @@ OVERLAYFS_ETC_DEVICE = "/dev/sda3"
>          testFile = "/etc/my-test-data"
>  
>          with runqemu('core-image-minimal', image_fstype='wic', discard_writes=False) as qemu:
> -            status, output = qemu.run_serial("/bin/mount")
> +            status, output = qemu.run_serial_socket("/bin/mount")
> +            self.assertEqual(0, status)
>  
>              line = getline_qemu(output, "/dev/sda3")
>              self.assertTrue("/data" in output, msg=output)
> @@ -402,19 +408,24 @@ OVERLAYFS_ETC_DEVICE = "/dev/sda3"
>              self.assertTrue(line and line.startswith("/data/overlay-etc/upper on /etc type overlay"), msg=output)
>  
>              # check that lower layer is not available
> -            status, output = qemu.run_serial("ls -1 /data/overlay-etc/lower")
> +            status, output = qemu.run_serial_socket("ls -1 /data/overlay-etc/lower")
> +            self.assertEqual(0, status)
>              line = getline_qemu(output, "No such file or directory")
>              self.assertTrue(line, msg=output)
>  
> -            status, output = qemu.run_serial("touch " + testFile)
> -            status, output = qemu.run_serial("sync")
> -            status, output = qemu.run_serial("ls -1 " + testFile)
> +            status, output = qemu.run_serial_socket("touch " + testFile)
> +            self.assertEqual(0, status)
> +            status, output = qemu.run_serial_socket("sync")
> +            self.assertEqual(0, status)
> +            status, output = qemu.run_serial_socket("ls -1 " + testFile)
> +            self.assertEqual(0, status)
>              line = getline_qemu(output, testFile)
>              self.assertTrue(line and line.startswith(testFile), msg=output)
>  
>          # Check that file exists in /etc after reboot
>          with runqemu('core-image-minimal', image_fstype='wic') as qemu:
> -            status, output = qemu.run_serial("ls -1 " + testFile)
> +            status, output = qemu.run_serial_socket("ls -1 " + testFile)
> +            self.assertEqual(0, status)
>              line = getline_qemu(output, testFile)
>              self.assertTrue(line and line.startswith(testFile), msg=output)
>  
> @@ -446,14 +457,17 @@ IMAGE_INSTALL:append = " overlayfs-user"
>          bitbake('core-image-minimal')
>  
>          with runqemu('core-image-minimal', image_fstype='wic') as qemu:
> -            status, output = qemu.run_serial("echo \"Modified in upper\" > /etc/" + testFile)
> -            status, output = qemu.run_serial("diff /etc/" + testFile + " /data/overlay-etc/lower/" + testFile)
> +            status, output = qemu.run_serial_socket("echo \"Modified in upper\" > /etc/" + testFile)
> +            self.assertEqual(0, status)
> +            status, output = qemu.run_serial_socket("diff /etc/" + testFile + " /data/overlay-etc/lower/" + testFile)
> +            self.assertEqual(0, status)
>              line = getline_qemu(output, "Modified in upper")
>              self.assertTrue(line, msg=output)
>              line = getline_qemu(output, "Original file")
>              self.assertTrue(line, msg=output)
>  
> -            status, output = qemu.run_serial("touch /data/overlay-etc/lower/ro-test.txt")
> +            status, output = qemu.run_serial_socket("touch /data/overlay-etc/lower/ro-test.txt")
> +            self.assertEqual(0, status)
>              line = getline_qemu(output, "Read-only file system")
>              self.assertTrue(line, msg=output)
>  
> diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py
> index 1aa6c03f8a..78e8a4c26b 100644
> --- a/meta/lib/oeqa/selftest/cases/package.py
> +++ b/meta/lib/oeqa/selftest/cases/package.py
> @@ -135,7 +135,8 @@ class PackageTests(OESelftestTestCase):
>              Check that gdb ``binary`` to read symbols from separated debug file
>              """
>              self.logger.info("gdbtest %s" % binary)
> -            status, output = qemu.run_serial('/usr/bin/gdb.sh %s' % binary, timeout=60)
> +            status, output = qemu.run_serial_socket('/usr/bin/gdb.sh %s' % binary, timeout=60)
> +            self.assertEqual(0, status)
>              for l in output.split('\n'):
>                  # Check debugging symbols exists
>                  if '(no debugging symbols found)' in l:
> @@ -166,8 +167,8 @@ class PackageTests(OESelftestTestCase):
>  
>          def check_ownership(qemu, expected_gid, expected_uid, path):
>              self.logger.info("Check ownership of %s", path)
> -            status, output = qemu.run_serial('stat -c "%U %G" ' + path)
> -            self.assertEqual(status, 1, "stat failed: " + output)
> +            status, output = qemu.run_serial_socket('stat -c "%U %G" ' + path)
> +            self.assertEqual(status, 0, "stat failed: " + output)
>              try:
>                  uid, gid = output.split()
>                  self.assertEqual(uid, expected_uid)
> diff --git a/meta/lib/oeqa/selftest/cases/runqemu.py b/meta/lib/oeqa/selftest/cases/runqemu.py
> index f01e1eec66..be1481a82e 100644
> --- a/meta/lib/oeqa/selftest/cases/runqemu.py
> +++ b/meta/lib/oeqa/selftest/cases/runqemu.py
> @@ -183,7 +183,7 @@ class QemuTest(OESelftestTestCase):
>          # (such as the exception "Console connection closed unexpectedly")
>          # as qemu will disappear when we shut it down
>          qemu.runner.allowexit()
> -        qemu.run_serial("shutdown -h now")
> +        qemu.run_serial_socket("shutdown -h now")
>          time_track = 0
>          try:
>              while True:
> -- 
> 2.40.0
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#179825): https://lists.openembedded.org/g/openembedded-core/message/179825
> Mute This Topic: https://lists.openembedded.org/mt/98125364/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


  reply	other threads:[~2023-04-09  9:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-07 14:26 [PATCH v3 0/2] oeqa: Change the serial runner Louis Rannou
2023-04-07 14:26 ` [PATCH v3 1/2] oeqa/utils/qemurunner: change " Louis Rannou
2023-04-07 14:26 ` [PATCH v3 2/2] oeqa/selftest: change deprecated usage of run_serial Louis Rannou
2023-04-09  9:39   ` Alexandre Belloni [this message]
2023-04-11  7:14     ` [OE-core] " Louis Rannou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230409093910134a3fb4@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=khilman@baylibre.com \
    --cc=lrannou@baylibre.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.