All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
@ 2022-09-27 11:05 Bin Meng
  2022-09-27 11:05 ` [PATCH v4 01/54] tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable Bin Meng
                   ` (55 more replies)
  0 siblings, 56 replies; 86+ messages in thread
From: Bin Meng @ 2022-09-27 11:05 UTC (permalink / raw)
  To: qemu-devel, Thomas Huth
  Cc: Marc-André Lureau, Alex Bennée, Alexander Bulekov,
	Andrew Jeffery, Ani Sinha, Bandan Das, Beraldo Leal, Bin Meng,
	Christian Schoenebeck, Coiby Xu, Cédric Le Goater,
	Daniel P. Berrangé,
	Darren Kenny, Dr. David Alan Gilbert, Eduardo Habkost, Fam Zheng,
	Gerd Hoffmann, Greg Kurz, Hanna Reitz, Igor Mammedov, Jason Wang,
	Joel Stanley, John Snow, Juan Quintela, Kevin Wolf,
	Konstantin Kostiuk, Laurent Vivier, Marcel Apfelbaum,
	Markus Armbruster, Michael Roth, Michael S. Tsirkin,
	Paolo Bonzini, Peter Maydell, Philippe Mathieu-Daudé,
	Qiuhao Li, Richard Henderson, Stefan Hajnoczi,
	Wainer dos Santos Moschetta, Willian Rampazzo, Yanan Wang,
	qemu-arm, qemu-block

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"

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



^ permalink raw reply	[flat|nested] 86+ messages in thread

end of thread, other threads:[~2022-10-03 10:43 UTC | newest]

