diff mbox series

[v2,13/29] python/qemu: Add binutils::binary_get_devices()

Message ID 20200129212345.20547-14-philmd@redhat.com (mailing list archive)
State New, archived
Headers show
Series tests/acceptance/virtio_seg_max_adjust: Restrict it to Linux/X86 | expand

Commit Message

Philippe Mathieu-Daudé Jan. 29, 2020, 9:23 p.m. UTC
Since QEMU binaries can be built with various configurations,
the list of devices linked in can vary.
Add a helper to query the list of devices built into a
QEMU binary.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 python/qemu/binutils.py          | 9 +++++++++
 tests/acceptance/core_scripts.py | 8 ++++++++
 2 files changed, 17 insertions(+)

Comments

Liam Merwick Feb. 7, 2020, 3:02 p.m. UTC | #1
On 29/01/2020 21:23, Philippe Mathieu-Daudé wrote:
> Since QEMU binaries can be built with various configurations,
> the list of devices linked in can vary.
> Add a helper to query the list of devices built into a
> QEMU binary.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>


Reviewed-by: Liam Merwick <liam.merwick@oracle.com>


> ---
>   python/qemu/binutils.py          | 9 +++++++++
>   tests/acceptance/core_scripts.py | 8 ++++++++
>   2 files changed, 17 insertions(+)
> 
> diff --git a/python/qemu/binutils.py b/python/qemu/binutils.py
> index bba203bc8d..9633ba8efd 100644
> --- a/python/qemu/binutils.py
> +++ b/python/qemu/binutils.py
> @@ -96,3 +96,12 @@ def binary_get_accels(qemu_bin):
>       '''
>       accel_types = binary_get_qom_implementations(qemu_bin, "accel", False)
>       return [a.strip("-accel") for a in accel_types]
> +
> +def binary_get_devices(qemu_bin):
> +    '''
> +    Get list of devices supported by a QEMU binary
> +
> +    @param qemu_bin (str): path to the QEMU binary
> +    @return list of devices supported by the binary
> +    '''
> +    return binary_get_qom_implementations(qemu_bin, "device", False)
> diff --git a/tests/acceptance/core_scripts.py b/tests/acceptance/core_scripts.py
> index 7380f2f49b..a62eb2e46b 100644
> --- a/tests/acceptance/core_scripts.py
> +++ b/tests/acceptance/core_scripts.py
> @@ -18,6 +18,7 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
>   from avocado_qemu import Test
>   from qemu.binutils import binary_get_accels
>   from qemu.binutils import binary_get_arch
> +from qemu.binutils import binary_get_devices
>   from qemu.binutils import binary_get_machines
>   from qemu.binutils import binary_get_qom_implementations
>   from qemu.binutils import binary_get_version
> @@ -69,3 +70,10 @@ class PythonQemuCoreScripts(Test):
>           self.assertNotIn("accel", accels)
>           # qtest is always available
>           self.assertIn("qtest", accels)
> +
> +    def test_get_devices(self):
> +        logger = logging.getLogger('core')
> +        devices = binary_get_devices(self.qemu_bin)
> +        for d in devices:
> +            logger.debug('device: {}'.format(d))
> +        self.assertIn("migration", devices)
>
diff mbox series

Patch

diff --git a/python/qemu/binutils.py b/python/qemu/binutils.py
index bba203bc8d..9633ba8efd 100644
--- a/python/qemu/binutils.py
+++ b/python/qemu/binutils.py
@@ -96,3 +96,12 @@  def binary_get_accels(qemu_bin):
     '''
     accel_types = binary_get_qom_implementations(qemu_bin, "accel", False)
     return [a.strip("-accel") for a in accel_types]
+
+def binary_get_devices(qemu_bin):
+    '''
+    Get list of devices supported by a QEMU binary
+
+    @param qemu_bin (str): path to the QEMU binary
+    @return list of devices supported by the binary
+    '''
+    return binary_get_qom_implementations(qemu_bin, "device", False)
diff --git a/tests/acceptance/core_scripts.py b/tests/acceptance/core_scripts.py
index 7380f2f49b..a62eb2e46b 100644
--- a/tests/acceptance/core_scripts.py
+++ b/tests/acceptance/core_scripts.py
@@ -18,6 +18,7 @@  sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
 from avocado_qemu import Test
 from qemu.binutils import binary_get_accels
 from qemu.binutils import binary_get_arch
+from qemu.binutils import binary_get_devices
 from qemu.binutils import binary_get_machines
 from qemu.binutils import binary_get_qom_implementations
 from qemu.binutils import binary_get_version
@@ -69,3 +70,10 @@  class PythonQemuCoreScripts(Test):
         self.assertNotIn("accel", accels)
         # qtest is always available
         self.assertIn("qtest", accels)
+
+    def test_get_devices(self):
+        logger = logging.getLogger('core')
+        devices = binary_get_devices(self.qemu_bin)
+        for d in devices:
+            logger.debug('device: {}'.format(d))
+        self.assertIn("migration", devices)