qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Few fixes I found when building QEMU with Rust
@ 2025-08-01 14:59 Martin Kletzander
  2025-08-01 14:59 ` [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro Martin Kletzander
  2025-08-01 14:59 ` [PATCH 2/2] tests/qemu-iotests: Indent expected error messages Martin Kletzander
  0 siblings, 2 replies; 15+ messages in thread
From: Martin Kletzander @ 2025-08-01 14:59 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-block, Manos Pitsidianakis, Paolo Bonzini, qemu-rust,
	Hanna Reitz, Kevin Wolf

I'm fairly sure the first one is alright, but I must admit I have no idea why is
the second patch needed on my system.

For both patches, please take them with a grain of salt and feel free to prove
me wrong with anything.

This used to be a bigger series until I rebased on top of Paolo's rust-next
branch and basically got half of it for free.  That's why these unrelated
patches are bundled in a "series".

Martin Kletzander (2):
  rust: Add antoher variant for impl_vmstate_struct! macro
  tests/qemu-iotests: Indent expected error messages

 rust/qemu-api/src/vmstate.rs         | 11 +++++++++++
 rust/qemu-api/tests/vmstate_tests.rs |  1 +
 tests/qemu-iotests/039.out           | 10 +++++-----
 tests/qemu-iotests/061.out           |  4 ++--
 tests/qemu-iotests/137.out           |  2 +-
 5 files changed, 20 insertions(+), 8 deletions(-)

-- 
2.50.1



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

