All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16
@ 2021-03-17  3:52 Cleber Rosa
  2021-03-17  3:52 ` [PULL 1/5] tests/acceptance: Print expected message on wait_for_console_pattern Cleber Rosa
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Cleber Rosa @ 2021-03-17  3:52 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Eduardo Habkost, John Snow, Wainer dos Santos Moschetta,
	Willian Rampazzo, Cleber Rosa, Philippe Mathieu-Daudé,
	Beraldo Leal

The following changes since commit 5b7f5586d182b0cafb1f8d558992a14763e2953e:

  Merge remote-tracking branch 'remotes/kraxel/tags/usb-20210315-pull-request=
' into staging (2021-03-16 13:17:54 +0000)

are available in the Git repository at:

  https://gitlab.com/cleber.gnu/qemu.git/ tags/python-next-pull-request

for you to fetch changes up to affc55e761ea4c96b9b2de582d813787a317aeda:

  tests/acceptance: linux-related tests fix (2021-03-16 22:24:44 -0400)

----------------------------------------------------------------
Acceptance and Python Test Improvements

Small collection of Acceptance and Python tests/improvements.

GitLab CI pipeline: https://gitlab.com/cleber.gnu/qemu/-/pipelines/271670930

----------------------------------------------------------------

Hyman (1):
  tests/migration: fix unix socket batch migration

Jagannathan Raman (1):
  tests: Add functional test for out-of-process device emulation

Pavel Dovgalyuk (1):
  tests/acceptance: linux-related tests fix

Wainer dos Santos Moschetta (1):
  tests/acceptance: Print expected message on wait_for_console_pattern

Willian Rampazzo (1):
  avocado_qemu: add exec_command function

 tests/acceptance/avocado_qemu/__init__.py | 23 +++++-
 tests/acceptance/multiprocess.py          | 95 +++++++++++++++++++++++
 tests/migration/guestperf/engine.py       |  7 ++
 3 files changed, 121 insertions(+), 4 deletions(-)
 create mode 100644 tests/acceptance/multiprocess.py

--=20
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PULL 1/5] tests/acceptance: Print expected message on wait_for_console_pattern
  2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
@ 2021-03-17  3:52 ` Cleber Rosa
  2021-03-17  3:52 ` [PULL 2/5] tests/migration: fix unix socket batch migration Cleber Rosa
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Cleber Rosa @ 2021-03-17  3:52 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Eduardo Habkost, John Snow, Wainer dos Santos Moschetta,
	Willian Rampazzo, Joel Stanley, Willian Rampazzo, Cleber Rosa,
	Philippe Mathieu-Daudé,
	Beraldo Leal

From: Wainer dos Santos Moschetta <wainersm@redhat.com>

For the sake of improve debuggability of tests which use the
wait_for_console_pattern(), this changed the _console_interaction() so that
the expected message is printed if the test fail.

Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Message-Id: <20210309153507.1905682-1-wainersm@redhat.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 tests/acceptance/avocado_qemu/__init__.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index df167b142cc..ed338caaba9 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -97,7 +97,8 @@ def _console_interaction(test, success_message, failure_message,
             break
         if failure_message and failure_message in msg:
             console.close()
-            fail = 'Failure message found in console: %s' % failure_message
+            fail = 'Failure message found in console: "%s". Expected: "%s"' % \
+                    (failure_message, success_message)
             test.fail(fail)
 
 def interrupt_interactive_console_until_pattern(test, success_message,
-- 
2.30.2



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 2/5] tests/migration: fix unix socket batch migration
  2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
  2021-03-17  3:52 ` [PULL 1/5] tests/acceptance: Print expected message on wait_for_console_pattern Cleber Rosa
@ 2021-03-17  3:52 ` Cleber Rosa
  2021-03-17  3:52 ` [PULL 3/5] avocado_qemu: add exec_command function Cleber Rosa
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Cleber Rosa @ 2021-03-17  3:52 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Eduardo Habkost, John Snow, Hyman, Wainer dos Santos Moschetta,
	Willian Rampazzo, Cleber Rosa, Philippe Mathieu-Daudé,
	Beraldo Leal

From: Hyman <huangy81@chinatelecom.cn>

