On 10/9/24 05:58, Richard Henderson wrote:
[rth@cfarm120 bld]$ make check-functional
[1/2] Generating tests/functional/func-precache-m68k-m68k_nextcube with a custom command (wrapped by meson to set env)
FAILED: tests/functional/m68k-m68k_nextcube.tstamp
env QEMU_TEST_PRECACHE=/home/rth/qemu/bld/tests/functional/m68k-m68k_nextcube.tstamp PYTHONPATH=/home/rth/qemu/src/python:/home/rth/qemu/src/tests/functional /home/rth/qemu/bld/pyvenv/bin/python3 /home/rth/qemu/src/tests/functional/test_m68k_nextcube.py
Traceback (most recent call last):
  File "/home/rth/qemu/src/tests/functional/test_m68k_nextcube.py", line 25, in <module>
     class NextCubeMachine(QemuSystemTest):
  File "/home/rth/qemu/src/tests/functional/test_m68k_nextcube.py", line 60, in NextCubeMachine     @skipUnless(tesseract_available(4), 'tesseract OCR tool not available')   File "/home/rth/qemu/src/tests/functional/qemu_test/tesseract.py", line 16, in tesseract_available
     (stdout, stderr, ret) = run_cmd([ 'tesseract', '--version'])
  File "/home/rth/qemu/src/tests/functional/qemu_test/cmd.py", line 69, in run_cmd
     subp = subprocess.Popen(args,
   File "/usr/lib64/python3.9/subprocess.py", line 951, in __init__
     self._execute_child(args, executable, preexec_fn, close_fds,
   File "/usr/lib64/python3.9/subprocess.py", line 1837, in _execute_child
     raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'tesseract'


On this host, tesseract is not available.
But skipUnless is not skipping, but erroring out.

While looking at this, I'm surprised to notice has_cmd() actually
*runs* the command by calling run_cmd(). I'd have expected it solely
checks for binary presence and RX perms, avoiding unexpected side
effects.

Reply via email to