chore: do not generate fuzz tests in Compact macro (#18849)

This commit is contained in:
Arsenii Kulikov
2025-10-03 15:58:44 +04:00
committed by GitHub
parent 8effbf265b
commit 871bc82eee
11 changed files with 5 additions and 61 deletions

View File

@@ -15,7 +15,6 @@ workspace = true
proc-macro = true
[dependencies]
convert_case.workspace = true
proc-macro2.workspace = true
quote.workspace = true
syn.workspace = true

View File

@@ -2,7 +2,6 @@
use super::*;
use crate::ZstdConfig;
use convert_case::{Case, Casing};
use syn::{Attribute, LitStr};
/// Generates code to implement the `Compact` trait for a data type.
@@ -20,11 +19,6 @@ pub fn generate_from_to(
let to_compact = generate_to_compact(fields, ident, zstd.clone(), &reth_codecs);
let from_compact = generate_from_compact(fields, ident, zstd);
let snake_case_ident = ident.to_string().to_case(Case::Snake);
let fuzz = format_ident!("fuzz_test_{snake_case_ident}");
let test = format_ident!("fuzz_{snake_case_ident}");
let lifetime = if has_lifetime {
quote! { 'a }
} else {
@@ -58,33 +52,8 @@ pub fn generate_from_to(
}
};
let fuzz_tests = if has_lifetime {
quote! {}
} else {
quote! {
#[cfg(test)]
#[expect(dead_code)]
#[test_fuzz::test_fuzz]
fn #fuzz(obj: #ident) {
use #reth_codecs::Compact;
let mut buf = vec![];
let len = obj.clone().to_compact(&mut buf);
let (same_obj, buf) = #ident::from_compact(buf.as_ref(), len);
assert_eq!(obj, same_obj);
}
#[test]
#[expect(missing_docs)]
pub fn #test() {
#fuzz(#ident::default())
}
}
};
// Build function
quote! {
#fuzz_tests
#impl_compact {
fn to_compact<B>(&self, buf: &mut B) -> usize where B: #reth_codecs::__private::bytes::BufMut + AsMut<[u8]> {
let mut flags = #flags::default();

View File

@@ -276,21 +276,6 @@ mod tests {
}
}
}
#[cfg(test)]
#[expect(dead_code)]
#[test_fuzz::test_fuzz]
fn fuzz_test_test_struct(obj: TestStruct) {
use reth_codecs::Compact;
let mut buf = vec![];
let len = obj.clone().to_compact(&mut buf);
let (same_obj, buf) = TestStruct::from_compact(buf.as_ref(), len);
assert_eq!(obj, same_obj);
}
#[test]
#[expect(missing_docs)]
pub fn fuzz_test_struct() {
fuzz_test_test_struct(TestStruct::default())
}
impl reth_codecs::Compact for TestStruct {
fn to_compact<B>(&self, buf: &mut B) -> usize where B: reth_codecs::__private::bytes::BufMut + AsMut<[u8]> {
let mut flags = TestStructFlags::default();

View File

@@ -3,6 +3,7 @@
use crate::Compact;
use alloy_consensus::Header as AlloyHeader;
use alloy_primitives::{Address, BlockNumber, Bloom, Bytes, B256, U256};
use reth_codecs_derive::{add_arbitrary_tests, generate_tests};
/// Block header
///
@@ -19,6 +20,7 @@ use alloy_primitives::{Address, BlockNumber, Bloom, Bytes, B256, U256};
#[cfg_attr(feature = "test-utils", allow(unreachable_pub), visibility::make(pub))]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Compact)]
#[reth_codecs(crate = "crate")]
#[add_arbitrary_tests(crate, compact)]
pub(crate) struct Header {
parent_hash: B256,
ommers_hash: B256,
@@ -56,6 +58,7 @@ pub(crate) struct Header {
#[cfg_attr(feature = "test-utils", allow(unreachable_pub), visibility::make(pub))]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Compact)]
#[reth_codecs(crate = "crate")]
#[add_arbitrary_tests(crate, compact)]
pub(crate) struct HeaderExt {
requests_hash: Option<B256>,
}
@@ -135,6 +138,8 @@ impl Compact for AlloyHeader {
}
}
generate_tests!(#[crate, compact] AlloyHeader, AlloyHeaderTests);
#[cfg(test)]
mod tests {
use super::*;