diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test.rs | 1 | ||||
-rw-r--r-- | tests/test_size.rs | 89 |
2 files changed, 77 insertions, 13 deletions
diff --git a/tests/test.rs b/tests/test.rs index 3923d33..0d7c88d 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -541,7 +541,6 @@ testing 123 } #[cfg(procmacro2_semver_exempt)] -#[cfg(not(nightly))] #[test] fn default_span() { let start = Span::call_site().start(); diff --git a/tests/test_size.rs b/tests/test_size.rs index 46e58db..49ca68e 100644 --- a/tests/test_size.rs +++ b/tests/test_size.rs @@ -2,41 +2,106 @@ extern crate proc_macro; use std::mem; -#[rustversion::attr(before(1.32), ignore)] +#[rustversion::attr(before(1.64), ignore)] +#[rustversion::attr( + since(1.64), + cfg_attr(any(randomize_layout, not(target_pointer_width = "64")), ignore) +)] #[test] -fn test_proc_macro_span_size() { +fn test_proc_macro_size() { assert_eq!(mem::size_of::<proc_macro::Span>(), 4); assert_eq!(mem::size_of::<Option<proc_macro::Span>>(), 4); + assert_eq!(mem::size_of::<proc_macro::Group>(), 20); + assert_eq!(mem::size_of::<proc_macro::Ident>(), 12); + assert_eq!(mem::size_of::<proc_macro::Punct>(), 8); + assert_eq!(mem::size_of::<proc_macro::Literal>(), 16); + assert_eq!(mem::size_of::<proc_macro::TokenStream>(), 4); } -#[cfg_attr(not(all(not(wrap_proc_macro), not(span_locations))), ignore)] +#[cfg_attr( + any( + randomize_layout, + not(target_pointer_width = "64"), + wrap_proc_macro, + span_locations + ), + ignore +)] #[test] -fn test_proc_macro2_fallback_span_size_without_locations() { +fn test_proc_macro2_fallback_size_without_locations() { assert_eq!(mem::size_of::<proc_macro2::Span>(), 0); assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 1); + assert_eq!(mem::size_of::<proc_macro2::Group>(), 16); + assert_eq!(mem::size_of::<proc_macro2::Ident>(), 24); + assert_eq!(mem::size_of::<proc_macro2::Punct>(), 8); + assert_eq!(mem::size_of::<proc_macro2::Literal>(), 24); + assert_eq!(mem::size_of::<proc_macro2::TokenStream>(), 8); } -#[cfg_attr(not(all(not(wrap_proc_macro), span_locations)), ignore)] +#[cfg_attr( + any( + randomize_layout, + not(target_pointer_width = "64"), + wrap_proc_macro, + not(span_locations) + ), + ignore +)] #[test] -fn test_proc_macro2_fallback_span_size_with_locations() { +fn test_proc_macro2_fallback_size_with_locations() { assert_eq!(mem::size_of::<proc_macro2::Span>(), 8); assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 12); + assert_eq!(mem::size_of::<proc_macro2::Group>(), 24); + assert_eq!(mem::size_of::<proc_macro2::Ident>(), 32); + assert_eq!(mem::size_of::<proc_macro2::Punct>(), 16); + assert_eq!(mem::size_of::<proc_macro2::Literal>(), 32); + assert_eq!(mem::size_of::<proc_macro2::TokenStream>(), 8); } -#[rustversion::attr(before(1.32), ignore)] +#[rustversion::attr(before(1.71), ignore)] #[rustversion::attr( - since(1.32), - cfg_attr(not(all(wrap_proc_macro, not(span_locations))), ignore) + since(1.71), + cfg_attr( + any( + randomize_layout, + not(target_pointer_width = "64"), + not(wrap_proc_macro), + span_locations + ), + ignore + ) )] #[test] -fn test_proc_macro2_wrapper_span_size_without_locations() { +fn test_proc_macro2_wrapper_size_without_locations() { assert_eq!(mem::size_of::<proc_macro2::Span>(), 4); assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 8); + assert_eq!(mem::size_of::<proc_macro2::Group>(), 24); + assert_eq!(mem::size_of::<proc_macro2::Ident>(), 24); + assert_eq!(mem::size_of::<proc_macro2::Punct>(), 12); + assert_eq!(mem::size_of::<proc_macro2::Literal>(), 24); + assert_eq!(mem::size_of::<proc_macro2::TokenStream>(), 32); } -#[cfg_attr(not(all(wrap_proc_macro, span_locations)), ignore)] +#[rustversion::attr(before(1.65), ignore)] +#[rustversion::attr( + since(1.65), + cfg_attr( + any( + randomize_layout, + not(target_pointer_width = "64"), + not(wrap_proc_macro), + not(span_locations) + ), + ignore + ) +)] #[test] -fn test_proc_macro2_wrapper_span_size_with_locations() { +fn test_proc_macro2_wrapper_size_with_locations() { assert_eq!(mem::size_of::<proc_macro2::Span>(), 12); assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 12); + assert_eq!(mem::size_of::<proc_macro2::Group>(), 32); + assert_eq!(mem::size_of::<proc_macro2::Ident>(), 32); + assert_eq!(mem::size_of::<proc_macro2::Punct>(), 20); + assert_eq!(mem::size_of::<proc_macro2::Literal>(), 32); + assert_eq!(mem::size_of::<proc_macro2::TokenStream>(), 32); } |