All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 17/25] cirrus: Building freebsd in a single short
@ 2020-09-10 10:37 Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 18/25] tests: Convert g_free to g_autofree macro in test-logging.c Yonggang Luo
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P . Berrangé,
	Ed Maste, Michael Roth, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini, Li-Wen Hsu,
	Peter Lieven

This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba
("cirrus.yml: Split FreeBSD job into two parts").

freebsd 1 hour limit not hit anymore

I think we going to a wrong direction, I think there is some tests a stall the test runner,
please look at
https://cirrus-ci.com/task/5110577531977728
When its running properly, the consumed time are little, but when tests running too long,
look at the cpu usage, the cpu usage are nearly zero. doesn't consuming time.

And look at
https://cirrus-ci.com/task/6119341601062912

If the tests running properly, the time consuming are little
We should not hide the error by split them

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Ed Maste <emaste@FreeBSD.org>
---
 .cirrus.yml | 35 ++++++++---------------------------
 1 file changed, 8 insertions(+), 27 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 3dd9fcff7f..690c6882e8 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,38 +1,19 @@
 env:
   CIRRUS_CLONE_DEPTH: 1
 
-freebsd_1st_task:
+freebsd_12_task:
   freebsd_instance:
     image_family: freebsd-12-1
-    cpu: 4
-    memory: 4G
-  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y
-    bash curl cyrus-sasl git glib gmake gnutls gsed
-    nettle perl5 pixman pkgconf png usbredir
+    cpu: 8
+    memory: 8G
+  install_script:
+    - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ;
+    - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed 
+          nettle perl5 pixman pkgconf png usbredir
   script:
     - mkdir build
     - cd build
-    - ../configure --disable-user --target-list-exclude='alpha-softmmu
-        ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
-        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu'
-        --enable-werror || { cat config.log; exit 1; }
-    - gmake -j$(sysctl -n hw.ncpu)
-    - gmake -j$(sysctl -n hw.ncpu) check
-
-freebsd_2nd_task:
-  freebsd_instance:
-    image_family: freebsd-12-1
-    cpu: 4
-    memory: 4G
-  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y
-    bash curl cyrus-sasl git glib gmake gnutls gtk3 gsed libepoxy mesa-libs
-    nettle perl5 pixman pkgconf png SDL2 usbredir
-  script:
-    - ./configure --enable-werror --target-list='alpha-softmmu ppc64-softmmu
-        ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
-        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu
-        sparc-bsd-user sparc64-bsd-user x86_64-bsd-user i386-bsd-user'
-        || { cat config.log; exit 1; }
+    - ../configure --enable-werror || { cat config.log; exit 1; }
     - gmake -j$(sysctl -n hw.ncpu)
     - gmake -j$(sysctl -n hw.ncpu) check
 
-- 
2.28.0.windows.1



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

* [PATCH v7 18/25] tests: Convert g_free to g_autofree macro in test-logging.c
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 19/25] tests: Fixes test-io-channel-socket.c tests under msys2/mingw Yonggang Luo
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P . Berrangé,
	Ed Maste, Michael Roth, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini,
	Philippe Mathieu-Daudé,
	Li-Wen Hsu, Peter Lieven

g_autofree are prefer than g_free when possible.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/test-logging.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/test-logging.c b/tests/test-logging.c
index 8a1161de1d..783fe09a27 100644
--- a/tests/test-logging.c
+++ b/tests/test-logging.c
@@ -196,7 +196,7 @@ static void rmdir_full(gchar const *root)
 
 int main(int argc, char **argv)
 {
-    gchar *tmp_path = g_dir_make_tmp("qemu-test-logging.XXXXXX", NULL);
+    g_autofree gchar *tmp_path = g_dir_make_tmp("qemu-test-logging.XXXXXX", NULL);
     int rc;
 
     g_test_init(&argc, &argv, NULL);
@@ -212,6 +212,5 @@ int main(int argc, char **argv)
     rc = g_test_run();
 
     rmdir_full(tmp_path);
-    g_free(tmp_path);
     return rc;
 }
