On 16/8/24 17:37, Thomas Huth wrote:
The qtests are broken since a while in the MSYS2 job in the gitlab-CI,
likely due to some changes in the MSYS2 environment. So far nobody has
neither a clue what's going wrong here, nor an idea how to fix this
(in fact most QEMU developers even don't have a Windows environment
available for properly analyzing this problem), so let's disable the
qtests here again to get at least the test coverage for the compilation
and unit tests back to the CI.

Signed-off-by: Thomas Huth <th...@redhat.com>
---
  .gitlab-ci.d/windows.yml | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index a83f23a786..9f3112f010 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -23,6 +23,8 @@ msys2-64bit:
      # for this job, because otherwise the build could not complete within
      # the project timeout.
      CONFIGURE_ARGS:  --target-list=sparc-softmmu --without-default-devices 
-Ddebug=false -Doptimization=0
+    # The qtests are broken in the msys2 job on gitlab, so disable them:
+    TEST_ARGS: --no-suite qtest

Then building system emulation is pointless, isn't it?

Could we at least test the block tools? qemu-img seems to work:

# ./qemu-img.exe --help
qemu-img version 9.0.92 (v9.1.0-rc2)
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
usage: qemu-img [standard options] command [command options]
QEMU disk image utility

    '-h', '--help'       display this help and exit
    '-V', '--version'    output version information and exit
...

It doesn't work currently:

Administrator@FOOBAR UCRT64 /c/Users/Administrator/qemu/build
# make check-help
Regression testing targets:
make check Run block, qapi-schema, unit, softfloat, qtest and decodetree tests
 make bench                  Run speed tests

Individual test suites:
 make check-qtest-TARGET     Run qtest tests for given target
 make check-qtest            Run qtest tests
 make check-unit             Run qobject tests
 make check-qapi-schema      Run QAPI schema tests
 make check-block            Run block tests
make check-avocado Run avocado (integration) tests for currently configured targets

 make check-report.junit.xml Generates an aggregated XML test report
 make check-venv             Creates a Python venv for tests
 make check-clean            Clean the tests and related data

The following are useful for CI builds
 make check-build            Build most test binaries
make get-vm-images Downloads all images used by avocado tests, according to configured targets (~350 MB each, 1.5 GB max)


The variable SPEED can be set to control the gtester speed setting.
Default options are -k and (for make V=1) --verbose; they can be
changed with variable GTESTER_OPTIONS.

Administrator@FOOBAR UCRT64 /c/Users/Administrator/qemu/build
# make check-block
make: *** No rule to make target 'check-block'.  Stop.

Administrator@FOOBAR UCRT64 /c/Users/Administrator/qemu/build
#


FWIW when the test is stuck and I hit ^C I get:

Administrator@FOOBAR UCRT64 /c/Users/Administrator/qemu/build
# make check-qtest
[1/6] Generating qemu-version.h with a custom command (wrapped by meson to capture output) /c/Users/Administrator/qemu/build/pyvenv/bin/meson test --no-rebuild -t 1 --num-processes 1 --print-errorlogs --suite qtest ERROR: The process "3428" not found./ qtest-sparc/qom-test 14/900.0s 1/13 qemu:qtest+qtest-sparc / qtest-sparc/qom-test INTERRUPT 14.42s (exit status 3221225786 or signal 3221225658 SIGinvalid) >>> PATH=C:/Users/Administrator/msys64/ucrt64/bin;C:\Users\Administrator\msys64\ucrt64\bin;C:\Users\Administrator\msys64\usr\local\bin;C:\Users\Administrator\msys64\usr\bin;C:\Users\Administrator\msys64\usr\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Administrator\msys64\usr\bin\site_perl;C:\Users\Administrator\msys64\usr\bin\vendor_perl;C:\Users\Administrator\msys64\usr\bin\core_perl PYTHON=C:/Users/Administrator/qemu/build/pyvenv/bin/python3.exe QTEST_QEMU_BINARY=./qemu-system-sparc QTEST_QEMU_IMG=./qemu-img G_TEST_DBUS_DAEMON=C:/Users/Administrator/qemu/tests/dbus-vmstate-daemon.sh MALLOC_PERTURB_=164 C:/Users/Administrator/qemu/build/tests/qtest/qom-test.exe --tap -k

