]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
rust: qemu-api-macros: support matching more than one error
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 16 Jul 2025 11:17:09 +0000 (13:17 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 27 Aug 2025 08:57:04 +0000 (10:57 +0200)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
rust/qemu-api-macros/src/tests.rs

index d6dcd62fcf680591b1181f2280b43f894e46c2b9..6028cdbc4c33193d7f13c922b8b3f5f807dc583d 100644 (file)
@@ -7,9 +7,9 @@ use quote::quote;
 use super::*;
 
 macro_rules! derive_compile_fail {
-    ($derive_fn:ident, $input:expr, $error_msg:expr) => {{
+    ($derive_fn:ident, $input:expr, $($error_msg:expr),+ $(,)?) => {{
         let input: proc_macro2::TokenStream = $input;
-        let error_msg: &str = $error_msg;
+        let error_msg = &[$( quote! { ::core::compile_error! { $error_msg } } ),*];
         let derive_fn: fn(input: syn::DeriveInput) -> Result<proc_macro2::TokenStream, syn::Error> =
             $derive_fn;
 
@@ -18,7 +18,7 @@ macro_rules! derive_compile_fail {
         let err = result.unwrap_err().into_compile_error();
         assert_eq!(
             err.to_string(),
-            quote! { ::core::compile_error! { #error_msg } }.to_string()
+            quote! { #(#error_msg)* }.to_string()
         );
     }};
 }