-- 
2.28.0.windows.1



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

* [PATCH v7 19/25] tests: Fixes test-io-channel-socket.c tests under msys2/mingw
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 18/25] tests: Convert g_free to g_autofree macro in test-logging.c Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 20/25] tests: fixes aio-win32 about aio_remove_fd_handler, get it consistence with aio-posix.c Yonggang Luo
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P . Berrangé,
	Ed Maste, Michael Roth, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini, Li-Wen Hsu,
	Peter Lieven

Currently test-io-channel-socket doesn't init with
qemu_init_main_loop
and that's cause the qemu_aio_context not inited,
and the following is the stack when null pointer accessed:

qemu_fd_register (c:\work\xemu\qemu\util\main-loop.c:336)
qemu_try_set_nonblock (c:\work\xemu\qemu\util\oslib-win32.c:224)
qemu_set_nonblock (c:\work\xemu\qemu\util\oslib-win32.c:230)
socket_can_bind_connect (c:\work\xemu\qemu\tests\socket-helpers.c:93)
socket_check_protocol_support (c:\work\xemu\qemu\tests\socket-helpers.c:141)
main (c:\work\xemu\qemu\tests\test-io-channel-socket.c:568)
__tmainCRTStartup (@__tmainCRTStartup:142)
mainCRTStartup (@1400014f6..140001539:3)
BaseThreadInitThunk (@BaseThreadInitThunk:9)
RtlUserThreadStart (@RtlUserThreadStart:12)

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/test-io-channel-socket.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/test-io-channel-socket.c b/tests/test-io-channel-socket.c
index d43083a766..743577d744 100644
--- a/tests/test-io-channel-socket.c
+++ b/tests/test-io-channel-socket.c
@@ -25,6 +25,7 @@
 #include "socket-helpers.h"
 #include "qapi/error.h"
 #include "qemu/module.h"
+#include "qemu/main-loop.h"
 
 
 static void test_io_channel_set_socket_bufs(QIOChannel *src,
@@ -556,6 +557,7 @@ int main(int argc, char **argv)
     bool has_ipv4, has_ipv6;
 
     module_call_init(MODULE_INIT_QOM);
+    qemu_init_main_loop(&error_abort);
     socket_init();
 
     g_test_init(&argc, &argv, NULL);
-- 
2.28.0.windows.1



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

* [PATCH v7 20/25] tests: fixes aio-win32 about aio_remove_fd_handler, get it consistence with aio-posix.c
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 18/25] tests: Convert g_free to g_autofree macro in test-logging.c Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 19/25] tests: Fixes test-io-channel-socket.c tests under msys2/mingw Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 21/25] tests: Fixes test-io-channel-file by mask only owner file state mask bits Yonggang Luo
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Paolo Bonzini,
	Li-Wen Hsu, Peter Lieven

This is a fixes for
(C:\work\xemu\qemu\build\tests\test-aio-multithread.exe:19100): GLib-CRITICAL **: 23:03:24.965: g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)' failed
ERROR test-aio-multithread - Bail out! GLib-FATAL-CRITICAL: g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)' failed

(C:\work\xemu\qemu\build\tests\test-bdrv-drain.exe:21036): GLib-CRITICAL **: 23:03:29.861: g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)' failed
ERROR test-bdrv-drain - Bail out! GLib-FATAL-CRITICAL: g_source_remove_poll: assertion '!SOURCE_DESTROYED (source)' failed