when execute the following test command:
"guestperf-batch.py --dst-host localhost --transport unix ..."
test aborts and error message as the following be throwed:
"launching VM Failed: [Errno 98] Address already in use".

The reason is that batch script use the same monitor socket
in all test cases and do not remove the socket file. The second
migration test will launch vm use the same socket file as
the first, so we get the error message. To fix it, just remove
the socket file each time we have done the migration test.

Signed-off-by: Hyman <huangy81@chinatelecom.cn>
Message-Id: <c3fc438993b87a6ab0bea3d07f6ca0260d29936e.1615397103.git.huangy81@chinatelecom.cn>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 tests/migration/guestperf/engine.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestperf/engine.py
index 83bfc3b6bb8..5189cf96775 100644
--- a/tests/migration/guestperf/engine.py
+++ b/tests/migration/guestperf/engine.py
@@ -407,6 +407,13 @@ def run(self, hardware, scenario, result_dir=os.getcwd()):
             vcpu_timings = ret[2]
             if uri[0:5] == "unix:":
                 os.remove(uri[5:])
+
+            if os.path.exists(srcmonaddr):
+                os.remove(srcmonaddr)
+
+            if self._dst_host == "localhost" and os.path.exists(dstmonaddr):
+                os.remove(dstmonaddr)
+
             if self._verbose:
                 print("Finished migration")
 
-- 
2.30.2



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 3/5] avocado_qemu: add exec_command function
  2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
  2021-03-17  3:52 ` [PULL 1/5] tests/acceptance: Print expected message on wait_for_console_pattern Cleber Rosa
  2021-03-17  3:52 ` [PULL 2/5] tests/migration: fix unix socket batch migration Cleber Rosa
@ 2021-03-17  3:52 ` Cleber Rosa
  2021-03-17  3:52 ` [PULL 4/5] tests: Add functional test for out-of-process device emulation Cleber Rosa
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Cleber Rosa @ 2021-03-17  3:52 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Eduardo Habkost, John Snow, Wainer dos Santos Moschetta,
	Willian Rampazzo, Willian Rampazzo, Cleber Rosa,
	Philippe Mathieu-Daudé,
	Beraldo Leal

From: Willian Rampazzo <willianr@redhat.com>

Sometimes a test needs to send a command to a console without waiting
for a pattern as a result, or the command issued do not produce any kind
of output, like, for example, a `mount` command.

This introduces the `exec_command` function to the avocado_qemu,
allowing the test to send a command to the console without the need to
match a pattern produced as a result.