* [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro
  2025-08-01 14:59 [PATCH 0/2] Few fixes I found when building QEMU with Rust Martin Kletzander
@ 2025-08-01 14:59 ` Martin Kletzander
  2025-08-01 21:44   ` Paolo Bonzini
  2025-08-01 14:59 ` [PATCH 2/2] tests/qemu-iotests: Indent expected error messages Martin Kletzander
  1 sibling, 1 reply; 15+ messages in thread
From: Martin Kletzander @ 2025-08-01 14:59 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-block, Manos Pitsidianakis, Paolo Bonzini, qemu-rust,
	Hanna Reitz, Kevin Wolf

From: Martin Kletzander <mkletzan@redhat.com>

In some cases (e.g. in vmstate_tests.rs) the second argument to
impl_vmstate_struct! is actually an existing struct which is then
copied (since VMStateDescription implements Copy) when saved into the
static VMSD using .get().  That is not a problem because it is part of
the data segment and the pointers are not being free'd since they point
to static data.  But it is a problem when tests rely on comparing the
VMState descriptions as pointers rather than contents.  And it also
wastes space, more or less.

Introduce second variant of the macro which can, instead of the
expression, take an identifier or what looks like a reference.  This
second variant is added before the current variant so that it has
preference, and only references the existing static data from it.

This way tests are fixed and space is saved.

And now that the VMStateDescription checking is fixed we can also check
for the right value in test_vmstate_struct_varray_uint8_wrapper().

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
I'm not sure whether this is caused by different utility on my system or bash
version or whatever, but without this patch these three tests fail for me and
this patch fixes it.

 rust/qemu-api/src/vmstate.rs         | 11 +++++++++++
 rust/qemu-api/tests/vmstate_tests.rs |  1 +
 2 files changed, 12 insertions(+)

diff --git a/rust/qemu-api/src/vmstate.rs b/rust/qemu-api/src/vmstate.rs
index b5c6b764fbba..716e52afe740 100644
--- a/rust/qemu-api/src/vmstate.rs
+++ b/rust/qemu-api/src/vmstate.rs
@@ -449,6 +449,17 @@ macro_rules! vmstate_validate {
 /// description of the struct.
 #[macro_export]
 macro_rules! impl_vmstate_struct {
+    ($type:ty, $(&)?$vmsd:ident) => {
+        unsafe impl $crate::vmstate::VMState for $type {
+            const BASE: $crate::bindings::VMStateField =
+                $crate::bindings::VMStateField {
+                    vmsd: $vmsd.as_ref(),
+                    size: ::core::mem::size_of::<$type>(),
+                    flags: $crate::bindings::VMStateFlags::VMS_STRUCT,
+                    ..$crate::zeroable::Zeroable::ZERO
+                };
+        }
+    };
     ($type:ty, $vmsd:expr) => {
         unsafe impl $crate::vmstate::VMState for $type {
             const BASE: $crate::bindings::VMStateField = {
diff --git a/rust/qemu-api/tests/vmstate_tests.rs b/rust/qemu-api/tests/vmstate_tests.rs
index 2c0670ba0eed..7d3180e6c2ea 100644
--- a/rust/qemu-api/tests/vmstate_tests.rs
+++ b/rust/qemu-api/tests/vmstate_tests.rs
@@ -320,6 +320,7 @@ fn test_vmstate_struct_varray_uint8_wrapper() {
         b"arr_a_wrap\0"
     );
     assert_eq!(foo_fields[5].num_offset, 228);
+    assert_eq!(foo_fields[5].vmsd, VMSTATE_FOOA.as_ref());
     assert!(unsafe { foo_fields[5].field_exists.unwrap()(foo_b_p, 0) });
 
     // The last VMStateField in VMSTATE_FOOB.
-- 
2.50.1



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

* [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-01 14:59 [PATCH 0/2] Few fixes I found when building QEMU with Rust Martin Kletzander
  2025-08-01 14:59 ` [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro Martin Kletzander
@ 2025-08-01 14:59 ` Martin Kletzander
  2025-08-01 15:48   ` Daniel P. Berrangé
  1 sibling, 1 reply; 15+ messages in thread
From: Martin Kletzander @ 2025-08-01 14:59 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-block, Manos Pitsidianakis, Paolo Bonzini, qemu-rust,
	Hanna Reitz, Kevin Wolf

From: Martin Kletzander <mkletzan@redhat.com>

When running all tests the expected "killed" messages are indented
differently than the actual ones, by three more spaces.  Change it so
that the messages match and tests pass.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
 tests/qemu-iotests/039.out | 10 +++++-----
 tests/qemu-iotests/061.out |  4 ++--
 tests/qemu-iotests/137.out |  2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/tests/qemu-iotests/039.out b/tests/qemu-iotests/039.out
index e52484d4be1b..87809c534ba3 100644
--- a/tests/qemu-iotests/039.out
+++ b/tests/qemu-iotests/039.out
@@ -11,7 +11,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     [0]
 ERROR cluster 5 refcount=0 reference=1
 ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
@@ -46,7 +46,7 @@ read 512/512 bytes at offset 0
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     [0]
 ERROR cluster 5 refcount=0 reference=1
 Rebuilding refcount structure
@@ -60,7 +60,7 @@ incompatible_features     []
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     []
 No errors were found on the image.
 
@@ -79,7 +79,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     [0]
 ERROR cluster 5 refcount=0 reference=1
 ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
@@ -89,7 +89,7 @@ Data may be corrupted, or further writes to the image may corrupt it.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     []
 No errors were found on the image.
 *** done
diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out
index 24c33add7ce6..ae4c0d37bbbe 100644
--- a/tests/qemu-iotests/061.out
+++ b/tests/qemu-iotests/061.out
@@ -118,7 +118,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 wrote 131072/131072 bytes at offset 0
 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 magic                     0x514649fb
 version                   3
 backing_file_offset       0x0
@@ -304,7 +304,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 wrote 131072/131072 bytes at offset 0
 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 magic                     0x514649fb
 version                   3
 backing_file_offset       0x0
diff --git a/tests/qemu-iotests/137.out b/tests/qemu-iotests/137.out
index 86377c80cde6..f3b12fbb04b0 100644
--- a/tests/qemu-iotests/137.out
+++ b/tests/qemu-iotests/137.out
@@ -35,7 +35,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 OK: Dirty bit not set
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off'
-- 
2.50.1



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

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-01 14:59 ` [PATCH 2/2] tests/qemu-iotests: Indent expected error messages Martin Kletzander
@ 2025-08-01 15:48   ` Daniel P. Berrangé
  2025-08-01 19:09     ` Fabiano Rosas
  0 siblings, 1 reply; 15+ messages in thread
From: Daniel P. Berrangé @ 2025-08-01 15:48 UTC (permalink / raw)
  To: Martin Kletzander
  Cc: qemu-devel, qemu-block, Manos Pitsidianakis, Paolo Bonzini,
	qemu-rust, Hanna Reitz, Kevin Wolf

On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
> From: Martin Kletzander <mkletzan@redhat.com>
> 
> When running all tests the expected "killed" messages are indented
> differently than the actual ones, by three more spaces.  Change it so
> that the messages match and tests pass.

This would break the tests on my system and CI too.

What distro are you seeing this on ?

I'm guessing this is a different in either valgrind or C library ?

> 
> Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
> ---
>  tests/qemu-iotests/039.out | 10 +++++-----
>  tests/qemu-iotests/061.out |  4 ++--
>  tests/qemu-iotests/137.out |  2 +-
>  3 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/qemu-iotests/039.out b/tests/qemu-iotests/039.out
> index e52484d4be1b..87809c534ba3 100644
> --- a/tests/qemu-iotests/039.out
> +++ b/tests/qemu-iotests/039.out
> @@ -11,7 +11,7 @@ No errors were found on the image.
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
>  wrote 512/512 bytes at offset 0
>  512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  incompatible_features     [0]
>  ERROR cluster 5 refcount=0 reference=1
>  ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
> @@ -46,7 +46,7 @@ read 512/512 bytes at offset 0
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
>  wrote 512/512 bytes at offset 0
>  512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  incompatible_features     [0]
>  ERROR cluster 5 refcount=0 reference=1
>  Rebuilding refcount structure
> @@ -60,7 +60,7 @@ incompatible_features     []
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
>  wrote 512/512 bytes at offset 0
>  512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  incompatible_features     []
>  No errors were found on the image.
>  
> @@ -79,7 +79,7 @@ No errors were found on the image.
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
>  wrote 512/512 bytes at offset 0
>  512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  incompatible_features     [0]
>  ERROR cluster 5 refcount=0 reference=1
>  ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
> @@ -89,7 +89,7 @@ Data may be corrupted, or further writes to the image may corrupt it.
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
>  wrote 512/512 bytes at offset 0
>  512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  incompatible_features     []
>  No errors were found on the image.
>  *** done
> diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out
> index 24c33add7ce6..ae4c0d37bbbe 100644
> --- a/tests/qemu-iotests/061.out
> +++ b/tests/qemu-iotests/061.out
> @@ -118,7 +118,7 @@ No errors were found on the image.
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
>  wrote 131072/131072 bytes at offset 0
>  128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  magic                     0x514649fb
>  version                   3
>  backing_file_offset       0x0
> @@ -304,7 +304,7 @@ No errors were found on the image.
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
>  wrote 131072/131072 bytes at offset 0
>  128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  magic                     0x514649fb
>  version                   3
>  backing_file_offset       0x0
> diff --git a/tests/qemu-iotests/137.out b/tests/qemu-iotests/137.out
> index 86377c80cde6..f3b12fbb04b0 100644
> --- a/tests/qemu-iotests/137.out
> +++ b/tests/qemu-iotests/137.out
> @@ -35,7 +35,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
>  qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all
>  wrote 512/512 bytes at offset 0
>  512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> +./common.rc: Killed                     ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>  OK: Dirty bit not set
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
>  qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off'
> -- 
> 2.50.1
> 
> 

With 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	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-01 15:48   ` Daniel P. Berrangé
@ 2025-08-01 19:09     ` Fabiano Rosas
  2025-08-04  8:20       ` Martin Kletzander
  2025-08-04 11:33       ` Kevin Wolf
  0 siblings, 2 replies; 15+ messages in thread
From: Fabiano Rosas @ 2025-08-01 19:09 UTC (permalink / raw)
  To: Daniel P. Berrangé, Martin Kletzander
  Cc: qemu-devel, qemu-block, Manos Pitsidianakis, Paolo Bonzini,
	qemu-rust, Hanna Reitz, Kevin Wolf

Daniel P. Berrangé <berrange@redhat.com> writes:

> On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
>> From: Martin Kletzander <mkletzan@redhat.com>
>> 
>> When running all tests the expected "killed" messages are indented
>> differently than the actual ones, by three more spaces.  Change it so
>> that the messages match and tests pass.
>
> This would break the tests on my system and CI too.
>
> What distro are you seeing this on ?
>
> I'm guessing this is a different in either valgrind or C library ?
>

It's bash, we have an open issue about it:

https://gitlab.com/qemu-project/qemu/-/issues/3050



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

* Re: [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro
  2025-08-01 14:59 ` [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro Martin Kletzander
@ 2025-08-01 21:44   ` Paolo Bonzini
  2025-08-04  8:56     ` Martin Kletzander
  0 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2025-08-01 21:44 UTC (permalink / raw)
  To: Martin Kletzander
  Cc: qemu-devel, open list:Block layer core, Manos Pitsidianakis,
	qemu-rust, Hanna Reitz, Kevin Wolf

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

Il ven 1 ago 2025, 17:00 Martin Kletzander <mkletzan@redhat.com> ha scritto:

> From: Martin Kletzander <mkletzan@redhat.com>
>
> In some cases (e.g. in vmstate_tests.rs) the second argument to
> impl_vmstate_struct! is actually an existing struct which is then
> copied (since VMStateDescription implements Copy) when saved into the
> static VMSD using .get().  That is not a problem because it is part of
> the data segment and the pointers are not being free'd since they point
> to static data.  But it is a problem when tests rely on comparing the
> VMState descriptions as pointers rather than contents.  And it also
> wastes space, more or less.
>
> Introduce second variant of the macro which can, instead of the
> expression, take an identifier or what looks like a reference.  This
> second variant is added before the current variant so that it has
> preference, and only references the existing static data from it.
>
> This way tests are fixed and space is saved.
>
> And now that the VMStateDescription checking is fixed we can also check
> for the right value in test_vmstate_struct_varray_uint8_wrapper().
>
> Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
> ---
> I'm not sure whether this is caused by different utility on my system or
> bash
> version or whatever, but without this patch these three tests fail for me
> and
> this patch fixes it.
>

I found something similar, though I wasn't sure if it was broken in master
as well or only in the rust-next branch.

If that works in master as well, I would remove completely the possibility
of using &FOO, and always use .as_ref(). It's more efficient as you said,
and there's no reason that I know to use the less efficient one.

Paolo

 rust/qemu-api/src/vmstate.rs         | 11 +++++++++++
>  rust/qemu-api/tests/vmstate_tests.rs |  1 +
>  2 files changed, 12 insertions(+)
>
> diff --git a/rust/qemu-api/src/vmstate.rs b/rust/qemu-api/src/vmstate.rs
> index b5c6b764fbba..716e52afe740 100644
> --- a/rust/qemu-api/src/vmstate.rs
> +++ b/rust/qemu-api/src/vmstate.rs
> @@ -449,6 +449,17 @@ macro_rules! vmstate_validate {
>  /// description of the struct.
>  #[macro_export]
>  macro_rules! impl_vmstate_struct {
> +    ($type:ty, $(&)?$vmsd:ident) => {
> +        unsafe impl $crate::vmstate::VMState for $type {
> +            const BASE: $crate::bindings::VMStateField =
> +                $crate::bindings::VMStateField {
> +                    vmsd: $vmsd.as_ref(),
> +                    size: ::core::mem::size_of::<$type>(),
> +                    flags: $crate::bindings::VMStateFlags::VMS_STRUCT,
> +                    ..$crate::zeroable::Zeroable::ZERO
> +                };
> +        }
> +    };
>      ($type:ty, $vmsd:expr) => {
>          unsafe impl $crate::vmstate::VMState for $type {
>              const BASE: $crate::bindings::VMStateField = {
> diff --git a/rust/qemu-api/tests/vmstate_tests.rs b/rust/qemu-api/tests/
> vmstate_tests.rs
> index 2c0670ba0eed..7d3180e6c2ea 100644
> --- a/rust/qemu-api/tests/vmstate_tests.rs
> +++ b/rust/qemu-api/tests/vmstate_tests.rs
> @@ -320,6 +320,7 @@ fn test_vmstate_struct_varray_uint8_wrapper() {
>          b"arr_a_wrap\0"
>      );
>      assert_eq!(foo_fields[5].num_offset, 228);
> +    assert_eq!(foo_fields[5].vmsd, VMSTATE_FOOA.as_ref());
>      assert!(unsafe { foo_fields[5].field_exists.unwrap()(foo_b_p, 0) });
>
>      // The last VMStateField in VMSTATE_FOOB.
> --
> 2.50.1
>
>

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

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

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-01 19:09     ` Fabiano Rosas
@ 2025-08-04  8:20       ` Martin Kletzander
  2025-08-04 11:33       ` Kevin Wolf
  1 sibling, 0 replies; 15+ messages in thread
From: Martin Kletzander @ 2025-08-04  8:20 UTC (permalink / raw)
  To: Fabiano Rosas
  Cc: Daniel P. Berrangé, qemu-devel, qemu-block,
	Manos Pitsidianakis, Paolo Bonzini, qemu-rust, Hanna Reitz,
	Kevin Wolf

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

On Fri, Aug 01, 2025 at 04:09:34PM -0300, Fabiano Rosas wrote:
>Daniel P. Berrangé <berrange@redhat.com> writes:
>
>> On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
>>> From: Martin Kletzander <mkletzan@redhat.com>
>>>
>>> When running all tests the expected "killed" messages are indented
>>> differently than the actual ones, by three more spaces.  Change it so
>>> that the messages match and tests pass.
>>
>> This would break the tests on my system and CI too.
>>
>> What distro are you seeing this on ?
>>
>> I'm guessing this is a different in either valgrind or C library ?
>>
>
>It's bash, we have an open issue about it:
>
>https://gitlab.com/qemu-project/qemu/-/issues/3050
>

Ah, good to know, thanks.  That's what I suspected, but haven't thought of
checking gitlab issues.  Sorry for the noise.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro
  2025-08-01 21:44   ` Paolo Bonzini
@ 2025-08-04  8:56     ` Martin Kletzander
  2025-08-04 10:08       ` Paolo Bonzini
  0 siblings, 1 reply; 15+ messages in thread
From: Martin Kletzander @ 2025-08-04  8:56 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: qemu-devel, open list:Block layer core, Manos Pitsidianakis,
	qemu-rust, Hanna Reitz, Kevin Wolf

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

On Fri, Aug 01, 2025 at 11:44:03PM +0200, Paolo Bonzini wrote:
>Il ven 1 ago 2025, 17:00 Martin Kletzander <mkletzan@redhat.com> ha scritto:
>
>> From: Martin Kletzander <mkletzan@redhat.com>
>>
>> In some cases (e.g. in vmstate_tests.rs) the second argument to
>> impl_vmstate_struct! is actually an existing struct which is then
>> copied (since VMStateDescription implements Copy) when saved into the
>> static VMSD using .get().  That is not a problem because it is part of
>> the data segment and the pointers are not being free'd since they point
>> to static data.  But it is a problem when tests rely on comparing the
>> VMState descriptions as pointers rather than contents.  And it also
>> wastes space, more or less.
>>
>> Introduce second variant of the macro which can, instead of the
>> expression, take an identifier or what looks like a reference.  This
>> second variant is added before the current variant so that it has
>> preference, and only references the existing static data from it.
>>
>> This way tests are fixed and space is saved.
>>
>> And now that the VMStateDescription checking is fixed we can also check
>> for the right value in test_vmstate_struct_varray_uint8_wrapper().
>>
>> Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
>> ---
>> I'm not sure whether this is caused by different utility on my system or
>> bash
>> version or whatever, but without this patch these three tests fail for me
>> and
>> this patch fixes it.
>>
>
>I found something similar, though I wasn't sure if it was broken in master
>as well or only in the rust-next branch.
>

It is not broken on master, but it *was* broken on rust-next.

>If that works in master as well, I would remove completely the possibility
>of using &FOO, and always use .as_ref(). It's more efficient as you said,
>and there's no reason that I know to use the less efficient one.
>

That would mean that you cannot do what's done in e.g. pl011

impl_vmstate_struct!(
     PL011Registers,
     VMStateDescriptionBuilder::<PL011Registers>::new()
     ...
     .build()
);

requiring you to always do:

static/const VMSTATE_PL011_REGISTERS: VMStateDescription<PL011Registers> =
     VMStateDescriptionBuilder::<PL011Registers>::new()
     ...
     .build();

impl_vmstate_struct!(PL011Registers, VMSTATE_PL011_REGISTERS);

*BUT* of course I had to rebase the patches on top of current rust-next
on Friday and there were some of your commits from Thursday which I now
see actually fix all what I tried fixing before as well.  I tried
finding the previous commit on which I saw all the issues and after some
rebuilding I could not.  So it is now not even broken on rust-next.

This way I completely wasted your time, but at least learned something
that's happening in the code.  Sorry for that.

Martin

>Paolo
>
> rust/qemu-api/src/vmstate.rs         | 11 +++++++++++
>>  rust/qemu-api/tests/vmstate_tests.rs |  1 +
>>  2 files changed, 12 insertions(+)
>>
>> diff --git a/rust/qemu-api/src/vmstate.rs b/rust/qemu-api/src/vmstate.rs
>> index b5c6b764fbba..716e52afe740 100644
>> --- a/rust/qemu-api/src/vmstate.rs
>> +++ b/rust/qemu-api/src/vmstate.rs
>> @@ -449,6 +449,17 @@ macro_rules! vmstate_validate {
>>  /// description of the struct.
>>  #[macro_export]
>>  macro_rules! impl_vmstate_struct {
>> +    ($type:ty, $(&)?$vmsd:ident) => {
>> +        unsafe impl $crate::vmstate::VMState for $type {
>> +            const BASE: $crate::bindings::VMStateField =
>> +                $crate::bindings::VMStateField {
>> +                    vmsd: $vmsd.as_ref(),
>> +                    size: ::core::mem::size_of::<$type>(),
>> +                    flags: $crate::bindings::VMStateFlags::VMS_STRUCT,
>> +                    ..$crate::zeroable::Zeroable::ZERO
>> +                };
>> +        }
>> +    };
>>      ($type:ty, $vmsd:expr) => {
>>          unsafe impl $crate::vmstate::VMState for $type {
>>              const BASE: $crate::bindings::VMStateField = {
>> diff --git a/rust/qemu-api/tests/vmstate_tests.rs b/rust/qemu-api/tests/
>> vmstate_tests.rs
>> index 2c0670ba0eed..7d3180e6c2ea 100644
>> --- a/rust/qemu-api/tests/vmstate_tests.rs
>> +++ b/rust/qemu-api/tests/vmstate_tests.rs
>> @@ -320,6 +320,7 @@ fn test_vmstate_struct_varray_uint8_wrapper() {
>>          b"arr_a_wrap\0"
>>      );
>>      assert_eq!(foo_fields[5].num_offset, 228);
>> +    assert_eq!(foo_fields[5].vmsd, VMSTATE_FOOA.as_ref());
>>      assert!(unsafe { foo_fields[5].field_exists.unwrap()(foo_b_p, 0) });
>>
>>      // The last VMStateField in VMSTATE_FOOB.
>> --
>> 2.50.1
>>
>>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro
  2025-08-04  8:56     ` Martin Kletzander
@ 2025-08-04 10:08       ` Paolo Bonzini
  2025-08-04 12:04         ` Martin Kletzander
  0 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2025-08-04 10:08 UTC (permalink / raw)
  To: Martin Kletzander
  Cc: qemu-devel, open list:Block layer core, Manos Pitsidianakis,
	qemu-rust, Hanna Reitz, Kevin Wolf

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

Il lun 4 ago 2025, 10:56 Martin Kletzander <mkletzan@redhat.com> ha scritto:

> *BUT* of course I had to rebase the patches on top of current rust-next
> on Friday and there were some of your commits from Thursday which I now
> see actually fix all what I tried fixing before as well.  I tried
> finding the previous commit on which I saw all the issues and after some
> rebuilding I could not.  So it is now not even broken on rust-next.
>
> This way I completely wasted your time, but at least learned something
> that's happening in the code.  Sorry for that.
>

Uh no you didn't. It was broken.

Paolo

Martin
>
> >Paolo
> >
> > rust/qemu-api/src/vmstate.rs         | 11 +++++++++++
> >>  rust/qemu-api/tests/vmstate_tests.rs |  1 +
> >>  2 files changed, 12 insertions(+)
> >>
> >> diff --git a/rust/qemu-api/src/vmstate.rs b/rust/qemu-api/src/
> vmstate.rs
> >> index b5c6b764fbba..716e52afe740 100644
> >> --- a/rust/qemu-api/src/vmstate.rs
> >> +++ b/rust/qemu-api/src/vmstate.rs
> >> @@ -449,6 +449,17 @@ macro_rules! vmstate_validate {
> >>  /// description of the struct.
> >>  #[macro_export]
> >>  macro_rules! impl_vmstate_struct {
> >> +    ($type:ty, $(&)?$vmsd:ident) => {
> >> +        unsafe impl $crate::vmstate::VMState for $type {
> >> +            const BASE: $crate::bindings::VMStateField =
> >> +                $crate::bindings::VMStateField {
> >> +                    vmsd: $vmsd.as_ref(),
> >> +                    size: ::core::mem::size_of::<$type>(),
> >> +                    flags: $crate::bindings::VMStateFlags::VMS_STRUCT,
> >> +                    ..$crate::zeroable::Zeroable::ZERO
> >> +                };
> >> +        }
> >> +    };
> >>      ($type:ty, $vmsd:expr) => {
> >>          unsafe impl $crate::vmstate::VMState for $type {
> >>              const BASE: $crate::bindings::VMStateField = {
> >> diff --git a/rust/qemu-api/tests/vmstate_tests.rs
> b/rust/qemu-api/tests/
> >> vmstate_tests.rs
> >> index 2c0670ba0eed..7d3180e6c2ea 100644
> >> --- a/rust/qemu-api/tests/vmstate_tests.rs
> >> +++ b/rust/qemu-api/tests/vmstate_tests.rs
> >> @@ -320,6 +320,7 @@ fn test_vmstate_struct_varray_uint8_wrapper() {
> >>          b"arr_a_wrap\0"
> >>      );
> >>      assert_eq!(foo_fields[5].num_offset, 228);
> >> +    assert_eq!(foo_fields[5].vmsd, VMSTATE_FOOA.as_ref());
> >>      assert!(unsafe { foo_fields[5].field_exists.unwrap()(foo_b_p, 0)
> });
> >>
> >>      // The last VMStateField in VMSTATE_FOOB.
> >> --
> >> 2.50.1
> >>
> >>
>

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

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

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-01 19:09     ` Fabiano Rosas
  2025-08-04  8:20       ` Martin Kletzander
@ 2025-08-04 11:33       ` Kevin Wolf
  2025-08-06  6:54         ` Dr. Werner Fink
  1 sibling, 1 reply; 15+ messages in thread
From: Kevin Wolf @ 2025-08-04 11:33 UTC (permalink / raw)
  To: Fabiano Rosas
  Cc: Daniel P. Berrangé, Martin Kletzander, qemu-devel,
	qemu-block, Manos Pitsidianakis, Paolo Bonzini, qemu-rust,
	Hanna Reitz, werner

Am 01.08.2025 um 21:09 hat Fabiano Rosas geschrieben:
> Daniel P. Berrangé <berrange@redhat.com> writes:
> 
> > On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
> >> From: Martin Kletzander <mkletzan@redhat.com>
> >> 
> >> When running all tests the expected "killed" messages are indented
> >> differently than the actual ones, by three more spaces.  Change it so
> >> that the messages match and tests pass.
> >
> > This would break the tests on my system and CI too.
> >
> > What distro are you seeing this on ?
> >
> > I'm guessing this is a different in either valgrind or C library ?
> 
> It's bash, we have an open issue about it:
> 
> https://gitlab.com/qemu-project/qemu/-/issues/3050

I see a patch has been posted to that bug, the most important part of
which is this added filtering:

--- a/tests/qemu-iotests/common.filter
+++ b/tests/qemu-iotests/common.filter  2025-07-25 11:39:22.419665788 +0000
@@ -75,7 +75,7 @@ _filter_qemu_io()
     _filter_win32 | \
     gsed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
         -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\)/:\1/" \
-        -e "s/qemu-io> //g"
+        -e "s/qemu-io> //g" -e '/Killed/{ s/ \{2,\}/ /}'
 }

 # replace occurrences of QEMU_PROG with "qemu"

This approach makes sense to me, though I would have kept each sed
expression on a separate line.

And given that the context line above includes "Aborted" as well, maybe
have it here, too, though none of the actual test outputs have an
Aborted message any more since commit 3f39447. Or we could have a
cleanup patch first that removes the unused "Abort" above, just to keep
things consistent.

Either way, please post this as a proper patch on the mailing list.

Kevin



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

* Re: [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro
  2025-08-04 10:08       ` Paolo Bonzini
@ 2025-08-04 12:04         ` Martin Kletzander
  2025-08-04 13:06           ` Paolo Bonzini
  0 siblings, 1 reply; 15+ messages in thread
From: Martin Kletzander @ 2025-08-04 12:04 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: qemu-devel, open list:Block layer core, Manos Pitsidianakis,
	qemu-rust, Hanna Reitz, Kevin Wolf

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

On Mon, Aug 04, 2025 at 12:08:15PM +0200, Paolo Bonzini wrote:
>Il lun 4 ago 2025, 10:56 Martin Kletzander <mkletzan@redhat.com> ha scritto:
>
>> *BUT* of course I had to rebase the patches on top of current rust-next
>> on Friday and there were some of your commits from Thursday which I now
>> see actually fix all what I tried fixing before as well.  I tried
>> finding the previous commit on which I saw all the issues and after some
>> rebuilding I could not.  So it is now not even broken on rust-next.
>>
>> This way I completely wasted your time, but at least learned something
>> that's happening in the code.  Sorry for that.
>>
>
>Uh no you didn't. It was broken.
>

But it is not now, neither master, nor rust-next, nor anything I tried
from the reflog, which makes me suspicious about what I was developing
this on.  I distinctly remember the `$vmsd.get()` call in the macro
which I presume was causing the copying due to VMStateDescription
automatically implementing the Copy trait due to the bindgen invocation.

But that's nowhere to be found, including git log --walk-reflog and
manually searching various history trees.  And I doubted that you
rewrote the history of the rust-next branch.  Neither do I remember
changing the macro until I found out that other in code changes did not
help to fix it.

After some time I now managed to find it.  It was the previous version
of a commit 4cb0670e12c4, and that is nowhere to be found in rust-next
at the moment, I guess fixes were incorporated while rebasing the branch
on current master.

That was a wild ride, but I'm glad it all works (apart from the bash
version indentation) on rust-next.  I'll try to read up on what's next
to help with, if anything.

Have a nice day,
Martin

>Paolo
>
>Martin
>>
>> >Paolo
>> >
>> > rust/qemu-api/src/vmstate.rs         | 11 +++++++++++
>> >>  rust/qemu-api/tests/vmstate_tests.rs |  1 +
>> >>  2 files changed, 12 insertions(+)
>> >>
>> >> diff --git a/rust/qemu-api/src/vmstate.rs b/rust/qemu-api/src/
>> vmstate.rs
>> >> index b5c6b764fbba..716e52afe740 100644
>> >> --- a/rust/qemu-api/src/vmstate.rs
>> >> +++ b/rust/qemu-api/src/vmstate.rs
>> >> @@ -449,6 +449,17 @@ macro_rules! vmstate_validate {
>> >>  /// description of the struct.
>> >>  #[macro_export]
>> >>  macro_rules! impl_vmstate_struct {
>> >> +    ($type:ty, $(&)?$vmsd:ident) => {
>> >> +        unsafe impl $crate::vmstate::VMState for $type {
>> >> +            const BASE: $crate::bindings::VMStateField =
>> >> +                $crate::bindings::VMStateField {
>> >> +                    vmsd: $vmsd.as_ref(),
>> >> +                    size: ::core::mem::size_of::<$type>(),
>> >> +                    flags: $crate::bindings::VMStateFlags::VMS_STRUCT,
>> >> +                    ..$crate::zeroable::Zeroable::ZERO
>> >> +                };
>> >> +        }
>> >> +    };
>> >>      ($type:ty, $vmsd:expr) => {
>> >>          unsafe impl $crate::vmstate::VMState for $type {
>> >>              const BASE: $crate::bindings::VMStateField = {
>> >> diff --git a/rust/qemu-api/tests/vmstate_tests.rs
>> b/rust/qemu-api/tests/
>> >> vmstate_tests.rs
>> >> index 2c0670ba0eed..7d3180e6c2ea 100644
>> >> --- a/rust/qemu-api/tests/vmstate_tests.rs
>> >> +++ b/rust/qemu-api/tests/vmstate_tests.rs
>> >> @@ -320,6 +320,7 @@ fn test_vmstate_struct_varray_uint8_wrapper() {
>> >>          b"arr_a_wrap\0"
>> >>      );
>> >>      assert_eq!(foo_fields[5].num_offset, 228);
>> >> +    assert_eq!(foo_fields[5].vmsd, VMSTATE_FOOA.as_ref());
>> >>      assert!(unsafe { foo_fields[5].field_exists.unwrap()(foo_b_p, 0)
>> });
>> >>
>> >>      // The last VMStateField in VMSTATE_FOOB.
>> >> --
>> >> 2.50.1
>> >>
>> >>
>>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro
  2025-08-04 12:04         ` Martin Kletzander
@ 2025-08-04 13:06           ` Paolo Bonzini
  0 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2025-08-04 13:06 UTC (permalink / raw)
  To: Martin Kletzander
  Cc: qemu-devel, open list:Block layer core, Manos Pitsidianakis,
	qemu-rust, Hanna Reitz, Kevin Wolf

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

Il lun 4 ago 2025, 14:04 Martin Kletzander <mkletzan@redhat.com> ha scritto:

> But that's nowhere to be found, including git log --walk-reflog and
> manually searching various history trees.  And I doubted that you
> rewrote the history of the rust-next branch


Yes, rust-next has its history rewritten.

By the way the bug was probably related to some compiler changes, because I
am almost certain it worked a couple months ago.

Paolo

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

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

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-04 11:33       ` Kevin Wolf
@ 2025-08-06  6:54         ` Dr. Werner Fink
  2025-08-11  9:05           ` Martin Kletzander
  0 siblings, 1 reply; 15+ messages in thread
From: Dr. Werner Fink @ 2025-08-06  6:54 UTC (permalink / raw)
  To: Kevin Wolf
  Cc: Fabiano Rosas, Daniel P. Berrangé, Martin Kletzander,
	qemu-devel, qemu-block, Manos Pitsidianakis, Paolo Bonzini,
	qemu-rust, Hanna Reitz


[-- Attachment #1.1: Type: text/plain, Size: 2236 bytes --]

On 2025/08/04 13:33:53 +0200, Kevin Wolf wrote:
> Am 01.08.2025 um 21:09 hat Fabiano Rosas geschrieben:
> > Daniel P. Berrangé <berrange@redhat.com> writes:
> > 
> > > On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
> > >> From: Martin Kletzander <mkletzan@redhat.com>
> > >> 
> > >> When running all tests the expected "killed" messages are indented
> > >> differently than the actual ones, by three more spaces.  Change it so
> > >> that the messages match and tests pass.
> > >
> > > This would break the tests on my system and CI too.
> > >
> > > What distro are you seeing this on ?
> > >
> > > I'm guessing this is a different in either valgrind or C library ?
> > 
> > It's bash, we have an open issue about it:
> > 
> > https://gitlab.com/qemu-project/qemu/-/issues/3050
> 
> I see a patch has been posted to that bug, the most important part of
> which is this added filtering:
> 
> --- a/tests/qemu-iotests/common.filter
> +++ b/tests/qemu-iotests/common.filter  2025-07-25 11:39:22.419665788 +0000
> @@ -75,7 +75,7 @@ _filter_qemu_io()
>      _filter_win32 | \
>      gsed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
>          -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\)/:\1/" \
> -        -e "s/qemu-io> //g"
> +        -e "s/qemu-io> //g" -e '/Killed/{ s/ \{2,\}/ /}'
>  }
> 
>  # replace occurrences of QEMU_PROG with "qemu"
> 
> This approach makes sense to me, though I would have kept each sed
> expression on a separate line.
> 
> And given that the context line above includes "Aborted" as well, maybe
> have it here, too, though none of the actual test outputs have an
> Aborted message any more since commit 3f39447. Or we could have a
> cleanup patch first that removes the unused "Abort" above, just to keep
> things consistent.
> 
> Either way, please post this as a proper patch on the mailing list.

Just next try in tha attached patch with a fixed version of
the sed command.

Werner

-- 
  "Having a smoking section in a restaurant is like having
          a peeing section in a swimming pool." -- Edward Burr

[-- Attachment #1.2: padding.patch --]
[-- Type: text/x-patch, Size: 6323 bytes --]

From: Werner Fink <werner@suse.de>
Date: Fri, 08 Aug 06:41:23 +0000
Subject: [PATCH 1/1] Avoid dependency on padding on signal messages

New bash 5.3 uses a different padding for reporting job status.

Resolves: boo#1246830
Signed-off-by: Werner Fink <werner@suse.de>
---
 tests/qemu-iotests/039.out       |   10 +++++-----
 tests/qemu-iotests/061.out       |    4 ++--
 tests/qemu-iotests/137.out       |    2 +-
 tests/qemu-iotests/common.filter |    2 +-
 4 files changed, 9 insertions(+), 9 deletions(-)

--- a/tests/qemu-iotests/039.out
+++ b/tests/qemu-iotests/039.out	2025-07-25 11:36:51.949026116 +0000
@@ -11,7 +11,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     [0]
 ERROR cluster 5 refcount=0 reference=1
 ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
@@ -46,7 +46,7 @@ read 512/512 bytes at offset 0
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     [0]
 ERROR cluster 5 refcount=0 reference=1
 Rebuilding refcount structure
@@ -60,7 +60,7 @@ incompatible_features     []
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     []
 No errors were found on the image.
 
@@ -79,7 +79,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     [0]
 ERROR cluster 5 refcount=0 reference=1
 ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
@@ -89,7 +89,7 @@ Data may be corrupted, or further writes
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 incompatible_features     []
 No errors were found on the image.
 *** done
--- a/tests/qemu-iotests/061.out
+++ b/tests/qemu-iotests/061.out	2025-07-25 11:36:51.949026116 +0000
@@ -118,7 +118,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 wrote 131072/131072 bytes at offset 0
 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 magic                     0x514649fb
 version                   3
 backing_file_offset       0x0
@@ -304,7 +304,7 @@ No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 wrote 131072/131072 bytes at offset 0
 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 magic                     0x514649fb
 version                   3
 backing_file_offset       0x0
--- a/tests/qemu-iotests/137.out
+++ b/tests/qemu-iotests/137.out	2025-07-25 11:36:51.949026116 +0000
@@ -35,7 +35,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGF
 qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all
 wrote 512/512 bytes at offset 0
 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 OK: Dirty bit not set
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off'
--- a/tests/qemu-iotests/common.filter
+++ b/tests/qemu-iotests/common.filter	2025-08-06 06:41:23.649980764 +0000
@@ -74,7 +74,7 @@ _filter_qemu_io()
 {
     _filter_win32 | \
     gsed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
-        -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\)/:\1/" \
+        -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\) \{2,\}/:\1 /" \
         -e "s/qemu-io> //g"
 }
 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 894 bytes --]

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

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-06  6:54         ` Dr. Werner Fink
@ 2025-08-11  9:05           ` Martin Kletzander
  2025-08-12 15:35             ` Kevin Wolf
  0 siblings, 1 reply; 15+ messages in thread
From: Martin Kletzander @ 2025-08-11  9:05 UTC (permalink / raw)
  To: Dr. Werner Fink
  Cc: Kevin Wolf, Fabiano Rosas, Daniel P. Berrangé, qemu-devel,
	qemu-block, Manos Pitsidianakis, Paolo Bonzini, qemu-rust,
	Hanna Reitz

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

On Wed, Aug 06, 2025 at 08:54:51AM +0200, Dr. Werner Fink wrote:
>On 2025/08/04 13:33:53 +0200, Kevin Wolf wrote:
>> Am 01.08.2025 um 21:09 hat Fabiano Rosas geschrieben:
>> > Daniel P. Berrangé <berrange@redhat.com> writes:
>> >
>> > > On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
>> > >> From: Martin Kletzander <mkletzan@redhat.com>
>> > >>
>> > >> When running all tests the expected "killed" messages are indented
>> > >> differently than the actual ones, by three more spaces.  Change it so
>> > >> that the messages match and tests pass.
>> > >
>> > > This would break the tests on my system and CI too.
>> > >
>> > > What distro are you seeing this on ?
>> > >
>> > > I'm guessing this is a different in either valgrind or C library ?
>> >
>> > It's bash, we have an open issue about it:
>> >
>> > https://gitlab.com/qemu-project/qemu/-/issues/3050
>>
>> I see a patch has been posted to that bug, the most important part of
>> which is this added filtering:
>>
>> --- a/tests/qemu-iotests/common.filter
>> +++ b/tests/qemu-iotests/common.filter  2025-07-25 11:39:22.419665788 +0000
>> @@ -75,7 +75,7 @@ _filter_qemu_io()
>>      _filter_win32 | \
>>      gsed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
>>          -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\)/:\1/" \
>> -        -e "s/qemu-io> //g"
>> +        -e "s/qemu-io> //g" -e '/Killed/{ s/ \{2,\}/ /}'
>>  }
>>
>>  # replace occurrences of QEMU_PROG with "qemu"
>>
>> This approach makes sense to me, though I would have kept each sed
>> expression on a separate line.
>>
>> And given that the context line above includes "Aborted" as well, maybe
>> have it here, too, though none of the actual test outputs have an
>> Aborted message any more since commit 3f39447. Or we could have a
>> cleanup patch first that removes the unused "Abort" above, just to keep
>> things consistent.
>>
>> Either way, please post this as a proper patch on the mailing list.
>
>Just next try in tha attached patch with a fixed version of
>the sed command.
>
>Werner
>
>-- 
>  "Having a smoking section in a restaurant is like having
>          a peeing section in a swimming pool." -- Edward Burr

>From: Werner Fink <werner@suse.de>
>Date: Fri, 08 Aug 06:41:23 +0000
>Subject: [PATCH 1/1] Avoid dependency on padding on signal messages
>
>New bash 5.3 uses a different padding for reporting job status.
>
>Resolves: boo#1246830

Not sure you meant that or
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3050

>Signed-off-by: Werner Fink <werner@suse.de>

but, FWIW, if that makes any difference,

Tested-by: Martin Kletzander <mkletzan@redhat.com>

>---
> tests/qemu-iotests/039.out       |   10 +++++-----
> tests/qemu-iotests/061.out       |    4 ++--
> tests/qemu-iotests/137.out       |    2 +-
> tests/qemu-iotests/common.filter |    2 +-
> 4 files changed, 9 insertions(+), 9 deletions(-)
>
>--- a/tests/qemu-iotests/039.out
>+++ b/tests/qemu-iotests/039.out	2025-07-25 11:36:51.949026116 +0000
>@@ -11,7 +11,7 @@ No errors were found on the image.
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> wrote 512/512 bytes at offset 0
> 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> incompatible_features     [0]
> ERROR cluster 5 refcount=0 reference=1
> ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
>@@ -46,7 +46,7 @@ read 512/512 bytes at offset 0
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> wrote 512/512 bytes at offset 0
> 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> incompatible_features     [0]
> ERROR cluster 5 refcount=0 reference=1
> Rebuilding refcount structure
>@@ -60,7 +60,7 @@ incompatible_features     []
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> wrote 512/512 bytes at offset 0
> 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> incompatible_features     []
> No errors were found on the image.
> 
>@@ -79,7 +79,7 @@ No errors were found on the image.
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> wrote 512/512 bytes at offset 0
> 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> incompatible_features     [0]
> ERROR cluster 5 refcount=0 reference=1
> ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
>@@ -89,7 +89,7 @@ Data may be corrupted, or further writes
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> wrote 512/512 bytes at offset 0
> 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> incompatible_features     []
> No errors were found on the image.
> *** done
>--- a/tests/qemu-iotests/061.out
>+++ b/tests/qemu-iotests/061.out	2025-07-25 11:36:51.949026116 +0000
>@@ -118,7 +118,7 @@ No errors were found on the image.
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
> wrote 131072/131072 bytes at offset 0
> 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> magic                     0x514649fb
> version                   3
> backing_file_offset       0x0
>@@ -304,7 +304,7 @@ No errors were found on the image.
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
> wrote 131072/131072 bytes at offset 0
> 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> magic                     0x514649fb
> version                   3
> backing_file_offset       0x0
>--- a/tests/qemu-iotests/137.out
>+++ b/tests/qemu-iotests/137.out	2025-07-25 11:36:51.949026116 +0000
>@@ -35,7 +35,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGF
> qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all
> wrote 512/512 bytes at offset 0
> 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>-./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
>+./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
> OK: Dirty bit not set
> Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
> qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off'
>--- a/tests/qemu-iotests/common.filter
>+++ b/tests/qemu-iotests/common.filter	2025-08-06 06:41:23.649980764 +0000
>@@ -74,7 +74,7 @@ _filter_qemu_io()
> {
>     _filter_win32 | \
>     gsed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
>-        -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\)/:\1/" \
>+        -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\) \{2,\}/:\1 /" \
>         -e "s/qemu-io> //g"
> }
> 




[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 2/2] tests/qemu-iotests: Indent expected error messages
  2025-08-11  9:05           ` Martin Kletzander
@ 2025-08-12 15:35             ` Kevin Wolf
  0 siblings, 0 replies; 15+ messages in thread
From: Kevin Wolf @ 2025-08-12 15:35 UTC (permalink / raw)
  To: Martin Kletzander
  Cc: Dr. Werner Fink, Fabiano Rosas, Daniel P. Berrangé,
	qemu-devel, qemu-block, Manos Pitsidianakis, Paolo Bonzini,
	qemu-rust, Hanna Reitz

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

Am 11.08.2025 um 11:05 hat Martin Kletzander geschrieben:
> On Wed, Aug 06, 2025 at 08:54:51AM +0200, Dr. Werner Fink wrote:
> > On 2025/08/04 13:33:53 +0200, Kevin Wolf wrote:
> > > Am 01.08.2025 um 21:09 hat Fabiano Rosas geschrieben:
> > > > Daniel P. Berrangé <berrange@redhat.com> writes:
> > > >
> > > > > On Fri, Aug 01, 2025 at 04:59:50PM +0200, Martin Kletzander wrote:
> > > > >> From: Martin Kletzander <mkletzan@redhat.com>
> > > > >>
> > > > >> When running all tests the expected "killed" messages are indented
> > > > >> differently than the actual ones, by three more spaces.  Change it so
> > > > >> that the messages match and tests pass.
> > > > >
> > > > > This would break the tests on my system and CI too.
> > > > >
> > > > > What distro are you seeing this on ?
> > > > >
> > > > > I'm guessing this is a different in either valgrind or C library ?
> > > >
> > > > It's bash, we have an open issue about it:
> > > >
> > > > https://gitlab.com/qemu-project/qemu/-/issues/3050
> > > 
> > > I see a patch has been posted to that bug, the most important part of
> > > which is this added filtering:
> > > 
> > > --- a/tests/qemu-iotests/common.filter
> > > +++ b/tests/qemu-iotests/common.filter  2025-07-25 11:39:22.419665788 +0000
> > > @@ -75,7 +75,7 @@ _filter_qemu_io()
> > >      _filter_win32 | \
> > >      gsed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
> > >          -e "s/: line [0-9][0-9]*:  *[0-9][0-9]*\( Aborted\| Killed\)/:\1/" \
> > > -        -e "s/qemu-io> //g"
> > > +        -e "s/qemu-io> //g" -e '/Killed/{ s/ \{2,\}/ /}'
> > >  }
> > > 
> > >  # replace occurrences of QEMU_PROG with "qemu"
> > > 
> > > This approach makes sense to me, though I would have kept each sed
> > > expression on a separate line.
> > > 
> > > And given that the context line above includes "Aborted" as well, maybe
> > > have it here, too, though none of the actual test outputs have an
> > > Aborted message any more since commit 3f39447. Or we could have a
> > > cleanup patch first that removes the unused "Abort" above, just to keep
> > > things consistent.
> > > 
> > > Either way, please post this as a proper patch on the mailing list.
> > 
> > Just next try in tha attached patch with a fixed version of
> > the sed command.
> > 
> > Werner
> > 
> > -- 
> >  "Having a smoking section in a restaurant is like having
> >          a peeing section in a swimming pool." -- Edward Burr
> 
> > From: Werner Fink <werner@suse.de>
> > Date: Fri, 08 Aug 06:41:23 +0000
> > Subject: [PATCH 1/1] Avoid dependency on padding on signal messages
> > 
> > New bash 5.3 uses a different padding for reporting job status.
> > 
> > Resolves: boo#1246830
> 
> Not sure you meant that or
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3050

I just updated the commit message to contain both.

> > Signed-off-by: Werner Fink <werner@suse.de>
> 
> but, FWIW, if that makes any difference,
> 
> Tested-by: Martin Kletzander <mkletzan@redhat.com>

Thanks, applied to the block branch.

Kevin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

end of thread, other threads:[~2025-08-12 15:36 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-01 14:59 [PATCH 0/2] Few fixes I found when building QEMU with Rust Martin Kletzander
2025-08-01 14:59 ` [PATCH 1/2] rust: Add antoher variant for impl_vmstate_struct! macro Martin Kletzander
2025-08-01 21:44   ` Paolo Bonzini
2025-08-04  8:56     ` Martin Kletzander
2025-08-04 10:08       ` Paolo Bonzini
2025-08-04 12:04         ` Martin Kletzander
2025-08-04 13:06           ` Paolo Bonzini
2025-08-01 14:59 ` [PATCH 2/2] tests/qemu-iotests: Indent expected error messages Martin Kletzander
2025-08-01 15:48   ` Daniel P. Berrangé
2025-08-01 19:09     ` Fabiano Rosas
2025-08-04  8:20       ` Martin Kletzander
2025-08-04 11:33       ` Kevin Wolf
2025-08-06  6:54         ` Dr. Werner Fink
2025-08-11  9:05           ` Martin Kletzander
2025-08-12 15:35             ` Kevin Wolf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).