mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-30 03:01:58 -04:00
chore: do not generate fuzz tests in Compact macro (#18849)
This commit is contained in:
@@ -15,7 +15,6 @@ workspace = true
|
||||
proc-macro = true
|
||||
|
||||
[dependencies]
|
||||
convert_case.workspace = true
|
||||
proc-macro2.workspace = true
|
||||
quote.workspace = true
|
||||
syn.workspace = true
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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::*;
|
||||
|
||||
Reference in New Issue
Block a user