On 1/8/25 13:10, Alex Bennée wrote:
I was seeing failures on vnc-display-test on FreeBSD:

   make vm-build-freebsd V=1 TARGET_LIST=aarch64-softmmu 
BUILD_TARGET=check-qtest QEMU_LOCAL=1 DEBUG=1

Leads to:

   qemu-system-aarch64: -vnc none: could not read keymap file: 'en-us'
   Broken pipe
   ../src/tests/qtest/libqtest.c:196: kill_qemu() tried to terminate QEMU 
process but encountered exit status 1 (expected 0)

which was as far as I could tell because we don't populate the
$BLD/pc-bios/keymaps (although something attempts to symlink
qemu-bundle/usr/local/share/qemu/keymaps/ to that dir).

That something being scripts/symlink-install-tree.py.

This is where QEMU looks for the keymaps and your patch ensures that it is populated before running the test. Please add the above info to the commit message just for accuracy; otherwise:

Reviewed-by: Paolo Bonzini <[email protected]>

Paolo

Signed-off-by: Alex Bennée <[email protected]>
Cc: Paolo Bonzini <[email protected]>
---
  pc-bios/keymaps/meson.build | 17 ++++++++---------
  tests/qtest/meson.build     |  2 +-
  2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
index 0bd8ce0077..a79a09b276 100644
--- a/pc-bios/keymaps/meson.build
+++ b/pc-bios/keymaps/meson.build
@@ -39,19 +39,18 @@ else
    native_qemu_keymap = qemu_keymap
  endif
+keymap_targets = []
  if native_qemu_keymap.found()
-  t = []
    foreach km, args: keymaps
      # generate with qemu-kvm
-    t += custom_target(km,
-                       build_by_default: true,
-                       output: km,
-                       command: [native_qemu_keymap, '-f', '@OUTPUT@', 
args.split()],
-                       install: have_system,
-                       install_dir: qemu_datadir / 'keymaps')
+    keymap_targets += custom_target(km,
+                                    build_by_default: true,
+                                    output: km,
+                                    command: [native_qemu_keymap, '-f', 
'@OUTPUT@', args.split()],
+                                    install: have_system,
+                                    install_dir: qemu_datadir / 'keymaps')
    endforeach
-
-  alias_target('update-keymaps', t)
+  alias_target('update-keymaps', keymap_targets)
  else
    install_data(keymaps.keys(), install_dir: qemu_datadir / 'keymaps')
  endif
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index c5a70021c5..f75c1057a4 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -383,7 +383,7 @@ qtests = {
  if vnc.found()
    gvnc = dependency('gvnc-1.0', method: 'pkg-config', required: false)
    if gvnc.found()
-    qtests += {'vnc-display-test': [gvnc]}
+    qtests += {'vnc-display-test': [gvnc, keymap_targets]}
      qtests_generic += [ 'vnc-display-test' ]
    endif
  endif


Reply via email to