And the idea comes from https://patchwork.kernel.org/patch/9975239/

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 util/aio-win32.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/util/aio-win32.c b/util/aio-win32.c
index 953c56ab48..9899546a8a 100644
--- a/util/aio-win32.c
+++ b/util/aio-win32.c
@@ -37,6 +37,15 @@ struct AioHandler {
 
 static void aio_remove_fd_handler(AioContext *ctx, AioHandler *node)
 {
+    /* If the GSource is in the process of being destroyed then
+     * g_source_remove_poll() causes an assertion failure.  Skip
+     * removal in that case, because glib cleans up its state during
+     * destruction anyway.
+     */
+    if (!g_source_is_destroyed(&ctx->source)) {
+        g_source_remove_poll(&ctx->source, &node->pfd);
+    }
+
     /* If aio_poll is in progress, just mark the node as deleted */
     if (qemu_lockcnt_count(&ctx->list_lock)) {
         node->deleted = 1;
@@ -139,8 +148,6 @@ void aio_set_event_notifier(AioContext *ctx,
     /* Are we deleting the fd handler? */
     if (!io_notify) {
         if (node) {
-            g_source_remove_poll(&ctx->source, &node->pfd);
-
             aio_remove_fd_handler(ctx, node);
         }
     } else {
-- 
2.28.0.windows.1



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

* [PATCH v7 21/25] tests: Fixes test-io-channel-file by mask only owner file state mask bits
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (2 preceding siblings ...)
  2020-09-10 10:37 ` [PATCH v7 20/25] tests: fixes aio-win32 about aio_remove_fd_handler, get it consistence with aio-posix.c Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 22/25] tests: fix test-util-sockets.c Yonggang Luo
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Paolo Bonzini,
	Li-Wen Hsu, Peter Lieven

This is the error on msys2/mingw
Running test test-io-channel-file
**
ERROR:../tests/test-io-channel-file.c:59:test_io_channel_file_helper: assertion failed (TEST_MASK & ~mask == st.st_mode & 0777): (384 == 438)
ERROR test-io-channel-file - Bail out! ERROR:../tests/test-io-channel-file.c:59:test_io_channel_file_helper: assertion failed (TEST_MASK & ~mask == st.st_mode & 0777): (384 == 438)

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/test-io-channel-file.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/tests/test-io-channel-file.c b/tests/test-io-channel-file.c
index bac2b07562..1b0e8d7c1b 100644
--- a/tests/test-io-channel-file.c
+++ b/tests/test-io-channel-file.c
@@ -28,6 +28,12 @@
 #define TEST_FILE "tests/test-io-channel-file.txt"
 #define TEST_MASK 0600
 
+#ifdef _WIN32
+#define TEST_MASK_EXPECT 0700
+#else
+#define TEST_MASK_EXPECT 0777
+#endif
+
 static void test_io_channel_file_helper(int flags)
 {
     QIOChannel *src, *dst;
@@ -56,7 +62,9 @@ static void test_io_channel_file_helper(int flags)
     umask(mask);
     ret = stat(TEST_FILE, &st);
     g_assert_cmpint(ret, >, -1);
-    g_assert_cmpuint(TEST_MASK & ~mask, ==, st.st_mode & 0777);
+    /* On Windows the stat() function in the C library checks only
+     the FAT-style READONLY attribute and does not look at the ACL at all. */
+    g_assert_cmpuint(TEST_MASK & ~mask, ==, st.st_mode & TEST_MASK_EXPECT);
 
     unlink(TEST_FILE);
     object_unref(OBJECT(src));
-- 
2.28.0.windows.1



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

* [PATCH v7 22/25] tests: fix test-util-sockets.c
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (3 preceding siblings ...)
  2020-09-10 10:37 ` [PATCH v7 21/25] tests: Fixes test-io-channel-file by mask only owner file state mask bits Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 23/25] tests: Fixes test-qdev-global-props.c Yonggang Luo
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P . Berrangé,
	Ed Maste, Michael Roth, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini, Li-Wen Hsu,
	Peter Lieven

Fixes following errors:
Running test test-util-sockets
ERROR test-util-sockets - missing test plan

# Start of name tests
**
ERROR:../tests/test-util-sockets.c:93:test_socket_fd_pass_name_good: assertion failed (fd != -1): (-1 != -1)
Bail out! ERROR:../tests/test-util-sockets.c:93:test_socket_fd_pass_name_good: assertion failed (fd != -1): (-1 != -1)

First should call to qemu_init_main_loop before socket_init,
then on win32 doesn't support for SOCKET_ADDRESS_TYPE_FD socket type

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/test-util-sockets.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c
index af9f5c0c70..1bbb16d9b1 100644
--- a/tests/test-util-sockets.c
+++ b/tests/test-util-sockets.c
@@ -75,7 +75,7 @@ int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) { abort(); }
 void monitor_init_qmp(Chardev *chr, bool pretty, Error **errp) {}
 void monitor_init_hmp(Chardev *chr, bool use_readline, Error **errp) {}
 
-
+#ifndef _WIN32
 static void test_socket_fd_pass_name_good(void)
 {
     SocketAddress addr;
@@ -227,6 +227,7 @@ static void test_socket_fd_pass_num_nocli(void)
 
     g_free(addr.u.fd.str);
 }
+#endif
 
 #ifdef __linux__
 static gchar *abstract_sock_name;
@@ -321,6 +322,7 @@ int main(int argc, char **argv)
 {
     bool has_ipv4, has_ipv6;
 
+    qemu_init_main_loop(&error_abort);
     socket_init();
 
     g_test_init(&argc, &argv, NULL);
@@ -340,6 +342,7 @@ int main(int argc, char **argv)
                         test_fd_is_socket_bad);
         g_test_add_func("/util/socket/is-socket/good",
                         test_fd_is_socket_good);
+#ifndef _WIN32
         g_test_add_func("/socket/fd-pass/name/good",
                         test_socket_fd_pass_name_good);
         g_test_add_func("/socket/fd-pass/name/bad",
@@ -352,6 +355,7 @@ int main(int argc, char **argv)
                         test_socket_fd_pass_num_bad);
         g_test_add_func("/socket/fd-pass/num/nocli",
                         test_socket_fd_pass_num_nocli);
+#endif
     }
 
 #ifdef __linux__
-- 
2.28.0.windows.1



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

* [PATCH v7 23/25] tests: Fixes test-qdev-global-props.c
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (4 preceding siblings ...)
  2020-09-10 10:37 ` [PATCH v7 22/25] tests: fix test-util-sockets.c Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 24/25] rcu: fixes test-logging.c by call drain_call_rcu before rmdir_full Yonggang Luo
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P . Berrangé,
	Ed Maste, Michael Roth, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini, Li-Wen Hsu,
	Peter Lieven

On win32 the line ending are \r\n, so we skip the \n in function test_dynamic_globalprop

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/test-qdev-global-props.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c
index 1e6b0f33ff..d8762a9756 100644
--- a/tests/test-qdev-global-props.c
+++ b/tests/test-qdev-global-props.c
@@ -250,10 +250,10 @@ static void test_dynamic_globalprop(void)
     g_test_trap_assert_passed();
     g_test_trap_assert_stderr_unmatched("*prop1*");
     g_test_trap_assert_stderr_unmatched("*prop2*");
-    g_test_trap_assert_stderr("*warning: global dynamic-prop-type-bad.prop3 has invalid class name\n*");
+    g_test_trap_assert_stderr("*warning: global dynamic-prop-type-bad.prop3 has invalid class name*");
     g_test_trap_assert_stderr_unmatched("*prop4*");
-    g_test_trap_assert_stderr("*warning: global nohotplug-type.prop5=105 not used\n*");
-    g_test_trap_assert_stderr("*warning: global nondevice-type.prop6 has invalid class name\n*");
+    g_test_trap_assert_stderr("*warning: global nohotplug-type.prop5=105 not used*");
+    g_test_trap_assert_stderr("*warning: global nondevice-type.prop6 has invalid class name*");
     g_test_trap_assert_stdout("");
 }
 
-- 
2.28.0.windows.1



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

* [PATCH v7 24/25] rcu: fixes test-logging.c by call drain_call_rcu before rmdir_full
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (5 preceding siblings ...)
  2020-09-10 10:37 ` [PATCH v7 23/25] tests: Fixes test-qdev-global-props.c Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 10:37 ` [PATCH v7 25/25] ci: Enable msys2 ci in cirrus Yonggang Luo
  2020-09-10 14:18 ` [PATCH v7 17/25] cirrus: Building freebsd in a single short Thomas Huth
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Paolo Bonzini,
	Li-Wen Hsu, Peter Lieven

drain_call_rcu is necessary on win32, because under win32, if you
don't close the file before remove it, the remove would be fail.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/test-logging.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/test-logging.c b/tests/test-logging.c
index 783fe09a27..8b1522cfed 100644
--- a/tests/test-logging.c
+++ b/tests/test-logging.c
@@ -210,6 +210,8 @@ int main(int argc, char **argv)
                          tmp_path, test_logfile_lock);
 
     rc = g_test_run();
+    qemu_log_close();
+    drain_call_rcu();
 
     rmdir_full(tmp_path);
     return rc;
-- 
2.28.0.windows.1



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

* [PATCH v7 25/25] ci: Enable msys2 ci in cirrus
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (6 preceding siblings ...)
  2020-09-10 10:37 ` [PATCH v7 24/25] rcu: fixes test-logging.c by call drain_call_rcu before rmdir_full Yonggang Luo
@ 2020-09-10 10:37 ` Yonggang Luo
  2020-09-10 14:18 ` [PATCH v7 17/25] cirrus: Building freebsd in a single short Thomas Huth
  8 siblings, 0 replies; 12+ messages in thread
From: Yonggang Luo @ 2020-09-10 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P . Berrangé,
	Ed Maste, Michael Roth, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini, Li-Wen Hsu,
	Peter Lieven

Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699
The https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 need to be updated.
There is no need of --cross-prefix, open mingw64.exe instead of msys2.exe then we don't
need the --cross-prefix, besides we using environment variable settings:
    MSYS: winsymlinks:nativestrict
    MSYSTEM: MINGW64
    CHERE_INVOKING: 1
to opening mingw64 native shell.
We now running tests with make -i check to skip tests errors.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 .cirrus.yml | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/.cirrus.yml b/.cirrus.yml
index 690c6882e8..1ff9f0a72f 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -44,3 +44,63 @@ macos_xcode_task:
                    --enable-werror --cc=clang || { cat config.log; exit 1; }
     - gmake -j$(sysctl -n hw.ncpu)
     - gmake check
+
+windows_msys2_task:
+  windows_container:
+    image: cirrusci/windowsservercore:cmake
+    os_version: 2019
+    cpu: 8
+    memory: 8G
+  env:
+    MSYS: winsymlinks:nativestrict
+    MSYSTEM: MINGW64
+    CHERE_INVOKING: 1
+  printenv_script:
+    - C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
+  install_script:
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime"
+    - taskkill /F /IM gpg-agent.exe
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed
+        base-devel
+        git
+        mingw-w64-x86_64-python
+        mingw-w64-x86_64-python-setuptools
+        mingw-w64-x86_64-toolchain
+        mingw-w64-x86_64-SDL2
+        mingw-w64-x86_64-SDL2_image
+        mingw-w64-x86_64-gtk3
+        mingw-w64-x86_64-glib2
+        mingw-w64-x86_64-ninja
+        mingw-w64-x86_64-make
+        mingw-w64-x86_64-jemalloc
+        mingw-w64-x86_64-lzo2
+        mingw-w64-x86_64-zstd
+        mingw-w64-x86_64-libjpeg-turbo
+        mingw-w64-x86_64-pixman
+        mingw-w64-x86_64-libgcrypt
+        mingw-w64-x86_64-capstone
+        mingw-w64-x86_64-libpng
+        mingw-w64-x86_64-libssh
+        mingw-w64-x86_64-libxml2
+        mingw-w64-x86_64-snappy
+        mingw-w64-x86_64-libusb
+        mingw-w64-x86_64-usbredir
+        mingw-w64-x86_64-libtasn1
+        mingw-w64-x86_64-libnfs
+        mingw-w64-x86_64-nettle
+        mingw-w64-x86_64-cyrus-sasl
+        mingw-w64-x86_64-curl
+        mingw-w64-x86_64-gnutls
+        mingw-w64-x86_64-zstd"
+  script:
+    - C:\tools\msys64\usr\bin\bash.exe -lc "mkdir build"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && ../configure --python=python3 --ninja=ninja"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make -j$NUMBER_OF_PROCESSORS"
+  test_script:
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make V=1 check"
+
-- 
2.28.0.windows.1



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

* Re: [PATCH v7 17/25] cirrus: Building freebsd in a single short
  2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (7 preceding siblings ...)
  2020-09-10 10:37 ` [PATCH v7 25/25] ci: Enable msys2 ci in cirrus Yonggang Luo
@ 2020-09-10 14:18 ` Thomas Huth
  2020-09-10 17:30   ` 罗勇刚(Yonggang Luo)
  2020-09-10 18:00   ` Daniel P. Berrangé
  8 siblings, 2 replies; 12+ messages in thread
From: Thomas Huth @ 2020-09-10 14:18 UTC (permalink / raw)
  To: Yonggang Luo, qemu-devel
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Michael Roth, Markus Armbruster,
	Paolo Bonzini, Gerd Hoffmann, Wen Congyang,
	Daniel P . Berrangé,
	Max Reitz, Li-Wen Hsu, Peter Lieven

On 10/09/2020 12.37, Yonggang Luo wrote:
> This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba
> ("cirrus.yml: Split FreeBSD job into two parts").
> 
> freebsd 1 hour limit not hit anymore
> 
> I think we going to a wrong direction, I think there is some tests a stall the test runner,
> please look at
> https://cirrus-ci.com/task/5110577531977728
> When its running properly, the consumed time are little, but when tests running too long,
> look at the cpu usage, the cpu usage are nearly zero. doesn't consuming time.
> 
> And look at
> https://cirrus-ci.com/task/6119341601062912
> 
> If the tests running properly, the time consuming are little
> We should not hide the error by split them

Ok, but before we merge this patch, I'd like to understand (and fix if
necessary) what is/was causing the slowdowns. Otherwise we'll continue
to see failing CI runs, which is very annoying.

 Thomas



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

* Re: [PATCH v7 17/25] cirrus: Building freebsd in a single short
  2020-09-10 14:18 ` [PATCH v7 17/25] cirrus: Building freebsd in a single short Thomas Huth
@ 2020-09-10 17:30   ` 罗勇刚(Yonggang Luo)
  2020-09-10 18:00   ` Daniel P. Berrangé
  1 sibling, 0 replies; 12+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-10 17:30 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Paolo Bonzini,
	Gerd Hoffmann, Wen Congyang, Daniel P . Berrangé,
	Max Reitz, Li-Wen Hsu, Markus Armbruster, Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 1313 bytes --]