Signed-off-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20210303205320.146047-2-willianr@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 tests/acceptance/avocado_qemu/__init__.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index ed338caaba9..ac8041821fa 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -93,7 +93,7 @@ def _console_interaction(test, success_message, failure_message,
         if not msg:
             continue
         console_logger.debug(msg)
-        if success_message in msg:
+        if success_message is None or success_message in msg:
             break
         if failure_message and failure_message in msg:
             console.close()
@@ -140,6 +140,18 @@ def wait_for_console_pattern(test, success_message, failure_message=None,
     """
     _console_interaction(test, success_message, failure_message, None, vm=vm)
 
+def exec_command(test, command):
+    """
+    Send a command to a console (appending CRLF characters), while logging
+    the content.
+
+    :param test: an Avocado test containing a VM.
+    :type test: :class:`avocado_qemu.Test`
+    :param command: the command to send
+    :type command: str
+    """
+    _console_interaction(test, None, None, command + '\r')
+
 def exec_command_and_wait_for_pattern(test, command,
                                       success_message, failure_message=None):
     """
-- 
2.30.2



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 4/5] tests: Add functional test for out-of-process device emulation
  2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
                   ` (2 preceding siblings ...)
  2021-03-17  3:52 ` [PULL 3/5] avocado_qemu: add exec_command function Cleber Rosa
@ 2021-03-17  3:52 ` Cleber Rosa
  2021-03-17  3:52 ` [PULL 5/5] tests/acceptance: linux-related tests fix Cleber Rosa
  2021-03-18 14:57 ` [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Peter Maydell
  5 siblings, 0 replies; 7+ messages in thread
From: Cleber Rosa @ 2021-03-17  3:52 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Elena Ufimtseva, John G Johnson, Jagannathan Raman,
	Eduardo Habkost, John Snow, Stefan Hajnoczi,
	Wainer dos Santos Moschetta, Willian Rampazzo, Willian Rampazzo,
	Cleber Rosa, Marc-André Lureau, Philippe Mathieu-Daudé,
	Beraldo Leal

From: Jagannathan Raman <jag.raman@oracle.com>

Runs the Avocado acceptance test to check if a
remote lsi53c895a device gets identified by the guest.

Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
[WR: Refactored code]
Signed-off-by: Willian Rampazzo <willianr@redhat.com>
Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20210303205320.146047-3-willianr@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 tests/acceptance/multiprocess.py | 95 ++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100644 tests/acceptance/multiprocess.py

diff --git a/tests/acceptance/multiprocess.py b/tests/acceptance/multiprocess.py
new file mode 100644
index 00000000000..96627f022a8
--- /dev/null
+++ b/tests/acceptance/multiprocess.py
@@ -0,0 +1,95 @@
+# Test for multiprocess qemu
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later.  See the COPYING file in the top-level directory.
+
+
+import os
+import socket
+
+from avocado_qemu import Test
+from avocado_qemu import wait_for_console_pattern
+from avocado_qemu import exec_command
+from avocado_qemu import exec_command_and_wait_for_pattern
+
+class Multiprocess(Test):
+    """
+    :avocado: tags=multiprocess
+    """
+    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+    def do_test(self, kernel_url, initrd_url, kernel_command_line,
+                machine_type):
+        """Main test method"""
+        self.require_accelerator('kvm')
+
+        # Create socketpair to connect proxy and remote processes
+        proxy_sock, remote_sock = socket.socketpair(socket.AF_UNIX,
+                                                    socket.SOCK_STREAM)
+        os.set_inheritable(proxy_sock.fileno(), True)
+        os.set_inheritable(remote_sock.fileno(), True)
+
+        kernel_path = self.fetch_asset(kernel_url)
+        initrd_path = self.fetch_asset(initrd_url)
+
+        # Create remote process
+        remote_vm = self.get_vm()
+        remote_vm.add_args('-machine', 'x-remote')
+        remote_vm.add_args('-nodefaults')
+        remote_vm.add_args('-device', 'lsi53c895a,id=lsi1')
+        remote_vm.add_args('-object', 'x-remote-object,id=robj1,'
+                           'devid=lsi1,fd='+str(remote_sock.fileno()))
+        remote_vm.launch()
+
+        # Create proxy process
+        self.vm.set_console()
+        self.vm.add_args('-machine', machine_type)
+        self.vm.add_args('-accel', 'kvm')
+        self.vm.add_args('-cpu', 'host')
+        self.vm.add_args('-object',
+                         'memory-backend-memfd,id=sysmem-file,size=2G')
+        self.vm.add_args('--numa', 'node,memdev=sysmem-file')
+        self.vm.add_args('-m', '2048')
+        self.vm.add_args('-kernel', kernel_path,
+                         '-initrd', initrd_path,
+                         '-append', kernel_command_line)
+        self.vm.add_args('-device',
+                         'x-pci-proxy-dev,'
+                         'id=lsi1,fd='+str(proxy_sock.fileno()))
+        self.vm.launch()
+        wait_for_console_pattern(self, 'as init process',
+                                 'Kernel panic - not syncing')
+        exec_command(self, 'mount -t sysfs sysfs /sys')
+        exec_command_and_wait_for_pattern(self,
+                                          'cat /sys/bus/pci/devices/*/uevent',
+                                          'PCI_ID=1000:0012')
+
+    def test_multiprocess_x86_64(self):
+        """
+        :avocado: tags=arch:x86_64
+        """
+        kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
+                      '/linux/releases/31/Everything/x86_64/os/images'
+                      '/pxeboot/vmlinuz')
+        initrd_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
+                      '/linux/releases/31/Everything/x86_64/os/images'
+                      '/pxeboot/initrd.img')
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'console=ttyS0 rdinit=/bin/bash')
+        machine_type = 'pc'
+        self.do_test(kernel_url, initrd_url, kernel_command_line, machine_type)
+
+    def test_multiprocess_aarch64(self):
+        """
+        :avocado: tags=arch:aarch64
+        """
+        kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
+                      '/linux/releases/31/Everything/aarch64/os/images'
+                      '/pxeboot/vmlinuz')
+        initrd_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
+                      '/linux/releases/31/Everything/aarch64/os/images'
+                      '/pxeboot/initrd.img')
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'rdinit=/bin/bash console=ttyAMA0')
+        machine_type = 'virt,gic-version=3'
+        self.do_test(kernel_url, initrd_url, kernel_command_line, machine_type)
-- 
2.30.2



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 5/5] tests/acceptance: linux-related tests fix
  2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
                   ` (3 preceding siblings ...)
  2021-03-17  3:52 ` [PULL 4/5] tests: Add functional test for out-of-process device emulation Cleber Rosa
@ 2021-03-17  3:52 ` Cleber Rosa
  2021-03-18 14:57 ` [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Peter Maydell
  5 siblings, 0 replies; 7+ messages in thread
From: Cleber Rosa @ 2021-03-17  3:52 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Pavel Dovgalyuk, Eduardo Habkost, John Snow,
	Wainer dos Santos Moschetta, Willian Rampazzo, Willian Rampazzo,
	Cleber Rosa, Philippe Mathieu-Daudé,
	Beraldo Leal

From: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>

This patch allows cloudinit images download when ssh
key is not specified.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Message-Id: <161373266228.1608713.7614311331725780044.stgit@pasha-ThinkPad-X280>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 tests/acceptance/avocado_qemu/__init__.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index ac8041821fa..83b1741ec85 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -317,8 +317,10 @@ def prepare_cloudinit(self, ssh_pubkey=None):
         try:
             cloudinit_iso = os.path.join(self.workdir, 'cloudinit.iso')
             self.phone_home_port = network.find_free_port()
-            with open(ssh_pubkey) as pubkey:
-                pubkey_content = pubkey.read()
+            pubkey_content = None
+            if ssh_pubkey:
+                with open(ssh_pubkey) as pubkey:
+                    pubkey_content = pubkey.read()
             cloudinit.iso(cloudinit_iso, self.name,
                           username='root',
                           password='password',
-- 
2.30.2



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16
  2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
                   ` (4 preceding siblings ...)
  2021-03-17  3:52 ` [PULL 5/5] tests/acceptance: linux-related tests fix Cleber Rosa
@ 2021-03-18 14:57 ` Peter Maydell
  5 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2021-03-18 14:57 UTC (permalink / raw)
  To: Cleber Rosa
  Cc: Eduardo Habkost, John Snow, QEMU Developers,
	Wainer dos Santos Moschetta, Willian Rampazzo,
	Philippe Mathieu-Daudé,
	Beraldo Leal

On Wed, 17 Mar 2021 at 03:52, Cleber Rosa <crosa@redhat.com> wrote:
>
> The following changes since commit 5b7f5586d182b0cafb1f8d558992a14763e2953e:
>
>   Merge remote-tracking branch 'remotes/kraxel/tags/usb-20210315-pull-request=
> ' into staging (2021-03-16 13:17:54 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/cleber.gnu/qemu.git/ tags/python-next-pull-request
>
> for you to fetch changes up to affc55e761ea4c96b9b2de582d813787a317aeda:
>
>   tests/acceptance: linux-related tests fix (2021-03-16 22:24:44 -0400)
>
> ----------------------------------------------------------------
> Acceptance and Python Test Improvements
>
> Small collection of Acceptance and Python tests/improvements.
>
> GitLab CI pipeline: https://gitlab.com/cleber.gnu/qemu/-/pipelines/271670930
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-03-18 14:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-17  3:52 [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Cleber Rosa
2021-03-17  3:52 ` [PULL 1/5] tests/acceptance: Print expected message on wait_for_console_pattern Cleber Rosa
2021-03-17  3:52 ` [PULL 2/5] tests/migration: fix unix socket batch migration Cleber Rosa
2021-03-17  3:52 ` [PULL 3/5] avocado_qemu: add exec_command function Cleber Rosa
2021-03-17  3:52 ` [PULL 4/5] tests: Add functional test for out-of-process device emulation Cleber Rosa
2021-03-17  3:52 ` [PULL 5/5] tests/acceptance: linux-related tests fix Cleber Rosa
2021-03-18 14:57 ` [PULL 0/5] Acceptance Tests and Python libs patches for 2021-03-16 Peter Maydell

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.