Thread overview: 86+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-27 11:05 [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
2022-09-27 11:05 ` [PATCH v4 01/54] tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable Bin Meng
2022-09-27 11:05 ` [PATCH v4 02/54] semihosting/arm-compat-semi: Avoid using hardcoded /tmp Bin Meng
2022-10-01  3:41   ` Bin Meng
2022-09-27 11:05 ` [PATCH v4 03/54] tcg: " Bin Meng
2022-10-01  3:42   ` Bin Meng
2022-09-27 11:05 ` [PATCH v4 04/54] util/qemu-sockets: Use g_get_tmp_dir() to get the directory for temporary files Bin Meng
2022-10-01  3:44   ` Bin Meng
2022-10-03 10:28     ` Daniel P. Berrangé
2022-09-27 11:05 ` [PATCH v4 05/54] tests/qtest: ahci-test: Avoid using hardcoded /tmp Bin Meng
2022-09-27 11:05 ` [PATCH v4 06/54] tests/qtest: aspeed_smc-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 07/54] tests/qtest: boot-serial-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 08/54] tests/qtest: cxl-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 09/54] tests/qtest: fdc-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 10/54] tests/qtest: generic_fuzz: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 11/54] tests/qtest: virtio_blk_fuzz: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 12/54] tests/qtest: hd-geo-test: " Bin Meng
2022-09-27 12:21   ` Thomas Huth
2022-09-27 11:05 ` [PATCH v4 13/54] tests/qtest: ide-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 14/54] tests/qtest: migration-test: " Bin Meng
2022-09-27 14:26   ` Marc-André Lureau
2022-09-27 11:05 ` [PATCH v4 15/54] tests/qtest: pflash-cfi02-test: " Bin Meng
2022-09-27 14:27   ` Marc-André Lureau
2022-09-27 11:05 ` [PATCH v4 16/54] tests/qtest: qmp-test: " Bin Meng
2022-09-27 14:27   ` Marc-André Lureau
2022-09-27 11:05 ` [PATCH v4 17/54] tests/qtest: vhost-user-blk-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 18/54] tests/qtest: vhost-user-test: " Bin Meng
2022-09-27 14:28   ` Marc-André Lureau
2022-09-27 11:05 ` [PATCH v4 19/54] tests/qtest: virtio-blk-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 20/54] tests/qtest: virtio-scsi-test: " Bin Meng
2022-09-27 11:05 ` [PATCH v4 21/54] tests/qtest: libqtest: " Bin Meng
2022-09-27 11:06 ` [PATCH v4 22/54] tests/unit: test-image-locking: " Bin Meng
2022-09-27 11:06 ` [PATCH v4 23/54] tests/unit: test-qga: " Bin Meng
2022-09-27 11:06 ` [PATCH v4 24/54] tests: vhost-user-bridge: " Bin Meng
2022-09-27 11:06 ` [PATCH v4 25/54] block/vvfat: Unify the mkdir() call Bin Meng
2022-10-01  3:46   ` Bin Meng
2022-09-27 11:06 ` [PATCH v4 26/54] fsdev/virtfs-proxy-helper: Use g_mkdir() Bin Meng
2022-10-01  3:48   ` Bin Meng
2022-10-01 12:12     ` Christian Schoenebeck
2022-09-27 11:06 ` [PATCH v4 27/54] hw/usb: dev-mtp: " Bin Meng
2022-10-01  3:49   ` Bin Meng
2022-09-27 11:06 ` [PATCH v4 28/54] tests/qtest: Skip running virtio-net-test cases that require socketpair() for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 29/54] tests/qtest: Build test-filter-{mirror, redirector} cases for posix only Bin Meng
2022-09-27 11:06 ` [PATCH v4 30/54] tests/qtest: qmp-test: Skip running test_qmp_oob for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 31/54] accel/qtest: Implement a portable qtest accelerator Bin Meng
2022-09-28  9:00   ` Thomas Huth
2022-09-27 11:06 ` [PATCH v4 32/54] tests/qtest: libqtest: Adapt global_qtest declaration for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 33/54] tests/qtest: Use send/recv for socket communication Bin Meng
2022-09-27 11:06 ` [PATCH v4 34/54] tests/qtest: libqtest: Exclude the *_fds APIs for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 35/54] tests/qtest: libqtest: Install signal handler via signal() Bin Meng
2022-09-28  9:42   ` Thomas Huth
2022-09-28  9:57     ` Bin Meng
2022-09-28 10:03       ` Thomas Huth
2022-09-27 11:06 ` [PATCH v4 36/54] tests/qtest: Support libqtest to build and run on Windows Bin Meng
2022-09-27 11:06 ` [PATCH v4 37/54] tests/qtest: {ahci, ide}-test: Use relative path for temporary files for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 38/54] tests/qtest: bios-tables-test: Adapt the case " Bin Meng
2022-09-27 11:06 ` [PATCH v4 39/54] tests/qtest: boot-serial-test: Close the serial file before starting QEMU Bin Meng
2022-09-27 14:29   ` Marc-André Lureau
2022-09-27 11:06 ` [PATCH v4 40/54] tests/qtest: ide-test: Open file in binary mode Bin Meng
2022-09-27 11:06 ` [PATCH v4 41/54] tests/qtest: microbit-test: Fix socket access for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 42/54] tests/qtest: migration-test: Disable IO redirection " Bin Meng
2022-09-27 11:06 ` [PATCH v4 43/54] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Bin Meng
2022-09-27 13:15   ` Marc-André Lureau
2022-09-27 13:21     ` Bin Meng
2022-09-27 14:23       ` Marc-André Lureau
2022-09-27 11:06 ` [PATCH v4 44/54] tests/qtest: virtio-net-failover: Disable migration tests for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 45/54] tests/qtest: libqtest: Replace the call to close a socket with closesocket() Bin Meng
2022-09-27 11:06 ` [PATCH v4 46/54] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 Bin Meng
2022-09-27 11:06 ` [PATCH v4 47/54] io/channel-watch: Drop a superfluous '#ifdef WIN32' Bin Meng
2022-09-27 11:06 ` [PATCH v4 48/54] io/channel-watch: Drop the unnecessary cast Bin Meng
2022-09-27 11:06 ` [PATCH v4 49/54] io/channel-watch: Fix socket watch on Windows Bin Meng
2022-09-27 11:06 ` [PATCH v4 50/54] tests/qtest: migration-test: Skip running some TLS cases for win32 Bin Meng
2022-09-27 14:32   ` Marc-André Lureau
2022-09-27 14:38     ` Bin Meng
2022-09-27 14:47       ` Marc-André Lureau
2022-09-27 11:06 ` [PATCH v4 51/54] .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes Bin Meng
2022-09-27 11:06 ` [PATCH v4 52/54] .gitlab-ci.d/windows.yml: Display meson test logs Bin Meng
2022-09-27 11:06 ` [PATCH v4 53/54] tests/qtest: Enable qtest build on Windows Bin Meng
2022-09-27 13:34   ` Thomas Huth
2022-09-27 11:06 ` [PATCH v4 54/54] docs/devel: testing: Document writing portable test cases Bin Meng
2022-09-27 13:36   ` Thomas Huth
2022-09-28 10:31 ` [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Thomas Huth
2022-09-28 15:24   ` Thomas Huth
2022-09-28 15:30     ` Daniel P. Berrangé
2022-10-03  9:25 ` Marc-André Lureau
2022-10-03 10:08   ` Bin Meng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.