On Thu, Sep 10, 2020 at 10:18 PM Thomas Huth <thuth@redhat.com> wrote:

> On 10/09/2020 12.37, Yonggang Luo wrote:
> > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba
> > ("cirrus.yml: Split FreeBSD job into two parts").
> >
> > freebsd 1 hour limit not hit anymore
> >
> > I think we going to a wrong direction, I think there is some tests a
> stall the test runner,
> > please look at
> > https://cirrus-ci.com/task/5110577531977728
> > When its running properly, the consumed time are little, but when tests
> running too long,
> > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming
> time.
> >
> > And look at
> > https://cirrus-ci.com/task/6119341601062912
> >
> > If the tests running properly, the time consuming are little
> > We should not hide the error by split them
>
> Ok, but before we merge this patch, I'd like to understand (and fix if
> necessary) what is/was causing the slowdowns. Otherwise we'll continue
> to see failing CI runs, which is very annoying.
>
> Then I need to apply your idea first, but I found
make check are rather slow without the make -j8 check.
And even make V=1 check would be slightly slower than make check.


>  Thomas
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 2173 bytes --]

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

* Re: [PATCH v7 17/25] cirrus: Building freebsd in a single short
  2020-09-10 14:18 ` [PATCH v7 17/25] cirrus: Building freebsd in a single short Thomas Huth
  2020-09-10 17:30   ` 罗勇刚(Yonggang Luo)