ERROR: The process "860" not found.qtest-sparc/device-introspect-test 4/720.0s 2/13 qemu:qtest+qtest-sparc / qtest-sparc/cdrom-test SKIP 0.07s
Traceback (most recent call last):
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 641, in run_until_complete
    self.run_forever()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/windows_events.py", line 321, in run_forever
    super().run_forever()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 608, in run_forever
    self._run_once()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 1898, in _run_once
    event_list = self._selector.select(timeout)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/windows_events.py", line 444, in select
    self._poll(timeout)
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/windows_events.py", line 825, in _poll
    status = _overlapped.GetQueuedCompletionStatus(self._iocp, ms)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 157, in _on_sigint
    raise KeyboardInterrupt()
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
File "C:/Users/Administrator/qemu/build/pyvenv/bin/meson.exe/__main__.py", line 7, in <module> File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 294, in main
    return run(sys.argv[1:], launcher)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 285, in run
    return CommandLineParser().run(args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 194, in run
    return options.run_func(options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py", line 2182, in run
    return th.doit()
           ^^^^^^^^^
File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py", line 1821, in doit
    self.run_tests(runners)
File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py", line 1994, in run_tests
    asyncio.run(self._run_tests(runners))
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 189, in run
    with Runner(debug=debug) as runner:
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 63, in __exit__
    self.close()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 71, in close
    _cancel_all_tasks(loop)
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/runners.py", line 201, in _cancel_all_tasks loop.run_until_complete(tasks.gather(*to_cancel, return_exceptions=True)) File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 641, in run_until_complete
    self.run_forever()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/windows_events.py", line 321, in run_forever
    super().run_forever()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 608, in run_forever
    self._run_once()
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 1898, in _run_once
    event_list = self._selector.select(timeout)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/windows_events.py", line 444, in select
    self._poll(timeout)
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/windows_events.py", line 825, in _poll
    status = _overlapped.GetQueuedCompletionStatus(self._iocp, ms)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt
Exception ignored in: <coroutine object TestHarness._run_tests at 0x000001b004a1bca0>
Traceback (most recent call last):
File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py", line 2101, in _run_tests File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py", line 725, in finish File "C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py", line 605, in report_progress File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/locks.py", line 213, in wait
asyncio.exceptions.CancelledError:
Task was destroyed but it is pending!
task: <Task cancelling name='Task-1' coro=<TestHarness._run_tests() done, defined at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:2006> wait_for=<Task pending name='Task-23' coro=<TestHarness._run_tests.<locals>.run_test() running at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:2018> wait_for=<Future pending cb=[Task.task_wakeup()]> cb=[TestHarness._run_tests.<locals>.test_done() at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:2024, Task.task_wakeup()]> cb=[gather.<locals>._done_callback() at C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/tasks.py:764]>
Task was destroyed but it is pending!
task: <Task pending name='Task-23' coro=<TestHarness._run_tests.<locals>.run_test() running at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:2018> wait_for=<Future pending cb=[Task.task_wakeup()]> cb=[TestHarness._run_tests.<locals>.test_done() at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:2024, Task.task_wakeup()]>
Exception ignored in: <coroutine object Queue.get at 0x000001b00524bca0>
Traceback (most recent call last):
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/queues.py", line 160, in get File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 762, in call_soon File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 520, in _check_closed
RuntimeError: Event loop is closed
Task was destroyed but it is pending!
task: <Task pending name='Task-25' coro=<TestRunTAP.parse() done, defined at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:1087> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-26' coro=<TestSubprocess.communicate.<locals>.collect_stdo() running at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:1303> wait_for=<Future pending cb=[Task.task_wakeup()]>>
Task was destroyed but it is pending!
task: <Task pending name='Task-27' coro=<TestSubprocess.communicate.<locals>.collect_stde() running at C:/Users/Administrator/qemu/build/pyvenv/lib/python3.11/site-packages/mesonbuild/mtest.py:1308> wait_for=<Future pending cb=[Task.task_wakeup()]>> Exception ignored in: <function BaseSubprocessTransport.__del__ at 0x000001b003dc62a0>
Traceback (most recent call last):
File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_subprocess.py", line 126, in __del__ File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_subprocess.py", line 104, in close File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/proactor_events.py", line 109, in close File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 762, in call_soon File "C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/base_events.py", line 520, in _check_closed
RuntimeError: Event loop is closed
Task was destroyed but it is pending!
task: <Task pending name='Task-28' coro=<Process.wait() running at C:/Users/Administrator/msys64/ucrt64/lib/python3.11/asyncio/subprocess.py:137> wait_for=<Future pending cb=[Task.task_wakeup()]>>
make: *** [Makefile.mtest:26: do-meson-check] Interrupt


Administrator@FOOBAR UCRT64 /c/Users/Administrator/qemu/build
#

Reply via email to