Hi Bin

On Tue, Sep 27, 2022 at 3:18 PM Bin Meng <bmeng...@gmail.com> wrote:

> In preparation to adding virtio-9p support on Windows, this series
> enables running qtest on Windows, so that we can run the virtio-9p
> tests on Windows to make sure it does not break accidently.
>
> Changes in v4:
> - Do not use g_autofree and g_steal_pointer
> - Update the error reporting by using the GError "error" argument
>   of g_dir_make_tmp()
> - Remove the const from tmpfs declaration
> - Replace the whole block with a g_assert_no_error()
> - Replace the error reporting with g_assert_no_error()
> - Update error reporting
> - Move the new text section after the "QTest" section instead
> - Use plural in both cases: "on POSIX hosts as well as Windows hosts"
> - Use "The following list shows some best practices"
> - Fix typo of delimiter
> - New patch: "tests/qtest: boot-serial-test: Close the serial file before
> starting QEMU"
> - Drop patch: "chardev/char-file: Add FILE_SHARE_WRITE when openning the
> file for win32"
>
>
Could you post a v5 rebased on the current master? thanks

(I think most of the remaining patches are simple enough that I could take
them in a misc PR if they are not picked by subsystem maintainers)

Changes in v3:
> - Remove unnecessary "error = NULL" statements
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Use g_steal_pointer() in create_test_img()
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Split to a separate patch
> - Add a usleep(1) in the busy wait loop
> - Drop the host test
> - Drop patch: "tests: Change to use g_mkdir()"
> - Drop patch: "block: Unify the get_tmp_filename() implementation",
>   and send it as a separate patch
>
> Changes in v2:
> - new patch: "tests/qtest: i440fx-test: Rewrite create_blob_file() to be
> portable"
> - Use g_autofree to declare the variable
> - Change to use g_mkdir()
> - Change to use g_mkdir()
> - Change to use g_mkdir()
> - Change to skip only part of the virtio-net-test cases that require
>   socketpair() intead of disabling all of them
> - Introduce a new variable qtests_filter and add that to the
>   qtests_ARCH variables
> - Add a comment in the code to explain why test_qmp_oob test case
>   is skipped on win32
> - Replace signal by the semaphore on posix too
> - Use __declspec(selectany) for the common weak symbol on Windows
> - Introduce qemu_send_full() and use it
> - Move the enabling of building qtests on Windows to a separate
>   patch to keep bisectablity
> - Call socket_init() unconditionally
> - Add a missing CloseHandle() call
> - Drop ahci-test.c changes that are no longer needed
> - Change the place that sets IO redirection in the command line
> - Change to a busy wait after migration is canceled
> - new patch: "io/channel-watch: Drop the unnecessary cast"
> - Change the timeout limit to 90 minutes
> - new patch: Display meson test logs in the Windows CI
> - new patch: "tests/qtest: Enable qtest build on Windows"
> - Minor wording changes
> - Drop patches that were already applied in the mainline
> - Drop patch: "qga/commands-posix-ssh: Use g_mkdir_with_parents()"
> - Drop patch: "tests: Skip iotests and qtest when
> '--without-default-devices'"
> - Drop patch: "tests/qtest: Fix ERROR_SHARING_VIOLATION for win32"
>
> Bin Meng (48):
>   tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable
>   semihosting/arm-compat-semi: Avoid using hardcoded /tmp
>   tcg: Avoid using hardcoded /tmp
>   util/qemu-sockets: Use g_get_tmp_dir() to get the directory for
>     temporary files
>   tests/qtest: ahci-test: Avoid using hardcoded /tmp
>   tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp
>   tests/qtest: boot-serial-test: Avoid using hardcoded /tmp
>   tests/qtest: cxl-test: Avoid using hardcoded /tmp
>   tests/qtest: fdc-test: Avoid using hardcoded /tmp
>   tests/qtest: generic_fuzz: Avoid using hardcoded /tmp
>   tests/qtest: virtio_blk_fuzz: Avoid using hardcoded /tmp
>   tests/qtest: hd-geo-test: Avoid using hardcoded /tmp
>   tests/qtest: ide-test: Avoid using hardcoded /tmp
>   tests/qtest: migration-test: Avoid using hardcoded /tmp
>   tests/qtest: pflash-cfi02-test: Avoid using hardcoded /tmp
>   tests/qtest: qmp-test: Avoid using hardcoded /tmp
>   tests/qtest: vhost-user-blk-test: Avoid using hardcoded /tmp
>   tests/qtest: vhost-user-test: Avoid using hardcoded /tmp
>   tests/qtest: virtio-blk-test: Avoid using hardcoded /tmp
>   tests/qtest: virtio-scsi-test: Avoid using hardcoded /tmp
>   tests/qtest: libqtest: Avoid using hardcoded /tmp
>   tests/unit: test-image-locking: Avoid using hardcoded /tmp
>   tests/unit: test-qga: Avoid using hardcoded /tmp
>   tests: vhost-user-bridge: Avoid using hardcoded /tmp
>   block/vvfat: Unify the mkdir() call
>   fsdev/virtfs-proxy-helper: Use g_mkdir()
>   hw/usb: dev-mtp: Use g_mkdir()
>   tests/qtest: Skip running virtio-net-test cases that require
>     socketpair() for win32
>   tests/qtest: Build test-filter-{mirror,redirector} cases for posix
>     only
>   tests/qtest: qmp-test: Skip running test_qmp_oob for win32
>   tests/qtest: libqtest: Exclude the *_fds APIs for win32
>   tests/qtest: libqtest: Install signal handler via signal()
>   tests/qtest: Support libqtest to build and run on Windows
>   tests/qtest: {ahci,ide}-test: Use relative path for temporary files
>     for win32
>   tests/qtest: bios-tables-test: Adapt the case for win32
>   tests/qtest: boot-serial-test: Close the serial file before starting
>     QEMU
>   tests/qtest: microbit-test: Fix socket access for win32
>   tests/qtest: migration-test: Disable IO redirection for win32
>   tests/qtest: libqtest: Replace the call to close a socket with
>     closesocket()
>   tests/qtest: libqtest: Correct the timeout unit of blocking receive
>     calls for win32
>   io/channel-watch: Drop a superfluous '#ifdef WIN32'
>   io/channel-watch: Drop the unnecessary cast
>   io/channel-watch: Fix socket watch on Windows
>   tests/qtest: migration-test: Skip running some TLS cases for win32
>   .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes
>   .gitlab-ci.d/windows.yml: Display meson test logs
>   tests/qtest: Enable qtest build on Windows
>   docs/devel: testing: Document writing portable test cases
>
> Xuzhou Cheng (6):
>   accel/qtest: Implement a portable qtest accelerator
>   tests/qtest: libqtest: Adapt global_qtest declaration for win32
>   tests/qtest: Use send/recv for socket communication
>   tests/qtest: ide-test: Open file in binary mode
>   tests/qtest: migration-test: Make sure QEMU process "to" exited after
>     migration is canceled
>   tests/qtest: virtio-net-failover: Disable migration tests for win32
>
>  docs/devel/testing.rst                  |  30 +++++
>  include/hw/core/cpu.h                   |   1 +
>  include/qemu/sockets.h                  |   2 +
>  tests/qtest/fuzz/generic_fuzz_configs.h |   4 +-
>  tests/qtest/libqtest-single.h           |   4 +
>  tests/qtest/libqtest.h                  |   8 ++
>  accel/dummy-cpus.c                      |  15 +--
>  block/vvfat.c                           |   9 +-
>  fsdev/virtfs-proxy-helper.c             |   3 +-
>  hw/usb/dev-mtp.c                        |   4 +-
>  io/channel-watch.c                      |  12 +-
>  semihosting/arm-compat-semi.c           |   3 +-
>  softmmu/cpus.c                          |  10 +-
>  tcg/tcg.c                               |   3 +-
>  tests/qtest/ahci-test.c                 |  36 ++++--
>  tests/qtest/aspeed_smc-test.c           |   5 +-
>  tests/qtest/bios-tables-test.c          |  12 +-
>  tests/qtest/boot-serial-test.c          |  11 +-
>  tests/qtest/cxl-test.c                  |  15 +--
>  tests/qtest/fdc-test.c                  |   5 +-
>  tests/qtest/fuzz/virtio_blk_fuzz.c      |   4 +-
>  tests/qtest/hd-geo-test.c               |  24 ++--
>  tests/qtest/i440fx-test.c               |  54 +++-----
>  tests/qtest/ide-test.c                  |  30 ++++-
>  tests/qtest/libqmp.c                    |   5 +-
>  tests/qtest/libqtest.c                  | 157 ++++++++++++++++++++----
>  tests/qtest/microbit-test.c             |  10 +-
>  tests/qtest/migration-test.c            |  38 +++++-
>  tests/qtest/pflash-cfi02-test.c         |  15 ++-
>  tests/qtest/qmp-test.c                  |  17 ++-
>  tests/qtest/vhost-user-blk-test.c       |   3 +-
>  tests/qtest/vhost-user-test.c           |  10 +-
>  tests/qtest/virtio-blk-test.c           |   4 +-
>  tests/qtest/virtio-net-failover.c       |   9 +-
>  tests/qtest/virtio-net-test.c           |  13 +-
>  tests/qtest/virtio-scsi-test.c          |   4 +-
>  tests/unit/test-image-locking.c         |   8 +-
>  tests/unit/test-qga.c                   |   2 +-
>  tests/vhost-user-bridge.c               |   3 +-
>  util/osdep.c                            |  33 +++++
>  util/qemu-sockets.c                     |   5 +-
>  .gitlab-ci.d/windows.yml                |   8 +-
>  accel/meson.build                       |   1 +
>  accel/qtest/meson.build                 |   1 +
>  tests/qtest/meson.build                 |  42 +++----
>  45 files changed, 452 insertions(+), 240 deletions(-)
>
> --
> 2.34.1
>
>
>

-- 
Marc-André Lureau

Reply via email to