@ 2020-09-10 18:00   ` Daniel P. Berrangé
  1 sibling, 0 replies; 12+ messages in thread
From: Daniel P. Berrangé @ 2020-09-10 18:00 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-devel, Michael Roth, Yonggang Luo,
	Gerd Hoffmann, Wen Congyang, Paolo Bonzini, Max Reitz,
	Li-Wen Hsu, Markus Armbruster, Peter Lieven

On Thu, Sep 10, 2020 at 04:18:10PM +0200, Thomas Huth wrote:
> On 10/09/2020 12.37, Yonggang Luo wrote:
> > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba
> > ("cirrus.yml: Split FreeBSD job into two parts").
> > 
> > freebsd 1 hour limit not hit anymore
> > 
> > I think we going to a wrong direction, I think there is some tests a stall the test runner,
> > please look at
> > https://cirrus-ci.com/task/5110577531977728
> > When its running properly, the consumed time are little, but when tests running too long,
> > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming time.
> > 
> > And look at
> > https://cirrus-ci.com/task/6119341601062912
> > 
> > If the tests running properly, the time consuming are little
> > We should not hide the error by split them
> 
> Ok, but before we merge this patch, I'd like to understand (and fix if
> necessary) what is/was causing the slowdowns. Otherwise we'll continue
> to see failing CI runs, which is very annoying.

I think we need the test harness to print out the time duration for
each test in order to stand a chance of find the slow one.

A hack like this could be sufficient:

diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py
index 9cbb2e374d..9103ae65b9 100644
--- a/scripts/mtest2make.py
+++ b/scripts/mtest2make.py
@@ -20,7 +20,7 @@ print('''
 SPEED = quick
 
 # $1 = environment, $2 = test command, $3 = test name, $4 = dir
-.test-human-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only)
+.test-human-tap = export then=`date +%s` ; $1 $(if $4,(cd $4 && $2),$2) < /dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only) ; export now=`date +%s` ; delta=`expr $$now - $$then` ; $(if $(V),echo "TIME $$delta seconds",true)
 .test-human-exitcode = $1 $(PYTHON) scripts/test-driver.py $(if $4,-C$4) $(if $(V),--verbose) -- $2 < /dev/null
 .test-tap-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | sed "s/^[a-z][a-z]* [0-9]*/& $3/" || true
 .test-tap-exitcode = printf "%s\\n" 1..1 "`$1 $(if $4,(cd $4 && $2),$2) < /dev/null > /dev/null || echo "not "`ok 1 $3"


not sure if there is a nicer way todo this but itworks ok for make check-unit
at least


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



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

end of thread, other threads:[~2020-09-10 18:06 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-10 10:37 [PATCH v7 17/25] cirrus: Building freebsd in a single short Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 18/25] tests: Convert g_free to g_autofree macro in test-logging.c Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 19/25] tests: Fixes test-io-channel-socket.c tests under msys2/mingw Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 20/25] tests: fixes aio-win32 about aio_remove_fd_handler, get it consistence with aio-posix.c Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 21/25] tests: Fixes test-io-channel-file by mask only owner file state mask bits Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 22/25] tests: fix test-util-sockets.c Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 23/25] tests: Fixes test-qdev-global-props.c Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 24/25] rcu: fixes test-logging.c by call drain_call_rcu before rmdir_full Yonggang Luo
2020-09-10 10:37 ` [PATCH v7 25/25] ci: Enable msys2 ci in cirrus Yonggang Luo
2020-09-10 14:18 ` [PATCH v7 17/25] cirrus: Building freebsd in a single short Thomas Huth
2020-09-10 17:30   ` 罗勇刚(Yonggang Luo)
2020-09-10 18:00   ` Daniel P. Berrangé

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.